From 71639b5f2b7a1ac6a7b8c12a21d98eeb0bdac2cd Mon Sep 17 00:00:00 2001 From: nhauge Date: Mon, 7 Mar 2011 20:03:42 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'v201103070000'. --- .../org.eclipse.jpt.assembly.feature/.cvsignore | 2 - .../org.eclipse.jpt.assembly.feature/.project | 17 - .../build.properties | 0 .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 50 - .../org.eclipse.jpt.assembly.feature/feature.xml | 52 - assembly/features/org.eclipse.jpt.patch/.project | 17 - .../org.eclipse.jpt.patch/build.properties | 10 - .../buildnotes_org.eclipse.jpt.patch.html | 20 - .../org.eclipse.jpt.patch/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../features/org.eclipse.jpt.patch/epl-v10.html | 328 - .../org.eclipse.jpt.patch/feature.properties | 143 - .../features/org.eclipse.jpt.patch/feature.xml | 35 - .../features/org.eclipse.jpt.patch/license.html | 93 - assembly/features/org.eclipse.jpt.sdk/.cvsignore | 4 - assembly/features/org.eclipse.jpt.sdk/.project | 17 - .../features/org.eclipse.jpt.sdk/build.properties | 15 - .../org.eclipse.jpt.sdk/eclipse_update_120.jpg | Bin 21695 -> 0 bytes assembly/features/org.eclipse.jpt.sdk/epl-v10.html | 328 - .../org.eclipse.jpt.sdk/feature.properties | 170 - assembly/features/org.eclipse.jpt.sdk/feature.xml | 42 - assembly/features/org.eclipse.jpt.sdk/license.html | 107 - .../.cvsignore | 3 - .../.project | 17 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../build.properties | 0 .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 50 - .../feature.xml | 38 - assembly/features/org.eclipse.jpt.tests/.project | 5 - assembly/features/org.eclipse.jpt/.project | 5 - .../.cvsignore | 4 - .../org.eclipse.jpt_sdk.assembly.feature/.project | 17 - .../build.properties | 0 .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 50 - .../feature.xml | 52 - assembly/plugins/org.eclipse.jpt/.cvsignore | 2 - assembly/plugins/org.eclipse.jpt/.project | 22 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../plugins/org.eclipse.jpt/META-INF/MANIFEST.MF | 7 - assembly/plugins/org.eclipse.jpt/about.html | 34 - assembly/plugins/org.eclipse.jpt/about.ini | 44 - assembly/plugins/org.eclipse.jpt/about.mappings | 6 - assembly/plugins/org.eclipse.jpt/about.properties | 24 - assembly/plugins/org.eclipse.jpt/build.properties | 19 - assembly/plugins/org.eclipse.jpt/component.xml | 12 - assembly/plugins/org.eclipse.jpt/eclipse32.gif | Bin 1706 -> 0 bytes assembly/plugins/org.eclipse.jpt/eclipse32.png | Bin 4594 -> 0 bytes assembly/plugins/org.eclipse.jpt/plugin.properties | 13 - .../plugins/org.eclipse.jpt.common.core/.classpath | 13 - .../plugins/org.eclipse.jpt.common.core/.project | 28 - .../META-INF/MANIFEST.MF | 71 - .../plugins/org.eclipse.jpt.common.core/about.html | 34 - .../org.eclipse.jpt.common.core/build.properties | 21 - .../org.eclipse.jpt.common.core/plugin.properties | 31 - .../plugins/org.eclipse.jpt.common.core/plugin.xml | 156 - .../property_files/jpt_common_core.properties | 23 - .../schema/libraryValidators.exsd | 154 - .../schema/resourceLocators.exsd | 191 - .../org/eclipse/jpt/common/core/IResourcePart.java | 34 - .../jpt/common/core/JptCommonCorePlugin.java | 174 - .../eclipse/jpt/common/core/JptResourceModel.java | 44 - .../jpt/common/core/JptResourceModelListener.java | 34 - .../eclipse/jpt/common/core/JptResourceType.java | 99 - .../core/internal/JptCommonCoreMessages.java | 43 - .../core/internal/ResourceAdapterFactory.java | 48 - .../core/internal/gen/AbstractJptGenerator.java | 369 - ...ndlesLibraryProviderInstallOperationConfig.java | 45 - ...tUserLibraryProviderInstallOperationConfig.java | 45 - .../libprov/LibraryProviderPropertyTester.java | 41 - .../common/core/internal/libval/LibValUtil.java | 92 - .../internal/libval/LibraryValidatorConfig.java | 97 - .../internal/libval/LibraryValidatorManager.java | 149 - .../AbstractJptFileCreationDataModelProvider.java | 137 - .../JptFileCreationDataModelProperties.java | 33 - .../internal/resource/ModuleResourceLocator.java | 79 - .../internal/resource/PluginResourceLocator.java | 93 - .../internal/resource/ResourceLocatorConfig.java | 168 - .../internal/resource/ResourceLocatorManager.java | 167 - .../resource/SimpleJavaResourceLocator.java | 152 - .../resource/WebModuleResourceLocator.java | 54 - .../internal/utility/CallbackJobSynchronizer.java | 154 - .../core/internal/utility/ICUStringCollator.java | 63 - .../jpt/common/core/internal/utility/JDTTools.java | 276 - .../common/core/internal/utility/JobCommand.java | 96 - .../core/internal/utility/JobSynchronizer.java | 198 - .../core/internal/utility/PlatformTools.java | 104 - .../internal/utility/SimpleSchedulingRule.java | 38 - .../core/internal/utility/SimpleTextRange.java | 41 - .../common/core/internal/utility/XPointTools.java | 139 - .../internal/utility/jdt/ASTNodeTextRange.java | 39 - .../common/core/internal/utility/jdt/ASTTools.java | 284 - .../utility/jdt/AbstractAnnotationAdapter.java | 165 - .../jdt/AbstractDeclarationAnnotationAdapter.java | 153 - .../utility/jdt/AbstractExpressionConverter.java | 82 - .../core/internal/utility/jdt/AbstractJDTType.java | 198 - ...AbstractNestedDeclarationAnnotationAdapter.java | 403 - .../AnnotatedElementAnnotationElementAdapter.java | 99 - .../AnnotationStringArrayExpressionConverter.java | 107 - .../utility/jdt/BooleanExpressionConverter.java | 51 - .../jdt/CharacterStringExpressionConverter.java | 53 - ...inationIndexedDeclarationAnnotationAdapter.java | 500 - ...versionDeclarationAnnotationElementAdapter.java | 154 - .../jdt/DefaultAnnotationEditFormatter.java | 219 - .../utility/jdt/ElementAnnotationAdapter.java | 27 - .../jdt/ElementIndexedAnnotationAdapter.java | 74 - ...umArrayDeclarationAnnotationElementAdapter.java | 150 - .../EnumDeclarationAnnotationElementAdapter.java | 119 - ...ressionDeclarationAnnotationElementAdapter.java | 327 - .../core/internal/utility/jdt/GenericVisitor.java | 791 -- .../internal/utility/jdt/JDTAnnotatedElement.java | 201 - .../common/core/internal/utility/jdt/JDTEnum.java | 132 - .../core/internal/utility/jdt/JDTEnumConstant.java | 121 - .../internal/utility/jdt/JDTFieldAttribute.java | 216 - .../core/internal/utility/jdt/JDTMember.java | 90 - .../internal/utility/jdt/JDTMethodAttribute.java | 263 - .../utility/jdt/JDTModifiedDeclaration.java | 584 - .../core/internal/utility/jdt/JDTPackage.java | 65 - .../common/core/internal/utility/jdt/JDTType.java | 207 - .../common/core/internal/utility/jdt/JPTTools.java | 283 - .../utility/jdt/NameStringExpressionConverter.java | 57 - .../jdt/NestedDeclarationAnnotationAdapter.java | 90 - .../NestedIndexedDeclarationAnnotationAdapter.java | 325 - .../utility/jdt/NullAnnotationEditFormatter.java | 42 - .../jdt/NullDeclarationAnnotationAdapter.java | 82 - .../NullDeclarationAnnotationElementAdapter.java | 60 - .../utility/jdt/NullExpressionConverter.java | 54 - .../jdt/NumberIntegerExpressionConverter.java | 51 - .../PrimitiveTypeStringExpressionConverter.java | 61 - .../jdt/ShortCircuitAnnotationElementAdapter.java | 104 - .../ShortCircuitArrayAnnotationElementAdapter.java | 43 - .../jdt/SimpleDeclarationAnnotationAdapter.java | 62 - .../jdt/SimpleTypeStringExpressionConverter.java | 63 - .../jdt/StringArrayExpressionConverter.java | 104 - .../utility/jdt/StringExpressionConverter.java | 52 - .../utility/jdt/TypeStringExpressionConverter.java | 55 - .../utility/translators/BooleanTranslator.java | 36 - .../translators/EmptyTagBooleanTranslator.java | 53 - .../translators/EnumeratedValueTranslator.java | 45 - .../utility/translators/SimpleRootTranslator.java | 92 - .../utility/translators/SimpleTranslator.java | 135 - .../JptLibraryProviderInstallOperationConfig.java | 34 - .../jpt/common/core/libval/LibraryValidator.java | 31 - .../jpt/common/core/resource/ResourceLocator.java | 50 - .../jpt/common/core/utility/AbstractTextRange.java | 71 - .../jpt/common/core/utility/BodySourceWriter.java | 303 - .../eclipse/jpt/common/core/utility/TextRange.java | 119 - .../jpt/common/core/utility/jdt/AbstractType.java | 38 - .../common/core/utility/jdt/AnnotatedElement.java | 82 - .../common/core/utility/jdt/AnnotatedPackage.java | 40 - .../common/core/utility/jdt/AnnotationAdapter.java | 63 - .../core/utility/jdt/AnnotationEditFormatter.java | 34 - .../core/utility/jdt/AnnotationElementAdapter.java | 68 - .../jpt/common/core/utility/jdt/Attribute.java | 46 - .../utility/jdt/DeclarationAnnotationAdapter.java | 72 - .../jdt/DeclarationAnnotationElementAdapter.java | 63 - .../eclipse/jpt/common/core/utility/jdt/Enum.java | 39 - .../jpt/common/core/utility/jdt/EnumConstant.java | 41 - .../core/utility/jdt/ExpressionConverter.java | 44 - .../common/core/utility/jdt/FieldAttribute.java | 39 - .../core/utility/jdt/IndexedAnnotationAdapter.java | 37 - .../jdt/IndexedDeclarationAnnotationAdapter.java | 37 - .../jpt/common/core/utility/jdt/Member.java | 39 - .../common/core/utility/jdt/MethodAttribute.java | 45 - .../core/utility/jdt/ModifiedDeclaration.java | 105 - .../eclipse/jpt/common/core/utility/jdt/Type.java | 56 - .../.classpath | 8 - .../.cvsignore | 6 - .../.project | 28 - .../META-INF/MANIFEST.MF | 18 - .../about.html | 34 - .../build.properties | 19 - .../plugin.properties | 23 - .../plugin.xml | 43 - .../jpt_common_eclipselink_core.properties | 13 - .../core/JptCommonEclipseLinkCorePlugin.java | 90 - .../internal/JptCommonEclipseLinkCoreMessages.java | 32 - .../internal/libval/EclipseLinkLibValUtil.java | 84 - .../plugins/org.eclipse.jpt.common.ui/.classpath | 13 - common/plugins/org.eclipse.jpt.common.ui/.project | 28 - .../org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF | 38 - .../plugins/org.eclipse.jpt.common.ui/about.html | 34 - .../org.eclipse.jpt.common.ui/build.properties | 19 - .../org.eclipse.jpt.common.ui/plugin.properties | 23 - .../property_files/jpt_common_ui.properties | 28 - .../eclipse/jpt/common/ui/JptCommonUiPlugin.java | 65 - .../org/eclipse/jpt/common/ui/WidgetFactory.java | 240 - .../common/ui/internal/JptCommonUiMessages.java | 53 - .../eclipse/jpt/common/ui/internal/Tracing.java | 161 - .../internal/jface/AbstractItemLabelProvider.java | 224 - .../jface/AbstractTreeItemContentProvider.java | 204 - .../ui/internal/jface/ArchiveFileViewerFilter.java | 71 - .../DelegatingTreeContentAndLabelProvider.java | 58 - .../ui/internal/jface/ImageImageDescriptor.java | 47 - .../ui/internal/jface/NullLabelProvider.java | 60 - .../ui/internal/jface/NullTreeContentProvider.java | 60 - .../jface/StructuredContentProviderAdapter.java | 265 - .../SWTCollectionChangeListenerWrapper.java | 151 - .../listeners/SWTListChangeListenerWrapper.java | 201 - .../SWTPropertyChangeListenerWrapper.java | 82 - .../listeners/SWTStateChangeListenerWrapper.java | 79 - .../listeners/SWTTreeChangeListenerWrapper.java | 151 - .../properties/JptProjectPropertiesPage.java | 432 - .../ui/internal/swt/AbstractComboModelAdapter.java | 699 -- .../jpt/common/ui/internal/swt/ColumnAdapter.java | 55 - .../common/ui/internal/swt/ComboModelAdapter.java | 210 - .../ui/internal/swt/DateTimeModelAdapter.java | 352 - .../ui/internal/swt/SpinnerModelAdapter.java | 214 - .../ui/internal/swt/TableItemModelAdapter.java | 209 - .../common/ui/internal/swt/TableModelAdapter.java | 746 -- .../internal/swt/TriStateCheckBoxModelAdapter.java | 188 - .../common/ui/internal/util/ControlAligner.java | 913 -- .../common/ui/internal/util/ControlSwitcher.java | 130 - .../jpt/common/ui/internal/util/LabeledButton.java | 64 - .../common/ui/internal/util/LabeledControl.java | 37 - .../ui/internal/util/LabeledControlUpdater.java | 130 - .../jpt/common/ui/internal/util/LabeledLabel.java | 64 - .../jpt/common/ui/internal/util/PaneEnabler.java | 175 - .../ui/internal/util/PaneVisibilityEnabler.java | 173 - .../jpt/common/ui/internal/util/SWTUtil.java | 447 - .../common/ui/internal/util/StateController.java | 320 - .../ui/internal/util/TableLayoutComposite.java | 207 - .../utility/AsynchronousUiCommandExecutor.java | 49 - .../utility/SynchronousUiCommandExecutor.java | 49 - .../utility/swt/AbstractListWidgetAdapter.java | 42 - .../utility/swt/BooleanButtonModelBinding.java | 190 - .../utility/swt/BooleanStateController.java | 188 - .../swt/DropDownListBoxSelectionBinding.java | 283 - .../utility/swt/ListBoxSelectionBinding.java | 305 - .../utility/swt/ListWidgetModelBinding.java | 428 - .../swt/MultiControlBooleanStateController.java | 157 - .../ui/internal/utility/swt/SWTComboAdapter.java | 67 - .../ui/internal/utility/swt/SWTListAdapter.java | 49 - .../common/ui/internal/utility/swt/SWTTools.java | 392 - .../utility/swt/SimpleBooleanStateController.java | 68 - .../utility/swt/TextFieldModelBinding.java | 196 - .../ui/internal/widgets/AddRemoveListPane.java | 554 - .../common/ui/internal/widgets/AddRemovePane.java | 923 -- .../ui/internal/widgets/AddRemoveTablePane.java | 314 - .../common/ui/internal/widgets/ChooserPane.java | 167 - .../ui/internal/widgets/ClassChooserComboPane.java | 92 - .../ui/internal/widgets/ClassChooserPane.java | 373 - .../jpt/common/ui/internal/widgets/ComboPane.java | 289 - .../ui/internal/widgets/DefaultWidgetFactory.java | 260 - .../jpt/common/ui/internal/widgets/Dialog.java | 350 - .../jpt/common/ui/internal/widgets/DialogPane.java | 109 - .../ui/internal/widgets/EnumComboViewer.java | 369 - .../ui/internal/widgets/EnumDialogComboViewer.java | 77 - .../ui/internal/widgets/EnumFormComboViewer.java | 77 - .../ui/internal/widgets/FileChooserComboPane.java | 105 - .../ui/internal/widgets/FileChooserPane.java | 167 - .../internal/widgets/FolderChooserComboPane.java | 106 - .../ui/internal/widgets/FolderChooserPane.java | 140 - .../ui/internal/widgets/FormWidgetFactory.java | 338 - .../common/ui/internal/widgets/IntegerCombo.java | 188 - .../common/ui/internal/widgets/NewNameDialog.java | 166 - .../ui/internal/widgets/NewNameDialogBuilder.java | 179 - .../ui/internal/widgets/NewNameStateObject.java | 146 - .../ui/internal/widgets/NullPostExecution.java | 56 - .../ui/internal/widgets/PackageChooserPane.java | 241 - .../jpt/common/ui/internal/widgets/Pane.java | 3722 ------ .../common/ui/internal/widgets/PostExecution.java | 31 - .../widgets/PropertySheetWidgetFactory.java | 61 - .../ui/internal/widgets/TriStateCheckBox.java | 287 - .../ui/internal/widgets/ValidatingDialog.java | 233 - .../ui/internal/wizards/JavaProjectWizardPage.java | 256 - .../jface/DelegatingContentAndLabelProvider.java | 207 - .../jpt/common/ui/jface/ItemContentProvider.java | 36 - .../ui/jface/ItemContentProviderFactory.java | 26 - .../jpt/common/ui/jface/ItemLabelProvider.java | 47 - .../common/ui/jface/ItemLabelProviderFactory.java | 26 - .../common/ui/jface/TreeItemContentProvider.java | 40 - .../ui/jface/TreeItemContentProviderFactory.java | 26 - .../org.eclipse.jpt.common.utility/.classpath | 7 - .../org.eclipse.jpt.common.utility/.cvsignore | 4 - .../org.eclipse.jpt.common.utility/.project | 28 - .../META-INF/MANIFEST.MF | 158 - .../org.eclipse.jpt.common.utility/about.html | 34 - .../build.properties | 17 - .../org.eclipse.jpt.common.utility/component.xml | 11 - .../plugin.properties | 24 - .../org/eclipse/jpt/common/utility/Command.java | 87 - .../jpt/common/utility/CommandExecutor.java | 61 - .../src/org/eclipse/jpt/common/utility/Filter.java | 125 - .../jpt/common/utility/IndentingPrintWriter.java | 155 - .../org/eclipse/jpt/common/utility/JavaType.java | 135 - .../jpt/common/utility/MethodSignature.java | 73 - .../jpt/common/utility/ObjectReference.java | 29 - .../common/utility/ReadOnlyObjectReference.java | 43 - .../utility/internal/AbstractAssociation.java | 69 - .../jpt/common/utility/internal/ArrayTools.java | 3122 ----- .../jpt/common/utility/internal/Association.java | 46 - .../internal/AsynchronousCommandExecutor.java | 168 - .../eclipse/jpt/common/utility/internal/Bag.java | 197 - .../jpt/common/utility/internal/BidiFilter.java | 122 - .../utility/internal/BidiStringConverter.java | 149 - .../common/utility/internal/BidiTransformer.java | 93 - .../jpt/common/utility/internal/BitTools.java | 214 - .../common/utility/internal/BooleanReference.java | 48 - .../jpt/common/utility/internal/BooleanTools.java | 105 - .../jpt/common/utility/internal/ClassName.java | 431 - .../jpt/common/utility/internal/Classpath.java | 939 -- .../common/utility/internal/CollectionTools.java | 1957 --- .../common/utility/internal/CommandRunnable.java | 37 - .../common/utility/internal/CompositeCommand.java | 44 - .../utility/internal/CompositeException.java | 96 - .../internal/ConsumerThreadCoordinator.java | 253 - .../common/utility/internal/ExceptionHandler.java | 87 - .../jpt/common/utility/internal/FileTools.java | 1002 -- .../utility/internal/FlaggedObjectReference.java | 69 - .../jpt/common/utility/internal/HashBag.java | 877 -- .../common/utility/internal/IdentityHashBag.java | 924 -- .../jpt/common/utility/internal/IntReference.java | 40 - .../jpt/common/utility/internal/JDBCTools.java | 349 - .../jpt/common/utility/internal/JDBCType.java | 162 - .../jpt/common/utility/internal/KeyedSet.java | 129 - .../internal/LazyReadOnlyObjectReference.java | 107 - .../jpt/common/utility/internal/ListenerList.java | 171 - .../jpt/common/utility/internal/NameTools.java | 377 - .../internal/NonNullBooleanTransformer.java | 79 - .../utility/internal/NotBooleanTransformer.java | 56 - .../jpt/common/utility/internal/NotNullFilter.java | 51 - .../jpt/common/utility/internal/NullList.java | 151 - .../eclipse/jpt/common/utility/internal/Queue.java | 75 - .../eclipse/jpt/common/utility/internal/Range.java | 87 - .../utility/internal/ReadOnlyBooleanReference.java | 46 - .../utility/internal/ReadOnlyIntReference.java | 145 - .../common/utility/internal/ReflectionTools.java | 1544 --- .../common/utility/internal/ReverseComparator.java | 40 - .../common/utility/internal/RunnableCommand.java | 37 - .../common/utility/internal/SimpleAssociation.java | 69 - .../utility/internal/SimpleBooleanReference.java | 107 - .../utility/internal/SimpleCommandExecutor.java | 46 - .../jpt/common/utility/internal/SimpleFilter.java | 107 - .../utility/internal/SimpleIntReference.java | 186 - .../common/utility/internal/SimpleJavaType.java | 213 - .../utility/internal/SimpleMethodSignature.java | 240 - .../utility/internal/SimpleObjectReference.java | 98 - .../jpt/common/utility/internal/SimpleQueue.java | 90 - .../jpt/common/utility/internal/SimpleStack.java | 100 - .../utility/internal/SimpleStringMatcher.java | 259 - .../utility/internal/SimpleThreadFactory.java | 53 - .../eclipse/jpt/common/utility/internal/Stack.java | 75 - .../utility/internal/StatefulCommandExecutor.java | 33 - .../common/utility/internal/StringCollator.java | 62 - .../common/utility/internal/StringConverter.java | 80 - .../jpt/common/utility/internal/StringMatcher.java | 65 - .../jpt/common/utility/internal/StringTools.java | 4708 ------- .../common/utility/internal/SynchronizedBag.java | 220 - .../utility/internal/SynchronizedBoolean.java | 437 - .../common/utility/internal/SynchronizedInt.java | 914 -- .../utility/internal/SynchronizedObject.java | 472 - .../common/utility/internal/SynchronizedQueue.java | 348 - .../common/utility/internal/SynchronizedStack.java | 325 - .../utility/internal/ThreadLocalCommand.java | 63 - .../internal/ThreadLocalCommandExecutor.java | 65 - .../eclipse/jpt/common/utility/internal/Tools.java | 96 - .../jpt/common/utility/internal/Transformer.java | 95 - .../common/utility/internal/XMLStringEncoder.java | 182 - .../internal/enumerations/EmptyEnumeration.java | 62 - .../internal/enumerations/IteratorEnumeration.java | 57 - .../utility/internal/iterables/ArrayIterable.java | 77 - .../internal/iterables/ArrayListIterable.java | 59 - .../utility/internal/iterables/ChainIterable.java | 96 - .../utility/internal/iterables/CloneIterable.java | 66 - .../internal/iterables/CloneListIterable.java | 92 - .../internal/iterables/CompositeIterable.java | 98 - .../internal/iterables/CompositeListIterable.java | 135 - .../utility/internal/iterables/EmptyIterable.java | 65 - .../internal/iterables/EmptyListIterable.java | 65 - .../internal/iterables/FilteringIterable.java | 95 - .../utility/internal/iterables/GraphIterable.java | 156 - .../utility/internal/iterables/ListIterable.java | 27 - .../internal/iterables/ListListIterable.java | 35 - .../internal/iterables/LiveCloneIterable.java | 85 - .../internal/iterables/LiveCloneListIterable.java | 85 - .../internal/iterables/PeekableIterable.java | 56 - .../utility/internal/iterables/QueueIterable.java | 51 - .../iterables/ReadOnlyCompositeListIterable.java | 100 - .../internal/iterables/ReadOnlyIterable.java | 50 - .../internal/iterables/ReadOnlyListIterable.java | 50 - .../internal/iterables/SingleElementIterable.java | 55 - .../iterables/SingleElementListIterable.java | 58 - .../internal/iterables/SnapshotCloneIterable.java | 124 - .../iterables/SnapshotCloneListIterable.java | 102 - .../utility/internal/iterables/StackIterable.java | 51 - .../internal/iterables/SubIterableWrapper.java | 47 - .../internal/iterables/SubListIterableWrapper.java | 52 - .../internal/iterables/SuperIterableWrapper.java | 48 - .../iterables/SuperListIterableWrapper.java | 54 - .../internal/iterables/TransformationIterable.java | 91 - .../iterables/TransformationListIterable.java | 111 - .../utility/internal/iterables/TreeIterable.java | 137 - .../utility/internal/iterators/ArrayIterator.java | 88 - .../internal/iterators/ArrayListIterator.java | 93 - .../utility/internal/iterators/ChainIterator.java | 159 - .../utility/internal/iterators/CloneIterator.java | 191 - .../internal/iterators/CloneListIterator.java | 291 - .../internal/iterators/CompositeIterator.java | 162 - .../internal/iterators/CompositeListIterator.java | 270 - .../utility/internal/iterators/EmptyIterator.java | 69 - .../internal/iterators/EmptyListIterator.java | 93 - .../internal/iterators/EnumerationIterator.java | 52 - .../internal/iterators/FilteringIterator.java | 148 - .../utility/internal/iterators/GraphIterator.java | 283 - .../internal/iterators/PeekableIterator.java | 112 - .../utility/internal/iterators/QueueIterator.java | 59 - .../iterators/ReadOnlyCompositeListIterator.java | 252 - .../internal/iterators/ReadOnlyIterator.java | 65 - .../internal/iterators/ReadOnlyListIterator.java | 108 - .../internal/iterators/ResultSetIterator.java | 162 - .../internal/iterators/ReverseIterator.java | 82 - .../internal/iterators/SingleElementIterator.java | 67 - .../iterators/SingleElementListIterator.java | 98 - .../utility/internal/iterators/StackIterator.java | 59 - .../internal/iterators/SubIteratorWrapper.java | 59 - .../internal/iterators/SubListIteratorWrapper.java | 90 - .../internal/iterators/SuperIteratorWrapper.java | 58 - .../iterators/SuperListIteratorWrapper.java | 88 - .../internal/iterators/SynchronizedIterator.java | 76 - .../iterators/SynchronizedListIterator.java | 122 - .../internal/iterators/TransformationIterator.java | 103 - .../iterators/TransformationListIterator.java | 152 - .../utility/internal/iterators/TreeIterator.java | 254 - .../utility/internal/model/AbstractModel.java | 1007 -- .../internal/model/AspectChangeSupport.java | 349 - .../utility/internal/model/ChangeSupport.java | 2844 ----- .../internal/model/SingleAspectChangeSupport.java | 380 - .../listener/awt/AWTChangeListenerWrapper.java | 454 - .../awt/AWTCollectionChangeListenerWrapper.java | 161 - .../listener/awt/AWTListChangeListenerWrapper.java | 211 - .../awt/AWTPropertyChangeListenerWrapper.java | 87 - .../awt/AWTStateChangeListenerWrapper.java | 86 - .../listener/awt/AWTTreeChangeListenerWrapper.java | 161 - .../model/value/AbstractCollectionValueModel.java | 124 - .../model/value/AbstractListValueModel.java | 124 - .../model/value/AbstractPropertyValueModel.java | 124 - .../value/AbstractPropertyValueModelAdapter.java | 117 - .../model/value/AbstractTreeNodeValueModel.java | 194 - .../internal/model/value/AspectAdapter.java | 266 - .../value/AspectCollectionValueModelAdapter.java | 155 - .../model/value/AspectListValueModelAdapter.java | 197 - .../value/AspectPropertyValueModelAdapter.java | 178 - .../model/value/AspectTreeValueModelAdapter.java | 119 - .../value/BufferedWritablePropertyValueModel.java | 392 - .../CachingTransformationPropertyValueModel.java | 112 - ...ngTransformationWritablePropertyValueModel.java | 107 - .../value/ChangePropertyValueModelAdapter.java | 99 - .../model/value/CollectionAspectAdapter.java | 158 - .../value/CollectionListValueModelAdapter.java | 217 - .../value/CollectionPropertyValueModelAdapter.java | 139 - .../model/value/CollectionValueModelWrapper.java | 132 - .../value/CompositeBooleanPropertyValueModel.java | 338 - .../model/value/CompositeCollectionValueModel.java | 448 - .../model/value/CompositeListValueModel.java | 683 - .../model/value/CompositePropertyValueModel.java | 198 - .../model/value/ExtendedListValueModelWrapper.java | 211 - .../model/value/FilteringCollectionValueModel.java | 179 - .../model/value/FilteringPropertyValueModel.java | 142 - .../value/FilteringWritablePropertyValueModel.java | 123 - .../value/ItemAspectListValueModelAdapter.java | 274 - .../value/ItemChangeListValueModelAdapter.java | 68 - .../value/ItemCollectionListValueModelAdapter.java | 101 - .../model/value/ItemListListValueModelAdapter.java | 109 - .../value/ItemPropertyListValueModelAdapter.java | 84 - .../value/ItemStateListValueModelAdapter.java | 74 - .../model/value/ItemTreeListValueModelAdapter.java | 101 - .../internal/model/value/ListAspectAdapter.java | 176 - .../value/ListCollectionValueModelAdapter.java | 233 - .../utility/internal/model/value/ListCurator.java | 226 - .../model/value/ListPropertyValueModelAdapter.java | 167 - .../model/value/ListValueModelWrapper.java | 164 - .../model/value/NullCollectionValueModel.java | 58 - .../internal/model/value/NullListValueModel.java | 71 - .../model/value/NullPropertyValueModel.java | 49 - .../internal/model/value/NullTreeValueModel.java | 52 - .../model/value/PropertyAspectAdapter.java | 128 - .../value/PropertyCollectionValueModelAdapter.java | 141 - .../model/value/PropertyListValueModelAdapter.java | 157 - .../model/value/PropertyValueModelWrapper.java | 92 - .../ReadOnlyWritablePropertyValueModelWrapper.java | 49 - .../model/value/SetCollectionValueModel.java | 134 - .../model/value/SimpleCollectionValueModel.java | 188 - .../internal/model/value/SimpleListValueModel.java | 322 - .../model/value/SimplePropertyValueModel.java | 66 - .../model/value/SortedListValueModelAdapter.java | 125 - .../model/value/SortedListValueModelWrapper.java | 250 - .../value/StatePropertyValueModelAdapter.java | 96 - .../model/value/StaticCollectionValueModel.java | 73 - .../internal/model/value/StaticListValueModel.java | 93 - .../model/value/StaticPropertyValueModel.java | 53 - .../internal/model/value/StaticTreeValueModel.java | 57 - .../model/value/TransformationListValueModel.java | 309 - .../value/TransformationPropertyValueModel.java | 144 - .../TransformationWritablePropertyValueModel.java | 131 - .../internal/model/value/TreeAspectAdapter.java | 155 - .../model/value/TreePropertyValueModelAdapter.java | 144 - .../internal/model/value/ValueAspectAdapter.java | 201 - .../internal/model/value/ValueChangeAdapter.java | 75 - .../model/value/ValueCollectionAdapter.java | 107 - .../internal/model/value/ValueListAdapter.java | 123 - .../internal/model/value/ValuePropertyAdapter.java | 82 - .../internal/model/value/ValueStateAdapter.java | 73 - .../internal/model/value/ValueTreeAdapter.java | 107 - ...ritablePropertyCollectionValueModelAdapter.java | 62 - .../WritablePropertyListValueModelAdapter.java | 62 - .../value/prefs/PreferencePropertyValueModel.java | 346 - .../prefs/PreferencesCollectionValueModel.java | 203 - .../model/value/swing/AbstractTreeModel.java | 216 - .../model/value/swing/CheckBoxModelAdapter.java | 43 - .../internal/model/value/swing/ColumnAdapter.java | 49 - .../model/value/swing/ComboBoxModelAdapter.java | 140 - .../model/value/swing/DateSpinnerModelAdapter.java | 198 - .../model/value/swing/DocumentAdapter.java | 375 - .../model/value/swing/ListModelAdapter.java | 292 - .../model/value/swing/ListSpinnerModelAdapter.java | 218 - .../value/swing/NumberSpinnerModelAdapter.java | 223 - .../value/swing/ObjectListSelectionModel.java | 427 - .../model/value/swing/PrimitiveListTreeModel.java | 239 - .../model/value/swing/RadioButtonModelAdapter.java | 151 - .../model/value/swing/SpinnerModelAdapter.java | 207 - .../model/value/swing/TableModelAdapter.java | 420 - .../value/swing/ToggleButtonModelAdapter.java | 224 - .../model/value/swing/TreeModelAdapter.java | 914 -- .../common/utility/internal/node/AbstractNode.java | 941 -- .../internal/node/AsynchronousValidator.java | 50 - .../utility/internal/node/DefaultProblem.java | 85 - .../jpt/common/utility/internal/node/Node.java | 377 - .../utility/internal/node/PluggableValidator.java | 121 - .../jpt/common/utility/internal/node/Problem.java | 51 - .../internal/node/SynchronousValidator.java | 44 - .../internal/swing/CachingComboBoxModel.java | 42 - .../internal/swing/CheckBoxTableCellRenderer.java | 206 - .../internal/swing/ComboBoxTableCellRenderer.java | 328 - .../common/utility/internal/swing/Displayable.java | 44 - .../common/utility/internal/swing/EmptyIcon.java | 54 - .../internal/swing/FilteringListBrowser.java | 140 - .../utility/internal/swing/FilteringListPanel.java | 455 - .../common/utility/internal/swing/ListChooser.java | 430 - .../utility/internal/swing/NodeSelector.java | 32 - .../internal/swing/NonCachingComboBoxModel.java | 73 - .../utility/internal/swing/SimpleDisplayable.java | 170 - .../utility/internal/swing/SimpleListBrowser.java | 86 - .../internal/swing/SimpleListCellRenderer.java | 128 - .../internal/swing/SpinnerTableCellRenderer.java | 186 - .../internal/swing/TableCellEditorAdapter.java | 96 - .../synchronizers/AsynchronousSynchronizer.java | 188 - .../CallbackAsynchronousSynchronizer.java | 120 - .../CallbackSynchronousSynchronizer.java | 83 - .../synchronizers/SynchronousSynchronizer.java | 263 - .../eclipse/jpt/common/utility/model/Model.java | 143 - .../common/utility/model/event/ChangeEvent.java | 66 - .../utility/model/event/CollectionAddEvent.java | 124 - .../utility/model/event/CollectionChangeEvent.java | 105 - .../utility/model/event/CollectionClearEvent.java | 61 - .../utility/model/event/CollectionEvent.java | 63 - .../utility/model/event/CollectionRemoveEvent.java | 112 - .../common/utility/model/event/ListAddEvent.java | 134 - .../utility/model/event/ListChangeEvent.java | 105 - .../common/utility/model/event/ListClearEvent.java | 61 - .../jpt/common/utility/model/event/ListEvent.java | 64 - .../common/utility/model/event/ListMoveEvent.java | 120 - .../utility/model/event/ListRemoveEvent.java | 134 - .../utility/model/event/ListReplaceEvent.java | 150 - .../utility/model/event/PropertyChangeEvent.java | 109 - .../utility/model/event/StateChangeEvent.java | 51 - .../common/utility/model/event/TreeAddEvent.java | 81 - .../utility/model/event/TreeChangeEvent.java | 90 - .../common/utility/model/event/TreeClearEvent.java | 61 - .../jpt/common/utility/model/event/TreeEvent.java | 62 - .../utility/model/event/TreeRemoveEvent.java | 81 - .../utility/model/listener/ChangeAdapter.java | 109 - .../utility/model/listener/ChangeListener.java | 25 - .../model/listener/CollectionChangeAdapter.java | 51 - .../model/listener/CollectionChangeListener.java | 65 - .../model/listener/CommandChangeListener.java | 44 - .../utility/model/listener/ListChangeAdapter.java | 61 - .../utility/model/listener/ListChangeListener.java | 87 - .../MultiMethodReflectiveChangeListener.java | 160 - .../model/listener/PropertyChangeAdapter.java | 31 - .../model/listener/PropertyChangeListener.java | 37 - .../model/listener/ReflectiveChangeListener.java | 377 - .../model/listener/SimpleChangeListener.java | 131 - .../SingleMethodReflectiveChangeListener.java | 60 - .../utility/model/listener/StateChangeAdapter.java | 31 - .../model/listener/StateChangeListener.java | 37 - .../utility/model/listener/TreeChangeAdapter.java | 51 - .../utility/model/listener/TreeChangeListener.java | 67 - .../utility/model/value/CollectionValueModel.java | 42 - .../common/utility/model/value/ListValueModel.java | 57 - .../utility/model/value/PropertyValueModel.java | 36 - .../utility/model/value/TreeNodeValueModel.java | 74 - .../common/utility/model/value/TreeValueModel.java | 36 - .../model/value/WritableCollectionValueModel.java | 34 - .../model/value/WritableListValueModel.java | 34 - .../model/value/WritablePropertyValueModel.java | 33 - .../synchronizers/CallbackSynchronizer.java | 92 - .../common/utility/synchronizers/Synchronizer.java | 83 - .../org.eclipse.jpt.common.core.tests/.classpath | 13 - .../org.eclipse.jpt.common.core.tests/.project | 28 - .../META-INF/MANIFEST.MF | 20 - .../org.eclipse.jpt.common.core.tests/about.html | 34 - .../build.properties | 18 - .../plugin.properties | 23 - .../core/tests/internal/JptCommonCoreTests.java | 28 - .../internal/projects/TestFacetedProject.java | 85 - .../tests/internal/projects/TestJavaProject.java | 121 - .../internal/projects/TestPlatformProject.java | 79 - .../tests/internal/utility/jdt/ASTToolsTests.java | 196 - .../internal/utility/jdt/AnnotationTestCase.java | 1061 -- ...onIndexedDeclarationAnnotationAdapterTests.java | 744 -- .../jdt/DefaultAnnotationEditFormatterTests.java | 75 - .../utility/jdt/JptCommonCoreUtilityJdtTests.java | 35 - .../jdt/MemberAnnotationElementAdapterTests.java | 1297 -- .../core/tests/internal/utility/jdt/MiscTests.java | 48 - .../NestedDeclarationAnnotationAdapterTests.java | 763 -- ...edIndexedDeclarationAnnotationAdapterTests.java | 2229 ---- .../SimpleDeclarationAnnotationAdapterTests.java | 274 - .../core/tests/internal/utility/jdt/TypeTests.java | 52 - .../org.eclipse.jpt.common.core.tests/test.xml | 45 - .../org.eclipse.jpt.common.ui.tests/.classpath | 12 - .../tests/org.eclipse.jpt.common.ui.tests/.project | 28 - .../META-INF/MANIFEST.MF | 21 - .../build.properties | 13 - .../plugin.properties | 23 - .../jpt/common/ui/tests/JptCommonUiTests.java | 34 - .../jface/DelegatingLabelProviderUiTest.java | 602 - .../jface/DelegatingTreeContentProviderUiTest.java | 563 - .../swt/AbstractComboModelAdapterTest.java | 777 -- .../tests/internal/swt/ComboModelAdapterTest.java | 78 - .../ui/tests/internal/swt/JptUiSWTTests.java | 38 - .../internal/swt/SpinnerModelAdapterTest.java | 342 - .../tests/internal/swt/TableModelAdapterTest.java | 1201 -- .../swt/TriStateCheckBoxModelAdapterUITest.java | 319 - .../ui/tests/internal/util/ControlAlignerTest.java | 803 -- .../ui/tests/internal/util/ControlEnablerTest.java | 85 - .../tests/internal/util/ControlSwitcherTest.java | 189 - .../util/ControlVisibilityEnablerTest.java | 85 - .../ui/tests/internal/util/JptUiUtilTests.java | 44 - .../ui/tests/internal/util/LabeledButtonTest.java | 122 - .../internal/util/LabeledControlUpdaterTest.java | 124 - .../ui/tests/internal/util/LabeledLabelTest.java | 122 - .../ui/tests/internal/util/PaneEnablerTest.java | 93 - .../internal/util/PaneVisibilityEnablerTest.java | 93 - .../utility/swt/BooleanStateControllerUITest.java | 278 - .../utility/swt/CheckBoxModelBindingUITest.java | 318 - .../swt/DropDownListBoxModelBindingUITest.java | 664 - .../utility/swt/ListBoxModelBindingUITest.java | 626 - .../utility/swt/TextFieldModelBindingUITest.java | 252 - .../.classpath | 11 - .../.cvsignore | 5 - .../org.eclipse.jpt.common.utility.tests/.project | 28 - .../META-INF/MANIFEST.MF | 21 - .../about.html | 34 - .../build.properties | 16 - .../plugin.properties | 24 - .../resource/ClassTools.java | 1680 --- .../utility/tests/internal/ArrayToolsTests.java | 3523 ------ .../internal/AsynchronousCommandExecutorTests.java | 42 - .../common/utility/tests/internal/BagTests.java | 82 - .../utility/tests/internal/BidiFilterTests.java | 88 - .../tests/internal/BidiStringConverterTests.java | 115 - .../tests/internal/BidiTransformerTests.java | 73 - .../utility/tests/internal/BitToolsTests.java | 262 - .../utility/tests/internal/BooleanToolsTests.java | 89 - .../utility/tests/internal/ClassNameTests.java | 368 - .../utility/tests/internal/ClasspathTests.java | 402 - .../tests/internal/CollectionToolsTests.java | 2354 ---- .../tests/internal/CommandExecutorTests.java | 113 - .../tests/internal/CommandRunnableTests.java | 55 - .../utility/tests/internal/CommandTests.java | 137 - .../tests/internal/CompositeCommandTests.java | 61 - .../tests/internal/ExceptionHandlerTests.java | 51 - .../utility/tests/internal/FileToolsTests.java | 593 - .../common/utility/tests/internal/FilterTests.java | 79 - .../utility/tests/internal/HashBagTests.java | 555 - .../tests/internal/IdentityHashBagTests.java | 573 - .../tests/internal/IndentingPrintWriterTests.java | 109 - .../utility/tests/internal/JDBCTypeTests.java | 67 - .../utility/tests/internal/JavaTypeTests.java | 252 - .../tests/internal/JptCommonUtilityTests.java | 90 - .../utility/tests/internal/KeyedSetTests.java | 124 - .../utility/tests/internal/ListenerListTests.java | 194 - .../tests/internal/MethodSignatureTests.java | 208 - .../tests/internal/MultiThreadedTestCase.java | 141 - .../utility/tests/internal/NameToolsTests.java | 226 - .../utility/tests/internal/NotNullFilterTests.java | 37 - .../common/utility/tests/internal/RangeTests.java | 74 - .../tests/internal/ReflectionToolsTests.java | 440 - .../tests/internal/ReverseComparatorTests.java | 102 - .../tests/internal/SimpleAssociationTests.java | 112 - .../internal/SimpleBooleanReferenceTests.java | 110 - .../tests/internal/SimpleIntReferenceTests.java | 314 - .../tests/internal/SimpleObjectReferenceTests.java | 88 - .../utility/tests/internal/SimpleQueueTests.java | 149 - .../utility/tests/internal/SimpleStackTests.java | 148 - .../utility/tests/internal/StringToolsTests.java | 1850 --- .../tests/internal/SynchronizedBooleanTests.java | 236 - .../tests/internal/SynchronizedIntTests.java | 362 - .../tests/internal/SynchronizedObjectTests.java | 239 - .../tests/internal/SynchronizedQueueTests.java | 256 - .../tests/internal/SynchronizedStackTests.java | 257 - .../common/utility/tests/internal/TestTools.java | 184 - .../common/utility/tests/internal/ToolsTests.java | 63 - .../tests/internal/XMLStringEncoderTests.java | 136 - .../enumerations/EmptyEnumerationTests.java | 55 - .../enumerations/IteratorEnumerationTests.java | 100 - .../enumerations/JptUtilityEnumerationsTests.java | 34 - .../internal/iterables/ArrayIterableTests.java | 79 - .../internal/iterables/ArrayListIterableTests.java | 92 - .../internal/iterables/ChainIterableTests.java | 84 - .../internal/iterables/CloneIterableTests.java | 144 - .../internal/iterables/CompositeIterableTests.java | 115 - .../iterables/CompositeListIterableTests.java | 117 - .../internal/iterables/EmptyIterableTests.java | 39 - .../internal/iterables/EmptyListIterableTests.java | 39 - .../internal/iterables/FilteringIterableTests.java | 98 - .../internal/iterables/GraphIterableTests.java | 167 - .../iterables/JptUtilityIterablesTests.java | 57 - .../internal/iterables/LiveCloneIterableTests.java | 71 - .../iterables/LiveCloneListIterableTests.java | 131 - .../internal/iterables/PeekableIterableTests.java | 47 - .../internal/iterables/QueueIterableTests.java | 48 - .../ReadOnlyCompositeListIterableTests.java | 127 - .../internal/iterables/ReadOnlyIterableTests.java | 68 - .../iterables/ReadOnlyListIterableTests.java | 74 - .../iterables/SingleElementIterableTests.java | 66 - .../iterables/SingleElementListIterableTests.java | 70 - .../iterables/SnapshotCloneIterableTests.java | 71 - .../iterables/SnapshotCloneListIterableTests.java | 131 - .../internal/iterables/StackIterableTests.java | 50 - .../iterables/SuperIterableWrapperTests.java | 50 - .../iterables/TransformationIterableTests.java | 104 - .../iterables/TransformationListIterableTests.java | 104 - .../internal/iterables/TreeIterableTests.java | 155 - .../internal/iterators/ArrayIteratorTests.java | 135 - .../internal/iterators/ArrayListIteratorTests.java | 140 - .../internal/iterators/ChainIteratorTests.java | 133 - .../internal/iterators/CloneIteratorTests.java | 237 - .../internal/iterators/CloneListIteratorTests.java | 397 - .../internal/iterators/CompositeIteratorTests.java | 351 - .../iterators/CompositeListIteratorTests.java | 331 - .../internal/iterators/EmptyIteratorTests.java | 64 - .../internal/iterators/EmptyListIteratorTests.java | 128 - .../iterators/EnumerationIteratorTests.java | 120 - .../internal/iterators/FilteringIteratorTests.java | 266 - .../internal/iterators/GraphIteratorTests.java | 197 - .../iterators/JptUtilityIteratorsTests.java | 56 - .../internal/iterators/PeekableIteratorTests.java | 141 - .../ReadOnlyCompositeListIteratorTests.java | 205 - .../internal/iterators/ReadOnlyIteratorTests.java | 119 - .../iterators/ReadOnlyListIteratorTests.java | 204 - .../iterators/SingleElementIteratorTests.java | 72 - .../iterators/SingleElementListIteratorTests.java | 112 - .../iterators/SuperIteratorWrapperTests.java | 52 - .../iterators/SynchronizedIteratorTests.java | 310 - .../iterators/SynchronizedListIteratorTests.java | 524 - .../iterators/TransformationIteratorTests.java | 230 - .../iterators/TransformationListIteratorTests.java | 322 - .../internal/iterators/TreeIteratorTests.java | 211 - .../tests/internal/model/ChangeSupportTests.java | 4575 ------- .../tests/internal/model/JptUtilityModelTests.java | 37 - .../tests/internal/model/NewEventTests.java | 181 - .../model/SingleAspectChangeSupportTests.java | 192 - .../listener/JptUtilityModelListenerTests.java | 34 - .../ReflectiveCollectionChangeListenerTests.java | 331 - .../ReflectiveListChangeListenerTests.java | 498 - .../ReflectivePropertyChangeListenerTests.java | 176 - .../ReflectiveStateChangeListenerTests.java | 145 - .../ReflectiveTreeChangeListenerTests.java | 362 - .../BufferedWritablePropertyValueModelTests.java | 504 - ...chingTransformationPropertyValueModelTests.java | 241 - ...nsformationWritablePropertyValueModelTests.java | 253 - .../model/value/CollectionAspectAdapterTests.java | 372 - .../CollectionListValueModelAdapterTests.java | 247 - .../CollectionPropertyValueModelAdapterTests.java | 240 - .../CompositeBooleanPropertyValueModelTests.java | 201 - .../value/CompositeCollectionValueModelTests.java | 415 - .../model/value/CompositeListValueModelTests.java | 1248 -- .../value/CompositePropertyValueModelTests.java | 199 - .../tests/internal/model/value/CoordinatedBag.java | 163 - .../internal/model/value/CoordinatedList.java | 264 - .../value/ExtendedListValueModelWrapperTests.java | 313 - .../value/FilteringCollectionValueModelTests.java | 348 - .../value/FilteringPropertyValueModelTests.java | 191 - .../ItemCollectionListValueModelAdapterTests.java | 243 - .../value/ItemListListValueModelAdapterTests.java | 244 - .../ItemPropertyListValueModelAdapterTests.java | 335 - .../value/ItemStateListValueModelAdapterTests.java | 306 - .../model/value/JptUtilityModelValueTests.java | 78 - .../model/value/ListAspectAdapterTests.java | 476 - .../ListCollectionValueModelAdapterTests.java | 282 - .../internal/model/value/ListCuratorTests.java | 348 - .../model/value/NullCollectionValueModelTests.java | 44 - .../model/value/NullListValueModelTests.java | 54 - .../model/value/NullPropertyValueModelTests.java | 40 - .../model/value/PropertyAspectAdapterTests.java | 344 - .../PropertyCollectionValueModelAdapterTests.java | 162 - .../value/PropertyListValueModelAdapterTests.java | 211 - ...OnlyWritablePropertyValueModelWrapperTests.java | 157 - .../model/value/SetCollectionValueModelTests.java | 328 - .../value/SimpleCollectionValueModelTests.java | 443 - .../model/value/SimpleListValueModelTests.java | 378 - .../model/value/SimplePropertyValueModelTests.java | 97 - .../value/SortedListValueModelAdapterTests.java | 222 - .../value/SortedListValueModelWrapperTests.java | 237 - .../value/StaticCollectionValueModelTests.java | 62 - .../model/value/StaticListValueModelTests.java | 65 - .../model/value/StaticValueModelTests.java | 47 - .../value/TransformationListValueModelTests.java | 339 - .../TransformationPropertyValueModelTests.java | 189 - .../model/value/TreeAspectAdapterTests.java | 362 - .../model/value/ValueCollectionAdapterTests.java | 159 - .../model/value/ValueListAdapterTests.java | 169 - .../model/value/ValuePropertyAdapterTests.java | 145 - .../model/value/ValueStateAdapterTests.java | 145 - .../prefs/JptUtilityModelValuePrefsTests.java | 31 - .../prefs/PreferencePropertyValueModelTests.java | 398 - .../PreferencesCollectionValueModelTests.java | 312 - .../model/value/prefs/PreferencesTestCase.java | 82 - .../value/swing/CheckBoxModelAdapterTests.java | 135 - .../value/swing/CheckBoxModelAdapterUITest.java | 314 - .../value/swing/ComboBoxModelAdapterTests.java | 111 - .../value/swing/ComboBoxModelAdapterUITest.java | 393 - .../value/swing/ComboBoxModelAdapterUITest2.java | 75 - .../value/swing/DateSpinnerModelAdapterTests.java | 160 - .../model/value/swing/DocumentAdapterTests.java | 159 - .../model/value/swing/DocumentAdapterUITest.java | 256 - .../swing/JptUtilityModelValueSwingTests.java | 42 - .../model/value/swing/ListModelAdapterTests.java | 320 - .../model/value/swing/ListModelAdapterUITest.java | 370 - .../value/swing/ListSpinnerModelAdapterTests.java | 134 - .../swing/NumberSpinnerModelAdapterTests.java | 148 - .../value/swing/ObjectListSelectionModelTests.java | 205 - .../value/swing/PrimitiveListTreeModelTests.java | 198 - .../value/swing/RadioButtonModelAdapterTests.java | 230 - .../value/swing/RadioButtonModelAdapterUITest.java | 260 - .../swing/ReadOnlyTableModelAdapterUITest.java | 39 - .../value/swing/SpinnerModelAdapterTests.java | 118 - .../value/swing/SpinnerModelAdapterUITest.java | 344 - .../model/value/swing/TableModelAdapterTests.java | 641 - .../model/value/swing/TableModelAdapterUITest.java | 733 -- .../model/value/swing/TreeModelAdapterTests.java | 812 -- .../model/value/swing/TreeModelAdapterUITest.java | 425 - .../tests/internal/node/AbstractNodeTests.java | 495 - .../tests/internal/node/JptUtilityNodeTests.java | 29 - .../AsynchronousSynchronizerTests.java | 443 - .../JptUtilitySynchronizersTests.java | 35 - .../internal/synchronizers/SynchronizerTests.java | 41 - .../SynchronousSynchronizerTests.java | 756 -- .../org.eclipse.jpt.common.utility.tests/test.xml | 38 - .../.project | 17 - .../build.properties | 13 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../feature.xml | 92 - .../sourceTemplateBundle/about.html | 27 - .../sourceTemplateBundle/about.ini | 31 - .../sourceTemplateBundle/about.mappings | 6 - .../sourceTemplateBundle/about.properties | 26 - .../sourceTemplateBundle/build.properties | 21 - .../sourceTemplateBundle/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplateBundle/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplateBundle/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateBundle/epl-v10.html | 328 - .../sourceTemplateBundle/license.html | 86 - .../sourceTemplateBundle/plugin.properties | 13 - .../sourceTemplateFeature/build.properties | 14 - .../sourceTemplateFeature/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateFeature/feature.properties | 48 - .../sourceTemplatePlugin/about.html | 27 - .../sourceTemplatePlugin/about.ini | 31 - .../sourceTemplatePlugin/about.mappings | 6 - .../sourceTemplatePlugin/about.properties | 26 - .../sourceTemplatePlugin/build.properties | 21 - .../sourceTemplatePlugin/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplatePlugin/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplatePlugin/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplatePlugin/epl-v10.html | 328 - .../sourceTemplatePlugin/license.html | 86 - .../sourceTemplatePlugin/plugin.properties | 13 - .../.cvsignore | 2 - .../.project | 17 - .../build.properties | 5 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../feature.xml | 30 - .../.project | 17 - .../build.properties | 13 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../feature.xml | 62 - .../sourceTemplateBundle/about.html | 27 - .../sourceTemplateBundle/about.ini | 31 - .../sourceTemplateBundle/about.mappings | 6 - .../sourceTemplateBundle/about.properties | 26 - .../sourceTemplateBundle/build.properties | 21 - .../sourceTemplateBundle/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplateBundle/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplateBundle/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateBundle/epl-v10.html | 328 - .../sourceTemplateBundle/license.html | 86 - .../sourceTemplateBundle/plugin.properties | 13 - .../sourceTemplateFeature/build.properties | 14 - .../sourceTemplateFeature/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateFeature/feature.properties | 48 - .../sourceTemplatePlugin/about.html | 27 - .../sourceTemplatePlugin/about.ini | 31 - .../sourceTemplatePlugin/about.mappings | 6 - .../sourceTemplatePlugin/about.properties | 26 - .../sourceTemplatePlugin/build.properties | 21 - .../sourceTemplatePlugin/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplatePlugin/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplatePlugin/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplatePlugin/epl-v10.html | 328 - .../sourceTemplatePlugin/license.html | 86 - .../sourceTemplatePlugin/plugin.properties | 13 - .../.cvsignore | 2 - .../.project | 17 - .../build.properties | 5 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../feature.xml | 30 - .../features/org.eclipse.jpt.jaxb.feature/.project | 17 - .../org.eclipse.jpt.jaxb.feature/build.properties | 13 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../org.eclipse.jpt.jaxb.feature/feature.xml | 72 - .../sourceTemplateBundle/about.html | 27 - .../sourceTemplateBundle/about.ini | 31 - .../sourceTemplateBundle/about.mappings | 6 - .../sourceTemplateBundle/about.properties | 26 - .../sourceTemplateBundle/build.properties | 12 - .../sourceTemplateBundle/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplateBundle/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplateBundle/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateBundle/epl-v10.html | 328 - .../sourceTemplateBundle/license.html | 86 - .../sourceTemplateBundle/plugin.properties | 13 - .../sourceTemplateFeature/build.properties | 14 - .../sourceTemplateFeature/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateFeature/feature.properties | 48 - .../sourceTemplatePlugin/about.html | 27 - .../sourceTemplatePlugin/about.ini | 31 - .../sourceTemplatePlugin/about.mappings | 6 - .../sourceTemplatePlugin/about.properties | 26 - .../sourceTemplatePlugin/build.properties | 12 - .../sourceTemplatePlugin/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplatePlugin/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplatePlugin/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplatePlugin/epl-v10.html | 328 - .../sourceTemplatePlugin/license.html | 86 - .../sourceTemplatePlugin/plugin.properties | 13 - .../org.eclipse.jpt.jaxb.tests.feature/.cvsignore | 1 - .../org.eclipse.jpt.jaxb.tests.feature/.project | 17 - .../build.properties | 7 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 51 - .../org.eclipse.jpt.jaxb.tests.feature/feature.xml | 28 - .../org.eclipse.jpt.jaxb_sdk.feature/.cvsignore | 2 - .../org.eclipse.jpt.jaxb_sdk.feature/.project | 17 - .../build.properties | 5 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../org.eclipse.jpt.jaxb_sdk.feature/feature.xml | 30 - .../.cvsignore | 1 - .../.project | 22 - .../META-INF/MANIFEST.MF | 7 - .../about.html | 34 - .../about.ini | 44 - .../about.mappings | 6 - .../about.properties | 24 - .../build.properties | 17 - .../component.xml | 10 - .../icons/WTP_icon_x32_v2.png | Bin 5616 -> 0 bytes .../plugin.properties | 13 - .../.classpath | 7 - .../.cvsignore | 1 - .../.project | 28 - .../META-INF/MANIFEST.MF | 11 - .../about.html | 47 - .../build.properties | 19 - .../plugin.properties | 24 - .../jpt/dbws/eclipselink/core/gen/Main.java | 241 - .../core/gen/internal/JptDbwsCoreMessages.java | 44 - .../dbws/eclipselink/core/gen/internal/Tools.java | 110 - .../core/gen/internal/jpt_dbws_core.properties | 17 - .../org.eclipse.jpt.dbws.eclipselink.ui/.classpath | 8 - .../org.eclipse.jpt.dbws.eclipselink.ui/.cvsignore | 6 - .../org.eclipse.jpt.dbws.eclipselink.ui/.project | 28 - .../.settings/org.eclipse.jdt.core.prefs | 8 - .../META-INF/MANIFEST.MF | 31 - .../org.eclipse.jpt.dbws.eclipselink.ui/about.html | 34 - .../build.properties | 20 - .../component.xml | 1 - .../icons/full/etool16/newclient_webserv_wiz.gif | Bin 587 -> 0 bytes .../icons/full/obj16/XSDFile.gif | Bin 574 -> 0 bytes .../icons/full/obj16/dtdfile.gif | Bin 351 -> 0 bytes .../icons/full/obj16/text.gif | Bin 349 -> 0 bytes .../icons/full/ovr16/error_ovr.gif | Bin 82 -> 0 bytes .../icons/full/wizban/webservicesclient_wiz.gif | Bin 1834 -> 0 bytes .../plugin.properties | 31 - .../org.eclipse.jpt.dbws.eclipselink.ui/plugin.xml | 77 - .../property_files/jpt_dbws_ui.properties | 49 - .../core/internal/gen/DbwsGenerator.java | 156 - .../jpt/dbws/eclipselink/ui/JptDbwsUiPlugin.java | 111 - .../eclipselink/ui/internal/DbwsGeneratorUi.java | 275 - .../eclipselink/ui/internal/JptDbwsUiIcons.java | 18 - .../eclipselink/ui/internal/JptDbwsUiMessages.java | 68 - .../ui/internal/actions/GenerateDbwsAction.java | 27 - .../ui/internal/actions/ObjectAction.java | 63 - .../internal/wizards/gen/BuilderXmlWizardPage.java | 186 - .../internal/wizards/gen/DbwsGeneratorWizard.java | 216 - .../internal/wizards/gen/JdbcDriverWizardPage.java | 355 - .../wizards/gen/SelectFileOrXMLCatalogIdPanel.java | 142 - .../wizards/gen/SelectSingleFileViewFacade.java | 59 - .../wizards/gen/SelectXMLCatalogIdPanel.java | 146 - .../wizards/gen/WebDynamicProjectWizardPage.java | 38 - .../wizards/gen/XMLCatalogTableViewer.java | 195 - .../org.eclipse.jpt.jaxb.branding/.cvsignore | 1 - .../plugins/org.eclipse.jpt.jaxb.branding/.project | 22 - .../META-INF/MANIFEST.MF | 7 - .../org.eclipse.jpt.jaxb.branding/about.html | 34 - .../org.eclipse.jpt.jaxb.branding/about.ini | 44 - .../org.eclipse.jpt.jaxb.branding/about.mappings | 6 - .../org.eclipse.jpt.jaxb.branding/about.properties | 24 - .../org.eclipse.jpt.jaxb.branding/build.properties | 18 - .../org.eclipse.jpt.jaxb.branding/component.xml | 11 - .../icons/WTP_icon_x32_v2.png | Bin 5616 -> 0 bytes .../plugin.properties | 13 - .../org.eclipse.jpt.jaxb.core.schemagen/.classpath | 7 - .../org.eclipse.jpt.jaxb.core.schemagen/.cvsignore | 1 - .../org.eclipse.jpt.jaxb.core.schemagen/.project | 28 - .../META-INF/MANIFEST.MF | 11 - .../org.eclipse.jpt.jaxb.core.schemagen/about.html | 47 - .../build.properties | 19 - .../plugin.properties | 24 - .../org/eclipse/jpt/jaxb/core/schemagen/Main.java | 287 - .../schemagen/internal/JptJaxbCoreMessages.java | 43 - .../jpt/jaxb/core/schemagen/internal/Tools.java | 104 - .../schemagen/internal/jpt_jaxb_core.properties | 19 - jaxb/plugins/org.eclipse.jpt.jaxb.core/.classpath | 13 - jaxb/plugins/org.eclipse.jpt.jaxb.core/.cvsignore | 6 - jaxb/plugins/org.eclipse.jpt.jaxb.core/.project | 28 - .../org.eclipse.jpt.jaxb.core/META-INF/MANIFEST.MF | 50 - jaxb/plugins/org.eclipse.jpt.jaxb.core/about.html | 34 - .../org.eclipse.jpt.jaxb.core/build.properties | 20 - .../org.eclipse.jpt.jaxb.core/component.xml | 16 - .../org.eclipse.jpt.jaxb.core/plugin.properties | 31 - jaxb/plugins/org.eclipse.jpt.jaxb.core/plugin.xml | 298 - .../property_files/jaxb_validation.properties | 33 - .../property_files/jpt_jaxb_core.properties | 22 - .../schema/jaxbPlatforms.exsd | 221 - .../eclipse/jpt/jaxb/core/AnnotationProvider.java | 79 - .../eclipse/jpt/jaxb/core/GenericJaxbPlatform.java | 43 - .../jpt/jaxb/core/GenericJaxbProjectManager.java | 1038 -- .../src/org/eclipse/jpt/jaxb/core/JaxbFacet.java | 55 - .../src/org/eclipse/jpt/jaxb/core/JaxbFactory.java | 147 - .../src/org/eclipse/jpt/jaxb/core/JaxbFile.java | 92 - .../src/org/eclipse/jpt/jaxb/core/JaxbNode.java | 43 - .../src/org/eclipse/jpt/jaxb/core/JaxbProject.java | 373 - .../eclipse/jpt/jaxb/core/JaxbProjectManager.java | 74 - .../jpt/jaxb/core/JaxbResourceModelProvider.java | 42 - .../eclipse/jpt/jaxb/core/JptJaxbCorePlugin.java | 464 - .../src/org/eclipse/jpt/jaxb/core/MappingKeys.java | 34 - .../org/eclipse/jpt/jaxb/core/SchemaLibrary.java | 42 - .../jaxb/core/context/JaxbAttributeMapping.java | 52 - .../jaxb/core/context/JaxbAttributesContainer.java | 58 - .../eclipse/jpt/jaxb/core/context/JaxbClass.java | 53 - .../jaxb/core/context/JaxbContainmentMapping.java | 93 - .../jpt/jaxb/core/context/JaxbContextNode.java | 51 - .../jpt/jaxb/core/context/JaxbContextRoot.java | 130 - .../core/context/JaxbElementFactoryMethod.java | 84 - .../jpt/jaxb/core/context/JaxbEnumConstant.java | 58 - .../eclipse/jpt/jaxb/core/context/JaxbPackage.java | 70 - .../jpt/jaxb/core/context/JaxbPackageInfo.java | 75 - .../jaxb/core/context/JaxbPersistentAttribute.java | 112 - .../jpt/jaxb/core/context/JaxbPersistentClass.java | 77 - .../jpt/jaxb/core/context/JaxbPersistentEnum.java | 53 - .../jpt/jaxb/core/context/JaxbPersistentField.java | 31 - .../jaxb/core/context/JaxbPersistentProperty.java | 33 - .../jpt/jaxb/core/context/JaxbPersistentType.java | 146 - .../jpt/jaxb/core/context/JaxbRegistry.java | 41 - .../jpt/jaxb/core/context/JaxbTransientClass.java | 27 - .../eclipse/jpt/jaxb/core/context/JaxbType.java | 110 - .../jpt/jaxb/core/context/XmlAccessOrder.java | 66 - .../jaxb/core/context/XmlAccessOrderHolder.java | 59 - .../jpt/jaxb/core/context/XmlAccessType.java | 72 - .../jpt/jaxb/core/context/XmlAccessTypeHolder.java | 59 - .../jpt/jaxb/core/context/XmlAdaptable.java | 30 - .../jaxb/core/context/XmlAnyAttributeMapping.java | 28 - .../jaxb/core/context/XmlAnyElementMapping.java | 52 - .../jpt/jaxb/core/context/XmlAttachmentRef.java | 31 - .../jpt/jaxb/core/context/XmlAttributeMapping.java | 28 - .../jpt/jaxb/core/context/XmlElementMapping.java | 53 - .../jpt/jaxb/core/context/XmlElementWrapper.java | 56 - .../org/eclipse/jpt/jaxb/core/context/XmlID.java | 31 - .../eclipse/jpt/jaxb/core/context/XmlIDREF.java | 31 - .../jpt/jaxb/core/context/XmlJavaTypeAdapter.java | 49 - .../org/eclipse/jpt/jaxb/core/context/XmlList.java | 31 - .../eclipse/jpt/jaxb/core/context/XmlMixed.java | 31 - .../org/eclipse/jpt/jaxb/core/context/XmlNs.java | 41 - .../eclipse/jpt/jaxb/core/context/XmlNsForm.java | 68 - .../jpt/jaxb/core/context/XmlRootElement.java | 84 - .../eclipse/jpt/jaxb/core/context/XmlSchema.java | 88 - .../jpt/jaxb/core/context/XmlSchemaType.java | 64 - .../eclipse/jpt/jaxb/core/context/XmlSeeAlso.java | 49 - .../jpt/jaxb/core/context/XmlValueMapping.java | 28 - .../DefaultJavaAttributeMappingDefinition.java | 37 - .../java/JavaAttributeMappingDefinition.java | 60 - .../jaxb/core/context/java/JavaContextNode.java | 43 - .../jaxb/core/internal/AbstractJaxbFactory.java | 182 - .../jpt/jaxb/core/internal/AbstractJaxbNode.java | 498 - .../internal/AbstractJaxbPlatformDefinition.java | 149 - .../jaxb/core/internal/AbstractJaxbProject.java | 1602 --- .../core/internal/GenericAnnotationProvider.java | 128 - .../jpt/jaxb/core/internal/GenericJaxbFile.java | 143 - .../jpt/jaxb/core/internal/GenericJaxbProject.java | 27 - .../JavaPackageInfoResourceModelProvider.java | 57 - .../core/internal/JavaResourceModelProvider.java | 57 - .../jpt/jaxb/core/internal/JaxbPlatformTester.java | 63 - .../jaxb/core/internal/JptJaxbCoreMessages.java | 44 - .../jpt/jaxb/core/internal/SchemaLibraryImpl.java | 122 - .../core/internal/SimpleJaxbProjectConfig.java | 53 - .../internal/context/AbstractJaxbContextNode.java | 87 - .../core/internal/context/GenericContextRoot.java | 623 - .../jaxb/core/internal/context/GenericPackage.java | 132 - .../context/java/AbstractJavaAttributeMapping.java | 126 - .../AbstractJavaAttributeMappingDefinition.java | 30 - .../context/java/AbstractJavaContextNode.java | 64 - .../context/java/AbstractJavaPersistentType.java | 431 - .../internal/context/java/AbstractJavaType.java | 116 - .../java/AbstractJavaXmlJavaTypeAdapter.java | 130 - .../GenericJavaAttributeXmlJavaTypeAdapter.java | 62 - .../java/GenericJavaAttributesContainer.java | 652 - .../java/GenericJavaContainmentMapping.java | 604 - ...GenericJavaContainmentMappingXmlSchemaType.java | 47 - .../java/GenericJavaElementFactoryMethod.java | 188 - .../context/java/GenericJavaEnumConstant.java | 87 - .../java/GenericJavaNullAttributeMapping.java | 33 - .../context/java/GenericJavaPackageInfo.java | 373 - .../java/GenericJavaPackageXmlJavaTypeAdapter.java | 49 - .../java/GenericJavaPackageXmlSchemaType.java | 37 - .../java/GenericJavaPersistentAttribute.java | 392 - .../context/java/GenericJavaPersistentClass.java | 780 -- .../context/java/GenericJavaPersistentEnum.java | 131 - .../context/java/GenericJavaPersistentField.java | 59 - .../java/GenericJavaPersistentProperty.java | 109 - .../internal/context/java/GenericJavaRegistry.java | 144 - .../context/java/GenericJavaTransientClass.java | 236 - .../java/GenericJavaTypeXmlJavaTypeAdapter.java | 34 - .../context/java/GenericJavaXmlAdaptable.java | 126 - .../java/GenericJavaXmlAnyAttributeMapping.java | 108 - .../java/GenericJavaXmlAnyElementMapping.java | 228 - .../context/java/GenericJavaXmlAttachmentRef.java | 44 - .../java/GenericJavaXmlAttributeMapping.java | 35 - .../context/java/GenericJavaXmlElementMapping.java | 223 - .../context/java/GenericJavaXmlElementWrapper.java | 209 - .../internal/context/java/GenericJavaXmlID.java | 65 - .../internal/context/java/GenericJavaXmlIDREF.java | 90 - .../internal/context/java/GenericJavaXmlList.java | 66 - .../internal/context/java/GenericJavaXmlMixed.java | 47 - .../internal/context/java/GenericJavaXmlNs.java | 111 - .../context/java/GenericJavaXmlRootElement.java | 238 - .../context/java/GenericJavaXmlSchema.java | 287 - .../context/java/GenericJavaXmlSchemaType.java | 196 - .../context/java/GenericJavaXmlSeeAlso.java | 101 - .../java/GenericJavaXmlTransientMapping.java | 36 - .../context/java/GenericJavaXmlValueMapping.java | 85 - .../java/JavaXmlAnyAttributeMappingDefinition.java | 63 - .../java/JavaXmlAnyElementMappingDefinition.java | 66 - .../java/JavaXmlAttributeMappingDefinition.java | 77 - .../java/JavaXmlElementMappingDefinition.java | 105 - .../java/JavaXmlTransientMappingDefinition.java | 60 - .../java/JavaXmlValueMappingDefinition.java | 65 - .../facet/JaxbFacetDataModelProperties.java | 25 - .../internal/facet/JaxbFacetDataModelProvider.java | 277 - .../core/internal/facet/JaxbFacetDelegate.java | 57 - .../facet/JaxbFacetInstallDataModelProperties.java | 16 - .../facet/JaxbFacetInstallDataModelProvider.java | 20 - .../internal/facet/JaxbFacetInstallDelegate.java | 31 - .../internal/facet/JaxbFacetUninstallDelegate.java | 26 - .../JaxbFacetVersionChangeDataModelProperties.java | 16 - .../JaxbFacetVersionChangeDataModelProvider.java | 49 - .../facet/JaxbFacetVersionChangeDelegate.java | 26 - .../jaxb/core/internal/gen/ClassesGenerator.java | 264 - .../gen/ClassesGeneratorExtensionOptions.java | 54 - .../core/internal/gen/ClassesGeneratorOptions.java | 173 - .../core/internal/gen/GenerateJaxbClassesJob.java | 121 - .../jaxb/core/internal/gen/SchemaGenerator.java | 287 - .../AbstractJaxb_2_1_PlatformDefinition.java | 144 - .../internal/jaxb21/GenericJaxb_2_1_Factory.java | 37 - .../jaxb21/GenericJaxb_2_1_PlatformDefinition.java | 42 - .../GenericJaxb_2_1_PlatformDefinitionFactory.java | 22 - .../AbstractJaxb_2_2_PlatformDefinition.java | 20 - .../jaxb22/GenericJaxb_2_2_PlatformDefinition.java | 44 - .../GenericJaxb_2_2_PlatformDefinitionFactory.java | 23 - ...xbJreLibraryProviderInstallOperationConfig.java | 61 - ...ndlesLibraryProviderInstallOperationConfig.java | 38 - ...bUserLibraryProviderInstallOperationConfig.java | 37 - .../GenericEclipseLinkBundlesLibraryValidator.java | 32 - .../libval/GenericJaxbUserLibraryValidator.java | 56 - .../internal/libval/JaxbJreLibraryValidator.java | 44 - .../jaxb/core/internal/libval/JaxbLibValUtil.java | 135 - .../SchemaFileCreationDataModelProvider.java | 42 - .../platform/JaxbPlatformDescriptionImpl.java | 109 - .../platform/JaxbPlatformGroupDescriptionImpl.java | 69 - .../core/internal/platform/JaxbPlatformImpl.java | 133 - .../internal/platform/JaxbPlatformManagerImpl.java | 253 - .../internal/resource/java/NullAnnotation.java | 78 - .../java/NullXmlAccessorOrderAnnotation.java | 56 - .../java/NullXmlAccessorTypeAnnotation.java | 56 - .../java/NullXmlElementDeclAnnotation.java | 134 - .../resource/java/NullXmlEnumAnnotation.java | 58 - .../resource/java/NullXmlEnumValueAnnotation.java | 54 - .../resource/java/NullXmlSchemaAnnotation.java | 137 - .../resource/java/NullXmlTypeAnnotation.java | 144 - .../java/XmlAccessorOrderAnnotationDefinition.java | 60 - .../java/XmlAccessorTypeAnnotationDefinition.java | 60 - .../java/XmlAnyAttributeAnnotationDefinition.java | 62 - .../java/XmlAnyElementAnnotationDefinition.java | 62 - .../java/XmlAttachmentRefAnnotationDefinition.java | 62 - .../java/XmlAttributeAnnotationDefinition.java | 62 - .../java/XmlElementAnnotationDefinition.java | 61 - .../java/XmlElementDeclAnnotationDefinition.java | 62 - .../java/XmlElementRefAnnotationDefinition.java | 71 - .../XmlElementWrapperAnnotationDefinition.java | 62 - .../java/XmlElementsAnnotationDefinition.java | 61 - .../resource/java/XmlEnumAnnotationDefinition.java | 62 - .../java/XmlEnumValueAnnotationDefinition.java | 62 - .../resource/java/XmlIDAnnotationDefinition.java | 62 - .../java/XmlIDREFAnnotationDefinition.java | 62 - .../XmlInlineBinaryDataAnnotationDefinition.java | 62 - .../XmlJavaTypeAdapterAnnotationDefinition.java | 64 - .../resource/java/XmlListAnnotationDefinition.java | 62 - .../java/XmlMimeTypeAnnotationDefinition.java | 62 - .../java/XmlMixedAnnotationDefinition.java | 62 - .../java/XmlRegistryAnnotationDefinition.java | 62 - .../java/XmlRootElementAnnotationDefinition.java | 62 - .../java/XmlSchemaAnnotationDefinition.java | 61 - .../java/XmlSchemaTypeAnnotationDefinition.java | 60 - .../java/XmlSeeAlsoAnnotationDefinition.java | 62 - .../java/XmlTransientAnnotationDefinition.java | 62 - .../resource/java/XmlTypeAnnotationDefinition.java | 62 - .../java/XmlValueAnnotationDefinition.java | 62 - .../resource/java/binary/BinaryAnnotation.java | 93 - .../internal/resource/java/binary/BinaryNode.java | 62 - .../binary/BinaryXmlAccessorOrderAnnotation.java | 71 - .../binary/BinaryXmlAccessorTypeAnnotation.java | 71 - .../binary/BinaryXmlAnyAttributeAnnotation.java | 31 - .../java/binary/BinaryXmlAnyElementAnnotation.java | 107 - .../binary/BinaryXmlAttachmentRefAnnotation.java | 31 - .../java/binary/BinaryXmlAttributeAnnotation.java | 125 - .../java/binary/BinaryXmlElementAnnotation.java | 210 - .../binary/BinaryXmlElementDeclAnnotation.java | 209 - .../java/binary/BinaryXmlElementRefAnnotation.java | 132 - .../binary/BinaryXmlElementWrapperAnnotation.java | 151 - .../java/binary/BinaryXmlElementsAnnotation.java | 72 - .../java/binary/BinaryXmlEnumAnnotation.java | 80 - .../java/binary/BinaryXmlEnumValueAnnotation.java | 69 - .../java/binary/BinaryXmlIDAnnotation.java | 31 - .../java/binary/BinaryXmlIDREFAnnotation.java | 31 - .../BinaryXmlInlineBinaryDataAnnotation.java | 31 - .../binary/BinaryXmlJavaTypeAdapterAnnotation.java | 111 - .../java/binary/BinaryXmlListAnnotation.java | 32 - .../java/binary/BinaryXmlMimeTypeAnnotation.java | 69 - .../java/binary/BinaryXmlMixedAnnotation.java | 31 - .../java/binary/BinaryXmlRegistryAnnotation.java | 31 - .../binary/BinaryXmlRootElementAnnotation.java | 109 - .../java/binary/BinaryXmlSeeAlsoAnnotation.java | 100 - .../java/binary/BinaryXmlTransientAnnotation.java | 31 - .../java/binary/BinaryXmlTypeAnnotation.java | 212 - .../java/binary/BinaryXmlValueAnnotation.java | 31 - .../java/source/AbstractJavaResourceNode.java | 109 - .../resource/java/source/SourceAbstractType.java | 194 - .../java/source/SourceAnnotatedElement.java | 500 - .../resource/java/source/SourceAnnotation.java | 175 - .../resource/java/source/SourceAttribute.java | 321 - .../java/source/SourceCompilationUnit.java | 176 - .../internal/resource/java/source/SourceEnum.java | 220 - .../resource/java/source/SourceEnumConstant.java | 83 - .../internal/resource/java/source/SourceField.java | 53 - .../resource/java/source/SourceMember.java | 162 - .../resource/java/source/SourceMethod.java | 154 - .../internal/resource/java/source/SourceNode.java | 333 - .../resource/java/source/SourcePackage.java | 97 - .../source/SourcePackageInfoCompilationUnit.java | 119 - .../internal/resource/java/source/SourceType.java | 488 - .../java/source/SourceTypeCompilationUnit.java | 174 - .../source/SourceXmlAccessorOrderAnnotation.java | 99 - .../source/SourceXmlAccessorTypeAnnotation.java | 99 - .../source/SourceXmlAnyAttributeAnnotation.java | 43 - .../java/source/SourceXmlAnyElementAnnotation.java | 172 - .../source/SourceXmlAttachmentRefAnnotation.java | 43 - .../java/source/SourceXmlAttributeAnnotation.java | 185 - .../java/source/SourceXmlElementAnnotation.java | 362 - .../source/SourceXmlElementDeclAnnotation.java | 313 - .../java/source/SourceXmlElementRefAnnotation.java | 253 - .../source/SourceXmlElementWrapperAnnotation.java | 223 - .../java/source/SourceXmlElementsAnnotation.java | 116 - .../java/source/SourceXmlEnumAnnotation.java | 125 - .../java/source/SourceXmlEnumValueAnnotation.java | 99 - .../java/source/SourceXmlIDAnnotation.java | 43 - .../java/source/SourceXmlIDREFAnnotation.java | 43 - .../SourceXmlInlineBinaryDataAnnotation.java | 43 - .../source/SourceXmlJavaTypeAdapterAnnotation.java | 246 - .../java/source/SourceXmlListAnnotation.java | 43 - .../java/source/SourceXmlMimeTypeAnnotation.java | 98 - .../java/source/SourceXmlMixedAnnotation.java | 43 - .../java/source/SourceXmlNsAnnotation.java | 151 - .../java/source/SourceXmlRegistryAnnotation.java | 43 - .../source/SourceXmlRootElementAnnotation.java | 146 - .../java/source/SourceXmlSchemaAnnotation.java | 303 - .../java/source/SourceXmlSchemaTypeAnnotation.java | 272 - .../java/source/SourceXmlSeeAlsoAnnotation.java | 168 - .../java/source/SourceXmlTransientAnnotation.java | 43 - .../java/source/SourceXmlTypeAnnotation.java | 322 - .../java/source/SourceXmlValueAnnotation.java | 43 - .../validation/DefaultValidationMessages.java | 73 - .../validation/JaxbValidationMessages.java | 45 - .../core/internal/validation/JaxbValidator.java | 124 - .../JaxbLibraryProviderInstallOperationConfig.java | 24 - .../jpt/jaxb/core/platform/JaxbPlatform.java | 94 - .../jaxb/core/platform/JaxbPlatformDefinition.java | 66 - .../platform/JaxbPlatformDefinitionFactory.java | 30 - .../core/platform/JaxbPlatformDescription.java | 41 - .../platform/JaxbPlatformGroupDescription.java | 33 - .../jaxb/core/platform/JaxbPlatformManager.java | 45 - .../jpt/jaxb/core/resource/java/Annotation.java | 55 - .../core/resource/java/AnnotationDefinition.java | 64 - .../eclipse/jpt/jaxb/core/resource/java/JAXB.java | 174 - .../resource/java/JavaResourceAbstractType.java | 120 - .../java/JavaResourceAnnotatedElement.java | 143 - .../core/resource/java/JavaResourceAttribute.java | 104 - .../core/resource/java/JavaResourceClassFile.java | 33 - .../resource/java/JavaResourceCompilationUnit.java | 68 - .../jaxb/core/resource/java/JavaResourceEnum.java | 42 - .../resource/java/JavaResourceEnumConstant.java | 32 - .../jaxb/core/resource/java/JavaResourceField.java | 27 - .../core/resource/java/JavaResourceMember.java | 77 - .../core/resource/java/JavaResourceMethod.java | 50 - .../jaxb/core/resource/java/JavaResourceNode.java | 93 - .../core/resource/java/JavaResourcePackage.java | 32 - .../resource/java/JavaResourcePackageFragment.java | 45 - .../java/JavaResourcePackageFragmentRoot.java | 39 - .../JavaResourcePackageInfoCompilationUnit.java | 30 - .../jaxb/core/resource/java/JavaResourceType.java | 64 - .../resource/java/JaxbContainmentAnnotation.java | 86 - .../core/resource/java/NestableAnnotation.java | 34 - .../java/NestableAnnotationDefinition.java | 54 - .../jaxb/core/resource/java/XmlAccessOrder.java | 64 - .../jpt/jaxb/core/resource/java/XmlAccessType.java | 66 - .../resource/java/XmlAccessorOrderAnnotation.java | 52 - .../resource/java/XmlAccessorTypeAnnotation.java | 52 - .../resource/java/XmlAnyAttributeAnnotation.java | 31 - .../resource/java/XmlAnyElementAnnotation.java | 86 - .../resource/java/XmlAttachmentRefAnnotation.java | 31 - .../core/resource/java/XmlAttributeAnnotation.java | 30 - .../core/resource/java/XmlElementAnnotation.java | 104 - .../resource/java/XmlElementDeclAnnotation.java | 162 - .../resource/java/XmlElementRefAnnotation.java | 104 - .../resource/java/XmlElementWrapperAnnotation.java | 108 - .../core/resource/java/XmlElementsAnnotation.java | 64 - .../jaxb/core/resource/java/XmlEnumAnnotation.java | 67 - .../core/resource/java/XmlEnumValueAnnotation.java | 53 - .../jaxb/core/resource/java/XmlIDAnnotation.java | 31 - .../core/resource/java/XmlIDREFAnnotation.java | 31 - .../java/XmlInlineBinaryDataAnnotation.java | 31 - .../java/XmlJavaTypeAdapterAnnotation.java | 100 - .../jaxb/core/resource/java/XmlListAnnotation.java | 31 - .../core/resource/java/XmlMimeTypeAnnotation.java | 52 - .../core/resource/java/XmlMixedAnnotation.java | 31 - .../jaxb/core/resource/java/XmlNsAnnotation.java | 70 - .../jpt/jaxb/core/resource/java/XmlNsForm.java | 64 - .../core/resource/java/XmlRegistryAnnotation.java | 31 - .../resource/java/XmlRootElementAnnotation.java | 82 - .../core/resource/java/XmlSchemaAnnotation.java | 147 - .../resource/java/XmlSchemaTypeAnnotation.java | 117 - .../core/resource/java/XmlSeeAlsoAnnotation.java | 84 - .../core/resource/java/XmlTransientAnnotation.java | 31 - .../jaxb/core/resource/java/XmlTypeAnnotation.java | 175 - .../core/resource/java/XmlValueAnnotation.java | 31 - .../org/eclipse/jpt/jaxb/core/xsd/XsdAdapter.java | 27 - .../jaxb/core/xsd/XsdComplexTypeDefinition.java | 21 - .../jpt/jaxb/core/xsd/XsdElementDeclaration.java | 36 - .../org/eclipse/jpt/jaxb/core/xsd/XsdSchema.java | 202 - .../jpt/jaxb/core/xsd/XsdSimpleTypeDefinition.java | 21 - .../jpt/jaxb/core/xsd/XsdTypeDefinition.java | 30 - .../src/org/eclipse/jpt/jaxb/core/xsd/XsdUtil.java | 194 - .../.cvsignore | 1 - .../.project | 22 - .../META-INF/MANIFEST.MF | 7 - .../about.html | 34 - .../about.ini | 44 - .../about.mappings | 6 - .../about.properties | 24 - .../build.properties | 17 - .../component.xml | 12 - .../icons/WTP_icon_x32_v2.png | Bin 5616 -> 0 bytes .../plugin.properties | 13 - .../.classpath | 8 - .../.cvsignore | 1 - .../.project | 28 - .../META-INF/MANIFEST.MF | 12 - .../about.html | 47 - .../build.properties | 20 - .../lib/eclipselink-src.zip | Bin 5194269 -> 0 bytes .../lib/eclipselink.jar | Bin 5697505 -> 0 bytes .../plugin.properties | 24 - .../jpt/jaxb/eclipselink/core/schemagen/Main.java | 290 - .../internal/JptEclipseLinkJaxbCoreMessages.java | 43 - .../eclipselink/core/schemagen/internal/Tools.java | 104 - .../internal/jpt_eclipselink_jaxb_core.properties | 21 - jaxb/plugins/org.eclipse.jpt.jaxb.ui/.classpath | 13 - jaxb/plugins/org.eclipse.jpt.jaxb.ui/.cvsignore | 6 - jaxb/plugins/org.eclipse.jpt.jaxb.ui/.project | 28 - .../org.eclipse.jpt.jaxb.ui/META-INF/MANIFEST.MF | 50 - jaxb/plugins/org.eclipse.jpt.jaxb.ui/about.html | 34 - .../org.eclipse.jpt.jaxb.ui/build.properties | 23 - jaxb/plugins/org.eclipse.jpt.jaxb.ui/component.xml | 1 - .../icons/full/etool16/NewXSD.gif | Bin 364 -> 0 bytes .../icons/full/etool16/jaxb_facet.gif | Bin 220 -> 0 bytes .../icons/full/etool16/new_jaxb_project_wiz.gif | Bin 612 -> 0 bytes .../icons/full/etool16/newclass_wiz.gif | Bin 598 -> 0 bytes .../icons/full/obj16/XSDFile.gif | Bin 574 -> 0 bytes .../icons/full/obj16/dtdfile.gif | Bin 351 -> 0 bytes .../icons/full/obj16/enum_constant.gif | Bin 124 -> 0 bytes .../icons/full/obj16/jaxb_content.gif | Bin 220 -> 0 bytes .../icons/full/obj16/null-attribute-mapping.gif | Bin 911 -> 0 bytes .../icons/full/obj16/package.gif | Bin 227 -> 0 bytes .../icons/full/obj16/persistent_class.gif | Bin 1005 -> 0 bytes .../icons/full/obj16/persistent_enum.gif | Bin 981 -> 0 bytes .../icons/full/obj16/persistent_field.gif | Bin 124 -> 0 bytes .../icons/full/obj16/persistent_property.gif | Bin 193 -> 0 bytes .../icons/full/obj16/registry.gif | Bin 1005 -> 0 bytes .../icons/full/obj16/text.gif | Bin 349 -> 0 bytes .../icons/full/obj16/transient_class.gif | Bin 1007 -> 0 bytes .../icons/full/obj16/xml-any-attribute.gif | Bin 901 -> 0 bytes .../icons/full/obj16/xml-any-element.gif | Bin 900 -> 0 bytes .../icons/full/obj16/xml-attribute.gif | Bin 883 -> 0 bytes .../icons/full/obj16/xml-element.gif | Bin 881 -> 0 bytes .../icons/full/obj16/xml-transient.gif | Bin 886 -> 0 bytes .../icons/full/obj16/xml-value.gif | Bin 880 -> 0 bytes .../icons/full/ovr16/error_ovr.gif | Bin 82 -> 0 bytes .../icons/full/wizban/NewXSD.gif | Bin 3162 -> 0 bytes .../icons/full/wizban/new_jaxb_prj_wiz.gif | Bin 2787 -> 0 bytes .../icons/full/wizban/newclass_wiz.gif | Bin 3213 -> 0 bytes .../org.eclipse.jpt.jaxb.ui/plugin.properties | 45 - jaxb/plugins/org.eclipse.jpt.jaxb.ui/plugin.xml | 303 - .../property_files/jpt_jaxb_ui.properties | 167 - .../schema/jaxbPlatformUis.exsd | 139 - .../org/eclipse/jpt/jaxb/ui/JptJaxbUiPlugin.java | 117 - .../jpt/jaxb/ui/internal/ClassesGeneratorUi.java | 164 - .../JaxbJavaCompletionProposalComputer.java | 185 - .../jaxb/ui/internal/JaxbMappingImageHelper.java | 69 - .../jpt/jaxb/ui/internal/JptJaxbUiIcons.java | 46 - .../jpt/jaxb/ui/internal/JptJaxbUiMessages.java | 181 - .../ui/internal/actions/GenerateClassesAction.java | 27 - .../jpt/jaxb/ui/internal/actions/ObjectAction.java | 63 - .../jaxb/ui/internal/filters/ContainerFilter.java | 40 - .../internal/filters/EmptyInnerPackageFilter.java | 44 - .../filters/NonArchiveOrExternalElementFilter.java | 37 - .../ui/internal/filters/NonContainerFilter.java | 55 - .../ui/internal/filters/NonJavaElementFilter.java | 51 - ...Jaxb_2_1_NavigatorItemLabelProviderFactory.java | 78 - ..._1_NavigatorTreeItemContentProviderFactory.java | 66 - .../jaxb21/GenericJaxb_2_1_NavigatorUi.java | 43 - .../jaxb21/GenericJaxb_2_1_PlatformUi.java | 22 - .../jaxb21/JaxbContextRootItemContentProvider.java | 52 - .../jaxb21/JaxbContextRootItemLabelProvider.java | 56 - .../jaxb21/JaxbEnumConstantItemLabelProvider.java | 51 - .../jaxb21/JaxbPackageItemContentProvider.java | 51 - .../jaxb21/JaxbPackageItemLabelProvider.java | 54 - .../JaxbPersistentAttributeItemLabelProvider.java | 64 - .../JaxbPersistentClassItemContentProvider.java | 71 - .../JaxbPersistentClassItemLabelProvider.java | 34 - .../JaxbPersistentEnumItemContentProvider.java | 51 - .../JaxbPersistentEnumItemLabelProvider.java | 34 - .../JaxbPersistentFieldItemLabelProvider.java | 31 - .../JaxbPersistentPropertyItemLabelProvider.java | 30 - .../jaxb21/JaxbRegistryItemContentProvider.java | 39 - .../jaxb21/JaxbRegistryItemLabelProvider.java | 34 - .../JaxbTransientClassItemLabelProvider.java | 34 - .../internal/jaxb21/JaxbTypeItemLabelProvider.java | 46 - .../jaxb22/GenericJaxb_2_2_PlatformUi.java | 23 - .../JaxbNavigatorContentAndLabelProvider.java | 22 - .../navigator/JaxbNavigatorContentProvider.java | 232 - .../JaxbNavigatorItemLabelProviderFactory.java | 72 - .../navigator/JaxbNavigatorLabelProvider.java | 138 - ...axbNavigatorTreeItemContentProviderFactory.java | 72 - .../ui/internal/platform/JaxbPlatformUiConfig.java | 70 - .../platform/JaxbPlatformUiManagerImpl.java | 133 - .../ui/internal/properties/JaxbProjectModel.java | 71 - .../properties/JaxbProjectPropertiesPage.java | 312 - .../properties/JaxbSchemasPropertiesPage.java | 912 -- .../ui/internal/wizards/ProjectWizardPage.java | 246 - ...ClassesGeneratorExtensionOptionsWizardPage.java | 186 - .../ClassesGeneratorOptionsWizardPage.java | 805 -- .../wizards/classesgen/ClassesGeneratorWizard.java | 358 - .../classesgen/ClassesGeneratorWizardPage.java | 643 - .../wizards/classesgen/SchemaWizardPage.java | 190 - .../classesgen/SelectFileOrXMLCatalogIdPanel.java | 185 - .../classesgen/SelectSingleFileViewFacade.java | 58 - .../classesgen/SelectXMLCatalogIdPanel.java | 146 - .../wizards/classesgen/XMLCatalogTableViewer.java | 195 - .../wizards/facet/JaxbFacetInstallPage.java | 21 - .../ui/internal/wizards/facet/JaxbFacetPage.java | 178 - .../wizards/facet/JaxbFacetVersionChangePage.java | 21 - .../internal/wizards/proj/JaxbProjectWizard.java | 58 - .../wizards/proj/JaxbProjectWizardFirstPage.java | 90 - .../JaxbProjectCreationDataModelProvider.java | 39 - .../AbstractJarDestinationWizardPage.java | 26 - .../schemagen/CheckboxTreeAndListGroup.java | 856 -- .../wizards/schemagen/NewSchemaFileWizardPage.java | 204 - .../wizards/schemagen/SchemaGeneratorWizard.java | 267 - .../schemagen/SchemaGeneratorWizardPage.java | 439 - .../jpt/jaxb/ui/navigator/JaxbNavigatorUi.java | 40 - .../jpt/jaxb/ui/platform/JaxbPlatformUi.java | 40 - .../jaxb/ui/platform/JaxbPlatformUiManager.java | 35 - .../org.eclipse.jpt.jaxb.core.tests/.classpath | 13 - .../tests/org.eclipse.jpt.jaxb.core.tests/.project | 28 - .../META-INF/MANIFEST.MF | 30 - .../org.eclipse.jpt.jaxb.core.tests/about.html | 34 - .../build.properties | 18 - .../plugin.properties | 23 - .../jaxb/core/tests/JptJaxbCoreTestsPlugin.java | 57 - .../jaxb/core/tests/internal/JaxbCoreTests.java | 31 - .../jpt/jaxb/core/tests/internal/JaxbTestCase.java | 82 - .../core/tests/internal/SchemaLibraryTests.java | 122 - .../internal/context/GenericContextRootTests.java | 558 - .../internal/context/JaxbContextModelTestCase.java | 98 - .../context/JaxbCoreContextModelTests.java | 32 - ...enericJavaAttributeXmlJavaTypeAdapterTests.java | 171 - .../java/GenericJavaElementFactoryMethodTests.java | 404 - .../context/java/GenericJavaEnumConstantTests.java | 135 - .../context/java/GenericJavaPackageInfoTests.java | 797 -- .../GenericJavaPackageXmlJavaTypeAdapterTests.java | 161 - .../java/GenericJavaPersistentClassTests.java | 2164 ---- .../java/GenericJavaPersistentEnumTests.java | 740 -- .../context/java/GenericJavaRegistryTests.java | 209 - .../GenericJavaTypeXmlJavaTypeAdapterTests.java | 171 - .../GenericJavaXmlAnyAttributeMappingTests.java | 152 - .../java/GenericJavaXmlAnyElementMappingTests.java | 336 - .../java/GenericJavaXmlAttributeMappingTests.java | 607 - .../java/GenericJavaXmlElementMappingTests.java | 825 -- .../java/GenericJavaXmlRootElementTests.java | 166 - .../context/java/GenericJavaXmlSchemaTests.java | 662 - .../java/GenericJavaXmlSchemaTypeTests.java | 207 - .../context/java/GenericJavaXmlSeeAlsoTests.java | 149 - .../java/GenericJavaXmlValueMappingTests.java | 151 - .../java/JaxbCoreJavaContextModelTests.java | 47 - .../tests/internal/projects/TestJaxbProject.java | 68 - .../resource/JaxbCoreResourceModelTests.java | 32 - .../resource/java/JavaResourceModelTestCase.java | 197 - .../java/JaxbJavaResourceModelTestCase.java | 33 - .../resource/java/JaxbJavaResourceModelTests.java | 61 - .../XmlAccessorOrderPackageAnnotationTests.java | 60 - .../java/XmlAccessorOrderTypeAnnotationTests.java | 94 - .../XmlAccessorTypePackageAnnotationTests.java | 66 - .../java/XmlAccessorTypeTypeAnnotationTests.java | 106 - .../java/XmlAnyAttributeAnnotationTests.java | 51 - .../java/XmlAnyElementAnnotationTests.java | 136 - .../java/XmlAttachmentRefAnnotationTests.java | 51 - .../resource/java/XmlAttributeAnnotationTests.java | 174 - .../resource/java/XmlElementAnnotationTests.java | 283 - .../java/XmlElementDeclAnnotationTests.java | 280 - .../java/XmlElementRefAnnotationTests.java | 191 - .../java/XmlElementWrapperAnnotationTests.java | 203 - .../resource/java/XmlEnumAnnotationTests.java | 89 - .../resource/java/XmlEnumValueAnnotationTests.java | 109 - .../resource/java/XmlIDAnnotationTests.java | 51 - .../resource/java/XmlIDREFAnnotationTests.java | 51 - ...mlInlineBinaryDataAttributeAnnotationTests.java | 51 - .../XmlInlineBinaryDataTypeAnnotationTests.java | 49 - .../XmlJavaTypeAdapterPackageAnnotationTests.java | 267 - .../XmlJavaTypeAdapterTypeAnnotationTests.java | 111 - .../resource/java/XmlListAnnotationTests.java | 51 - .../resource/java/XmlMimeTypeAnnotationTests.java | 108 - .../resource/java/XmlMixedAnnotationTests.java | 51 - .../resource/java/XmlRegistryAnnotationTests.java | 49 - .../java/XmlRootElementAnnotationTests.java | 131 - .../resource/java/XmlSchemaAnnotationTests.java | 263 - .../XmlSchemaTypeAttributeAnnotationTests.java | 156 - .../java/XmlSchemaTypePackageAnnotationTests.java | 240 - .../resource/java/XmlSeeAlsoAnnotationTests.java | 144 - .../java/XmlTransientAttributeAnnotationTests.java | 51 - .../java/XmlTransientTypeAnnotationTests.java | 49 - .../resource/java/XmlTypeAnnotationTests.java | 340 - .../resource/java/XmlValueAnnotationTests.java | 51 - .../tests/org.eclipse.jpt.jaxb.core.tests/test.xml | 35 - .../org.eclipse.jpt.eclipselink.feature/.project | 5 - .../.project | 5 - jpa/features/org.eclipse.jpt.feature/.project | 5 - .../.cvsignore | 1 - .../.project | 17 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../build.properties | 13 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../feature.xml | 82 - .../sourceTemplateBundle/about.html | 27 - .../sourceTemplateBundle/about.ini | 31 - .../sourceTemplateBundle/about.mappings | 6 - .../sourceTemplateBundle/about.properties | 26 - .../sourceTemplateBundle/build.properties | 21 - .../sourceTemplateBundle/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplateBundle/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplateBundle/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateBundle/epl-v10.html | 328 - .../sourceTemplateBundle/license.html | 86 - .../sourceTemplateBundle/plugin.properties | 13 - .../sourceTemplateFeature/build.properties | 14 - .../sourceTemplateFeature/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateFeature/feature.properties | 48 - .../sourceTemplatePlugin/about.html | 27 - .../sourceTemplatePlugin/about.ini | 31 - .../sourceTemplatePlugin/about.mappings | 6 - .../sourceTemplatePlugin/about.properties | 26 - .../sourceTemplatePlugin/build.properties | 21 - .../sourceTemplatePlugin/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplatePlugin/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplatePlugin/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplatePlugin/epl-v10.html | 328 - .../sourceTemplatePlugin/license.html | 86 - .../sourceTemplatePlugin/plugin.properties | 13 - .../.cvsignore | 1 - .../.project | 17 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../build.properties | 7 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 51 - .../feature.xml | 28 - .../.cvsignore | 3 - .../.project | 17 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../build.properties | 5 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../feature.xml | 30 - .../org.eclipse.jpt.jpa.feature/.cvsignore | 1 - jpa/features/org.eclipse.jpt.jpa.feature/.project | 17 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../org.eclipse.jpt.jpa.feature/build.properties | 13 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../org.eclipse.jpt.jpa.feature/feature.properties | 43 - .../org.eclipse.jpt.jpa.feature/feature.xml | 134 - .../sourceTemplateBundle/about.html | 27 - .../sourceTemplateBundle/about.ini | 31 - .../sourceTemplateBundle/about.mappings | 6 - .../sourceTemplateBundle/about.properties | 26 - .../sourceTemplateBundle/build.properties | 12 - .../sourceTemplateBundle/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplateBundle/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplateBundle/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateBundle/epl-v10.html | 328 - .../sourceTemplateBundle/license.html | 86 - .../sourceTemplateBundle/plugin.properties | 13 - .../sourceTemplateFeature/build.properties | 14 - .../sourceTemplateFeature/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateFeature/feature.properties | 48 - .../sourceTemplatePlugin/about.html | 27 - .../sourceTemplatePlugin/about.ini | 31 - .../sourceTemplatePlugin/about.mappings | 6 - .../sourceTemplatePlugin/about.properties | 26 - .../sourceTemplatePlugin/build.properties | 12 - .../sourceTemplatePlugin/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplatePlugin/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplatePlugin/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplatePlugin/epl-v10.html | 328 - .../sourceTemplatePlugin/license.html | 86 - .../sourceTemplatePlugin/plugin.properties | 13 - .../org.eclipse.jpt.jpa.tests.feature/.cvsignore | 1 - .../org.eclipse.jpt.jpa.tests.feature/.project | 17 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../build.properties | 7 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 51 - .../org.eclipse.jpt.jpa.tests.feature/feature.xml | 46 - .../org.eclipse.jpt.jpa_sdk.feature/.cvsignore | 3 - .../org.eclipse.jpt.jpa_sdk.feature/.project | 17 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../build.properties | 5 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../org.eclipse.jpt.jpa_sdk.feature/feature.xml | 37 - .../org.eclipse.jpt.tests.feature/.project | 5 - jpa/features/org.eclipse.jpt_sdk.feature/.project | 5 - jpa/plugins/org.eclipse.jpt.branding/.project | 5 - jpa/plugins/org.eclipse.jpt.core/.project | 5 - jpa/plugins/org.eclipse.jpt.db.ui/.project | 5 - jpa/plugins/org.eclipse.jpt.db/.project | 5 - jpa/plugins/org.eclipse.jpt.doc.user/.project | 22 - .../org.eclipse.jpt.doc.user/META-INF/MANIFEST.MF | 9 - jpa/plugins/org.eclipse.jpt.doc.user/about.htm | 43 - jpa/plugins/org.eclipse.jpt.doc.user/about.html | 43 - .../org.eclipse.jpt.doc.user/build.properties | 136 - .../cheatsheets/add_persistence.xml | 63 - .../cheatsheets/create_entity.xml | 44 - .../cheatsheets/map_entity.xml | 88 - .../org.eclipse.jpt.doc.user/concept_mapping.htm | 46 - .../concept_persistence.htm | 41 - jpa/plugins/org.eclipse.jpt.doc.user/concepts.htm | 63 - .../org.eclipse.jpt.doc.user/concepts001.htm | 43 - .../org.eclipse.jpt.doc.user/concepts002.htm | 58 - .../org.eclipse.jpt.doc.user/concepts003.htm | 60 - jpa/plugins/org.eclipse.jpt.doc.user/contexts.xml | 646 - .../dcommon/css/blafdoc.css | 21 - .../org.eclipse.jpt.doc.user/dcommon/html/cpyr.htm | 11 - .../org.eclipse.jpt.doc.user/getting_started.htm | 47 - .../getting_started001.htm | 80 - .../getting_started002.htm | 49 - .../getting_started003.htm | 105 - .../getting_started004.htm | 204 - .../img/address.java_jpa_details.png | Bin 14825 -> 0 bytes .../img/address_id_details_quickstart.png | Bin 11473 -> 0 bytes .../img/address_java_JPA_structure_quickstart.png | Bin 4148 -> 0 bytes .../img/create_jpa_entity_wizard.png | Bin 21428 -> 0 bytes .../img/create_jpa_fields.png | Bin 21454 -> 0 bytes .../img/customize_default_entity_generation.png | Bin 27589 -> 0 bytes .../img/customize_individual_entities.png | Bin 24998 -> 0 bytes .../img/details_entitymappings.png | Bin 10563 -> 0 bytes .../org.eclipse.jpt.doc.user/img/error_sample.png | Bin 13762 -> 0 bytes .../img/generate_classes_from_schema.png | Bin 16127 -> 0 bytes .../img/generate_entities.png | Bin 11583 -> 0 bytes .../img/icon_basicmapmappings.png | Bin 361 -> 0 bytes .../img/icon_basicmapping.png | Bin 476 -> 0 bytes .../img/inheritance_join.png | Bin 11615 -> 0 bytes .../img/inheritance_single.png | Bin 3359 -> 0 bytes .../img/inheritance_tab.png | Bin 8101 -> 0 bytes .../img/java_editor_address.png | Bin 8380 -> 0 bytes .../img/jaxb_schmea_generation_dialog.png | Bin 18846 -> 0 bytes .../img/jpa_wizard_create_fields.png | Bin 7864 -> 0 bytes .../img/mapped_entity_type_link.png | Bin 14896 -> 0 bytes .../img/mapping_file_new.png | Bin 19392 -> 0 bytes .../img/mapping_type_selection_embed.png | Bin 15128 -> 0 bytes .../img/mapping_type_selection_entity.png | Bin 14985 -> 0 bytes .../img/mapping_type_selection_superclass.png | Bin 15162 -> 0 bytes .../img/modify_faceted_project.png | Bin 28047 -> 0 bytes .../img/new_icon_basicmappings.png | Bin 332 -> 0 bytes .../img/new_icon_embeddableentitymapping.png | Bin 700 -> 0 bytes .../img/new_icon_embeddedidmapping.png | Bin 477 -> 0 bytes .../img/new_icon_embeddedmapping.png | Bin 321 -> 0 bytes .../img/new_icon_idmapping.png | Bin 461 -> 0 bytes .../img/new_icon_manytomanymapping.png | Bin 311 -> 0 bytes .../img/new_icon_manytoonemapping.png | Bin 316 -> 0 bytes .../img/new_icon_mappedentity.png | Bin 682 -> 0 bytes .../img/new_icon_mappedsuperclass.png | Bin 681 -> 0 bytes .../img/new_icon_onetomanymapping.png | Bin 325 -> 0 bytes .../img/new_icon_onetoonemapping.png | Bin 270 -> 0 bytes .../img/new_icon_transientmapping.png | Bin 303 -> 0 bytes .../img/new_icon_versionmapping.png | Bin 373 -> 0 bytes .../img/new_jpa_facet_task.png | Bin 27810 -> 0 bytes .../img/new_jpa_perspective_button.png | Bin 387 -> 0 bytes .../img/new_jpa_project_task.png | Bin 26056 -> 0 bytes .../org.eclipse.jpt.doc.user/img/ngrelc.png | Bin 667 -> 0 bytes .../org.eclipse.jpt.doc.user/img/ngrelr.png | Bin 615 -> 0 bytes .../org.eclipse.jpt.doc.user/img/ngrelt.png | Bin 568 -> 0 bytes .../img/persistence_outline_view.png | Bin 8746 -> 0 bytes .../img/project_properties_tasks.png | Bin 29075 -> 0 bytes .../img/quickstart_project.png | Bin 9676 -> 0 bytes .../img/secondary_tables.png | Bin 4408 -> 0 bytes .../img/select_a_wizard_entity.png | Bin 20222 -> 0 bytes .../img/select_a_wizard_jpa_project.png | Bin 20446 -> 0 bytes .../img/select_a_wizard_mapping.png | Bin 22231 -> 0 bytes .../img/select_jaxb_schema_wizard.png | Bin 20015 -> 0 bytes .../org.eclipse.jpt.doc.user/img/select_tables.png | Bin 21639 -> 0 bytes .../img/synchornize_classes.png | Bin 10643 -> 0 bytes .../img/table_associations.png | Bin 26207 -> 0 bytes .../org.eclipse.jpt.doc.user/img/table_entity.png | Bin 9169 -> 0 bytes .../img/task_entering_query.png | Bin 9338 -> 0 bytes .../img/upgrade_persistence_jpa_version.png | Bin 5208 -> 0 bytes jpa/plugins/org.eclipse.jpt.doc.user/index.xml | 668 - jpa/plugins/org.eclipse.jpt.doc.user/legal.htm | 40 - .../org.eclipse.jpt.doc.user/plugin.properties | 32 - jpa/plugins/org.eclipse.jpt.doc.user/plugin.xml | 37 - .../ref_EntityClassPage.htm | 115 - .../ref_EntityPropertiesPage.htm | 117 - .../org.eclipse.jpt.doc.user/ref_add_converter.htm | 78 - .../ref_association_cardinality.htm | 65 - .../ref_association_table.htm | 74 - .../ref_configure_jaxb_class_generation_dialog.htm | 77 - .../ref_create_custom_entities_wizard.htm | 53 - .../ref_create_jpa_entity_wizard.htm | 46 - .../ref_create_new_association_wizard.htm | 50 - .../ref_customizIndividualEntities.htm | 89 - .../ref_customizeDefaultEntityGeneration.htm | 96 - .../org.eclipse.jpt.doc.user/ref_details_orm.htm | 56 - .../ref_eclipselink_mapping_file.htm | 81 - .../org.eclipse.jpt.doc.user/ref_java_page.htm | 74 - .../ref_jaxb_schema_wizard.htm | 50 - .../org.eclipse.jpt.doc.user/ref_join_columns.htm | 50 - .../org.eclipse.jpt.doc.user/ref_jpa_facet.htm | 122 - .../ref_mapping_general.htm | 272 - .../ref_new_jpa_project.htm | 104 - .../ref_new_jpa_project_wizard.htm | 49 - .../ref_persistence_general.htm | 126 - .../ref_persistence_map_view.htm | 52 - .../ref_persistence_outline.htm | 49 - .../ref_persistence_perspective.htm | 56 - .../ref_persistence_prop_view.htm | 52 - .../ref_persistence_xmll_editor.htm | 82 - .../org.eclipse.jpt.doc.user/ref_primary_key.htm | 142 - .../ref_project_properties.htm | 98 - .../ref_schema_from_classes_page.htm | 42 - .../org.eclipse.jpt.doc.user/ref_selectTables.htm | 79 - .../ref_select_cascade_dialog.htm | 40 - .../ref_tableAssociations.htm | 78 - jpa/plugins/org.eclipse.jpt.doc.user/reference.htm | 60 - .../org.eclipse.jpt.doc.user/reference001.htm | 58 - .../org.eclipse.jpt.doc.user/reference002.htm | 39 - .../org.eclipse.jpt.doc.user/reference003.htm | 134 - .../org.eclipse.jpt.doc.user/reference004.htm | 49 - .../org.eclipse.jpt.doc.user/reference005.htm | 52 - .../org.eclipse.jpt.doc.user/reference006.htm | 122 - .../org.eclipse.jpt.doc.user/reference007.htm | 80 - .../org.eclipse.jpt.doc.user/reference008.htm | 48 - .../org.eclipse.jpt.doc.user/reference009.htm | 113 - .../org.eclipse.jpt.doc.user/reference010.htm | 47 - .../org.eclipse.jpt.doc.user/reference011.htm | 82 - .../org.eclipse.jpt.doc.user/reference012.htm | 71 - .../org.eclipse.jpt.doc.user/reference013.htm | 98 - .../org.eclipse.jpt.doc.user/reference014.htm | 106 - .../org.eclipse.jpt.doc.user/reference015.htm | 116 - .../org.eclipse.jpt.doc.user/reference016.htm | 76 - .../org.eclipse.jpt.doc.user/reference017.htm | 46 - .../org.eclipse.jpt.doc.user/reference018.htm | 183 - .../org.eclipse.jpt.doc.user/reference019.htm | 221 - .../org.eclipse.jpt.doc.user/reference020.htm | 185 - .../org.eclipse.jpt.doc.user/reference021.htm | 241 - .../org.eclipse.jpt.doc.user/reference022.htm | 170 - .../org.eclipse.jpt.doc.user/reference023.htm | 143 - .../org.eclipse.jpt.doc.user/reference024.htm | 41 - .../org.eclipse.jpt.doc.user/reference025.htm | 46 - .../org.eclipse.jpt.doc.user/reference026.htm | 46 - .../org.eclipse.jpt.doc.user/reference027.htm | 108 - .../org.eclipse.jpt.doc.user/reference028.htm | 49 - .../org.eclipse.jpt.doc.user/reference029.htm | 67 - .../org.eclipse.jpt.doc.user/reference030.htm | 46 - .../org.eclipse.jpt.doc.user/reference031.htm | 125 - .../org.eclipse.jpt.doc.user/reference032.htm | 62 - .../org.eclipse.jpt.doc.user/reference033.htm | 53 - .../task_add_persistence.htm | 60 - .../task_additonal_tables.htm | 84 - .../task_create_jpa_entity.htm | 160 - .../task_create_new_project.htm | 141 - .../task_generate_classes_from_schema.htm | 55 - .../task_generating_schema_from_classes.htm | 74 - .../org.eclipse.jpt.doc.user/task_inheritance.htm | 138 - .../org.eclipse.jpt.doc.user/task_manage_orm.htm | 64 - .../task_manage_persistence.htm | 222 - .../org.eclipse.jpt.doc.user/task_mapping.htm | 77 - jpa/plugins/org.eclipse.jpt.doc.user/tasks.htm | 81 - jpa/plugins/org.eclipse.jpt.doc.user/tasks001.htm | 85 - jpa/plugins/org.eclipse.jpt.doc.user/tasks002.htm | 74 - jpa/plugins/org.eclipse.jpt.doc.user/tasks003.htm | 43 - jpa/plugins/org.eclipse.jpt.doc.user/tasks004.htm | 58 - jpa/plugins/org.eclipse.jpt.doc.user/tasks005.htm | 66 - jpa/plugins/org.eclipse.jpt.doc.user/tasks006.htm | 96 - jpa/plugins/org.eclipse.jpt.doc.user/tasks007.htm | 70 - jpa/plugins/org.eclipse.jpt.doc.user/tasks008.htm | 84 - jpa/plugins/org.eclipse.jpt.doc.user/tasks009.htm | 65 - jpa/plugins/org.eclipse.jpt.doc.user/tasks010.htm | 183 - jpa/plugins/org.eclipse.jpt.doc.user/tasks011.htm | 97 - jpa/plugins/org.eclipse.jpt.doc.user/tasks012.htm | 91 - jpa/plugins/org.eclipse.jpt.doc.user/tasks013.htm | 176 - jpa/plugins/org.eclipse.jpt.doc.user/tasks014.htm | 179 - jpa/plugins/org.eclipse.jpt.doc.user/tasks015.htm | 167 - jpa/plugins/org.eclipse.jpt.doc.user/tasks016.htm | 197 - jpa/plugins/org.eclipse.jpt.doc.user/tasks017.htm | 146 - jpa/plugins/org.eclipse.jpt.doc.user/tasks018.htm | 66 - jpa/plugins/org.eclipse.jpt.doc.user/tasks019.htm | 136 - jpa/plugins/org.eclipse.jpt.doc.user/tasks020.htm | 40 - jpa/plugins/org.eclipse.jpt.doc.user/tasks021.htm | 95 - jpa/plugins/org.eclipse.jpt.doc.user/tasks022.htm | 61 - jpa/plugins/org.eclipse.jpt.doc.user/tasks023.htm | 54 - jpa/plugins/org.eclipse.jpt.doc.user/tasks024.htm | 92 - jpa/plugins/org.eclipse.jpt.doc.user/tasks025.htm | 50 - jpa/plugins/org.eclipse.jpt.doc.user/tasks026.htm | 63 - .../org.eclipse.jpt.doc.user/tips_and_tricks.htm | 68 - jpa/plugins/org.eclipse.jpt.doc.user/toc.xml | 155 - jpa/plugins/org.eclipse.jpt.doc.user/whats_new.htm | 50 - .../org.eclipse.jpt.doc.user/whats_new001.htm | 39 - .../org.eclipse.jpt.doc.user/whats_new002.htm | 51 - .../org.eclipse.jpt.doc.user/whats_new003.htm | 63 - .../org.eclipse.jpt.doc.user/whats_new004.htm | 41 - .../org.eclipse.jpt.doc.user/whats_new005.htm | 41 - .../org.eclipse.jpt.doc.user/whats_new006.htm | 39 - .../org.eclipse.jpt.eclipselink.branding/.project | 5 - .../.project | 5 - .../org.eclipse.jpt.eclipselink.core/.project | 5 - .../.project | 5 - .../org.eclipse.jpt.eclipselink.ui/.project | 5 - jpa/plugins/org.eclipse.jpt.gen/.project | 5 - .../org.eclipse.jpt.jaxb.core.schemagen/.project | 5 - jpa/plugins/org.eclipse.jpt.jaxb.ui/.project | 5 - .../org.eclipse.jpt.jpa.branding/.cvsignore | 2 - jpa/plugins/org.eclipse.jpt.jpa.branding/.project | 22 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../META-INF/MANIFEST.MF | 7 - .../org.eclipse.jpt.jpa.branding/about.html | 34 - jpa/plugins/org.eclipse.jpt.jpa.branding/about.ini | 44 - .../org.eclipse.jpt.jpa.branding/about.mappings | 6 - .../org.eclipse.jpt.jpa.branding/about.properties | 24 - .../org.eclipse.jpt.jpa.branding/build.properties | 18 - .../org.eclipse.jpt.jpa.branding/component.xml | 14 - .../icons/WTP_icon_x32_v2.png | Bin 5616 -> 0 bytes .../org.eclipse.jpt.jpa.branding/plugin.properties | 13 - jpa/plugins/org.eclipse.jpt.jpa.core/.classpath | 13 - jpa/plugins/org.eclipse.jpt.jpa.core/.cvsignore | 6 - jpa/plugins/org.eclipse.jpt.jpa.core/.project | 28 - .../org.eclipse.jpt.jpa.core/META-INF/MANIFEST.MF | 97 - jpa/plugins/org.eclipse.jpt.jpa.core/about.html | 34 - .../org.eclipse.jpt.jpa.core/build.properties | 22 - jpa/plugins/org.eclipse.jpt.jpa.core/component.xml | 12 - .../model/DaliEmfFormatter.xml | 274 - .../org.eclipse.jpt.jpa.core/model/common.ecore | 14 - .../model/jpaResourceModels.genmodel | 513 - .../org.eclipse.jpt.jpa.core/model/orm.ecore | 578 - .../model/persistence.ecore | 84 - .../org.eclipse.jpt.jpa.core/plugin.properties | 59 - jpa/plugins/org.eclipse.jpt.jpa.core/plugin.xml | 679 - .../property_files/jpa_core.properties | 49 - .../property_files/jpa_core_refactoring.properties | 61 - .../property_files/jpa_validation.properties | 230 - .../jpa_validation_description.properties | 23 - .../schema/jpaPlatforms.exsd | 210 - ...tityGeneratorDatabaseAnnotationNameBuilder.java | 78 - .../jpt/jpa/core/GenericJpaProjectManager.java | 1100 -- .../jpa/core/JpaAnnotationDefinitionProvider.java | 51 - .../jpt/jpa/core/JpaAnnotationProvider.java | 144 - .../org/eclipse/jpt/jpa/core/JpaDataSource.java | 81 - .../src/org/eclipse/jpt/jpa/core/JpaFacet.java | 55 - .../src/org/eclipse/jpt/jpa/core/JpaFactory.java | 270 - .../src/org/eclipse/jpt/jpa/core/JpaFile.java | 98 - .../src/org/eclipse/jpt/jpa/core/JpaNode.java | 53 - .../src/org/eclipse/jpt/jpa/core/JpaPlatform.java | 198 - .../eclipse/jpt/jpa/core/JpaPlatformFactory.java | 32 - .../eclipse/jpt/jpa/core/JpaPlatformProvider.java | 71 - .../eclipse/jpt/jpa/core/JpaPlatformVariation.java | 60 - .../src/org/eclipse/jpt/jpa/core/JpaProject.java | 548 - .../eclipse/jpt/jpa/core/JpaProjectManager.java | 74 - .../jpt/jpa/core/JpaResourceModelProvider.java | 42 - .../org/eclipse/jpt/jpa/core/JpaStructureNode.java | 64 - .../org/eclipse/jpt/jpa/core/JptJpaCorePlugin.java | 788 -- .../src/org/eclipse/jpt/jpa/core/MappingKeys.java | 44 - .../eclipse/jpt/jpa/core/ResourceDefinition.java | 33 - .../eclipse/jpt/jpa/core/context/AccessHolder.java | 52 - .../eclipse/jpt/jpa/core/context/AccessType.java | 101 - .../jpt/jpa/core/context/AssociationOverride.java | 34 - .../core/context/AssociationOverrideContainer.java | 74 - .../jpt/jpa/core/context/AttributeMapping.java | 160 - .../jpt/jpa/core/context/AttributeOverride.java | 34 - .../core/context/AttributeOverrideContainer.java | 55 - .../eclipse/jpt/jpa/core/context/BaseColumn.java | 66 - .../jpt/jpa/core/context/BaseEmbeddedMapping.java | 39 - .../jpt/jpa/core/context/BaseJoinColumn.java | 58 - .../eclipse/jpt/jpa/core/context/BasicMapping.java | 28 - .../org/eclipse/jpt/jpa/core/context/Cascade.java | 46 - .../jpt/jpa/core/context/CollectionMapping.java | 75 - .../org/eclipse/jpt/jpa/core/context/Column.java | 36 - .../jpt/jpa/core/context/ColumnMapping.java | 28 - .../eclipse/jpt/jpa/core/context/Converter.java | 33 - .../jpt/jpa/core/context/ConvertibleMapping.java | 39 - .../jpt/jpa/core/context/DiscriminatorColumn.java | 87 - .../jpt/jpa/core/context/DiscriminatorType.java | 99 - .../eclipse/jpt/jpa/core/context/Embeddable.java | 29 - .../jpt/jpa/core/context/EmbeddedIdMapping.java | 28 - .../jpt/jpa/core/context/EmbeddedMapping.java | 28 - .../org/eclipse/jpt/jpa/core/context/Entity.java | 292 - .../org/eclipse/jpt/jpa/core/context/EnumType.java | 95 - .../jpt/jpa/core/context/EnumeratedConverter.java | 36 - .../eclipse/jpt/jpa/core/context/FetchType.java | 95 - .../jpt/jpa/core/context/FetchableMapping.java | 35 - .../jpt/jpa/core/context/GeneratedValue.java | 41 - .../jpt/jpa/core/context/GenerationType.java | 103 - .../eclipse/jpt/jpa/core/context/Generator.java | 94 - .../jpt/jpa/core/context/GeneratorContainer.java | 49 - .../jpt/jpa/core/context/IdClassReference.java | 91 - .../eclipse/jpt/jpa/core/context/IdMapping.java | 33 - .../jpt/jpa/core/context/InheritanceType.java | 99 - .../eclipse/jpt/jpa/core/context/JoinColumn.java | 47 - .../jpa/core/context/JoinColumnRelationship.java | 42 - .../context/JoinColumnRelationshipStrategy.java | 77 - .../eclipse/jpt/jpa/core/context/JoinTable.java | 84 - .../jpa/core/context/JoinTableRelationship.java | 39 - .../context/JoinTableRelationshipStrategy.java | 46 - .../jpt/jpa/core/context/JpaContextNode.java | 79 - .../jpt/jpa/core/context/JpaNamedContextNode.java | 53 - .../jpt/jpa/core/context/JpaRootContextNode.java | 57 - .../eclipse/jpt/jpa/core/context/LobConverter.java | 28 - .../jpt/jpa/core/context/ManyToManyMapping.java | 28 - .../jpa/core/context/ManyToManyRelationship.java | 30 - .../jpt/jpa/core/context/ManyToOneMapping.java | 28 - .../jpa/core/context/ManyToOneRelationship.java | 28 - .../jpt/jpa/core/context/MappedByRelationship.java | 52 - .../core/context/MappedByRelationshipStrategy.java | 59 - .../jpt/jpa/core/context/MappedSuperclass.java | 28 - .../eclipse/jpt/jpa/core/context/MappingFile.java | 83 - .../MappingFilePersistenceUnitDefaults.java | 61 - .../MappingFilePersistenceUnitMetadata.java | 47 - .../jpt/jpa/core/context/MappingFileRoot.java | 60 - .../jpt/jpa/core/context/MappingRelationship.java | 54 - .../jpa/core/context/MultiRelationshipMapping.java | 28 - .../eclipse/jpt/jpa/core/context/NamedColumn.java | 72 - .../jpt/jpa/core/context/NamedNativeQuery.java | 46 - .../eclipse/jpt/jpa/core/context/NamedQuery.java | 28 - .../jpt/jpa/core/context/OneToManyMapping.java | 28 - .../jpa/core/context/OneToManyRelationship.java | 30 - .../jpt/jpa/core/context/OneToOneMapping.java | 28 - .../jpt/jpa/core/context/OneToOneRelationship.java | 31 - .../jpt/jpa/core/context/OptionalMapping.java | 41 - .../eclipse/jpt/jpa/core/context/Orderable.java | 44 - .../jpt/jpa/core/context/OverrideContainer.java | 215 - .../jpt/jpa/core/context/OverrideRelationship.java | 37 - .../eclipse/jpt/jpa/core/context/Override_.java | 39 - .../jpt/jpa/core/context/PersistentAttribute.java | 34 - .../jpt/jpa/core/context/PersistentType.java | 210 - .../jpt/jpa/core/context/PrimaryKeyJoinColumn.java | 28 - .../context/PrimaryKeyJoinColumnRelationship.java | 45 - .../PrimaryKeyJoinColumnRelationshipStrategy.java | 82 - .../org/eclipse/jpt/jpa/core/context/Query.java | 92 - .../jpt/jpa/core/context/QueryContainer.java | 112 - .../eclipse/jpt/jpa/core/context/QueryHint.java | 34 - .../jpt/jpa/core/context/ReadOnlyAccessHolder.java | 36 - .../core/context/ReadOnlyAssociationOverride.java | 29 - .../core/context/ReadOnlyAttributeOverride.java | 27 - .../jpt/jpa/core/context/ReadOnlyBaseColumn.java | 90 - .../jpa/core/context/ReadOnlyBaseJoinColumn.java | 62 - .../jpt/jpa/core/context/ReadOnlyColumn.java | 61 - .../jpt/jpa/core/context/ReadOnlyJoinColumn.java | 44 - .../context/ReadOnlyJoinColumnRelationship.java | 53 - .../ReadOnlyJoinColumnRelationshipStrategy.java | 110 - .../jpt/jpa/core/context/ReadOnlyJoinTable.java | 70 - .../context/ReadOnlyJoinTableRelationship.java | 50 - .../ReadOnlyJoinTableRelationshipStrategy.java | 43 - .../jpt/jpa/core/context/ReadOnlyNamedColumn.java | 82 - .../jpt/jpa/core/context/ReadOnlyOverride.java | 40 - .../core/context/ReadOnlyOverrideRelationship.java | 29 - .../core/context/ReadOnlyPersistentAttribute.java | 96 - .../core/context/ReadOnlyPrimaryKeyJoinColumn.java | 25 - .../jpa/core/context/ReadOnlyReferenceTable.java | 72 - .../jpt/jpa/core/context/ReadOnlyRelationship.java | 74 - .../core/context/ReadOnlyRelationshipStrategy.java | 44 - .../jpa/core/context/ReadOnlySecondaryTable.java | 74 - .../jpt/jpa/core/context/ReadOnlyTable.java | 97 - .../jpa/core/context/ReadOnlyUniqueConstraint.java | 39 - .../jpt/jpa/core/context/ReferenceTable.java | 72 - .../eclipse/jpt/jpa/core/context/Relationship.java | 42 - .../jpt/jpa/core/context/RelationshipMapping.java | 70 - .../jpt/jpa/core/context/RelationshipStrategy.java | 78 - .../jpt/jpa/core/context/SecondaryTable.java | 61 - .../jpt/jpa/core/context/SequenceGenerator.java | 43 - .../core/context/SingleRelationshipMapping.java | 28 - .../org/eclipse/jpt/jpa/core/context/Table.java | 88 - .../jpt/jpa/core/context/TableGenerator.java | 136 - .../jpt/jpa/core/context/TemporalConverter.java | 32 - .../eclipse/jpt/jpa/core/context/TemporalType.java | 99 - .../jpt/jpa/core/context/TransientMapping.java | 29 - .../eclipse/jpt/jpa/core/context/TypeMapping.java | 200 - .../jpt/jpa/core/context/UniqueConstraint.java | 75 - .../jpt/jpa/core/context/VersionMapping.java | 31 - .../core/context/VirtualAssociationOverride.java | 29 - .../jpa/core/context/VirtualAttributeOverride.java | 27 - .../jpt/jpa/core/context/VirtualBaseColumn.java | 28 - .../jpa/core/context/VirtualBaseJoinColumn.java | 25 - .../jpt/jpa/core/context/VirtualColumn.java | 40 - .../jpt/jpa/core/context/VirtualJoinColumn.java | 25 - .../context/VirtualJoinColumnRelationship.java | 26 - .../VirtualJoinColumnRelationshipStrategy.java | 30 - .../jpt/jpa/core/context/VirtualJoinTable.java | 34 - .../core/context/VirtualJoinTableRelationship.java | 26 - .../VirtualJoinTableRelationshipStrategy.java | 25 - .../jpt/jpa/core/context/VirtualNamedColumn.java | 31 - .../jpt/jpa/core/context/VirtualOverride.java | 32 - .../core/context/VirtualOverrideRelationship.java | 28 - .../core/context/VirtualPrimaryKeyJoinColumn.java | 25 - .../jpa/core/context/VirtualReferenceTable.java | 32 - .../jpt/jpa/core/context/VirtualRelationship.java | 27 - .../core/context/VirtualRelationshipStrategy.java | 25 - .../jpa/core/context/VirtualSecondaryTable.java | 31 - .../eclipse/jpt/jpa/core/context/VirtualTable.java | 30 - .../jpa/core/context/VirtualUniqueConstraint.java | 28 - .../jpt/jpa/core/context/XmlContextNode.java | 40 - .../org/eclipse/jpt/jpa/core/context/XmlFile.java | 34 - .../DefaultJavaAttributeMappingDefinition.java | 20 - .../eclipse/jpt/jpa/core/context/java/JarFile.java | 77 - .../core/context/java/JavaAssociationOverride.java | 35 - .../java/JavaAssociationOverrideContainer.java | 49 - .../core/context/java/JavaAttributeMapping.java | 42 - .../java/JavaAttributeMappingDefinition.java | 61 - .../core/context/java/JavaAttributeOverride.java | 35 - .../java/JavaAttributeOverrideContainer.java | 49 - .../jpt/jpa/core/context/java/JavaBaseColumn.java | 51 - .../core/context/java/JavaBaseEmbeddedMapping.java | 30 - .../jpa/core/context/java/JavaBaseJoinColumn.java | 49 - .../jpa/core/context/java/JavaBasicMapping.java | 31 - .../jpt/jpa/core/context/java/JavaCascade.java | 30 - .../core/context/java/JavaCollectionMapping.java | 27 - .../jpt/jpa/core/context/java/JavaColumn.java | 40 - .../jpa/core/context/java/JavaColumnMapping.java | 30 - .../jpt/jpa/core/context/java/JavaConverter.java | 143 - .../core/context/java/JavaConvertibleMapping.java | 27 - .../core/context/java/JavaDiscriminatorColumn.java | 44 - .../jpt/jpa/core/context/java/JavaEmbeddable.java | 31 - .../core/context/java/JavaEmbeddedIdMapping.java | 31 - .../jpa/core/context/java/JavaEmbeddedMapping.java | 31 - .../jpt/jpa/core/context/java/JavaEntity.java | 64 - .../core/context/java/JavaEnumeratedConverter.java | 57 - .../jpa/core/context/java/JavaGeneratedValue.java | 38 - .../jpt/jpa/core/context/java/JavaGenerator.java | 35 - .../core/context/java/JavaGeneratorContainer.java | 47 - .../core/context/java/JavaIdClassReference.java | 35 - .../jpt/jpa/core/context/java/JavaIdMapping.java | 36 - .../jpt/jpa/core/context/java/JavaJoinColumn.java | 40 - .../context/java/JavaJoinColumnRelationship.java | 30 - .../java/JavaJoinColumnRelationshipStrategy.java | 38 - .../jpt/jpa/core/context/java/JavaJoinTable.java | 46 - .../context/java/JavaJoinTableRelationship.java | 30 - .../java/JavaJoinTableRelationshipStrategy.java | 37 - .../jpa/core/context/java/JavaJpaContextNode.java | 51 - .../jpa/core/context/java/JavaLobConverter.java | 57 - .../core/context/java/JavaManyToManyMapping.java | 35 - .../context/java/JavaManyToManyRelationship.java | 32 - .../core/context/java/JavaManyToOneMapping.java | 33 - .../context/java/JavaManyToOneRelationship.java | 31 - .../context/java/JavaMappedByRelationship.java | 35 - .../java/JavaMappedByRelationshipStrategy.java | 30 - .../core/context/java/JavaMappedSuperclass.java | 33 - .../java/JavaMappingJoinColumnRelationship.java | 26 - .../java/JavaMappingJoinTableRelationship.java | 26 - .../core/context/java/JavaMappingRelationship.java | 30 - .../context/java/JavaMultiRelationshipMapping.java | 30 - .../jpt/jpa/core/context/java/JavaNamedColumn.java | 61 - .../core/context/java/JavaNamedNativeQuery.java | 35 - .../jpt/jpa/core/context/java/JavaNamedQuery.java | 35 - .../core/context/java/JavaOneToManyMapping.java | 35 - .../context/java/JavaOneToManyRelationship.java | 32 - .../jpa/core/context/java/JavaOneToOneMapping.java | 35 - .../context/java/JavaOneToOneRelationship.java | 33 - .../jpt/jpa/core/context/java/JavaOrderable.java | 30 - .../jpt/jpa/core/context/java/JavaOverride.java | 40 - .../core/context/java/JavaOverrideContainer.java | 96 - .../context/java/JavaOverrideRelationship.java | 31 - .../core/context/java/JavaPersistentAttribute.java | 169 - .../jpa/core/context/java/JavaPersistentType.java | 56 - .../context/java/JavaPrimaryKeyJoinColumn.java | 31 - .../java/JavaPrimaryKeyJoinColumnRelationship.java | 31 - ...vaPrimaryKeyJoinColumnRelationshipStrategy.java | 34 - .../jpt/jpa/core/context/java/JavaQuery.java | 49 - .../jpa/core/context/java/JavaQueryContainer.java | 54 - .../jpt/jpa/core/context/java/JavaQueryHint.java | 31 - .../java/JavaReadOnlyAssociationOverride.java | 27 - .../java/JavaReadOnlyAttributeOverride.java | 27 - .../core/context/java/JavaReadOnlyOverride.java | 27 - .../context/java/JavaReadOnlyRelationship.java | 28 - .../java/JavaReadOnlyRelationshipStrategy.java | 27 - .../context/java/JavaReadOnlyUniqueConstraint.java | 27 - .../jpa/core/context/java/JavaReferenceTable.java | 44 - .../jpa/core/context/java/JavaRelationship.java | 31 - .../core/context/java/JavaRelationshipMapping.java | 45 - .../context/java/JavaRelationshipStrategy.java | 30 - .../jpa/core/context/java/JavaSecondaryTable.java | 43 - .../core/context/java/JavaSequenceGenerator.java | 31 - .../java/JavaSingleRelationshipMapping.java | 31 - .../jpa/core/context/java/JavaStructureNodes.java | 36 - .../jpt/jpa/core/context/java/JavaTable.java | 43 - .../jpa/core/context/java/JavaTableGenerator.java | 36 - .../core/context/java/JavaTemporalConverter.java | 57 - .../core/context/java/JavaTransientMapping.java | 31 - .../jpt/jpa/core/context/java/JavaTypeMapping.java | 47 - .../context/java/JavaTypeMappingDefinition.java | 53 - .../core/context/java/JavaUniqueConstraint.java | 31 - .../jpa/core/context/java/JavaVersionMapping.java | 31 - .../java/JavaVirtualAssociationOverride.java | 31 - .../context/java/JavaVirtualAttributeOverride.java | 31 - .../jpa/core/context/java/JavaVirtualColumn.java | 46 - .../core/context/java/JavaVirtualJoinColumn.java | 33 - .../java/JavaVirtualJoinColumnRelationship.java | 28 - .../JavaVirtualJoinColumnRelationshipStrategy.java | 31 - .../core/context/java/JavaVirtualJoinTable.java | 41 - .../java/JavaVirtualJoinTableRelationship.java | 28 - .../JavaVirtualJoinTableRelationshipStrategy.java | 27 - .../jpa/core/context/java/JavaVirtualOverride.java | 29 - .../java/JavaVirtualOverrideRelationship.java | 28 - .../core/context/java/JavaVirtualRelationship.java | 27 - .../java/JavaVirtualRelationshipStrategy.java | 27 - .../context/java/JavaVirtualUniqueConstraint.java | 33 - .../jpt/jpa/core/context/orm/EntityMappings.java | 200 - .../core/context/orm/MappingFileDefinition.java | 31 - .../orm/NullOrmAttributeMappingDefinition.java | 62 - .../core/context/orm/OrmAssociationOverride.java | 35 - .../orm/OrmAssociationOverrideContainer.java | 52 - .../jpa/core/context/orm/OrmAttributeMapping.java | 115 - .../context/orm/OrmAttributeMappingDefinition.java | 47 - .../jpa/core/context/orm/OrmAttributeOverride.java | 35 - .../context/orm/OrmAttributeOverrideContainer.java | 54 - .../jpt/jpa/core/context/orm/OrmBaseColumn.java | 50 - .../core/context/orm/OrmBaseEmbeddedMapping.java | 33 - .../jpa/core/context/orm/OrmBaseJoinColumn.java | 48 - .../jpt/jpa/core/context/orm/OrmBasicMapping.java | 31 - .../jpt/jpa/core/context/orm/OrmCascade.java | 31 - .../jpa/core/context/orm/OrmCollectionMapping.java | 27 - .../jpt/jpa/core/context/orm/OrmColumn.java | 48 - .../jpt/jpa/core/context/orm/OrmColumnMapping.java | 30 - .../jpt/jpa/core/context/orm/OrmConverter.java | 116 - .../core/context/orm/OrmConvertibleMapping.java | 28 - .../core/context/orm/OrmDiscriminatorColumn.java | 47 - .../jpt/jpa/core/context/orm/OrmEmbeddable.java | 36 - .../jpa/core/context/orm/OrmEmbeddedIdMapping.java | 31 - .../jpa/core/context/orm/OrmEmbeddedMapping.java | 31 - .../jpt/jpa/core/context/orm/OrmEntity.java | 98 - .../core/context/orm/OrmEnumeratedConverter.java | 63 - .../jpa/core/context/orm/OrmGeneratedValue.java | 38 - .../jpt/jpa/core/context/orm/OrmGenerator.java | 35 - .../core/context/orm/OrmGeneratorContainer.java | 43 - .../jpa/core/context/orm/OrmIdClassReference.java | 62 - .../jpt/jpa/core/context/orm/OrmIdMapping.java | 36 - .../jpt/jpa/core/context/orm/OrmJoinColumn.java | 41 - .../context/orm/OrmJoinColumnRelationship.java | 34 - .../orm/OrmJoinColumnRelationshipStrategy.java | 38 - .../jpt/jpa/core/context/orm/OrmJoinTable.java | 42 - .../core/context/orm/OrmJoinTableRelationship.java | 33 - .../orm/OrmJoinTableRelationshipStrategy.java | 37 - .../jpt/jpa/core/context/orm/OrmLobConverter.java | 63 - .../jpa/core/context/orm/OrmManyToManyMapping.java | 33 - .../context/orm/OrmManyToManyRelationship.java | 33 - .../jpa/core/context/orm/OrmManyToOneMapping.java | 33 - .../core/context/orm/OrmManyToOneRelationship.java | 31 - .../core/context/orm/OrmMappedByRelationship.java | 33 - .../orm/OrmMappedByRelationshipStrategy.java | 30 - .../jpa/core/context/orm/OrmMappedSuperclass.java | 38 - .../orm/OrmMappingJoinColumnRelationship.java | 25 - .../orm/OrmMappingJoinTableRelationship.java | 26 - .../core/context/orm/OrmMappingRelationship.java | 30 - .../context/orm/OrmMultiRelationshipMapping.java | 31 - .../jpt/jpa/core/context/orm/OrmNamedColumn.java | 62 - .../jpa/core/context/orm/OrmNamedNativeQuery.java | 35 - .../jpt/jpa/core/context/orm/OrmNamedQuery.java | 35 - .../jpa/core/context/orm/OrmOneToManyMapping.java | 33 - .../core/context/orm/OrmOneToManyRelationship.java | 33 - .../jpa/core/context/orm/OrmOneToOneMapping.java | 33 - .../core/context/orm/OrmOneToOneRelationship.java | 34 - .../jpt/jpa/core/context/orm/OrmOrderable.java | 31 - .../jpt/jpa/core/context/orm/OrmOverride.java | 36 - .../jpa/core/context/orm/OrmOverrideContainer.java | 55 - .../core/context/orm/OrmOverrideRelationship.java | 34 - .../context/orm/OrmPersistenceUnitDefaults.java | 67 - .../context/orm/OrmPersistenceUnitMetadata.java | 50 - .../core/context/orm/OrmPersistentAttribute.java | 80 - .../jpa/core/context/orm/OrmPersistentType.java | 195 - .../core/context/orm/OrmPrimaryKeyJoinColumn.java | 34 - .../orm/OrmPrimaryKeyJoinColumnRelationship.java | 33 - ...rmPrimaryKeyJoinColumnRelationshipStrategy.java | 34 - .../eclipse/jpt/jpa/core/context/orm/OrmQuery.java | 49 - .../jpa/core/context/orm/OrmQueryContainer.java | 50 - .../jpt/jpa/core/context/orm/OrmQueryHint.java | 32 - .../orm/OrmReadOnlyAssociationOverride.java | 27 - .../context/orm/OrmReadOnlyAttributeOverride.java | 27 - .../jpa/core/context/orm/OrmReadOnlyOverride.java | 28 - .../orm/OrmReadOnlyPersistentAttribute.java | 92 - .../core/context/orm/OrmReadOnlyRelationship.java | 32 - .../orm/OrmReadOnlyRelationshipStrategy.java | 28 - .../context/orm/OrmReadOnlyUniqueConstraint.java | 31 - .../jpa/core/context/orm/OrmReferenceTable.java | 40 - .../jpt/jpa/core/context/orm/OrmRelationship.java | 31 - .../core/context/orm/OrmRelationshipMapping.java | 35 - .../core/context/orm/OrmRelationshipStrategy.java | 30 - .../jpa/core/context/orm/OrmSecondaryTable.java | 46 - .../jpa/core/context/orm/OrmSequenceGenerator.java | 31 - .../context/orm/OrmSingleRelationshipMapping.java | 31 - .../jpa/core/context/orm/OrmStructureNodes.java | 35 - .../eclipse/jpt/jpa/core/context/orm/OrmTable.java | 40 - .../jpa/core/context/orm/OrmTableGenerator.java | 42 - .../jpa/core/context/orm/OrmTemporalConverter.java | 63 - .../jpa/core/context/orm/OrmTransientMapping.java | 31 - .../jpt/jpa/core/context/orm/OrmTypeMapping.java | 159 - .../core/context/orm/OrmTypeMappingDefinition.java | 49 - .../jpa/core/context/orm/OrmUniqueConstraint.java | 31 - .../jpa/core/context/orm/OrmVersionMapping.java | 31 - .../context/orm/OrmVirtualAssociationOverride.java | 31 - .../context/orm/OrmVirtualAttributeOverride.java | 31 - .../jpt/jpa/core/context/orm/OrmVirtualColumn.java | 47 - .../jpa/core/context/orm/OrmVirtualJoinColumn.java | 34 - .../orm/OrmVirtualJoinColumnRelationship.java | 28 - .../OrmVirtualJoinColumnRelationshipStrategy.java | 31 - .../jpa/core/context/orm/OrmVirtualJoinTable.java | 42 - .../orm/OrmVirtualJoinTableRelationship.java | 28 - .../OrmVirtualJoinTableRelationshipStrategy.java | 27 - .../jpa/core/context/orm/OrmVirtualOverride.java | 29 - .../orm/OrmVirtualOverrideRelationship.java | 28 - .../orm/OrmVirtualPrimaryKeyJoinColumn.java | 29 - .../core/context/orm/OrmVirtualRelationship.java | 27 - .../orm/OrmVirtualRelationshipStrategy.java | 27 - .../core/context/orm/OrmVirtualSecondaryTable.java | 34 - .../context/orm/OrmVirtualUniqueConstraint.java | 33 - .../eclipse/jpt/jpa/core/context/orm/OrmXml.java | 43 - .../core/context/orm/OrmXmlContextNodeFactory.java | 183 - .../jpt/jpa/core/context/orm/OrmXmlDefinition.java | 54 - .../UnsupportedOrmAttributeMappingDefinition.java | 62 - .../jpt/jpa/core/context/persistence/ClassRef.java | 129 - .../jpa/core/context/persistence/JarFileRef.java | 93 - .../core/context/persistence/MappingFileRef.java | 190 - .../jpa/core/context/persistence/Persistence.java | 92 - .../persistence/PersistenceStructureNodes.java | 37 - .../core/context/persistence/PersistenceUnit.java | 852 -- .../persistence/PersistenceUnitProperties.java | 81 - .../PersistenceUnitTransactionType.java | 64 - .../core/context/persistence/PersistenceXml.java | 42 - .../PersistenceXmlContextNodeFactory.java | 69 - .../persistence/PersistenceXmlDefinition.java | 33 - .../persistence/PersistentTypeContainer.java | 45 - .../AbstractJpaAnnotationDefinitionProvider.java | 103 - .../jpt/jpa/core/internal/AbstractJpaFactory.java | 402 - .../jpt/jpa/core/internal/AbstractJpaNode.java | 223 - .../core/internal/AbstractJpaPlatformProvider.java | 149 - .../jpt/jpa/core/internal/AbstractJpaProject.java | 1944 --- ...tityGeneratorDatabaseAnnotationNameBuilder.java | 55 - .../GenericJpaAnnotationDefinitionProvider.java | 161 - .../internal/GenericJpaAnnotationProvider.java | 194 - .../jpt/jpa/core/internal/GenericJpaPlatform.java | 198 - .../core/internal/GenericJpaPlatformFactory.java | 96 - .../core/internal/GenericJpaPlatformProvider.java | 159 - .../core/internal/JarResourceModelProvider.java | 61 - .../JavaPackageInfoResourceModelProvider.java | 57 - .../core/internal/JavaResourceModelProvider.java | 57 - .../jpt/jpa/core/internal/JpaPlatformTester.java | 60 - .../eclipse/jpt/jpa/core/internal/JpaTester.java | 52 - .../jpt/jpa/core/internal/JptCoreMessages.java | 69 - .../core/internal/OrmResourceModelProvider.java | 50 - .../internal/PersistenceResourceModelProvider.java | 51 - .../jpa/core/internal/ProjectAdapterFactory.java | 62 - .../jpa/core/internal/SimpleJpaProjectConfig.java | 94 - .../internal/context/AbstractJpaContextNode.java | 143 - .../internal/context/AbstractXmlContextNode.java | 38 - .../internal/context/AttributeMappingTools.java | 67 - .../context/BaseColumnTextRangeResolver.java | 21 - .../context/BaseJoinColumnTextRangeResolver.java | 21 - .../internal/context/ContextContainerTools.java | 148 - .../internal/context/EntityTextRangeResolver.java | 18 - .../context/JoinColumnTextRangeResolver.java | 20 - .../jpa/core/internal/context/JptValidator.java | 23 - .../jpa/core/internal/context/MappingTools.java | 432 - .../context/NamedColumnTextRangeResolver.java | 21 - .../context/OverrideTextRangeResolver.java | 21 - .../context/PersistentAttributePropertyTester.java | 47 - .../PersistentAttributeTextRangeResolver.java | 21 - .../context/PrimaryKeyTextRangeResolver.java | 24 - .../internal/context/TableTextRangeResolver.java | 25 - .../context/TypeMappingTextRangeResolver.java | 21 - .../core/internal/context/TypeMappingTools.java | 119 - .../context/java/AbstractJavaAttributeMapping.java | 319 - .../context/java/AbstractJavaBaseColumn.java | 361 - .../java/AbstractJavaBaseEmbeddedMapping.java | 319 - .../context/java/AbstractJavaBasicMapping.java | 383 - .../java/AbstractJavaBasicMappingDefinition.java | 67 - .../context/java/AbstractJavaEmbeddable.java | 48 - .../AbstractJavaEmbeddedMappingDefinition.java | 63 - .../internal/context/java/AbstractJavaEntity.java | 1816 --- .../context/java/AbstractJavaGenerator.java | 225 - .../context/java/AbstractJavaIdMapping.java | 476 - .../java/AbstractJavaIdMappingDefinition.java | 65 - ...AbstractJavaJoinColumnRelationshipStrategy.java | 348 - .../AbstractJavaJoinTableRelationshipStrategy.java | 196 - .../context/java/AbstractJavaJpaContextNode.java | 72 - .../java/AbstractJavaManyToManyMapping.java | 51 - .../AbstractJavaManyToManyMappingDefinition.java | 61 - .../context/java/AbstractJavaManyToOneMapping.java | 50 - .../AbstractJavaManyToOneMappingDefinition.java | 61 - .../context/java/AbstractJavaMappedSuperclass.java | 112 - .../java/AbstractJavaMappingRelationship.java | 132 - .../java/AbstractJavaMultiRelationshipMapping.java | 780 -- .../context/java/AbstractJavaNamedColumn.java | 292 - .../context/java/AbstractJavaOneToManyMapping.java | 86 - .../AbstractJavaOneToManyMappingDefinition.java | 65 - .../context/java/AbstractJavaOneToOneMapping.java | 86 - .../AbstractJavaOneToOneMappingDefinition.java | 65 - .../context/java/AbstractJavaOverride.java | 215 - .../java/AbstractJavaPersistentAttribute.java | 777 -- .../context/java/AbstractJavaPersistentType.java | 722 -- .../internal/context/java/AbstractJavaQuery.java | 231 - .../java/AbstractJavaReadOnlyUniqueConstraint.java | 53 - .../java/AbstractJavaRelationshipMapping.java | 347 - .../java/AbstractJavaSequenceGenerator.java | 135 - .../AbstractJavaSingleRelationshipMapping.java | 156 - .../internal/context/java/AbstractJavaTable.java | 584 - .../context/java/AbstractJavaTypeMapping.java | 293 - .../context/java/AbstractJavaVersionMapping.java | 294 - .../java/AbstractJavaVersionMappingDefinition.java | 59 - .../java/AbstractJavaVirtualBaseColumn.java | 238 - .../java/AbstractJavaVirtualNamedColumn.java | 141 - .../context/java/AbstractJavaVirtualOverride.java | 63 - .../java/AbstractJavaVirtualReferenceTable.java | 200 - .../context/java/AbstractJavaVirtualTable.java | 315 - .../context/java/GenericJavaIdClassReference.java | 239 - .../java/GenericJavaManyToManyRelationship.java | 198 - .../java/GenericJavaManyToOneRelationship.java | 194 - .../GenericJavaMappedByRelationshipStrategy.java | 262 - ...cJavaMappingJoinColumnRelationshipStrategy.java | 216 - .../java/GenericJavaOneToManyRelationship.java | 272 - .../java/GenericJavaOneToOneRelationship.java | 300 - ...JavaOverrideJoinColumnRelationshipStrategy.java | 249 - ...vaPrimaryKeyJoinColumnRelationshipStrategy.java | 385 - .../context/java/GenericJavaVirtualJoinTable.java | 333 - .../java/JavaBaseColumnTextRangeResolver.java | 34 - .../context/java/JavaBasicMappingDefinition.java | 34 - .../context/java/JavaEmbeddableDefinition.java | 62 - .../java/JavaEmbeddedIdMappingDefinition.java | 73 - .../java/JavaEmbeddedMappingDefinition.java | 34 - .../context/java/JavaEntityDefinition.java | 116 - .../context/java/JavaEntityTextRangeResolver.java | 44 - .../context/java/JavaIdMappingDefinition.java | 34 - .../java/JavaJoinColumnTextRangeResolver.java | 38 - .../java/JavaManyToManyMappingDefinition.java | 34 - .../java/JavaManyToOneMappingDefinition.java | 34 - .../java/JavaMappedSuperclassDefinition.java | 79 - .../JavaMappedSuperclassTextRangeResolver.java | 46 - .../java/JavaNamedColumnTextRangeResolver.java | 37 - .../internal/context/java/JavaNullTypeMapping.java | 84 - .../java/JavaOneToManyMappingDefinition.java | 34 - .../java/JavaOneToOneMappingDefinition.java | 34 - .../java/JavaOverrideTextRangeResolver.java | 37 - .../JavaPersistentAttributeTextRangeResolver.java | 33 - .../JavaPrimaryKeyJoinColumnTextRangeResolver.java | 35 - .../context/java/JavaTableTextRangeResolver.java | 45 - .../java/JavaTransientMappingDefinition.java | 65 - .../java/JavaTypeMappingTextRangeResolver.java | 33 - .../context/java/JavaVersionMappingDefinition.java | 34 - .../context/orm/AbstractEntityMappings.java | 1016 -- .../context/orm/AbstractOrmAttributeMapping.java | 419 - .../context/orm/AbstractOrmBaseColumn.java | 302 - .../orm/AbstractOrmBaseEmbeddedMapping.java | 328 - .../context/orm/AbstractOrmBasicMapping.java | 425 - .../context/orm/AbstractOrmEmbeddable.java | 102 - .../internal/context/orm/AbstractOrmEntity.java | 2285 ---- .../internal/context/orm/AbstractOrmGenerator.java | 224 - .../internal/context/orm/AbstractOrmIdMapping.java | 508 - .../AbstractOrmJoinColumnRelationshipStrategy.java | 332 - .../AbstractOrmJoinTableRelationshipStrategy.java | 194 - .../context/orm/AbstractOrmManyToManyMapping.java | 64 - .../context/orm/AbstractOrmManyToOneMapping.java | 66 - .../context/orm/AbstractOrmMappedSuperclass.java | 213 - .../orm/AbstractOrmMappingRelationship.java | 136 - .../orm/AbstractOrmMultiRelationshipMapping.java | 813 -- .../context/orm/AbstractOrmNamedColumn.java | 287 - .../context/orm/AbstractOrmOneToManyMapping.java | 99 - .../context/orm/AbstractOrmOneToOneMapping.java | 102 - .../internal/context/orm/AbstractOrmQuery.java | 239 - .../orm/AbstractOrmReadOnlyUniqueConstraint.java | 53 - .../orm/AbstractOrmRelationshipMapping.java | 418 - .../context/orm/AbstractOrmSequenceGenerator.java | 91 - .../orm/AbstractOrmSingleRelationshipMapping.java | 141 - .../internal/context/orm/AbstractOrmTable.java | 541 - .../context/orm/AbstractOrmTypeMapping.java | 497 - .../context/orm/AbstractOrmVersionMapping.java | 343 - .../context/orm/AbstractOrmVirtualBaseColumn.java | 238 - .../context/orm/AbstractOrmVirtualNamedColumn.java | 140 - .../orm/AbstractOrmVirtualReferenceTable.java | 200 - .../context/orm/AbstractOrmVirtualTable.java | 314 - .../context/orm/AbstractOrmXmlContextNode.java | 53 - .../orm/AbstractOrmXmlContextNodeFactory.java | 386 - .../context/orm/AbstractOrmXmlDefinition.java | 115 - .../context/orm/GenericOrmIdClassReference.java | 323 - .../orm/GenericOrmManyToManyRelationship.java | 172 - .../orm/GenericOrmManyToOneRelationship.java | 177 - .../GenericOrmMappedByRelationshipStrategy.java | 223 - ...icOrmMappingJoinColumnRelationshipStrategy.java | 164 - ...ricOrmMappingJoinTableRelationshipStrategy.java | 64 - .../orm/GenericOrmOneToManyRelationship.java | 241 - .../orm/GenericOrmOneToOneRelationship.java | 263 - ...cOrmOverrideJoinColumnRelationshipStrategy.java | 209 - ...rmPrimaryKeyJoinColumnRelationshipStrategy.java | 344 - .../context/orm/GenericOrmVirtualJoinTable.java | 333 - ...tualOverrideJoinColumnRelationshipStrategy.java | 333 - .../orm/GenericOrmVirtualSecondaryTable.java | 272 - .../orm/GenericOrmXmlContextNodeFactory.java | 17 - .../orm/NullOrmJoinTableRelationshipStrategy.java | 128 - .../orm/OrmBaseColumnTextRangeResolver.java | 34 - .../context/orm/OrmBasicMappingDefinition.java | 64 - .../context/orm/OrmEmbeddableDefinition.java | 67 - .../orm/OrmEmbeddedIdMappingDefinition.java | 64 - .../context/orm/OrmEmbeddedMappingDefinition.java | 64 - .../internal/context/orm/OrmEntityDefinition.java | 67 - .../context/orm/OrmEntityTextRangeResolver.java | 44 - .../context/orm/OrmIdMappingDefinition.java | 64 - .../orm/OrmJoinColumnTextRangeResolver.java | 39 - .../orm/OrmManyToManyMappingDefinition.java | 64 - .../context/orm/OrmManyToOneMappingDefinition.java | 64 - .../context/orm/OrmMappedSuperclassDefinition.java | 67 - .../orm/OrmMappedSuperclassTextRangeResolver.java | 44 - .../orm/OrmNamedColumnTextRangeResolver.java | 33 - .../context/orm/OrmOneToManyMappingDefinition.java | 64 - .../context/orm/OrmOneToOneMappingDefinition.java | 64 - .../context/orm/OrmOverrideTextRangeResolver.java | 33 - .../OrmPersistentAttributeTextRangeResolver.java | 29 - .../OrmPrimaryKeyJoinColumnTextRangeResolver.java | 35 - .../context/orm/OrmTableTextRangeResolver.java | 40 - .../context/orm/OrmTransientMappingDefinition.java | 64 - .../orm/OrmTypeMappingTextRangeResolver.java | 29 - .../context/orm/OrmVersionMappingDefinition.java | 64 - .../orm/SpecifiedOrmPersistentAttribute.java | 430 - .../context/orm/VirtualOrmPersistentAttribute.java | 585 - .../context/persistence/AbstractJarFileRef.java | 384 - .../persistence/AbstractMappingFileRef.java | 344 - .../persistence/AbstractPersistenceUnit.java | 2423 ---- .../AbstractPersistenceUnitProperties.java | 529 - .../AbstractPersistenceXmlContextNode.java | 47 - .../AbstractPersistenceXmlContextNodeFactory.java | 75 - .../AbstractPersistenceXmlDefinition.java | 38 - .../GenericPersistenceXmlContextNodeFactory.java | 29 - .../jpt/jpa/core/internal/facet/FacetTools.java | 39 - .../internal/facet/JpaFacetActionDelegate.java | 75 - .../facet/JpaFacetDataModelProperties.java | 84 - .../internal/facet/JpaFacetDataModelProvider.java | 715 -- .../facet/JpaFacetInstallDataModelProperties.java | 33 - .../facet/JpaFacetInstallDataModelProvider.java | 206 - .../internal/facet/JpaFacetInstallDelegate.java | 143 - .../internal/facet/JpaFacetUninstallDelegate.java | 28 - .../JpaFacetVersionChangeDataModelProvider.java | 114 - .../facet/JpaFacetVersionChangeDelegate.java | 35 - .../internal/facet/RuntimeChangedListener.java | 49 - .../core/internal/jpa1/GenericJpaDataSource.java | 230 - .../jpa/core/internal/jpa1/GenericJpaFactory.java | 23 - .../jpt/jpa/core/internal/jpa1/GenericJpaFile.java | 148 - .../jpa/core/internal/jpa1/GenericJpaProject.java | 28 - .../context/AbstractEntityPrimaryKeyValidator.java | 107 - .../jpa1/context/AbstractJoinTableValidator.java | 41 - ...bstractMappedSuperclassPrimaryKeyValidator.java | 53 - .../jpa1/context/AbstractNamedColumnValidator.java | 152 - .../AbstractPersistentAttributeValidator.java | 74 - .../jpa1/context/AbstractPrimaryKeyValidator.java | 618 - .../jpa1/context/AbstractTableValidator.java | 188 - .../jpa1/context/AbstractTypeMappingValidator.java | 91 - ...ociationOverrideInverseJoinColumnValidator.java | 267 - .../AssociationOverrideJoinColumnValidator.java | 269 - .../AssociationOverrideJoinTableValidator.java | 125 - .../jpa1/context/AssociationOverrideValidator.java | 52 - .../context/AttributeOverrideColumnValidator.java | 156 - .../jpa1/context/AttributeOverrideValidator.java | 52 - .../jpa1/context/BaseColumnTableValidator.java | 116 - .../jpa1/context/BaseJoinColumnValidator.java | 177 - .../CollectionTableTableDescriptionProvider.java | 12 - .../jpa1/context/DiscriminatorColumnValidator.java | 34 - .../EmbeddableOverrideDescriptionProvider.java | 22 - .../EntityPrimaryKeyJoinColumnValidator.java | 44 - .../context/EntityTableDescriptionProvider.java | 12 - .../context/GenericEntityPrimaryKeyValidator.java | 34 - ...GenericMappedSuperclassPrimaryKeyValidator.java | 33 - .../GenericPersistentAttributeValidator.java | 62 - .../jpa1/context/GenericRootContextNode.java | 294 - .../jpa1/context/GenericTypeMappingValidator.java | 44 - .../jpa1/context/InverseJoinColumnValidator.java | 104 - .../internal/jpa1/context/JoinColumnValidator.java | 104 - .../context/JoinTableTableDescriptionProvider.java | 12 - .../internal/jpa1/context/JoinTableValidator.java | 41 - .../MapKeyAttributeOverrideColumnValidator.java | 76 - .../context/MapKeyAttributeOverrideValidator.java | 47 - .../jpa1/context/MapKeyColumnValidator.java | 73 - ...appedSuperclassOverrideDescriptionProvider.java | 22 - .../jpa1/context/NamedColumnValidator.java | 51 - .../OneToOnePrimaryKeyJoinColumnValidator.java | 54 - .../internal/jpa1/context/OverrideValidator.java | 144 - .../context/PrimaryKeyJoinColumnValidator.java | 100 - ...lationshipStrategyTableDescriptionProvider.java | 29 - ...econdaryTablePrimaryKeyJoinColumnValidator.java | 136 - .../jpa1/context/SecondaryTableValidator.java | 56 - .../core/internal/jpa1/context/TableValidator.java | 51 - .../jpa1/context/java/AbstractJavaConverter.java | 51 - .../java/AbstractJavaOverrideContainer.java | 587 - .../internal/jpa1/context/java/GenericJarFile.java | 238 - .../java/GenericJavaAssociationOverride.java | 122 - .../GenericJavaAssociationOverrideContainer.java | 91 - .../context/java/GenericJavaAttributeOverride.java | 218 - .../GenericJavaAttributeOverrideContainer.java | 67 - .../jpa1/context/java/GenericJavaBasicMapping.java | 21 - .../jpa1/context/java/GenericJavaCascade.java | 255 - .../jpa1/context/java/GenericJavaColumn.java | 221 - .../java/GenericJavaDiscriminatorColumn.java | 182 - .../jpa1/context/java/GenericJavaEmbeddable.java | 39 - .../context/java/GenericJavaEmbeddedIdMapping.java | 164 - .../context/java/GenericJavaEmbeddedMapping.java | 284 - .../jpa1/context/java/GenericJavaEntity.java | 72 - .../java/GenericJavaEnumeratedConverter.java | 110 - .../context/java/GenericJavaGeneratedValue.java | 220 - .../java/GenericJavaGeneratorContainer.java | 283 - .../jpa1/context/java/GenericJavaIdMapping.java | 22 - .../jpa1/context/java/GenericJavaJoinColumn.java | 212 - .../jpa1/context/java/GenericJavaJoinTable.java | 496 - .../jpa1/context/java/GenericJavaLobConverter.java | 49 - .../context/java/GenericJavaManyToManyMapping.java | 21 - .../context/java/GenericJavaManyToOneMapping.java | 21 - .../context/java/GenericJavaMappedSuperclass.java | 25 - ...icJavaMappingJoinTableRelationshipStrategy.java | 97 - .../context/java/GenericJavaNamedNativeQuery.java | 85 - .../jpa1/context/java/GenericJavaNamedQuery.java | 27 - .../java/GenericJavaNullAttributeMapping.java | 44 - .../context/java/GenericJavaOneToManyMapping.java | 21 - .../context/java/GenericJavaOneToOneMapping.java | 21 - .../jpa1/context/java/GenericJavaOrderable.java | 486 - .../java/GenericJavaOverrideRelationship.java | 247 - .../java/GenericJavaPersistentAttribute.java | 52 - .../context/java/GenericJavaPersistentType.java | 45 - .../java/GenericJavaPrimaryKeyJoinColumn.java | 208 - .../context/java/GenericJavaQueryContainer.java | 370 - .../jpa1/context/java/GenericJavaQueryHint.java | 104 - .../context/java/GenericJavaReferenceTable.java | 317 - .../context/java/GenericJavaSecondaryTable.java | 400 - .../context/java/GenericJavaSequenceGenerator.java | 45 - .../jpa1/context/java/GenericJavaTable.java | 103 - .../context/java/GenericJavaTableGenerator.java | 567 - .../context/java/GenericJavaTemporalConverter.java | 139 - .../context/java/GenericJavaTransientMapping.java | 46 - .../context/java/GenericJavaUniqueConstraint.java | 135 - .../context/java/GenericJavaVersionMapping.java | 21 - .../GenericJavaVirtualAssociationOverride.java | 68 - .../java/GenericJavaVirtualAttributeOverride.java | 93 - .../context/java/GenericJavaVirtualColumn.java | 167 - .../context/java/GenericJavaVirtualJoinColumn.java | 102 - ...tualOverrideJoinColumnRelationshipStrategy.java | 335 - .../GenericJavaVirtualOverrideRelationship.java | 169 - .../java/GenericJavaVirtualUniqueConstraint.java | 58 - .../jpa1/context/java/NullJavaConverter.java | 48 - .../NullJavaJoinColumnRelationshipStrategy.java | 166 - .../NullJavaJoinTableRelationshipStrategy.java | 115 - .../jpa1/context/orm/AbstractOrmConverter.java | 45 - .../jpa1/context/orm/AbstractOrmOverride.java | 138 - .../context/orm/AbstractOrmOverrideContainer.java | 472 - .../context/orm/AbstractOrmVirtualOverride.java | 63 - .../jpa1/context/orm/GenericEntityMappings.java | 27 - .../context/orm/GenericOrmAssociationOverride.java | 97 - .../GenericOrmAssociationOverrideContainer.java | 93 - .../context/orm/GenericOrmAttributeOverride.java | 201 - .../orm/GenericOrmAttributeOverrideContainer.java | 76 - .../jpa1/context/orm/GenericOrmBasicMapping.java | 25 - .../jpa1/context/orm/GenericOrmCascade.java | 303 - .../jpa1/context/orm/GenericOrmColumn.java | 188 - .../context/orm/GenericOrmDiscriminatorColumn.java | 169 - .../jpa1/context/orm/GenericOrmEmbeddable.java | 31 - .../context/orm/GenericOrmEmbeddedIdMapping.java | 180 - .../context/orm/GenericOrmEmbeddedMapping.java | 304 - .../jpa1/context/orm/GenericOrmEntity.java | 82 - .../context/orm/GenericOrmEnumeratedConverter.java | 134 - .../jpa1/context/orm/GenericOrmGeneratedValue.java | 194 - .../context/orm/GenericOrmGeneratorContainer.java | 261 - .../jpa1/context/orm/GenericOrmIdMapping.java | 25 - .../jpa1/context/orm/GenericOrmJoinColumn.java | 181 - .../jpa1/context/orm/GenericOrmJoinTable.java | 511 - .../jpa1/context/orm/GenericOrmLobConverter.java | 62 - .../context/orm/GenericOrmManyToManyMapping.java | 22 - .../context/orm/GenericOrmManyToOneMapping.java | 22 - .../context/orm/GenericOrmMappedSuperclass.java | 25 - .../context/orm/GenericOrmNamedNativeQuery.java | 85 - .../jpa1/context/orm/GenericOrmNamedQuery.java | 27 - .../orm/GenericOrmNullAttributeMapping.java | 55 - .../context/orm/GenericOrmOneToManyMapping.java | 22 - .../context/orm/GenericOrmOneToOneMapping.java | 25 - .../jpa1/context/orm/GenericOrmOrderable.java | 452 - .../orm/GenericOrmOverrideRelationship.java | 249 - .../orm/GenericOrmPersistenceUnitDefaults.java | 344 - .../orm/GenericOrmPersistenceUnitMetadata.java | 191 - .../context/orm/GenericOrmPersistentAttribute.java | 79 - .../jpa1/context/orm/GenericOrmPersistentType.java | 1198 -- .../orm/GenericOrmPrimaryKeyJoinColumn.java | 173 - .../jpa1/context/orm/GenericOrmQueryContainer.java | 366 - .../jpa1/context/orm/GenericOrmQueryHint.java | 103 - .../jpa1/context/orm/GenericOrmReferenceTable.java | 304 - .../jpa1/context/orm/GenericOrmSecondaryTable.java | 418 - .../context/orm/GenericOrmSequenceGenerator.java | 44 - .../internal/jpa1/context/orm/GenericOrmTable.java | 88 - .../jpa1/context/orm/GenericOrmTableGenerator.java | 440 - .../context/orm/GenericOrmTemporalConverter.java | 150 - .../context/orm/GenericOrmTransientMapping.java | 58 - .../context/orm/GenericOrmUniqueConstraint.java | 99 - .../jpa1/context/orm/GenericOrmVersionMapping.java | 23 - .../orm/GenericOrmVirtualAssociationOverride.java | 67 - .../orm/GenericOrmVirtualAttributeOverride.java | 92 - .../jpa1/context/orm/GenericOrmVirtualColumn.java | 167 - .../context/orm/GenericOrmVirtualJoinColumn.java | 102 - .../orm/GenericOrmVirtualOverrideRelationship.java | 169 - .../orm/GenericOrmVirtualPrimaryKeyJoinColumn.java | 100 - .../orm/GenericOrmVirtualUniqueConstraint.java | 57 - .../internal/jpa1/context/orm/GenericOrmXml.java | 281 - .../jpa1/context/orm/GenericOrmXmlDefinition.java | 111 - .../jpa1/context/orm/NullOrmConverter.java | 53 - .../orm/NullOrmJoinColumnRelationshipStrategy.java | 165 - .../orm/UnsupportedOrmAttributeMapping.java | 60 - .../jpa1/context/persistence/GenericClassRef.java | 378 - .../context/persistence/GenericJarFileRef.java | 26 - .../context/persistence/GenericMappingFileRef.java | 149 - .../context/persistence/GenericPersistence.java | 302 - .../persistence/GenericPersistenceUnit.java | 25 - .../GenericPersistenceUnitProperty.java | 159 - .../context/persistence/GenericPersistenceXml.java | 251 - .../GenericPersistenceXmlDefinition.java | 54 - .../context/persistence/ImpliedMappingFileRef.java | 105 - .../BinaryAssociationOverride1_0Annotation.java | 27 - .../BinaryAssociationOverrides1_0Annotation.java | 33 - .../binary/BinaryNamedQueries1_0Annotation.java | 32 - .../java/binary/BinaryNamedQuery1_0Annotation.java | 27 - .../BinarySequenceGenerator1_0Annotation.java | 27 - .../SourceAssociationOverride1_0Annotation.java | 43 - .../SourceAssociationOverrides1_0Annotation.java | 33 - .../java/source/SourceNamedQuery1_0Annotation.java | 31 - .../SourceSequenceGenerator1_0Annotation.java | 27 - .../Generic2_0JpaAnnotationDefinitionProvider.java | 191 - .../jpa2/Generic2_0JpaPlatformFactory.java | 60 - .../jpa2/Generic2_0JpaPlatformProvider.java | 170 - .../jpa2/GenericJpaDatabaseIdentifierAdapter.java | 78 - .../core/internal/jpa2/GenericJpaFactory2_0.java | 169 - .../jpa2/GenericMetamodelSynchronizer.java | 432 - .../jpa2/context/CollectionTableValidator.java | 57 - .../jpa2/context/OrderColumnValidator.java | 43 - .../jpa2/context/SimpleMetamodelField.java | 107 - .../AbstractJavaElementCollectionMapping2_0.java | 1543 --- ...tJavaElementCollectionMappingDefinition2_0.java | 92 - .../java/AbstractJavaIdMappingDefinition2_0.java | 56 - .../jpa2/context/java/GenericJavaCacheable2_0.java | 165 - .../java/GenericJavaCollectionTable2_0.java | 178 - .../java/GenericJavaDerivedIdentity2_0.java | 198 - .../GenericJavaElementCollectionMapping2_0.java | 21 - .../context/java/GenericJavaEmbeddable2_0.java | 46 - .../GenericJavaIdDerivedIdentityStrategy2_0.java | 137 - ...enericJavaMapsIdDerivedIdentityStrategy2_0.java | 361 - .../context/java/GenericJavaNamedQuery2_0.java | 90 - .../context/java/GenericJavaOrderColumn2_0.java | 250 - .../context/java/GenericJavaOrphanRemoval2_0.java | 121 - ...vaOverrideJoinTableRelationshipStrategy2_0.java | 102 - .../java/GenericJavaPersistentAttribute2_0.java | 83 - .../context/java/GenericJavaPersistentType2_0.java | 156 - .../java/GenericJavaSequenceGenerator2_0.java | 129 - ...alOverrideJoinTableRelationshipStrategy2_0.java | 121 - .../JavaElementCollectionMappingDefinition2_0.java | 34 - .../java/JavaEmbeddedMappingDefinition2_0.java | 55 - .../context/java/JavaIdMappingDefinition2_0.java | 34 - .../java/JavaManyToManyMappingDefinition2_0.java | 69 - .../java/JavaManyToOneMappingDefinition2_0.java | 55 - .../java/JavaOneToManyMappingDefinition2_0.java | 69 - .../java/JavaOneToOneMappingDefinition2_0.java | 55 - .../jpa2/context/java/NullJavaCacheable2_0.java | 54 - .../context/java/NullJavaDerivedIdentity2_0.java | 96 - .../jpa2/context/java/NullJavaMapKeyColumn2_0.java | 276 - .../context/java/NullJavaOrphanRemoval2_0.java | 54 - .../AbstractOrmElementCollectionMapping2_0.java | 1628 --- .../jpa2/context/orm/GenericOrmCacheable2_0.java | 107 - .../context/orm/GenericOrmCollectionTable2_0.java | 206 - .../context/orm/GenericOrmDerivedIdentity2_0.java | 181 - .../orm/GenericOrmElementCollectionMapping2_0.java | 21 - .../jpa2/context/orm/GenericOrmEmbeddable2_0.java | 33 - .../GenericOrmIdDerivedIdentityStrategy2_0.java | 114 - ...GenericOrmMapsIdDerivedIdentityStrategy2_0.java | 282 - .../jpa2/context/orm/GenericOrmNamedQuery2_0.java | 90 - .../jpa2/context/orm/GenericOrmOrderColumn2_0.java | 200 - .../context/orm/GenericOrmOrphanRemoval2_0.java | 118 - ...rmOverrideJoinTableRelationshipStrategy2_0.java | 61 - .../orm/GenericOrmPersistentAttribute2_0.java | 78 - .../orm/GenericOrmSequenceGenerator2_0.java | 128 - ...alOverrideJoinTableRelationshipStrategy2_0.java | 120 - .../orm/GenericOrmXml2_0ContextNodeFactory.java | 107 - .../context/orm/GenericOrmXml2_0Definition.java | 111 - .../jpa2/context/orm/NullOrmCacheable2_0.java | 53 - .../context/orm/NullOrmDerivedIdentity2_0.java | 99 - .../jpa2/context/orm/NullOrmOrphanRemoval2_0.java | 53 - .../OrmElementCollectionMapping2_0Definition.java | 65 - ...Generic2_0PersistenceXmlContextNodeFactory.java | 31 - .../Generic2_0PersistenceXmlDefinition.java | 53 - .../connection/GenericConnection2_0.java | 194 - .../persistence/connection/NullConnection2_0.java | 110 - .../persistence/options/GenericOptions2_0.java | 337 - .../persistence/options/NullOptions2_0.java | 152 - .../java/Access2_0AnnotationDefinition.java | 62 - ...AssociationOverride2_0AnnotationDefinition.java | 62 - ...ssociationOverrides2_0AnnotationDefinition.java | 62 - .../java/Cacheable2_0AnnotationDefinition.java | 62 - .../CollectionTable2_0AnnotationDefinition.java | 62 - .../ElementCollection2_0AnnotationDefinition.java | 62 - .../java/GeneratedAnnotationDefinition.java | 64 - .../java/MapKeyClass2_0AnnotationDefinition.java | 62 - .../java/MapKeyColumn2_0AnnotationDefinition.java | 62 - .../MapKeyEnumerated2_0AnnotationDefinition.java | 61 - .../MapKeyJoinColumn2_0AnnotationDefinition.java | 60 - .../MapKeyJoinColumns2_0AnnotationDefinition.java | 61 - .../MapKeyTemporal2_0AnnotationDefinition.java | 61 - .../java/MapsId2_0AnnotationDefinition.java | 65 - .../java/NamedQueries2_0AnnotationDefinition.java | 61 - .../java/NamedQuery2_0AnnotationDefinition.java | 61 - .../resource/java/NullAccess2_0Annotation.java | 50 - ...NullAssociationOverrideJoinTableAnnotation.java | 35 - .../java/NullCollectionTable2_0Annotation.java | 64 - .../resource/java/NullMapKeyColumnAnnotation.java | 77 - .../java/NullMapKeyEnumerated2_0Annotation.java | 48 - .../java/NullMapKeyTemporal2_0Annotation.java | 48 - .../resource/java/NullMapsId2_0Annotation.java | 51 - .../java/NullOrderColumn2_0Annotation.java | 77 - .../java/OrderColumn2_0AnnotationDefinition.java | 62 - .../SequenceGenerator2_0AnnotationDefinition.java | 62 - .../java/SourceMapKeyJoinColumn2_0Annotation.java | 111 - .../java/SourceMapKeyJoinColumns2_0Annotation.java | 137 - .../java/StaticMetamodelAnnotationDefinition.java | 64 - .../java/binary/BinaryAccess2_0Annotation.java | 77 - .../BinaryAssociationOverride2_0Annotation.java | 95 - .../BinaryAssociationOverrides2_0Annotation.java | 33 - .../java/binary/BinaryCacheable2_0Annotation.java | 70 - .../binary/BinaryCollectionTable2_0Annotation.java | 118 - .../BinaryElementCollection2_0Annotation.java | 102 - .../java/binary/BinaryGeneratedAnnotation.java | 140 - .../binary/BinaryMapKeyClass2_0Annotation.java | 79 - .../binary/BinaryMapKeyColumn2_0Annotation.java | 92 - .../BinaryMapKeyEnumerated2_0Annotation.java | 38 - .../BinaryMapKeyJoinColumn2_0Annotation.java | 83 - .../BinaryMapKeyJoinColumns2_0Annotation.java | 69 - .../binary/BinaryMapKeyTemporal2_0Annotation.java | 38 - .../java/binary/BinaryMapsId2_0Annotation.java | 80 - .../binary/BinaryNamedQueries2_0Annotation.java | 32 - .../java/binary/BinaryNamedQuery2_0Annotation.java | 69 - .../binary/BinaryOrderColumn2_0Annotation.java | 147 - .../BinarySequenceGenerator2_0Annotation.java | 102 - .../binary/BinaryStaticMetamodelAnnotation.java | 73 - .../java/source/SourceAccess2_0Annotation.java | 104 - .../SourceAssociationOverride2_0Annotation.java | 180 - .../SourceAssociationOverrides2_0Annotation.java | 33 - .../java/source/SourceCacheable2_0Annotation.java | 105 - .../source/SourceCollectionTable2_0Annotation.java | 272 - .../SourceElementCollection2_0Annotation.java | 188 - .../java/source/SourceGeneratedAnnotation.java | 222 - .../source/SourceMapKeyClass2_0Annotation.java | 138 - .../source/SourceMapKeyColumn2_0Annotation.java | 95 - .../SourceMapKeyEnumerated2_0Annotation.java | 41 - .../source/SourceMapKeyTemporal2_0Annotation.java | 42 - .../java/source/SourceMapsId2_0Annotation.java | 108 - .../source/SourceNamedQueries2_0Annotation.java | 33 - .../java/source/SourceNamedQuery2_0Annotation.java | 147 - .../source/SourceOrderColumn2_0Annotation.java | 244 - .../SourceSequenceGenerator2_0Annotation.java | 127 - .../source/SourceStaticMetamodelAnnotation.java | 133 - ...ndlesLibraryProviderInstallOperationConfig.java | 36 - ...aUserLibraryProviderInstallOperationConfig.java | 37 - .../libprov/LegacyJpaLibraryProviderDetector.java | 35 - ...LegacyJpaLibraryProviderUninstallOperation.java | 27 - .../AbstractOsgiBundlesLibraryValidator.java | 64 - .../GenericEclipseLinkBundlesLibraryValidator.java | 38 - .../libval/GenericJpaUserLibraryValidator.java | 46 - .../AbstractJpaFileCreationDataModelProvider.java | 157 - .../AbstractJpaFileCreationOperation.java | 132 - .../JpaFileCreationDataModelProperties.java | 22 - .../OrmFileCreationDataModelProperties.java | 32 - .../OrmFileCreationDataModelProvider.java | 280 - .../operations/OrmFileCreationOperation.java | 108 - ...PersistenceFileCreationDataModelProperties.java | 17 - .../PersistenceFileCreationDataModelProvider.java | 73 - .../PersistenceFileCreationOperation.java | 31 - .../platform/JpaPlatformDescriptionImpl.java | 109 - .../platform/JpaPlatformGroupDescriptionImpl.java | 68 - .../internal/platform/JpaPlatformManagerImpl.java | 238 - .../internal/prefs/JpaPreferenceInitializer.java | 26 - .../AbstractJpaDeleteTypeParticipant.java | 288 - .../AbstractJpaMoveJavaElementParticipant.java | 294 - .../AbstractJpaRenameJavaElementParticipant.java | 257 - .../refactoring/JpaCoreRefactoringMessages.java | 81 - .../JpaDeleteMappingFileParticipant.java | 210 - .../JpaDeletePackageOrFolderParticipant.java | 254 - .../refactoring/JpaDeleteTypeParticipant.java | 47 - .../refactoring/JpaMoveFolderParticipant.java | 239 - .../refactoring/JpaMoveMappingFileParticipant.java | 242 - .../refactoring/JpaMoveTypeParticipant.java | 113 - .../refactoring/JpaRenameFolderParticipant.java | 194 - .../JpaRenameMappingFileParticipant.java | 189 - .../refactoring/JpaRenamePackageParticipant.java | 75 - .../refactoring/JpaRenameTypeParticipant.java | 165 - .../IndeterminateContentDescriber.java | 41 - .../resource/java/AbstractJavaResourceNode.java | 109 - .../AssociationOverrideAnnotationDefinition.java | 62 - .../AssociationOverridesAnnotationDefinition.java | 62 - .../AttributeOverrideAnnotationDefinition.java | 62 - .../AttributeOverridesAnnotationDefinition.java | 62 - .../resource/java/BasicAnnotationDefinition.java | 62 - .../resource/java/ColumnAnnotationDefinition.java | 62 - .../DiscriminatorColumnAnnotationDefinition.java | 63 - .../DiscriminatorValueAnnotationDefinition.java | 62 - .../java/EmbeddableAnnotationDefinition.java | 62 - .../java/EmbeddedAnnotationDefinition.java | 62 - .../java/EmbeddedIdAnnotationDefinition.java | 62 - .../resource/java/EntityAnnotationDefinition.java | 62 - .../java/EnumeratedAnnotationDefinition.java | 62 - .../java/GeneratedValueAnnotationDefinition.java | 62 - .../resource/java/IdAnnotationDefinition.java | 62 - .../resource/java/IdClassAnnotationDefinition.java | 62 - .../java/InheritanceAnnotationDefinition.java | 62 - .../java/JoinColumnAnnotationDefinition.java | 62 - .../java/JoinColumnsAnnotationDefinition.java | 62 - .../java/JoinTableAnnotationDefinition.java | 62 - .../resource/java/LobAnnotationDefinition.java | 62 - .../java/ManyToManyAnnotationDefinition.java | 62 - .../java/ManyToOneAnnotationDefinition.java | 62 - .../resource/java/MapKeyAnnotationDefinition.java | 62 - .../java/MappedSuperclassAnnotationDefinition.java | 62 - .../NamedNativeQueriesAnnotationDefinition.java | 61 - .../java/NamedNativeQueryAnnotationDefinition.java | 61 - .../java/NamedQueriesAnnotationDefinition.java | 61 - .../java/NamedQueryAnnotationDefinition.java | 61 - .../internal/resource/java/NullAnnotation.java | 94 - .../NullAttributeOverrideColumnAnnotation.java | 33 - .../resource/java/NullBaseColumnAnnotation.java | 110 - .../resource/java/NullBaseTableAnnotation.java | 124 - .../resource/java/NullColumnAnnotation.java | 77 - .../java/NullDiscriminatorColumnAnnotation.java | 52 - .../java/NullDiscriminatorValueAnnotation.java | 46 - .../resource/java/NullEnumeratedAnnotation.java | 47 - .../resource/java/NullInheritanceAnnotation.java | 47 - .../resource/java/NullJoinColumnAnnotation.java | 48 - .../resource/java/NullJoinTableAnnotation.java | 93 - .../resource/java/NullNamedColumnAnnotation.java | 72 - .../java/NullPrimaryKeyJoinColumnAnnotation.java | 48 - .../resource/java/NullTableAnnotation.java | 29 - .../resource/java/NullTemporalAnnotation.java | 47 - .../java/OneToManyAnnotationDefinition.java | 62 - .../java/OneToOneAnnotationDefinition.java | 62 - .../resource/java/OrderByAnnotationDefinition.java | 62 - .../PrimaryKeyJoinColumnAnnotationDefinition.java | 62 - .../PrimaryKeyJoinColumnsAnnotationDefinition.java | 62 - .../java/SecondaryTableAnnotationDefinition.java | 62 - .../java/SecondaryTablesAnnotationDefinition.java | 62 - .../SequenceGeneratorAnnotationDefinition.java | 62 - .../resource/java/TableAnnotationDefinition.java | 62 - .../java/TableGeneratorAnnotationDefinition.java | 62 - .../java/TemporalAnnotationDefinition.java | 62 - .../java/TransientAnnotationDefinition.java | 62 - .../resource/java/VersionAnnotationDefinition.java | 62 - .../java/binary/BinaryAnnotatedElement.java | 225 - .../resource/java/binary/BinaryAnnotation.java | 113 - .../BinaryAssociationOverrideAnnotation.java | 101 - .../BinaryAssociationOverridesAnnotation.java | 70 - .../binary/BinaryAttributeOverrideAnnotation.java | 111 - .../binary/BinaryAttributeOverridesAnnotation.java | 68 - .../java/binary/BinaryBaseColumnAnnotation.java | 184 - .../binary/BinaryBaseEnumeratedAnnotation.java | 68 - .../binary/BinaryBaseJoinColumnAnnotation.java | 73 - .../java/binary/BinaryBaseTableAnnotation.java | 199 - .../java/binary/BinaryBaseTemporalAnnotation.java | 68 - .../java/binary/BinaryBasicAnnotation.java | 97 - .../resource/java/binary/BinaryClassFile.java | 68 - .../java/binary/BinaryColumnAnnotation.java | 91 - .../binary/BinaryCompleteColumnAnnotation.java | 124 - .../java/binary/BinaryContainerAnnotation.java | 73 - .../BinaryDiscriminatorColumnAnnotation.java | 100 - .../binary/BinaryDiscriminatorValueAnnotation.java | 70 - .../java/binary/BinaryEmbeddableAnnotation.java | 32 - .../java/binary/BinaryEmbeddedAnnotation.java | 32 - .../java/binary/BinaryEmbeddedIdAnnotation.java | 32 - .../java/binary/BinaryEntityAnnotation.java | 75 - .../java/binary/BinaryEnumeratedAnnotation.java | 37 - .../binary/BinaryGeneratedValueAnnotation.java | 101 - .../java/binary/BinaryGeneratorAnnotation.java | 129 - .../resource/java/binary/BinaryIdAnnotation.java | 32 - .../java/binary/BinaryIdClassAnnotation.java | 78 - .../java/binary/BinaryInheritanceAnnotation.java | 71 - .../java/binary/BinaryJoinColumnAnnotation.java | 82 - .../java/binary/BinaryJoinColumnsAnnotation.java | 68 - .../java/binary/BinaryJoinTableAnnotation.java | 163 - .../resource/java/binary/BinaryLobAnnotation.java | 31 - .../java/binary/BinaryManyToManyAnnotation.java | 92 - .../java/binary/BinaryManyToOneAnnotation.java | 88 - .../java/binary/BinaryMapKeyAnnotation.java | 79 - .../binary/BinaryMappedSuperclassAnnotation.java | 28 - .../java/binary/BinaryNamedColumnAnnotation.java | 111 - .../binary/BinaryNamedNativeQueriesAnnotation.java | 68 - .../binary/BinaryNamedNativeQueryAnnotation.java | 119 - .../java/binary/BinaryNamedQueriesAnnotation.java | 70 - .../java/binary/BinaryNamedQueryAnnotation.java | 50 - .../internal/resource/java/binary/BinaryNode.java | 62 - .../java/binary/BinaryOneToManyAnnotation.java | 121 - .../java/binary/BinaryOneToOneAnnotation.java | 148 - .../java/binary/BinaryOrderByAnnotation.java | 70 - .../java/binary/BinaryOverrideAnnotation.java | 78 - .../java/binary/BinaryPackageFragment.java | 125 - .../java/binary/BinaryPackageFragmentRoot.java | 116 - .../java/binary/BinaryPersistentAttribute.java | 657 - .../java/binary/BinaryPersistentMember.java | 190 - .../resource/java/binary/BinaryPersistentType.java | 694 - .../java/binary/BinaryPersistentTypeCache.java | 149 - .../BinaryPrimaryKeyJoinColumnAnnotation.java | 87 - .../BinaryPrimaryKeyJoinColumnsAnnotation.java | 69 - .../java/binary/BinaryQueryAnnotation.java | 154 - .../java/binary/BinaryQueryHintAnnotation.java | 101 - .../BinaryRelationshipMappingAnnotation.java | 232 - .../binary/BinarySecondaryTableAnnotation.java | 115 - .../binary/BinarySecondaryTablesAnnotation.java | 68 - .../binary/BinarySequenceGeneratorAnnotation.java | 92 - .../java/binary/BinaryTableAnnotation.java | 55 - .../binary/BinaryTableGeneratorAnnotation.java | 293 - .../java/binary/BinaryTemporalAnnotation.java | 37 - .../java/binary/BinaryTransientAnnotation.java | 32 - .../binary/BinaryUniqueConstraintAnnotation.java | 97 - .../java/binary/BinaryVersionAnnotation.java | 32 - .../resource/java/binary/RootBinaryNode.java | 82 - .../java/source/AnnotationContainerTools.java | 281 - .../java/source/SourceAnnotatedElement.java | 472 - .../resource/java/source/SourceAnnotation.java | 265 - .../SourceAssociationOverrideAnnotation.java | 245 - .../SourceAssociationOverridesAnnotation.java | 131 - .../source/SourceAttributeOverrideAnnotation.java | 182 - .../source/SourceAttributeOverridesAnnotation.java | 135 - .../java/source/SourceBaseColumnAnnotation.java | 334 - .../source/SourceBaseEnumeratedAnnotation.java | 93 - .../source/SourceBaseJoinColumnAnnotation.java | 145 - .../java/source/SourceBaseTableAnnotation.java | 426 - .../java/source/SourceBaseTemporalAnnotation.java | 94 - .../java/source/SourceBasicAnnotation.java | 144 - .../java/source/SourceColumnAnnotation.java | 106 - .../java/source/SourceCompilationUnit.java | 177 - .../source/SourceCompleteColumnAnnotation.java | 222 - .../SourceDiscriminatorColumnAnnotation.java | 181 - .../source/SourceDiscriminatorValueAnnotation.java | 103 - .../java/source/SourceEmbeddableAnnotation.java | 45 - .../java/source/SourceEmbeddedAnnotation.java | 45 - .../java/source/SourceEmbeddedIdAnnotation.java | 45 - .../java/source/SourceEntityAnnotation.java | 103 - .../java/source/SourceEnumeratedAnnotation.java | 38 - .../source/SourceGeneratedValueAnnotation.java | 148 - .../java/source/SourceGeneratorAnnotation.java | 186 - .../resource/java/source/SourceIdAnnotation.java | 45 - .../java/source/SourceIdClassAnnotation.java | 159 - .../java/source/SourceInheritanceAnnotation.java | 104 - .../java/source/SourceJoinColumnAnnotation.java | 119 - .../java/source/SourceJoinColumnsAnnotation.java | 134 - .../java/source/SourceJoinTableAnnotation.java | 409 - .../resource/java/source/SourceLobAnnotation.java | 45 - .../java/source/SourceManyToManyAnnotation.java | 141 - .../java/source/SourceManyToOneAnnotation.java | 142 - .../java/source/SourceMapKeyAnnotation.java | 107 - .../source/SourceMappedSuperclassAnnotation.java | 45 - .../java/source/SourceNamedColumnAnnotation.java | 194 - .../source/SourceNamedNativeQueriesAnnotation.java | 135 - .../source/SourceNamedNativeQueryAnnotation.java | 250 - .../source/SourceNamedQueries1_0Annotation.java | 32 - .../java/source/SourceNamedQueriesAnnotation.java | 131 - .../java/source/SourceNamedQueryAnnotation.java | 80 - .../internal/resource/java/source/SourceNode.java | 35 - .../java/source/SourceOneToManyAnnotation.java | 185 - .../java/source/SourceOneToOneAnnotation.java | 227 - .../java/source/SourceOrderByAnnotation.java | 102 - .../java/source/SourceOverrideAnnotation.java | 140 - .../resource/java/source/SourcePackage.java | 118 - .../source/SourcePackageInfoCompilationUnit.java | 120 - .../java/source/SourcePersistentAttribute.java | 408 - .../java/source/SourcePersistentMember.java | 138 - .../resource/java/source/SourcePersistentType.java | 930 -- .../SourcePrimaryKeyJoinColumnAnnotation.java | 185 - .../SourcePrimaryKeyJoinColumnsAnnotation.java | 135 - .../java/source/SourceQueryAnnotation.java | 351 - .../java/source/SourceQueryHintAnnotation.java | 201 - .../SourceRelationshipMappingAnnotation.java | 357 - .../source/SourceSecondaryTableAnnotation.java | 283 - .../source/SourceSecondaryTablesAnnotation.java | 135 - .../source/SourceSequenceGeneratorAnnotation.java | 132 - .../java/source/SourceTableAnnotation.java | 68 - .../source/SourceTableGeneratorAnnotation.java | 470 - .../java/source/SourceTemporalAnnotation.java | 39 - .../java/source/SourceTransientAnnotation.java | 45 - .../java/source/SourceTypeCompilationUnit.java | 167 - .../source/SourceUniqueConstraintAnnotation.java | 196 - .../java/source/SourceVersionAnnotation.java | 45 - .../resource/orm/OrmXmlResourceProvider.java | 82 - .../PersistenceXmlResourceProvider.java | 75 - .../resource/xml/JpaXmlResourceAdapterFactory.java | 48 - .../resource/xml/JpaXmlResourcePropertyTester.java | 53 - .../core/internal/synch/SynchronizeClassesJob.java | 146 - .../validation/DefaultJpaValidationMessages.java | 68 - .../jpa/core/internal/validation/JpaHelper.java | 32 - .../JpaValidationDescriptionMessages.java | 36 - .../internal/validation/JpaValidationMessages.java | 232 - .../validation/JpaValidationPreferences.java | 140 - .../jpa/core/internal/validation/JpaValidator.java | 121 - .../eclipse/jpt/jpa/core/jpa2/JpaFactory2_0.java | 93 - .../eclipse/jpt/jpa/core/jpa2/JpaProject2_0.java | 102 - .../eclipse/jpt/jpa/core/jpa2/MappingKeys2_0.java | 28 - .../jpt/jpa/core/jpa2/MetamodelSynchronizer.java | 93 - .../jpa/core/jpa2/context/AttributeMapping2_0.java | 45 - .../jpt/jpa/core/jpa2/context/Cacheable2_0.java | 37 - .../jpa/core/jpa2/context/CacheableHolder2_0.java | 32 - .../jpt/jpa/core/jpa2/context/Cascade2_0.java | 32 - .../core/jpa2/context/CollectionMapping2_0.java | 59 - .../jpa/core/jpa2/context/CollectionTable2_0.java | 30 - .../jpa/core/jpa2/context/DerivedIdentity2_0.java | 113 - .../jpa2/context/DerivedIdentityStrategy2_0.java | 43 - .../jpa2/context/ElementCollectionMapping2_0.java | 83 - .../core/jpa2/context/EmbeddedIdMapping2_0.java | 30 - .../jpa/core/jpa2/context/EmbeddedMapping2_0.java | 31 - .../jpa2/context/IdDerivedIdentityStrategy2_0.java | 41 - .../jpt/jpa/core/jpa2/context/IdMapping2_0.java | 30 - .../core/jpa2/context/JpaRootContextNode2_0.java | 31 - .../jpt/jpa/core/jpa2/context/LockModeType2_0.java | 120 - .../core/jpa2/context/ManyToManyMapping2_0.java | 31 - .../jpa/core/jpa2/context/ManyToOneMapping2_0.java | 31 - .../jpa2/context/ManyToOneRelationship2_0.java | 31 - .../context/MappedByRelationshipMapping2_0.java | 38 - .../MappingFilePersistenceUnitDefaults2_0.java | 34 - .../MappingFilePersistenceUnitMetadata2_0.java | 31 - .../context/MapsIdDerivedIdentityStrategy2_0.java | 76 - .../jpt/jpa/core/jpa2/context/MetamodelField.java | 36 - .../jpa/core/jpa2/context/MetamodelSourceType.java | 116 - .../jpt/jpa/core/jpa2/context/NamedQuery2_0.java | 41 - .../jpa/core/jpa2/context/OneToManyMapping2_0.java | 31 - .../jpa2/context/OneToManyRelationship2_0.java | 31 - .../jpa/core/jpa2/context/OneToOneMapping2_0.java | 31 - .../core/jpa2/context/OneToOneRelationship2_0.java | 32 - .../jpt/jpa/core/jpa2/context/OrderColumn2_0.java | 72 - .../jpt/jpa/core/jpa2/context/Orderable2_0.java | 53 - .../jpa/core/jpa2/context/OrphanRemovable2_0.java | 38 - .../core/jpa2/context/OrphanRemovalHolder2_0.java | 28 - .../core/jpa2/context/OverrideRelationship2_0.java | 36 - .../core/jpa2/context/PersistentAttribute2_0.java | 31 - .../jpa/core/jpa2/context/PersistentType2_0.java | 36 - .../context/ReadOnlyOverrideRelationship2_0.java | 32 - .../context/ReadOnlyPersistentAttribute2_0.java | 45 - .../core/jpa2/context/SequenceGenerator2_0.java | 56 - .../jpa2/context/SingleRelationshipMapping2_0.java | 30 - .../context/VirtualOverrideRelationship2_0.java | 30 - .../core/jpa2/context/java/JavaCacheable2_0.java | 31 - .../jpa2/context/java/JavaCacheableHolder2_0.java | 33 - .../jpa/core/jpa2/context/java/JavaCascade2_0.java | 31 - .../context/java/JavaCollectionMapping2_0.java | 40 - .../jpa2/context/java/JavaCollectionTable2_0.java | 32 - .../jpa2/context/java/JavaDerivedIdentity2_0.java | 41 - .../java/JavaElementCollectionMapping2_0.java | 50 - .../jpa2/context/java/JavaEmbeddedMapping2_0.java | 32 - .../java/JavaIdDerivedIdentityStrategy2_0.java | 31 - .../context/java/JavaManyToManyMapping2_0.java | 31 - .../jpa2/context/java/JavaManyToOneMapping2_0.java | 32 - .../context/java/JavaManyToOneRelationship2_0.java | 34 - .../java/JavaMapsIdDerivedIdentityStrategy2_0.java | 31 - .../core/jpa2/context/java/JavaNamedQuery2_0.java | 32 - .../jpa2/context/java/JavaOneToManyMapping2_0.java | 31 - .../context/java/JavaOneToManyRelationship2_0.java | 34 - .../jpa2/context/java/JavaOneToOneMapping2_0.java | 31 - .../context/java/JavaOneToOneRelationship2_0.java | 34 - .../core/jpa2/context/java/JavaOrderColumn2_0.java | 32 - .../core/jpa2/context/java/JavaOrderable2_0.java | 34 - .../jpa2/context/java/JavaOrphanRemovable2_0.java | 31 - .../context/java/JavaOrphanRemovalHolder2_0.java | 29 - .../context/java/JavaOverrideRelationship2_0.java | 35 - .../context/java/JavaPersistentAttribute2_0.java | 32 - .../jpa2/context/java/JavaPersistentType2_0.java | 35 - .../context/java/JavaSequenceGenerator2_0.java | 29 - .../java/JavaSingleRelationshipMapping2_0.java | 31 - .../java/JavaVirtualOverrideRelationship2_0.java | 32 - .../jpa/core/jpa2/context/orm/OrmCacheable2_0.java | 31 - .../jpa2/context/orm/OrmCacheableHolder2_0.java | 33 - .../jpa/core/jpa2/context/orm/OrmCascade2_0.java | 31 - .../jpa2/context/orm/OrmCollectionMapping2_0.java | 32 - .../jpa2/context/orm/OrmCollectionTable2_0.java | 31 - .../jpa2/context/orm/OrmDerivedIdentity2_0.java | 37 - .../orm/OrmElementCollectionMapping2_0.java | 43 - .../jpa2/context/orm/OrmEmbeddedMapping2_0.java | 32 - .../orm/OrmIdDerivedIdentityStrategy2_0.java | 31 - .../jpa2/context/orm/OrmManyToManyMapping2_0.java | 31 - .../jpa2/context/orm/OrmManyToOneMapping2_0.java | 31 - .../context/orm/OrmManyToOneRelationship2_0.java | 34 - .../orm/OrmMapsIdDerivedIdentityStrategy2_0.java | 31 - .../core/jpa2/context/orm/OrmNamedQuery2_0.java | 32 - .../jpa2/context/orm/OrmOneToManyMapping2_0.java | 31 - .../context/orm/OrmOneToManyRelationship2_0.java | 34 - .../jpa2/context/orm/OrmOneToOneMapping2_0.java | 31 - .../context/orm/OrmOneToOneRelationship2_0.java | 34 - .../core/jpa2/context/orm/OrmOrderColumn2_0.java | 48 - .../jpa/core/jpa2/context/orm/OrmOrderable2_0.java | 31 - .../jpa2/context/orm/OrmOrphanRemovable2_0.java | 31 - .../context/orm/OrmOrphanRemovalHolder2_0.java | 29 - .../context/orm/OrmOverrideRelationship2_0.java | 47 - .../context/orm/OrmPersistenceUnitDefaults2_0.java | 35 - .../context/orm/OrmPersistenceUnitMetadata2_0.java | 34 - .../context/orm/OrmPersistentAttribute2_0.java | 33 - .../jpa2/context/orm/OrmPersistentType2_0.java | 34 - .../orm/OrmReadOnlyPersistentAttribute2_0.java | 33 - .../jpa2/context/orm/OrmSequenceGenerator2_0.java | 32 - .../orm/OrmSingleRelationshipMapping2_0.java | 31 - .../orm/OrmVirtualOverrideRelationship2_0.java | 32 - .../context/orm/OrmXml2_0ContextNodeFactory.java | 52 - .../jpa2/context/persistence/Persistence2_0.java | 31 - .../context/persistence/PersistenceUnit2_0.java | 127 - .../context/persistence/PersistenceXml2_0.java | 31 - .../persistence/connection/JpaConnection2_0.java | 59 - .../context/persistence/options/JpaOptions2_0.java | 74 - .../persistence/options/SharedCacheMode.java | 77 - .../persistence/options/ValidationMode.java | 68 - .../jpa2/resource/java/Access2_0Annotation.java | 55 - .../java/AssociationOverride2_0Annotation.java | 51 - .../jpa2/resource/java/Cacheable2_0Annotation.java | 52 - .../java/CollectionTable2_0Annotation.java | 31 - .../java/ElementCollection2_0Annotation.java | 93 - .../jpa2/resource/java/GeneratedAnnotation.java | 117 - .../jpt/jpa/core/jpa2/resource/java/JPA2_0.java | 147 - .../java/JavaResourcePersistentType2_0.java | 85 - .../core/jpa2/resource/java/LockModeType_2_0.java | 72 - .../resource/java/ManyToMany2_0Annotation.java | 31 - .../jpa2/resource/java/ManyToOne2_0Annotation.java | 31 - .../resource/java/MapKeyClass2_0Annotation.java | 68 - .../resource/java/MapKeyColumn2_0Annotation.java | 31 - .../java/MapKeyEnumerated2_0Annotation.java | 32 - .../java/MapKeyJoinColumn2_0Annotation.java | 31 - .../java/MapKeyJoinColumns2_0Annotation.java | 33 - .../resource/java/MapKeyTemporal2_0Annotation.java | 32 - .../jpa2/resource/java/MapsId2_0Annotation.java | 58 - .../resource/java/NamedQuery2_0Annotation.java | 58 - .../java/NestableMapKeyJoinColumnAnnotation.java | 31 - .../jpa2/resource/java/OneToMany2_0Annotation.java | 31 - .../jpa2/resource/java/OneToOne2_0Annotation.java | 31 - .../resource/java/OrderColumn2_0Annotation.java | 100 - .../OwningRelationshipMapping2_0Annotation.java | 52 - .../java/RelationshipMapping2_0Annotation.java | 43 - .../java/SequenceGenerator2_0Annotation.java | 86 - .../resource/java/StaticMetamodelAnnotation.java | 60 - .../JpaLibraryProviderInstallOperationConfig.java | 24 - .../jpt/jpa/core/platform/GenericPlatform.java | 41 - .../jpa/core/platform/JpaPlatformDescription.java | 41 - .../core/platform/JpaPlatformGroupDescription.java | 33 - .../jpt/jpa/core/platform/JpaPlatformManager.java | 46 - .../core/resource/AbstractXmlResourceProvider.java | 386 - .../jpa/core/resource/JpaXmlResourceProvider.java | 30 - .../core/resource/JpaXmlResourceProviderEvent.java | 48 - .../resource/JpaXmlResourceProviderListener.java | 28 - .../jpt/jpa/core/resource/java/AccessType.java | 67 - .../jpt/jpa/core/resource/java/Annotation.java | 91 - .../core/resource/java/AnnotationContainer.java | 92 - .../core/resource/java/AnnotationDefinition.java | 67 - .../java/AssociationOverrideAnnotation.java | 70 - .../java/AssociationOverridesAnnotation.java | 31 - .../resource/java/AttributeOverrideAnnotation.java | 50 - .../java/AttributeOverridesAnnotation.java | 31 - .../core/resource/java/BaseColumnAnnotation.java | 149 - .../resource/java/BaseJoinColumnAnnotation.java | 59 - .../core/resource/java/BaseTableAnnotation.java | 165 - .../jpa/core/resource/java/BasicAnnotation.java | 72 - .../jpt/jpa/core/resource/java/CascadeType.java | 106 - .../jpa/core/resource/java/ColumnAnnotation.java | 29 - .../resource/java/CompleteColumnAnnotation.java | 97 - .../core/resource/java/ContainerAnnotation.java | 47 - .../java/DiscriminatorColumnAnnotation.java | 62 - .../jpa/core/resource/java/DiscriminatorType.java | 65 - .../java/DiscriminatorValueAnnotation.java | 51 - .../core/resource/java/EmbeddableAnnotation.java | 29 - .../jpa/core/resource/java/EmbeddedAnnotation.java | 29 - .../core/resource/java/EmbeddedIdAnnotation.java | 29 - .../jpa/core/resource/java/EntityAnnotation.java | 52 - .../jpt/jpa/core/resource/java/EnumType.java | 64 - .../core/resource/java/EnumeratedAnnotation.java | 52 - .../jpt/jpa/core/resource/java/FetchType.java | 64 - .../resource/java/GeneratedValueAnnotation.java | 78 - .../jpt/jpa/core/resource/java/GenerationType.java | 66 - .../core/resource/java/GeneratorAnnotation.java | 92 - .../jpt/jpa/core/resource/java/IdAnnotation.java | 29 - .../jpa/core/resource/java/IdClassAnnotation.java | 67 - .../core/resource/java/InheritanceAnnotation.java | 52 - .../jpa/core/resource/java/InheritanceType.java | 65 - .../eclipse/jpt/jpa/core/resource/java/JPA.java | 303 - .../java/JavaResourceAnnotatedElement.java | 137 - .../core/resource/java/JavaResourceClassFile.java | 33 - .../resource/java/JavaResourceCompilationUnit.java | 68 - .../jpa/core/resource/java/JavaResourceNode.java | 100 - .../core/resource/java/JavaResourcePackage.java | 35 - .../resource/java/JavaResourcePackageFragment.java | 46 - .../java/JavaResourcePackageFragmentRoot.java | 40 - .../JavaResourcePackageInfoCompilationUnit.java | 30 - .../java/JavaResourcePersistentAttribute.java | 144 - .../java/JavaResourcePersistentMember.java | 83 - .../resource/java/JavaResourcePersistentType.java | 215 - .../java/JavaResourcePersistentTypeCache.java | 48 - .../core/resource/java/JoinColumnAnnotation.java | 29 - .../core/resource/java/JoinColumnsAnnotation.java | 31 - .../core/resource/java/JoinTableAnnotation.java | 72 - .../jpt/jpa/core/resource/java/LobAnnotation.java | 29 - .../core/resource/java/ManyToManyAnnotation.java | 29 - .../core/resource/java/ManyToOneAnnotation.java | 29 - .../jpa/core/resource/java/MapKeyAnnotation.java | 58 - .../resource/java/MappedSuperclassAnnotation.java | 29 - .../core/resource/java/NamedColumnAnnotation.java | 92 - .../java/NamedNativeQueriesAnnotation.java | 31 - .../resource/java/NamedNativeQueryAnnotation.java | 89 - .../core/resource/java/NamedQueriesAnnotation.java | 31 - .../core/resource/java/NamedQueryAnnotation.java | 29 - .../jpa/core/resource/java/NestableAnnotation.java | 60 - .../NestableAssociationOverrideAnnotation.java | 29 - .../java/NestableAttributeOverrideAnnotation.java | 29 - .../java/NestableJoinColumnAnnotation.java | 29 - .../java/NestableNamedNativeQueryAnnotation.java | 29 - .../java/NestableNamedQueryAnnotation.java | 29 - .../NestablePrimaryKeyJoinColumnAnnotation.java | 29 - .../resource/java/NestableQueryHintAnnotation.java | 29 - .../java/NestableSecondaryTableAnnotation.java | 29 - .../java/NestableUniqueConstraintAnnotation.java | 29 - .../core/resource/java/OneToManyAnnotation.java | 29 - .../jpa/core/resource/java/OneToOneAnnotation.java | 29 - .../jpa/core/resource/java/OrderByAnnotation.java | 52 - .../jpa/core/resource/java/OverrideAnnotation.java | 58 - .../java/OwnableRelationshipMappingAnnotation.java | 61 - .../java/PrimaryKeyJoinColumnAnnotation.java | 61 - .../java/PrimaryKeyJoinColumnsAnnotation.java | 31 - .../jpa/core/resource/java/QueryAnnotation.java | 117 - .../core/resource/java/QueryHintAnnotation.java | 72 - .../resource/java/ReferenceTableAnnotation.java | 70 - .../java/RelationshipMappingAnnotation.java | 153 - .../resource/java/SecondaryTableAnnotation.java | 72 - .../resource/java/SecondaryTablesAnnotation.java | 31 - .../resource/java/SequenceGeneratorAnnotation.java | 58 - .../java/SingleRelationshipMappingAnnotation.java | 47 - .../jpa/core/resource/java/TableAnnotation.java | 29 - .../resource/java/TableGeneratorAnnotation.java | 227 - .../jpa/core/resource/java/TemporalAnnotation.java | 52 - .../jpt/jpa/core/resource/java/TemporalType.java | 65 - .../core/resource/java/TransientAnnotation.java | 29 - .../resource/java/UniqueConstraintAnnotation.java | 76 - .../jpa/core/resource/java/VersionAnnotation.java | 29 - .../resource/orm/AbstractXmlAttributeMapping.java | 280 - .../jpa/core/resource/orm/AbstractXmlColumn.java | 500 - .../jpa/core/resource/orm/AbstractXmlEmbedded.java | 220 - .../orm/AbstractXmlMultiRelationshipMapping.java | 1100 -- .../core/resource/orm/AbstractXmlNamedColumn.java | 286 - .../resource/orm/AbstractXmlReferenceTable.java | 222 - .../orm/AbstractXmlRelationshipMapping.java | 400 - .../orm/AbstractXmlSingleRelationshipMapping.java | 614 - .../jpa/core/resource/orm/AbstractXmlTable.java | 439 - .../core/resource/orm/AbstractXmlTypeMapping.java | 547 - .../jpt/jpa/core/resource/orm/AccessType.java | 235 - .../jpt/jpa/core/resource/orm/Attributes.java | 792 -- .../jpt/jpa/core/resource/orm/CascadeType.java | 586 - .../jpt/jpa/core/resource/orm/ColumnMapping.java | 65 - .../jpt/jpa/core/resource/orm/ColumnResult.java | 221 - .../jpa/core/resource/orm/DiscriminatorType.java | 262 - .../jpt/jpa/core/resource/orm/EntityListener.java | 928 -- .../jpt/jpa/core/resource/orm/EntityListeners.java | 200 - .../jpt/jpa/core/resource/orm/EntityResult.java | 363 - .../jpt/jpa/core/resource/orm/EnumType.java | 235 - .../jpt/jpa/core/resource/orm/EventMethod.java | 285 - .../jpt/jpa/core/resource/orm/FetchType.java | 235 - .../jpt/jpa/core/resource/orm/FieldResult.java | 294 - .../jpt/jpa/core/resource/orm/GenerationType.java | 289 - .../jpt/jpa/core/resource/orm/Inheritance.java | 231 - .../jpt/jpa/core/resource/orm/InheritanceType.java | 260 - .../org/eclipse/jpt/jpa/core/resource/orm/JPA.java | 120 - .../org/eclipse/jpt/jpa/core/resource/orm/Lob.java | 56 - .../eclipse/jpt/jpa/core/resource/orm/MapKey.java | 221 - .../jpt/jpa/core/resource/orm/OrmFactory.java | 970 -- .../jpt/jpa/core/resource/orm/OrmPackage.java | 12554 ------------------- .../core/resource/orm/OrmXmlResourceFactory.java | 47 - .../jpt/jpa/core/resource/orm/PostLoad.java | 68 - .../jpt/jpa/core/resource/orm/PostPersist.java | 68 - .../jpt/jpa/core/resource/orm/PostRemove.java | 68 - .../jpt/jpa/core/resource/orm/PostUpdate.java | 68 - .../jpt/jpa/core/resource/orm/PrePersist.java | 68 - .../jpt/jpa/core/resource/orm/PreRemove.java | 68 - .../jpt/jpa/core/resource/orm/PreUpdate.java | 68 - .../jpa/core/resource/orm/SqlResultSetMapping.java | 418 - .../jpt/jpa/core/resource/orm/TemporalType.java | 262 - .../jpt/jpa/core/resource/orm/XmlAccessHolder.java | 68 - .../core/resource/orm/XmlAssociationOverride.java | 521 - .../orm/XmlAssociationOverrideContainer.java | 57 - .../jpa/core/resource/orm/XmlAttributeMapping.java | 70 - .../core/resource/orm/XmlAttributeOverride.java | 440 - .../orm/XmlAttributeOverrideContainer.java | 57 - .../jpt/jpa/core/resource/orm/XmlBasic.java | 687 - .../jpa/core/resource/orm/XmlClassReference.java | 246 - .../jpa/core/resource/orm/XmlCollectionTable.java | 68 - .../jpt/jpa/core/resource/orm/XmlColumn.java | 375 - .../core/resource/orm/XmlConvertibleMapping.java | 144 - .../core/resource/orm/XmlDiscriminatorColumn.java | 297 - .../core/resource/orm/XmlElementCollection.java | 1660 --- .../jpt/jpa/core/resource/orm/XmlEmbeddable.java | 85 - .../jpt/jpa/core/resource/orm/XmlEmbedded.java | 256 - .../jpt/jpa/core/resource/orm/XmlEmbeddedId.java | 74 - .../jpt/jpa/core/resource/orm/XmlEntity.java | 2312 ---- .../jpa/core/resource/orm/XmlEntityMappings.java | 1118 -- .../core/resource/orm/XmlEventMethodContainer.java | 227 - .../jpa/core/resource/orm/XmlGeneratedValue.java | 303 - .../jpt/jpa/core/resource/orm/XmlGenerator.java | 120 - .../core/resource/orm/XmlGeneratorContainer.java | 86 - .../eclipse/jpt/jpa/core/resource/orm/XmlId.java | 801 -- .../jpa/core/resource/orm/XmlIdClassContainer.java | 61 - .../jpt/jpa/core/resource/orm/XmlJoinColumn.java | 234 - .../core/resource/orm/XmlJoinColumnContainer.java | 51 - .../jpt/jpa/core/resource/orm/XmlJoinTable.java | 210 - .../core/resource/orm/XmlJoinTableContainer.java | 59 - .../jpt/jpa/core/resource/orm/XmlManyToMany.java | 88 - .../jpt/jpa/core/resource/orm/XmlManyToOne.java | 85 - .../jpa/core/resource/orm/XmlMappedByMapping.java | 68 - .../jpa/core/resource/orm/XmlMappedSuperclass.java | 574 - .../jpa/core/resource/orm/XmlNamedNativeQuery.java | 586 - .../jpt/jpa/core/resource/orm/XmlNamedQuery.java | 542 - .../core/resource/orm/XmlNullAttributeMapping.java | 54 - .../jpt/jpa/core/resource/orm/XmlOneToMany.java | 376 - .../jpt/jpa/core/resource/orm/XmlOneToOne.java | 467 - .../jpt/jpa/core/resource/orm/XmlOrderColumn.java | 404 - .../jpt/jpa/core/resource/orm/XmlOrderable.java | 64 - .../jpt/jpa/core/resource/orm/XmlOverride.java | 67 - .../resource/orm/XmlPersistenceUnitDefaults.java | 727 -- .../resource/orm/XmlPersistenceUnitMetadata.java | 394 - .../core/resource/orm/XmlPrimaryKeyJoinColumn.java | 230 - .../orm/XmlPrimaryKeyJoinColumnContainer.java | 51 - .../jpt/jpa/core/resource/orm/XmlQuery.java | 111 - .../jpa/core/resource/orm/XmlQueryContainer.java | 67 - .../jpt/jpa/core/resource/orm/XmlQueryHint.java | 366 - .../jpa/core/resource/orm/XmlReferenceTable.java | 57 - .../jpa/core/resource/orm/XmlSecondaryTable.java | 205 - .../core/resource/orm/XmlSequenceGenerator.java | 702 -- .../jpt/jpa/core/resource/orm/XmlTable.java | 71 - .../jpa/core/resource/orm/XmlTableGenerator.java | 947 -- .../jpt/jpa/core/resource/orm/XmlTransient.java | 77 - .../jpt/jpa/core/resource/orm/XmlTypeMapping.java | 164 - .../jpa/core/resource/orm/XmlUniqueConstraint.java | 274 - .../jpt/jpa/core/resource/orm/XmlVersion.java | 523 - .../jpt/jpa/core/resource/orm/v2_0/JPA2_0.java | 53 - .../core/resource/orm/v2_0/LockModeType_2_0.java | 397 - .../jpa/core/resource/orm/v2_0/OrmV2_0Factory.java | 166 - .../jpa/core/resource/orm/v2_0/OrmV2_0Package.java | 3784 ------ .../orm/v2_0/XmlAssociationOverride_2_0.java | 64 - .../resource/orm/v2_0/XmlAttributeMapping_2_0.java | 35 - .../orm/v2_0/XmlAttributeOverride_2_0.java | 67 - .../core/resource/orm/v2_0/XmlAttributes_2_0.java | 86 - .../core/resource/orm/v2_0/XmlCacheable_2_0.java | 71 - .../core/resource/orm/v2_0/XmlCascadeType_2_0.java | 61 - .../resource/orm/v2_0/XmlCollectionTable_2_0.java | 35 - .../core/resource/orm/v2_0/XmlDerivedId_2_0.java | 72 - .../orm/v2_0/XmlElementCollection_2_0.java | 326 - .../core/resource/orm/v2_0/XmlEmbedded_2_0.java | 34 - .../resource/orm/v2_0/XmlEntityListener_2_0.java | 67 - .../jpa/core/resource/orm/v2_0/XmlEntity_2_0.java | 32 - .../core/resource/orm/v2_0/XmlEventMethod_2_0.java | 67 - .../core/resource/orm/v2_0/XmlGenerator_2_0.java | 67 - .../core/resource/orm/v2_0/XmlManyToMany_2_0.java | 34 - .../XmlMapKeyAttributeOverrideContainer_2_0.java | 60 - .../core/resource/orm/v2_0/XmlMapKeyClass_2_0.java | 67 - .../jpa/core/resource/orm/v2_0/XmlMapsId_2_0.java | 70 - .../orm/v2_0/XmlMultiRelationshipMapping_2_0.java | 174 - .../core/resource/orm/v2_0/XmlNamedQuery_2_0.java | 70 - .../core/resource/orm/v2_0/XmlOneToMany_2_0.java | 28 - .../core/resource/orm/v2_0/XmlOneToOne_2_0.java | 33 - .../core/resource/orm/v2_0/XmlOrderColumn_2_0.java | 121 - .../core/resource/orm/v2_0/XmlOrderable_2_0.java | 67 - .../resource/orm/v2_0/XmlOrphanRemovable_2_0.java | 65 - .../orm/v2_0/XmlPersistenceUnitDefaults_2_0.java | 94 - .../orm/v2_0/XmlPersistenceUnitMetadata_2_0.java | 67 - .../core/resource/orm/v2_0/XmlQueryHint_2_0.java | 67 - .../jpa/core/resource/orm/v2_0/XmlQuery_2_0.java | 67 - .../orm/v2_0/XmlSequenceGenerator_2_0.java | 94 - .../orm/v2_0/XmlSingleRelationshipMapping_2_0.java | 31 - .../orm/v2_0/XmlSqlResultSetMapping_2_0.java | 67 - .../resource/orm/v2_0/XmlUniqueConstraint_2_0.java | 67 - .../jpt/jpa/core/resource/persistence/JPA.java | 57 - .../resource/persistence/PersistenceFactory.java | 250 - .../resource/persistence/PersistencePackage.java | 1302 -- .../persistence/PersistenceXmlResourceFactory.java | 52 - .../core/resource/persistence/XmlJarFileRef.java | 249 - .../core/resource/persistence/XmlJavaClassRef.java | 248 - .../resource/persistence/XmlMappingFileRef.java | 277 - .../core/resource/persistence/XmlPersistence.java | 249 - .../resource/persistence/XmlPersistenceUnit.java | 1105 -- .../XmlPersistenceUnitTransactionType.java | 236 - .../core/resource/persistence/XmlProperties.java | 202 - .../jpa/core/resource/persistence/XmlProperty.java | 322 - .../jpa/core/resource/persistence/v2_0/JPA2_0.java | 39 - .../persistence/v2_0/PersistenceV2_0Factory.java | 192 - .../persistence/v2_0/PersistenceV2_0Package.java | 452 - .../v2_0/XmlPersistenceUnitCachingType_2_0.java | 312 - .../XmlPersistenceUnitValidationModeType_2_0.java | 258 - .../persistence/v2_0/XmlPersistenceUnit_2_0.java | 96 - .../jpa/core/resource/xml/AbstractJpaEObject.java | 332 - .../core/resource/xml/AbstractJpaRootEObject.java | 335 - .../jpt/jpa/core/resource/xml/CommonFactory.java | 115 - .../jpt/jpa/core/resource/xml/CommonPackage.java | 436 - .../jpt/jpa/core/resource/xml/EmfTools.java | 40 - .../jpt/jpa/core/resource/xml/JpaEObject.java | 61 - .../jpt/jpa/core/resource/xml/JpaRootEObject.java | 96 - .../jpt/jpa/core/resource/xml/JpaXmlResource.java | 307 - .../org/eclipse/jpt/jpa/core/resource/xml/XML.java | 35 - jpa/plugins/org.eclipse.jpt.jpa.db.ui/.classpath | 7 - jpa/plugins/org.eclipse.jpt.jpa.db.ui/.cvsignore | 6 - jpa/plugins/org.eclipse.jpt.jpa.db.ui/.project | 28 - .../org.eclipse.jpt.jpa.db.ui/META-INF/MANIFEST.MF | 15 - jpa/plugins/org.eclipse.jpt.jpa.db.ui/about.html | 34 - .../org.eclipse.jpt.jpa.db.ui/build.properties | 16 - .../org.eclipse.jpt.jpa.db.ui/component.xml | 12 - .../org.eclipse.jpt.jpa.db.ui/plugin.properties | 24 - .../eclipse/jpt/jpa/db/ui/internal/DTPUiTools.java | 106 - jpa/plugins/org.eclipse.jpt.jpa.db/.classpath | 7 - jpa/plugins/org.eclipse.jpt.jpa.db/.cvsignore | 6 - jpa/plugins/org.eclipse.jpt.jpa.db/.project | 28 - .../org.eclipse.jpt.jpa.db/META-INF/MANIFEST.MF | 20 - jpa/plugins/org.eclipse.jpt.jpa.db/about.html | 34 - .../org.eclipse.jpt.jpa.db/build.properties | 18 - jpa/plugins/org.eclipse.jpt.jpa.db/component.xml | 12 - .../org.eclipse.jpt.jpa.db/plugin.properties | 24 - .../src/org/eclipse/jpt/jpa/db/Catalog.java | 25 - .../src/org/eclipse/jpt/jpa/db/Column.java | 120 - .../org/eclipse/jpt/jpa/db/ConnectionAdapter.java | 71 - .../org/eclipse/jpt/jpa/db/ConnectionListener.java | 41 - .../org/eclipse/jpt/jpa/db/ConnectionProfile.java | 219 - .../jpt/jpa/db/ConnectionProfileAdapter.java | 35 - .../jpt/jpa/db/ConnectionProfileFactory.java | 61 - .../jpt/jpa/db/ConnectionProfileListener.java | 42 - .../src/org/eclipse/jpt/jpa/db/Database.java | 160 - .../jpt/jpa/db/DatabaseIdentifierAdapter.java | 53 - .../src/org/eclipse/jpt/jpa/db/DatabaseObject.java | 102 - .../src/org/eclipse/jpt/jpa/db/ForeignKey.java | 156 - .../src/org/eclipse/jpt/jpa/db/JptJpaDbPlugin.java | 140 - .../src/org/eclipse/jpt/jpa/db/Schema.java | 98 - .../org/eclipse/jpt/jpa/db/SchemaContainer.java | 84 - .../src/org/eclipse/jpt/jpa/db/Sequence.java | 28 - .../src/org/eclipse/jpt/jpa/db/Table.java | 126 - .../jpt/jpa/db/internal/DTPCatalogWrapper.java | 96 - .../jpt/jpa/db/internal/DTPColumnWrapper.java | 235 - .../db/internal/DTPConnectionProfileFactory.java | 168 - .../db/internal/DTPConnectionProfileWrapper.java | 535 - .../jpt/jpa/db/internal/DTPDatabaseObject.java | 29 - .../jpa/db/internal/DTPDatabaseObjectWrapper.java | 206 - .../jpt/jpa/db/internal/DTPDatabaseWrapper.java | 357 - .../jpt/jpa/db/internal/DTPForeignKeyWrapper.java | 337 - .../jpa/db/internal/DTPSchemaContainerWrapper.java | 227 - .../jpt/jpa/db/internal/DTPSchemaWrapper.java | 332 - .../jpt/jpa/db/internal/DTPSequenceWrapper.java | 70 - .../jpt/jpa/db/internal/DTPTableWrapper.java | 412 - .../internal/driver/AbstractDTPDriverAdapter.java | 482 - .../jpa/db/internal/driver/CatalogStrategy.java | 43 - .../eclipse/jpt/jpa/db/internal/driver/DB2.java | 48 - .../jpa/db/internal/driver/DTPDriverAdapter.java | 142 - .../internal/driver/DTPDriverAdapterFactory.java | 27 - .../internal/driver/DTPDriverAdapterManager.java | 79 - .../eclipse/jpt/jpa/db/internal/driver/Derby.java | 63 - .../db/internal/driver/FauxCatalogStrategy.java | 72 - .../jpa/db/internal/driver/FoldingStrategy.java | 28 - .../eclipse/jpt/jpa/db/internal/driver/HSQLDB.java | 53 - .../jpt/jpa/db/internal/driver/Informix.java | 58 - .../internal/driver/LowerCaseFoldingStrategy.java | 49 - .../eclipse/jpt/jpa/db/internal/driver/MaxDB.java | 52 - .../eclipse/jpt/jpa/db/internal/driver/MySQL.java | 258 - .../jpa/db/internal/driver/NoCatalogStrategy.java | 45 - .../jpa/db/internal/driver/NonFoldingStrategy.java | 57 - .../eclipse/jpt/jpa/db/internal/driver/Oracle.java | 51 - .../jpt/jpa/db/internal/driver/PostgreSQL.java | 94 - .../jpt/jpa/db/internal/driver/SQLServer.java | 111 - .../db/internal/driver/SimpleCatalogStrategy.java | 46 - .../eclipse/jpt/jpa/db/internal/driver/Sybase.java | 120 - .../jpt/jpa/db/internal/driver/Unknown.java | 44 - .../db/internal/driver/UnknownCatalogStrategy.java | 96 - .../internal/driver/UpperCaseFoldingStrategy.java | 49 - .../.cvsignore | 1 - .../.project | 22 - .../.settings/org.eclipse.core.resources.prefs | 3 - .../META-INF/MANIFEST.MF | 7 - .../about.html | 34 - .../about.ini | 44 - .../about.mappings | 6 - .../about.properties | 24 - .../build.properties | 18 - .../component.xml | 9 - .../icons/WTP_icon_x32_v2.png | Bin 5616 -> 0 bytes .../plugin.properties | 13 - .../.classpath | 8 - .../.cvsignore | 1 - .../.project | 28 - .../META-INF/MANIFEST.MF | 13 - .../about.html | 47 - .../build.properties | 19 - .../lib/persistence.jar | Bin 46465 -> 0 bytes .../plugin.properties | 23 - .../jpt/jpa/eclipselink/core/ddlgen/Main.java | 218 - .../.classpath | 15 - .../.cvsignore | 3 - .../org.eclipse.jpt.jpa.eclipselink.core/.project | 28 - .../.settings/org.eclipse.core.resources.prefs | 8 - .../META-INF/MANIFEST.MF | 100 - .../about.html | 34 - .../build.properties | 24 - .../model/eclipseLinkResourceModels.genmodel | 519 - .../model/eclipselink_orm.ecore | 651 - .../plugin.properties | 33 - .../plugin.xml | 263 - .../eclipselink_jpa_validation.properties | 26 - .../schemas/eclipselink_orm_1_0.xsd | 3128 ----- .../schemas/eclipselink_orm_1_1.xsd | 3248 ----- .../schemas/eclipselink_orm_1_2.xsd | 3519 ------ .../schemas/eclipselink_orm_2_0.xsd | 3625 ------ .../schemas/eclipselink_orm_2_1.xsd | 4108 ------ .../schemas/eclipselink_orm_2_2.xsd | 4778 ------- .../schemas/eclipselink_oxm_2_0.xsd | 260 - .../schemas/eclipselink_oxm_2_1.xsd | 462 - .../schemas/eclipselink_oxm_2_2.xsd | 562 - .../schemas/eclipselink_persistence_map_1.0.xsd | 4109 ------ .../schemas/eclipselink_persistence_map_1.1.xsd | 4183 ------ .../schemas/eclipselink_persistence_map_1.2.xsd | 4253 ------- .../schemas/eclipselink_persistence_map_2.0.xsd | 4253 ------- .../schemas/eclipselink_sessions_1.0.xsd | 1477 --- .../schemas/eclipselink_sessions_1.1.xsd | 1585 --- .../schemas/eclipselink_sessions_1.2.xsd | 1586 --- .../schemas/eclipselink_sessions_2.0.xsd | 1591 --- .../schemas/eclipselink_sessions_2.1.xsd | 1598 --- .../eclipselink/core/EclipseLinkJpaProject.java | 38 - .../eclipselink/core/EclipseLinkMappingKeys.java | 28 - .../core/JptJpaEclipseLinkCorePlugin.java | 172 - .../context/EclipseLinkBasicCollectionMapping.java | 30 - .../core/context/EclipseLinkBasicMapMapping.java | 30 - .../core/context/EclipseLinkBasicMapping.java | 30 - .../context/EclipseLinkCacheCoordinationType.java | 106 - .../core/context/EclipseLinkCacheType.java | 133 - .../core/context/EclipseLinkCaching.java | 219 - .../core/context/EclipseLinkChangeTracking.java | 42 - .../context/EclipseLinkChangeTrackingType.java | 106 - .../core/context/EclipseLinkConversionValue.java | 38 - .../core/context/EclipseLinkConvert.java | 82 - .../core/context/EclipseLinkConverter.java | 75 - .../EclipseLinkConverterClassConverter.java | 31 - .../core/context/EclipseLinkCustomConverter.java | 28 - .../core/context/EclipseLinkCustomizer.java | 44 - .../core/context/EclipseLinkEmbeddable.java | 28 - .../core/context/EclipseLinkEntity.java | 28 - .../core/context/EclipseLinkExistenceType.java | 107 - .../core/context/EclipseLinkIdMapping.java | 30 - .../core/context/EclipseLinkJoinFetch.java | 31 - .../core/context/EclipseLinkJoinFetchMapping.java | 27 - .../core/context/EclipseLinkJoinFetchType.java | 89 - .../core/context/EclipseLinkMappedSuperclass.java | 28 - .../core/context/EclipseLinkMutable.java | 35 - .../EclipseLinkNonEmbeddableTypeMapping.java | 27 - .../context/EclipseLinkObjectTypeConverter.java | 102 - .../core/context/EclipseLinkOneToManyMapping.java | 32 - .../context/EclipseLinkOneToManyRelationship.java | 32 - .../core/context/EclipseLinkOneToOneMapping.java | 33 - .../core/context/EclipseLinkPrivateOwned.java | 30 - .../core/context/EclipseLinkReadOnly.java | 38 - .../context/EclipseLinkRelationshipMapping.java | 30 - .../core/context/EclipseLinkStructConverter.java | 27 - .../core/context/EclipseLinkTimeOfDay.java | 44 - .../context/EclipseLinkTransformationMapping.java | 30 - .../core/context/EclipseLinkTypeConverter.java | 34 - .../core/context/EclipseLinkTypeMapping.java | 40 - .../EclipseLinkVariableOneToOneMapping.java | 30 - .../core/context/EclipseLinkVersionMapping.java | 30 - .../java/EclipseLinkJavaOneToManyRelationship.java | 31 - .../context/java/EclipseLinkJavaTypeMapping.java | 29 - .../core/context/java/JavaEclipseLinkCaching.java | 39 - .../java/JavaEclipseLinkConverterContainer.java | 56 - .../context/java/JavaEclipseLinkEmbeddable.java | 32 - .../core/context/java/JavaEclipseLinkEntity.java | 32 - .../java/JavaEclipseLinkMappedSuperclass.java | 32 - .../JavaEclipseLinkNonEmbeddableTypeMapping.java | 27 - .../context/orm/EclipseLinkEntityMappings.java | 18 - .../orm/EclipseLinkOrmOneToManyRelationship.java | 31 - .../context/orm/EclipseLinkOrmTypeMapping.java | 34 - .../core/context/orm/OrmEclipseLinkCaching.java | 31 - .../orm/OrmEclipseLinkConverterContainer.java | 189 - .../core/context/orm/OrmEclipseLinkEmbeddable.java | 37 - .../core/context/orm/OrmEclipseLinkEntity.java | 37 - .../orm/OrmEclipseLinkMappedSuperclass.java | 38 - .../OrmEclipseLinkNonEmbeddableTypeMapping.java | 32 - .../persistence/EclipseLinkPersistenceUnit.java | 547 - ...clipseLinkPersistenceXmlContextNodeFactory.java | 21 - .../context/persistence/caching/CacheType.java | 30 - .../core/context/persistence/caching/Caching.java | 89 - .../core/context/persistence/caching/Entity.java | 147 - .../persistence/caching/FlushClearCache.java | 24 - .../persistence/connection/BatchWriting.java | 26 - .../context/persistence/connection/Connection.java | 147 - .../connection/ExclusiveConnectionMode.java | 25 - .../persistence/customization/Customization.java | 141 - .../context/persistence/customization/Entity.java | 110 - .../persistence/customization/Profiler.java | 52 - .../context/persistence/customization/Weaving.java | 24 - .../persistence/general/GeneralProperties.java | 28 - .../core/context/persistence/logging/Logger.java | 55 - .../core/context/persistence/logging/Logging.java | 78 - .../context/persistence/logging/LoggingLevel.java | 36 - .../core/context/persistence/options/Options.java | 81 - .../persistence/options/TargetDatabase.java | 77 - .../context/persistence/options/TargetServer.java | 49 - .../schema/generation/DdlGenerationType.java | 24 - .../persistence/schema/generation/OutputMode.java | 24 - .../schema/generation/SchemaGeneration.java | 59 - .../DefaultEclipseLinkJpaValidationMessages.java | 91 - ...EclipseLinkJpaAnnotationDefinitionProvider.java | 111 - .../core/internal/EclipseLinkJpaFactory.java | 139 - .../internal/EclipseLinkJpaPlatformFactory.java | 91 - .../internal/EclipseLinkJpaPlatformProvider.java | 183 - .../core/internal/EclipseLinkJpaProjectImpl.java | 34 - .../internal/EclipseLinkJpaValidationMessages.java | 49 - .../EclipseLinkOrmResourceModelProvider.java | 53 - .../java/EclipseLinkJavaOneToManyRelationship.java | 28 - .../context/java/EclipseLinkJavaTimeOfDay.java | 137 - .../JavaEclipseLinkBasicCollectionMapping.java | 50 - ...clipseLinkBasicCollectionMappingDefinition.java | 66 - .../java/JavaEclipseLinkBasicMapMapping.java | 63 - .../JavaEclipseLinkBasicMapMappingDefinition.java | 66 - .../context/java/JavaEclipseLinkBasicMapping.java | 79 - .../JavaEclipseLinkBasicMappingDefinition.java | 56 - .../context/java/JavaEclipseLinkCachingImpl.java | 603 - .../java/JavaEclipseLinkChangeTracking.java | 138 - .../java/JavaEclipseLinkConversionValue.java | 140 - .../context/java/JavaEclipseLinkConvert.java | 357 - .../context/java/JavaEclipseLinkConverter.java | 257 - .../JavaEclipseLinkConverterContainerImpl.java | 340 - .../java/JavaEclipseLinkCustomConverter.java | 165 - .../context/java/JavaEclipseLinkCustomizer.java | 187 - .../java/JavaEclipseLinkEmbeddableImpl.java | 122 - .../context/java/JavaEclipseLinkEntityImpl.java | 192 - .../context/java/JavaEclipseLinkIdMapping.java | 76 - .../java/JavaEclipseLinkIdMappingDefinition.java | 48 - .../context/java/JavaEclipseLinkJoinFetch.java | 131 - .../java/JavaEclipseLinkManyToManyMapping.java | 63 - ...JavaEclipseLinkManyToManyMappingDefinition.java | 53 - .../java/JavaEclipseLinkManyToOneMapping.java | 63 - .../JavaEclipseLinkManyToOneMappingDefinition.java | 53 - .../java/JavaEclipseLinkMappedSuperclassImpl.java | 176 - .../context/java/JavaEclipseLinkMutable.java | 169 - .../java/JavaEclipseLinkObjectTypeConverter.java | 320 - .../java/JavaEclipseLinkOneToManyMapping.java | 92 - .../JavaEclipseLinkOneToManyMappingDefinition.java | 63 - .../java/JavaEclipseLinkOneToOneMapping.java | 76 - .../JavaEclipseLinkOneToOneMappingDefinition.java | 63 - .../java/JavaEclipseLinkPersistentAttribute.java | 109 - .../context/java/JavaEclipseLinkPrivateOwned.java | 117 - .../context/java/JavaEclipseLinkReadOnly.java | 131 - .../java/JavaEclipseLinkStructConverter.java | 164 - .../java/JavaEclipseLinkTransformationMapping.java | 35 - ...EclipseLinkTransformationMappingDefinition.java | 66 - .../context/java/JavaEclipseLinkTypeConverter.java | 150 - .../JavaEclipseLinkVariableOneToOneMapping.java | 35 - ...lipseLinkVariableOneToOneMappingDefinition.java | 70 - .../java/JavaEclipseLinkVersionMapping.java | 94 - .../JavaEclipseLinkVersionMappingDefinition.java | 48 - .../orm/AbstractEclipseLinkOrmXmlDefinition.java | 87 - ...stractOrmEclipseLinkBasicCollectionMapping.java | 67 - .../orm/AbstractOrmEclipseLinkBasicMapMapping.java | 85 - .../context/orm/EclipseLinkEntityMappingsImpl.java | 121 - .../orm/EclipseLinkOrmOneToManyRelationship.java | 28 - .../context/orm/EclipseLinkOrmTimeOfDay.java | 136 - .../orm/EclipseLinkOrmXmlContextNodeFactory.java | 124 - .../context/orm/EclipseLinkOrmXmlDefinition.java | 46 - .../orm/OrmEclipseLinkBasicCollectionMapping.java | 21 - ...clipseLinkBasicCollectionMappingDefinition.java | 65 - .../context/orm/OrmEclipseLinkBasicMapMapping.java | 21 - .../OrmEclipseLinkBasicMapMappingDefinition.java | 65 - .../context/orm/OrmEclipseLinkBasicMapping.java | 79 - .../context/orm/OrmEclipseLinkCachingImpl.java | 727 -- .../context/orm/OrmEclipseLinkChangeTracking.java | 166 - .../context/orm/OrmEclipseLinkConversionValue.java | 139 - .../context/orm/OrmEclipseLinkConvert.java | 343 - .../context/orm/OrmEclipseLinkConverter.java | 270 - .../orm/OrmEclipseLinkConverterClassConverter.java | 179 - .../orm/OrmEclipseLinkConverterContainerImpl.java | 746 -- .../context/orm/OrmEclipseLinkCustomConverter.java | 108 - .../context/orm/OrmEclipseLinkCustomizer.java | 235 - .../context/orm/OrmEclipseLinkEmbeddableImpl.java | 193 - .../context/orm/OrmEclipseLinkEntityImpl.java | 336 - .../context/orm/OrmEclipseLinkIdMapping.java | 76 - .../context/orm/OrmEclipseLinkJoinFetch.java | 89 - .../orm/OrmEclipseLinkManyToManyMapping.java | 63 - .../orm/OrmEclipseLinkManyToOneMapping.java | 63 - .../orm/OrmEclipseLinkMappedSuperclassImpl.java | 261 - .../context/orm/OrmEclipseLinkMutable.java | 127 - .../orm/OrmEclipseLinkObjectTypeConverter.java | 425 - .../orm/OrmEclipseLinkOneToManyMapping.java | 91 - .../context/orm/OrmEclipseLinkOneToOneMapping.java | 76 - .../orm/OrmEclipseLinkPersistentAttribute.java | 51 - .../context/orm/OrmEclipseLinkPrivateOwned.java | 88 - .../context/orm/OrmEclipseLinkReadOnly.java | 124 - .../context/orm/OrmEclipseLinkStructConverter.java | 108 - .../orm/OrmEclipseLinkTransformationMapping.java | 47 - ...EclipseLinkTransformationMappingDefinition.java | 65 - .../context/orm/OrmEclipseLinkTypeConverter.java | 245 - .../orm/OrmEclipseLinkVariableOneToOneMapping.java | 47 - ...lipseLinkVariableOneToOneMappingDefinition.java | 65 - .../context/orm/OrmEclipseLinkVersionMapping.java | 95 - .../context/persistence/EclipseLinkJarFileRef.java | 31 - .../EclipseLinkPersistenceUnitProperties.java | 55 - ...clipseLinkPersistenceXmlContextNodeFactory.java | 51 - .../EclipseLinkPersistenceXmlDefinition.java | 53 - .../persistence/caching/EclipseLinkCaching.java | 589 - .../connection/EclipseLinkConnection.java | 677 - .../customization/EclipseLinkCustomization.java | 874 -- .../general/EclipseLinkGeneralProperties.java | 96 - .../persistence/logging/EclipseLinkLogging.java | 409 - .../persistence/options/EclipseLinkOptions.java | 444 - .../generation/EclipseLinkSchemaGeneration.java | 232 - .../ddlgen/AbstractEclipseLinkDDLGenerator.java | 425 - .../internal/ddlgen/EclipseLinkDDLGenerator.java | 62 - ...ipseLinkEclipseLinkBundlesLibraryValidator.java | 102 - .../libval/EclipseLinkUserLibraryValidator.java | 57 - ...clipseLinkOrmFileCreationDataModelProvider.java | 86 - .../EclipseLinkOrmFileCreationOperation.java | 29 - ...pseLinkBasicCollectionAnnotationDefinition.java | 62 - .../EclipseLinkBasicMapAnnotationDefinition.java | 62 - .../java/EclipseLinkCacheAnnotationDefinition.java | 62 - ...ipseLinkChangeTrackingAnnotationDefinition.java | 62 - .../EclipseLinkConvertAnnotationDefinition.java | 62 - .../EclipseLinkConverterAnnotationDefinition.java | 62 - .../EclipseLinkCustomizerAnnotationDefinition.java | 62 - ...eLinkExistenceCheckingAnnotationDefinition.java | 62 - .../EclipseLinkJoinFetchAnnotationDefinition.java | 62 - .../EclipseLinkMutableAnnotationDefinition.java | 62 - ...inkObjectTypeConverterAnnotationDefinition.java | 62 - .../EclipseLinkPrimaryKeyAnnotationDefinition.java | 63 - ...clipseLinkPrivateOwnedAnnotationDefinition.java | 62 - .../EclipseLinkReadOnlyAnnotationDefinition.java | 62 - ...pseLinkReadTransformerAnnotationDefinition.java | 62 - ...pseLinkStructConverterAnnotationDefinition.java | 62 - ...ipseLinkTransformationAnnotationDefinition.java | 62 - ...lipseLinkTypeConverterAnnotationDefinition.java | 62 - ...seLinkVariableOneToOneAnnotationDefinition.java | 62 - ...seLinkWriteTransformerAnnotationDefinition.java | 62 - .../java/NullEclipseLinkCacheAnnotation.java | 172 - .../java/NullEclipseLinkJoinFetchAnnotation.java | 48 - .../NullEclipseLinkTransformationAnnotation.java | 63 - ...clipseLinkWriteTransformerColumnAnnotation.java | 34 - ...naryBaseEclipseLinkTypeConverterAnnotation.java | 104 - ...BinaryEclipseLinkBasicCollectionAnnotation.java | 32 - .../BinaryEclipseLinkBasicMapAnnotation.java | 32 - .../binary/BinaryEclipseLinkCacheAnnotation.java | 311 - .../BinaryEclipseLinkChangeTrackingAnnotation.java | 73 - ...BinaryEclipseLinkConversionValueAnnotation.java | 97 - .../binary/BinaryEclipseLinkConvertAnnotation.java | 74 - .../BinaryEclipseLinkConverterAnnotation.java | 85 - .../BinaryEclipseLinkCustomizerAnnotation.java | 80 - ...naryEclipseLinkExistenceCheckingAnnotation.java | 72 - .../BinaryEclipseLinkJoinFetchAnnotation.java | 72 - .../binary/BinaryEclipseLinkMutableAnnotation.java | 71 - .../BinaryEclipseLinkNamedConverterAnnotation.java | 75 - ...ryEclipseLinkObjectTypeConverterAnnotation.java | 140 - .../BinaryEclipseLinkPrimaryKeyAnnotation.java | 33 - .../BinaryEclipseLinkPrivateOwnedAnnotation.java | 33 - .../BinaryEclipseLinkReadOnlyAnnotation.java | 33 - ...BinaryEclipseLinkReadTransformerAnnotation.java | 46 - ...BinaryEclipseLinkStructConverterAnnotation.java | 78 - .../BinaryEclipseLinkTimeOfDayAnnotation.java | 149 - .../BinaryEclipseLinkTransformationAnnotation.java | 98 - .../BinaryEclipseLinkTransformerAnnotation.java | 97 - .../BinaryEclipseLinkTypeConverterAnnotation.java | 53 - ...inaryEclipseLinkVariableOneToOneAnnotation.java | 32 - ...inaryEclipseLinkWriteTransformerAnnotation.java | 124 - ...urceBaseEclipseLinkTypeConverterAnnotation.java | 199 - ...SourceEclipseLinkBasicCollectionAnnotation.java | 46 - .../SourceEclipseLinkBasicMapAnnotation.java | 46 - .../source/SourceEclipseLinkCacheAnnotation.java | 448 - .../SourceEclipseLinkChangeTrackingAnnotation.java | 105 - ...SourceEclipseLinkConversionValueAnnotation.java | 196 - .../source/SourceEclipseLinkConvertAnnotation.java | 109 - .../SourceEclipseLinkConverterAnnotation.java | 148 - .../SourceEclipseLinkCustomizerAnnotation.java | 144 - ...urceEclipseLinkExistenceCheckingAnnotation.java | 105 - .../SourceEclipseLinkJoinFetchAnnotation.java | 105 - .../source/SourceEclipseLinkMutableAnnotation.java | 105 - .../SourceEclipseLinkNamedConverterAnnotation.java | 102 - ...ceEclipseLinkObjectTypeConverterAnnotation.java | 269 - .../SourceEclipseLinkPrimaryKeyAnnotation.java | 48 - .../SourceEclipseLinkPrivateOwnedAnnotation.java | 46 - .../SourceEclipseLinkReadOnlyAnnotation.java | 46 - ...SourceEclipseLinkReadTransformerAnnotation.java | 50 - ...SourceEclipseLinkStructConverterAnnotation.java | 110 - .../SourceEclipseLinkTimeOfDayAnnotation.java | 215 - .../SourceEclipseLinkTransformationAnnotation.java | 145 - .../SourceEclipseLinkTransformerAnnotation.java | 132 - .../SourceEclipseLinkTypeConverterAnnotation.java | 58 - ...ourceEclipseLinkVariableOneToOneAnnotation.java | 46 - ...ourceEclipseLinkWriteTransformerAnnotation.java | 159 - .../orm/EclipseLinkOrmXmlResourceProvider.java | 84 - .../v1_1/EclipseLink1_1JpaPlatformFactory.java | 72 - .../v1_1/EclipseLink1_1JpaPlatformProvider.java | 188 - .../AbstractEclipseLinkTypeMappingValidator.java | 50 - .../EclipseLinkEntityPrimaryKeyValidator.java | 65 - ...pseLinkMappedSuperclassPrimaryKeyValidator.java | 73 - .../EclipseLinkMappedSuperclassValidator.java | 35 - .../EclipseLinkPersistentAttributeValidator.java | 34 - .../context/EclipseLinkTypeMappingValidator.java | 23 - .../EclipseLinkOrmXml1_1ContextNodeFactory.java | 27 - .../orm/EclipseLinkOrmXml1_1Definition.java | 47 - .../orm/OrmEclipseLinkPersistentAttribute1_1.java | 78 - ...ipseLink1_2JpaAnnotationDefinitionProvider.java | 61 - .../internal/v1_2/EclipseLink1_2JpaFactory.java | 31 - .../v1_2/EclipseLink1_2JpaPlatformFactory.java | 72 - .../v1_2/EclipseLink1_2JpaPlatformProvider.java | 191 - .../java/EclipseLinkJavaPersistentType1_2.java | 78 - .../orm/EclipseLinkOrmXml1_2Definition.java | 48 - .../AbstractEclipseLink2_0JpaPlatformProvider.java | 181 - .../internal/v2_0/EclipseLink2_0JpaFactory.java | 151 - .../v2_0/EclipseLink2_0JpaPlatformFactory.java | 71 - .../v2_0/EclipseLink2_0JpaPlatformProvider.java | 38 - ...JavaEclipseLinkElementCollectionMapping2_0.java | 64 - ...eLinkElementCollectionMappingDefinition2_0.java | 53 - .../JavaEclipseLinkIdMappingDefinition2_0.java | 69 - ...aEclipseLinkManyToManyMappingDefinition2_0.java | 51 - ...vaEclipseLinkManyToOneMappingDefinition2_0.java | 51 - ...vaEclipseLinkOneToManyMappingDefinition2_0.java | 57 - ...avaEclipseLinkOneToOneMappingDefinition2_0.java | 57 - .../EclipseLinkOrmXml2_0ContextNodeFactory.java | 107 - .../orm/EclipseLinkOrmXml2_0Definition.java | 120 - ...pseLink2_0PersistenceXmlContextNodeFactory.java | 56 - .../EclipseLink2_0PersistenceXmlDefinition.java | 53 - .../connection/EclipseLinkConnection2_0.java | 153 - .../persistence/logging/EclipseLinkLogging2_0.java | 329 - .../persistence/options/EclipseLinkOptions2_0.java | 350 - .../v2_0/ddlgen/EclipseLink2_0DDLGenerator.java | 85 - .../AbstractEclipseLink2_1JpaPlatformProvider.java | 46 - ...ipseLink2_1JpaAnnotationDefinitionProvider.java | 112 - .../v2_1/EclipseLink2_1JpaPlatformFactory.java | 72 - .../v2_1/EclipseLink2_1JpaPlatformProvider.java | 38 - .../EclipseLinkOrmElementCollectionMapping2_1.java | 64 - .../EclipseLinkOrmXml2_1ContextNodeFactory.java | 38 - .../orm/EclipseLinkOrmXml2_1Definition.java | 48 - .../OrmEclipseLinkBasicCollectionMapping2_1.java | 43 - .../orm/OrmEclipseLinkBasicMapMapping2_1.java | 43 - ...eLinkClassExtractor2_1AnnotationDefinition.java | 62 - ...naryEclipseLinkClassExtractorAnnotation2_1.java | 78 - ...urceEclipseLinkClassExtractorAnnotation2_1.java | 138 - .../v2_2/EclipseLink2_2JpaPlatformFactory.java | 73 - .../v2_2/EclipseLink2_2JpaPlatformProvider.java | 62 - .../orm/EclipseLinkOrmXml2_2Definition.java | 98 - .../core/platform/EclipseLinkPlatform.java | 43 - .../BaseEclipseLinkTypeConverterAnnotation.java | 88 - .../core/resource/java/CacheCoordinationType.java | 66 - .../eclipselink/core/resource/java/CacheType.java | 69 - .../core/resource/java/ChangeTrackingType.java | 66 - .../core/resource/java/EclipseLink.java | 135 - .../java/EclipseLinkBasicCollectionAnnotation.java | 31 - .../java/EclipseLinkBasicMapAnnotation.java | 31 - .../resource/java/EclipseLinkCacheAnnotation.java | 220 - .../java/EclipseLinkChangeTrackingAnnotation.java | 53 - .../java/EclipseLinkConversionValueAnnotation.java | 73 - .../java/EclipseLinkConvertAnnotation.java | 59 - .../java/EclipseLinkConverterAnnotation.java | 69 - .../java/EclipseLinkCustomizerAnnotation.java | 70 - .../EclipseLinkExistenceCheckingAnnotation.java | 53 - .../java/EclipseLinkJoinFetchAnnotation.java | 53 - .../java/EclipseLinkMutableAnnotation.java | 53 - .../java/EclipseLinkNamedConverterAnnotation.java | 54 - .../EclipseLinkObjectTypeConverterAnnotation.java | 91 - .../java/EclipseLinkPrimaryKeyAnnotation.java | 32 - .../java/EclipseLinkPrivateOwnedAnnotation.java | 31 - .../java/EclipseLinkReadOnlyAnnotation.java | 31 - .../java/EclipseLinkReadTransformerAnnotation.java | 29 - .../java/EclipseLinkStructConverterAnnotation.java | 52 - .../java/EclipseLinkTimeOfDayAnnotation.java | 121 - .../java/EclipseLinkTransformationAnnotation.java | 74 - .../java/EclipseLinkTransformerAnnotation.java | 77 - .../java/EclipseLinkTypeConverterAnnotation.java | 29 - .../EclipseLinkVariableOneToOneAnnotation.java | 31 - .../EclipseLinkWriteTransformerAnnotation.java | 64 - .../core/resource/java/ExistenceType.java | 66 - .../core/resource/java/JoinFetchType.java | 64 - ...stableEclipseLinkConversionValueAnnotation.java | 28 - .../eclipselink/core/resource/orm/Attributes.java | 394 - .../core/resource/orm/CacheCoordinationType.java | 295 - .../eclipselink/core/resource/orm/CacheType.java | 373 - .../eclipselink/core/resource/orm/EclipseLink.java | 130 - .../core/resource/orm/EclipseLinkOrmFactory.java | 1067 -- .../core/resource/orm/EclipseLinkOrmPackage.java | 11805 ----------------- .../orm/EclipseLinkOrmXmlResourceFactory.java | 53 - .../core/resource/orm/ExistenceType.java | 295 - .../core/resource/orm/XmlAccessMethods.java | 301 - .../core/resource/orm/XmlAccessMethodsHolder.java | 60 - .../core/resource/orm/XmlAdditionalCriteria.java | 221 - .../core/resource/orm/XmlAttributeMapping.java | 34 - .../eclipselink/core/resource/orm/XmlBasic.java | 1488 --- .../core/resource/orm/XmlBasicCollection.java | 451 - .../eclipselink/core/resource/orm/XmlBasicMap.java | 451 - .../core/resource/orm/XmlBatchFetch.java | 300 - .../core/resource/orm/XmlBatchFetchHolder.java | 68 - .../eclipselink/core/resource/orm/XmlCache.java | 841 -- .../core/resource/orm/XmlCacheHolder.java | 102 - .../core/resource/orm/XmlChangeTracking.java | 226 - .../core/resource/orm/XmlChangeTrackingHolder.java | 71 - .../core/resource/orm/XmlChangeTrackingType.java | 291 - .../core/resource/orm/XmlCloneCopyPolicy.java | 299 - .../core/resource/orm/XmlCollectionTable.java | 265 - .../core/resource/orm/XmlConversionValue.java | 314 - .../core/resource/orm/XmlConverter.java | 251 - .../core/resource/orm/XmlConverterHolder.java | 154 - .../core/resource/orm/XmlConvertersHolder.java | 113 - .../core/resource/orm/XmlConvertibleMapping.java | 77 - .../core/resource/orm/XmlCopyPolicy.java | 226 - .../core/resource/orm/XmlCustomizer.java | 208 - .../core/resource/orm/XmlCustomizerHolder.java | 72 - .../core/resource/orm/XmlDirection.java | 294 - .../core/resource/orm/XmlElementCollection.java | 2458 ---- .../core/resource/orm/XmlEmbeddable.java | 1387 -- .../eclipselink/core/resource/orm/XmlEmbedded.java | 470 - .../core/resource/orm/XmlEmbeddedId.java | 469 - .../eclipselink/core/resource/orm/XmlEntity.java | 3193 ----- .../core/resource/orm/XmlEntityMappings.java | 1049 -- .../core/resource/orm/XmlFetchAttribute.java | 214 - .../core/resource/orm/XmlFetchGroup.java | 360 - .../core/resource/orm/XmlHashPartitioning.java | 219 - .../jpa/eclipselink/core/resource/orm/XmlId.java | 1149 -- .../eclipselink/core/resource/orm/XmlIndex.java | 563 - .../resource/orm/XmlInstantiationCopyPolicy.java | 74 - .../core/resource/orm/XmlJoinFetch.java | 79 - .../core/resource/orm/XmlJoinFetchType.java | 242 - .../core/resource/orm/XmlJoinTable.java | 265 - .../core/resource/orm/XmlManyToMany.java | 2163 ---- .../core/resource/orm/XmlManyToOne.java | 1459 --- .../core/resource/orm/XmlMappedSuperclass.java | 3517 ------ .../eclipselink/core/resource/orm/XmlMutable.java | 76 - .../core/resource/orm/XmlNamedConverter.java | 218 - .../resource/orm/XmlNamedStoredProcedureQuery.java | 644 - .../core/resource/orm/XmlObjectTypeConverter.java | 477 - .../core/resource/orm/XmlOneToMany.java | 2253 ---- .../eclipselink/core/resource/orm/XmlOneToOne.java | 1626 --- .../core/resource/orm/XmlOptimisticLocking.java | 373 - .../resource/orm/XmlOptimisticLockingType.java | 294 - .../core/resource/orm/XmlOrderColumn.java | 260 - .../core/resource/orm/XmlPartitioning.java | 220 - .../resource/orm/XmlPersistenceUnitDefaults.java | 295 - .../resource/orm/XmlPersistenceUnitMetadata.java | 233 - .../core/resource/orm/XmlPinnedPartitioning.java | 219 - .../core/resource/orm/XmlPrimaryKey.java | 406 - .../core/resource/orm/XmlPrivateOwned.java | 76 - .../eclipselink/core/resource/orm/XmlProperty.java | 362 - .../core/resource/orm/XmlPropertyContainer.java | 51 - .../core/resource/orm/XmlQueryContainer.java | 51 - .../core/resource/orm/XmlQueryRedirectors.java | 654 - .../core/resource/orm/XmlRangePartitioning.java | 219 - .../eclipselink/core/resource/orm/XmlReadOnly.java | 76 - .../resource/orm/XmlReplicationPartitioning.java | 219 - .../core/resource/orm/XmlReturnInsert.java | 211 - .../resource/orm/XmlRoundRobinPartitioning.java | 219 - .../core/resource/orm/XmlSecondaryTable.java | 262 - .../resource/orm/XmlStoredProcedureParameter.java | 590 - .../core/resource/orm/XmlStructConverter.java | 255 - .../eclipselink/core/resource/orm/XmlTable.java | 264 - .../core/resource/orm/XmlTableGenerator.java | 274 - .../core/resource/orm/XmlTimeOfDay.java | 446 - .../core/resource/orm/XmlTransformation.java | 474 - .../core/resource/orm/XmlTransient.java | 345 - .../core/resource/orm/XmlTypeConverter.java | 339 - .../core/resource/orm/XmlUnionPartitioning.java | 219 - .../core/resource/orm/XmlValuePartitioning.java | 219 - .../core/resource/orm/XmlVariableOneToOne.java | 1219 -- .../eclipselink/core/resource/orm/XmlVersion.java | 1135 -- .../core/resource/orm/v1_1/EclipseLink1_1.java | 27 - .../orm/v1_1/EclipseLinkOrmV1_1Factory.java | 166 - .../orm/v1_1/EclipseLinkOrmV1_1Package.java | 688 - .../resource/orm/v1_1/IdValidationType_1_1.java | 257 - .../core/resource/orm/v1_1/XmlBasic_1_1.java | 61 - .../core/resource/orm/v1_1/XmlEntity_1_1.java | 62 - .../resource/orm/v1_1/XmlMappedSuperclass_1_1.java | 62 - .../core/resource/orm/v1_1/XmlPrimaryKey_1_1.java | 83 - .../core/resource/orm/v1_2/EclipseLink1_2.java | 23 - .../core/resource/orm/v2_0/EclipseLink2_0.java | 40 - .../orm/v2_0/EclipseLinkOrmV2_0Factory.java | 166 - .../orm/v2_0/EclipseLinkOrmV2_0Package.java | 1518 --- .../resource/orm/v2_0/OrderCorrectionType_2_0.java | 257 - .../resource/orm/v2_0/XmlCacheInterceptor_2_0.java | 65 - .../orm/v2_0/XmlCollectionMapping_2_0.java | 64 - .../orm/v2_0/XmlElementCollection_2_0.java | 36 - .../core/resource/orm/v2_0/XmlEntity_2_0.java | 94 - .../core/resource/orm/v2_0/XmlManyToMany_2_0.java | 34 - .../XmlMapKeyAssociationOverrideContainer_2_0.java | 58 - .../resource/orm/v2_0/XmlMappedSuperclass_2_0.java | 66 - .../core/resource/orm/v2_0/XmlOneToMany_2_0.java | 34 - .../core/resource/orm/v2_0/XmlOrderColumn_2_0.java | 70 - .../resource/orm/v2_0/XmlQueryRedirectors_2_0.java | 227 - .../core/resource/orm/v2_1/BatchFetchType_2_1.java | 266 - .../core/resource/orm/v2_1/CacheKeyType_2_1.java | 258 - .../core/resource/orm/v2_1/EclipseLink2_1.java | 39 - .../orm/v2_1/EclipseLinkOrmV2_1Factory.java | 192 - .../orm/v2_1/EclipseLinkOrmV2_1Package.java | 2559 ---- .../core/resource/orm/v2_1/XmlBasic_2_1.java | 125 - .../core/resource/orm/v2_1/XmlBatchFetch_2_1.java | 98 - .../orm/v2_1/XmlElementCollection_2_1.java | 68 - .../core/resource/orm/v2_1/XmlEmbeddable_2_1.java | 35 - .../core/resource/orm/v2_1/XmlEmbeddedId_2_1.java | 68 - .../core/resource/orm/v2_1/XmlEmbedded_2_1.java | 68 - .../resource/orm/v2_1/XmlEntityMappings_2_1.java | 35 - .../core/resource/orm/v2_1/XmlEntity_2_1.java | 97 - .../resource/orm/v2_1/XmlFetchAttribute_2_1.java | 61 - .../orm/v2_1/XmlFetchGroupContainer_2_1.java | 53 - .../core/resource/orm/v2_1/XmlFetchGroup_2_1.java | 107 - .../core/resource/orm/v2_1/XmlId_2_1.java | 68 - .../core/resource/orm/v2_1/XmlManyToMany_2_1.java | 67 - .../core/resource/orm/v2_1/XmlManyToOne_2_1.java | 35 - .../resource/orm/v2_1/XmlMappedSuperclass_2_1.java | 120 - .../core/resource/orm/v2_1/XmlOneToMany_2_1.java | 67 - .../core/resource/orm/v2_1/XmlOneToOne_2_1.java | 35 - .../orm/v2_1/XmlPersistenceUnitDefaults_2_1.java | 35 - .../core/resource/orm/v2_1/XmlPrimaryKey_2_1.java | 64 - .../resource/orm/v2_1/XmlReturnInsert_2_1.java | 61 - .../resource/orm/v2_1/XmlTransformation_2_1.java | 68 - .../core/resource/orm/v2_1/XmlVersion_2_1.java | 68 - .../core/resource/orm/v2_2/EclipseLink2_2.java | 46 - .../orm/v2_2/EclipseLinkOrmV2_2Factory.java | 113 - .../orm/v2_2/EclipseLinkOrmV2_2Package.java | 4502 ------- .../orm/v2_2/XmlAdditionalCriteria_2_2.java | 65 - .../resource/orm/v2_2/XmlBasicCollection_2_2.java | 65 - .../core/resource/orm/v2_2/XmlBasicMap_2_2.java | 65 - .../core/resource/orm/v2_2/XmlBasic_2_2.java | 65 - .../resource/orm/v2_2/XmlCollectionTable_2_2.java | 65 - .../orm/v2_2/XmlElementCollection_2_2.java | 90 - .../core/resource/orm/v2_2/XmlEmbeddable_2_2.java | 65 - .../resource/orm/v2_2/XmlEntityMappings_2_2.java | 176 - .../core/resource/orm/v2_2/XmlEntity_2_2.java | 117 - .../resource/orm/v2_2/XmlHashPartitioning_2_2.java | 65 - .../core/resource/orm/v2_2/XmlId_2_2.java | 56 - .../core/resource/orm/v2_2/XmlIndex_2_2.java | 191 - .../core/resource/orm/v2_2/XmlJoinTable_2_2.java | 65 - .../core/resource/orm/v2_2/XmlManyToMany_2_2.java | 90 - .../core/resource/orm/v2_2/XmlManyToOne_2_2.java | 63 - .../resource/orm/v2_2/XmlMappedSuperclass_2_2.java | 63 - .../core/resource/orm/v2_2/XmlOneToMany_2_2.java | 90 - .../core/resource/orm/v2_2/XmlOneToOne_2_2.java | 90 - .../orm/v2_2/XmlPartitioningGroup_2_2.java | 281 - .../resource/orm/v2_2/XmlPartitioning_2_2.java | 65 - .../orm/v2_2/XmlPinnedPartitioning_2_2.java | 65 - .../orm/v2_2/XmlRangePartitioning_2_2.java | 65 - .../orm/v2_2/XmlReplicationPartitioning_2_2.java | 65 - .../orm/v2_2/XmlRoundRobinPartitioning_2_2.java | 65 - .../resource/orm/v2_2/XmlSecondaryTable_2_2.java | 65 - .../resource/orm/v2_2/XmlTableGenerator_2_2.java | 65 - .../core/resource/orm/v2_2/XmlTable_2_2.java | 65 - .../orm/v2_2/XmlUnionPartitioning_2_2.java | 65 - .../orm/v2_2/XmlValuePartitioning_2_2.java | 65 - .../resource/orm/v2_2/XmlVariableOneToOne_2_2.java | 63 - .../core/resource/orm/v2_2/XmlVersion_2_2.java | 65 - .../EclipseLinkElementCollectionMapping2_0.java | 31 - .../context/EclipseLinkOneToManyMapping2_0.java | 31 - .../EclipseLinkOneToManyRelationship2_0.java | 32 - .../context/EclipseLinkOneToOneMapping2_0.java | 31 - .../EclipseLinkJavaOneToManyRelationship2_0.java | 31 - .../EclipseLinkOrmOneToManyRelationship2_0.java | 31 - .../persistence/connection/Connection2_0.java | 21 - .../context/persistence/logging/Logging2_0.java | 80 - .../context/persistence/options/Options2_0.java | 21 - .../core/v2_0/resource/java/EclipseLink2_1.java | 38 - .../EclipseLinkClassExtractorAnnotation2_1.java | 68 - .../org.eclipse.jpt.jpa.eclipselink.ui/.classpath | 15 - .../org.eclipse.jpt.jpa.eclipselink.ui/.cvsignore | 3 - .../org.eclipse.jpt.jpa.eclipselink.ui/.project | 28 - .../META-INF/MANIFEST.MF | 65 - .../org.eclipse.jpt.jpa.eclipselink.ui/about.html | 34 - .../build.properties | 20 - .../plugin.properties | 27 - .../org.eclipse.jpt.jpa.eclipselink.ui/plugin.xml | 118 - .../property_files/eclipselink_ui.properties | 365 - .../eclipselink_ui_details.properties | 153 - .../eclipselink/ui/JptJpaEclipseLinkUiPlugin.java | 117 - .../ui/internal/EclipseLinkHelpContextIds.java | 57 - .../ui/internal/EclipseLinkUiMessages.java | 381 - .../internal/ddlgen/EclipseLinkDDLGeneratorUi.java | 176 - .../internal/ddlgen/wizards/GenerateDDLWizard.java | 56 - ...ipseLinkBasicCollectionMappingUiDefinition.java | 42 - ...ractEclipseLinkBasicMapMappingUiDefinition.java | 42 - ...lipseLinkTransformationMappingUiDefinition.java | 42 - ...pseLinkVariableOneToOneMappingUiDefinition.java | 42 - .../details/EclipseLinkAlwaysRefreshComposite.java | 101 - ...EclipseLinkBasicCollectionMappingComposite.java | 45 - .../EclipseLinkBasicMapMappingComposite.java | 45 - .../details/EclipseLinkBasicMappingComposite.java | 188 - .../EclipseLinkCacheCoordinationTypeComposite.java | 106 - .../details/EclipseLinkCacheSizeComposite.java | 94 - .../details/EclipseLinkCacheTypeComposite.java | 106 - .../details/EclipseLinkCachingComposite.java | 165 - .../EclipseLinkChangeTrackingComposite.java | 108 - .../details/EclipseLinkConversionValueDialog.java | 209 - .../EclipseLinkConversionValueStateObject.java | 139 - .../details/EclipseLinkConvertComposite.java | 359 - .../EclipseLinkCustomConverterComposite.java | 156 - .../details/EclipseLinkCustomizerComposite.java | 133 - .../details/EclipseLinkDisableHitsComposite.java | 100 - .../EclipseLinkEmbeddableAdvancedComposite.java | 58 - .../EclipseLinkEntityAdvancedComposite.java | 69 - .../details/EclipseLinkExpiryComposite.java | 337 - .../details/EclipseLinkIdMappingComposite.java | 107 - .../details/EclipseLinkJoinFetchComposite.java | 119 - .../EclipseLinkManyToManyMappingComposite.java | 103 - .../EclipseLinkManyToOneMappingComposite.java | 102 - ...lipseLinkMappedSuperclassAdvancedComposite.java | 69 - .../details/EclipseLinkMutableComposite.java | 100 - .../EclipseLinkObjectTypeConverterComposite.java | 482 - .../EclipseLinkOneToManyJoiningStrategyPane.java | 68 - .../EclipseLinkOneToManyMappingComposite.java | 131 - .../EclipseLinkOneToOneMappingComposite.java | 74 - .../details/EclipseLinkPrivateOwnedComposite.java | 67 - .../details/EclipseLinkReadOnlyComposite.java | 102 - .../EclipseLinkRefreshOnlyIfNewerComposite.java | 102 - .../EclipseLinkStructConverterComposite.java | 152 - .../EclipseLinkTransformationMappingComposite.java | 45 - .../details/EclipseLinkTypeConverterComposite.java | 199 - .../details/EclipseLinkUiDetailsMessages.java | 169 - ...clipseLinkVariableOneToOneMappingComposite.java | 45 - .../EclipseLinkVersionMappingComposite.java | 161 - ...AbstractJavaEclipseLinkEmbeddableComposite.java | 84 - .../AbstractJavaEclipseLinkEntityComposite.java | 120 - ...ctJavaEclipseLinkMappedSuperclassComposite.java | 107 - ...avaEclipseLinkOneToManyMappingUiDefinition.java | 83 - ...JavaEclipseLinkOneToOneMappingUiDefinition.java | 83 - ...pseLinkVariableOneToOneMappingUiDefinition.java | 78 - .../java/EclipseLinkJavaResourceUiDefinition.java | 106 - .../details/java/EclipseLinkJavaUiFactory.java | 160 - ...ipseLinkBasicCollectionMappingUiDefinition.java | 56 - ...JavaEclipseLinkBasicMapMappingUiDefinition.java | 56 - .../java/JavaEclipseLinkCachingComposite.java | 67 - .../java/JavaEclipseLinkConvertersComposite.java | 271 - .../java/JavaEclipseLinkEmbeddableComposite.java | 44 - .../java/JavaEclipseLinkEntityComposite.java | 44 - .../JavaEclipseLinkExistenceCheckingComposite.java | 129 - .../JavaEclipseLinkMappedSuperclassComposite.java | 44 - ...lipseLinkTransformationMappingUiDefinition.java | 56 - ...pseLinkVariableOneToOneMappingUiDefinition.java | 56 - ...stractEclipseLinkEntityMappingsDetailsPage.java | 132 - .../orm/AbstractOrmEclipseLinkEntityComposite.java | 91 - ...actOrmEclipseLinkMappedSuperclassComposite.java | 109 - .../orm/BaseEclipseLinkOrmXmlUiFactory.java | 126 - .../details/orm/EclipseLinkConverterDialog.java | 192 - .../orm/EclipseLinkConverterStateObject.java | 140 - .../orm/EclipseLinkEntityMappingsDetailsPage.java | 91 - .../EclipseLinkEntityMappingsDetailsProvider.java | 65 - .../details/orm/EclipseLinkOrmXmlUiDefinition.java | 103 - .../details/orm/EclipseLinkOrmXmlUiFactory.java | 15 - ...ipseLinkBasicCollectionMappingUiDefinition.java | 56 - .../OrmEclipseLinkBasicMapMappingUiDefinition.java | 56 - .../orm/OrmEclipseLinkBasicMappingComposite.java | 58 - .../orm/OrmEclipseLinkCachingComposite.java | 68 - .../orm/OrmEclipseLinkConvert1_0Composite.java | 220 - .../orm/OrmEclipseLinkConvertersComposite.java | 412 - .../orm/OrmEclipseLinkEmbeddableComposite.java | 104 - .../details/orm/OrmEclipseLinkEntityComposite.java | 26 - .../OrmEclipseLinkExistenceCheckingComposite.java | 107 - .../orm/OrmEclipseLinkIdMappingComposite.java | 49 - .../OrmEclipseLinkManyToManyMappingComposite.java | 93 - .../OrmEclipseLinkManyToOneMappingComposite.java | 104 - .../OrmEclipseLinkMappedSuperclassComposite.java | 27 - .../OrmEclipseLinkOneToManyMappingComposite.java | 55 - .../OrmEclipseLinkOneToOneMappingComposite.java | 126 - ...lipseLinkTransformationMappingUiDefinition.java | 56 - ...pseLinkVariableOneToOneMappingUiDefinition.java | 56 - .../orm/OrmEclipseLinkVersionMappingComposite.java | 55 - .../EclipseLinkPersistenceXmlUiDefinition.java | 55 - .../EclipseLinkPersistenceXmlUiFactory.java | 214 - .../caching/CacheDefaultsComposite.java | 55 - .../persistence/caching/CacheSizeComposite.java | 109 - .../persistence/caching/CacheTypeComposite.java | 170 - .../caching/DefaultCacheSizeComposite.java | 88 - .../caching/DefaultCacheTypeComposite.java | 91 - .../caching/DefaultSharedCacheComposite.java | 96 - .../caching/EclipseLinkCachingComposite.java | 45 - .../caching/EntityCachingPropertyComposite.java | 53 - .../persistence/caching/EntityListComposite.java | 212 - .../caching/FlushClearCacheComposite.java | 90 - .../caching/PersistenceXmlCachingTab.java | 87 - .../persistence/caching/SharedCacheComposite.java | 164 - .../connection/BatchWritingComposite.java | 87 - .../CacheStatementsPropertiesComposite.java | 135 - .../connection/ConnectionPropertiesComposite.java | 45 - .../connection/DataSourcePropertiesComposite.java | 146 - .../connection/EclipseLinkConnectionComposite.java | 55 - .../connection/JdbcBindParametersComposite.java | 97 - .../JdbcConnectionPropertiesComposite.java | 342 - .../connection/JdbcDriverComposite.java | 94 - .../JdbcExclusiveConnectionModeComposite.java | 87 - ...dbcExclusiveConnectionsPropertiesComposite.java | 84 - .../connection/JdbcLazyConnectionComposite.java | 98 - .../connection/JdbcPropertiesComposite.java | 90 - .../JdbcReadConnectionPropertiesComposite.java | 57 - .../JdbcReadConnectionsMaxComposite.java | 88 - .../JdbcReadConnectionsMinComposite.java | 87 - .../JdbcReadConnectionsSharedComposite.java | 98 - .../JdbcWriteConnectionPropertiesComposite.java | 63 - .../JdbcWriteConnectionsMaxComposite.java | 87 - .../JdbcWriteConnectionsMinComposite.java | 87 - .../persistence/connection/NativeSqlComposite.java | 98 - .../connection/PersistenceXmlConnectionTab.java | 84 - .../connection/TransactionTypeComposite.java | 129 - .../customization/CustomizerComposite.java | 103 - .../EclipseLinkCustomizationComposite.java | 77 - .../EntityCustomizationPropertyComposite.java | 47 - .../customization/EntityListComposite.java | 212 - .../customization/ExceptionHandlerComposite.java | 93 - .../PersistenceXmlCustomizationTab.java | 91 - .../customization/ProfilerComposite.java | 207 - .../customization/SessionCustomizersComposite.java | 192 - .../customization/ThrowExceptionsComposite.java | 97 - .../customization/ValidateSchemaComposite.java | 97 - .../customization/ValidationOnlyComposite.java | 97 - .../WeavingChangeTrackingComposite.java | 97 - .../customization/WeavingComposite.java | 87 - .../customization/WeavingEagerComposite.java | 97 - .../customization/WeavingFetchGroupsComposite.java | 97 - .../customization/WeavingInternalComposite.java | 98 - .../customization/WeavingLazyComposite.java | 97 - .../customization/WeavingPropertiesComposite.java | 56 - ...EclipseLinkPersistenceUnitGeneralComposite.java | 68 - ...clipseLinkPersistenceUnitJarFilesComposite.java | 53 - ...seLinkPersistenceUnitMappingFilesComposite.java | 126 - .../logging/EclipseLinkLoggingComposite.java | 83 - .../persistence/logging/ExceptionsComposite.java | 97 - .../persistence/logging/LoggerComposite.java | 208 - .../logging/LoggingFileLocationComposite.java | 98 - .../persistence/logging/LoggingLevelComposite.java | 90 - .../logging/PersistenceXmlLoggingTab.java | 84 - .../persistence/logging/SessionComposite.java | 98 - .../persistence/logging/ThreadComposite.java | 97 - .../persistence/logging/TimestampComposite.java | 96 - .../options/EclipseLinkOptionsComposite.java | 85 - .../options/EventListenerComposite.java | 93 - .../options/IncludeDescriptorQueriesComposite.java | 97 - .../options/PersistenceXmlOptionsTab.java | 84 - .../persistence/options/SessionNameComposite.java | 107 - .../persistence/options/SessionsXmlComposite.java | 107 - .../options/TargetDatabaseComposite.java | 183 - .../persistence/options/TargetServerComposite.java | 182 - .../options/TemporalMutableComposite.java | 97 - .../generation/CreateDdlFileNameComposite.java | 106 - .../generation/DdlGenerationLocationComposite.java | 98 - .../generation/DdlGenerationTypeComposite.java | 87 - .../generation/DropDdlFileNameComposite.java | 106 - .../EclipseLinkSchemaGenerationComposite.java | 49 - .../schema/generation/OutputModeComposite.java | 85 - .../PersistenceXmlSchemaGenerationTab.java | 56 - ...pseLinkNavigatorItemContentProviderFactory.java | 94 - ...lipseLinkNavigatorItemLabelProviderFactory.java | 23 - .../platform/EclipseLinkJpaPlatformUi.java | 35 - .../platform/EclipseLinkJpaPlatformUiFactory.java | 31 - .../platform/EclipseLinkJpaPlatformUiProvider.java | 71 - .../platform/EclipseLinkNavigatorProvider.java | 34 - ...lipseLinkOrmResourceModelStructureProvider.java | 48 - ...eLinkPersistenceItemContentProviderFactory.java | 136 - ...kPersistenceResourceModelStructureProvider.java | 47 - .../orm/EclipseLinkOrmXml1_1UiDefinition.java | 107 - .../details/orm/EclipseLinkOrmXml1_1UiFactory.java | 104 - ...ipseLinkBasicCollectionMapping1_1Composite.java | 57 - .../OrmEclipseLinkBasicMapMapping1_1Composite.java | 57 - .../OrmEclipseLinkBasicMapping1_1Composite.java | 61 - ...rmEclipseLinkEmbeddedIdMapping1_1Composite.java | 53 - .../OrmEclipseLinkEmbeddedMapping1_1Composite.java | 75 - .../orm/OrmEclipseLinkIdMapping1_1Composite.java | 52 - ...rmEclipseLinkManyToManyMapping1_1Composite.java | 95 - ...OrmEclipseLinkManyToOneMapping1_1Composite.java | 106 - ...OrmEclipseLinkOneToManyMapping1_1Composite.java | 57 - .../OrmEclipseLinkOneToOneMapping1_1Composite.java | 127 - .../OrmEclipseLinkVersionMapping1_1Composite.java | 57 - .../EclipseLink1_1JpaPlatformUiFactory.java | 33 - .../EclipseLink1_1JpaPlatformUiProvider.java | 75 - .../EclipseLink1_2JavaResourceUiDefinition.java | 104 - .../details/java/EclipseLink1_2JavaUiFactory.java | 50 - .../JavaEclipseLinkEmbeddable1_2Composite.java | 71 - .../java/JavaEclipseLinkEntity1_2Composite.java | 68 - ...avaEclipseLinkMappedSuperclass1_2Composite.java | 64 - .../orm/EclipseLinkOrmXml1_2UiDefinition.java | 108 - .../EclipseLink1_2JpaPlatformUiFactory.java | 33 - .../EclipseLink1_2JpaPlatformUiProvider.java | 75 - .../wizards/EclipseLink2_0DDLGeneratorUi.java | 57 - .../details/EclipseLinkCaching2_0Composite.java | 186 - .../EclipseLink2_0JavaResourceUiDefinition.java | 116 - .../details/java/EclipseLink2_0JavaUiFactory.java | 114 - .../java/JavaEclipseLinkCaching2_0Composite.java | 69 - ...seLinkElementCollectionMapping2_0Composite.java | 57 - .../java/JavaEclipseLinkEntity2_0Composite.java | 94 - .../java/JavaEclipseLinkIdMapping2_0Composite.java | 45 - .../JavaEclipseLinkIdMapping2_0UiDefinition.java | 51 - ...vaEclipseLinkManyToManyMapping2_0Composite.java | 57 - ...avaEclipseLinkManyToOneMapping2_0Composite.java | 57 - ...avaEclipseLinkMappedSuperclass2_0Composite.java | 70 - ...avaEclipseLinkOneToManyMapping2_0Composite.java | 63 - ...JavaEclipseLinkOneToOneMapping2_0Composite.java | 86 - .../EclipseLinkEntityMappings2_0DetailsPage.java | 103 - ...clipseLinkEntityMappings2_0DetailsProvider.java | 65 - .../orm/EclipseLinkOrmXml2_0UiDefinition.java | 110 - .../details/orm/EclipseLinkOrmXml2_0UiFactory.java | 137 - .../orm/OrmEclipseLinkCaching2_0Composite.java | 69 - ...rmEclipseLinkEmbeddedIdMapping2_0Composite.java | 43 - .../orm/OrmEclipseLinkEntity2_0Composite.java | 53 - .../orm/OrmEclipseLinkIdMapping2_0Composite.java | 49 - ...rmEclipseLinkManyToManyMapping2_0Composite.java | 51 - ...OrmEclipseLinkManyToOneMapping2_0Composite.java | 70 - ...OrmEclipseLinkMappedSuperclass2_0Composite.java | 34 - ...OrmEclipseLinkOneToManyMapping2_0Composite.java | 78 - .../OrmEclipseLinkOneToOneMapping2_0Composite.java | 101 - .../EclipseLink2_0PersistenceXmlUiFactory.java | 106 - .../EclipseLinkPersistenceXml2_0UiDefinition.java | 55 - .../caching/CacheDefaults2_0Composite.java | 88 - .../caching/EclipseLinkCaching2_0Composite.java | 74 - .../caching/FlushClearCache2_0Composite.java | 85 - .../caching/PersistenceXmlCaching2_0Tab.java | 36 - .../EclipseLinkCustomization2_0Composite.java | 32 - .../PersistenceXmlCustomization2_0Tab.java | 36 - .../persistence/logging/ConnectionComposite.java | 98 - .../EclipseLinkCategoryLoggingLevelComposite.java | 197 - .../logging/EclipseLinkLogging2_0Composite.java | 55 - .../logging/PersistenceXmlLogging2_0Tab.java | 37 - .../options/EclipseLinkOptions2_0Composite.java | 38 - .../options/LockingConfigurationComposite.java | 85 - .../options/PersistenceXmlOptions2_0Tab.java | 37 - .../options/QueryConfigurationComposite.java | 85 - .../options/ValidationConfigurationComposite.java | 382 - .../options/ValidationModeComposite.java | 92 - .../v2_0/platform/EclipseLink2_0JpaPlatformUi.java | 34 - .../EclipseLink2_0JpaPlatformUiFactory.java | 35 - .../EclipseLink2_0JpaPlatformUiProvider.java | 87 - .../orm/EclipseLinkOrmXml2_1UiDefinition.java | 105 - .../details/orm/EclipseLinkOrmXml2_1UiFactory.java | 31 - ...seLinkElementCollectionMapping2_1Composite.java | 72 - .../EclipseLink2_1JpaPlatformUiFactory.java | 34 - .../EclipseLink2_1JpaPlatformUiProvider.java | 89 - .../orm/EclipseLinkOrmXml2_2UiDefinition.java | 106 - .../EclipseLink2_2JpaPlatformUiFactory.java | 34 - .../EclipseLink2_2JpaPlatformUiProvider.java | 91 - .../wizards/EclipseLinkMappingFileWizard.java | 57 - jpa/plugins/org.eclipse.jpt.jpa.gen/.classpath | 8 - jpa/plugins/org.eclipse.jpt.jpa.gen/.cvsignore | 6 - jpa/plugins/org.eclipse.jpt.jpa.gen/.project | 28 - .../org.eclipse.jpt.jpa.gen/META-INF/MANIFEST.MF | 26 - jpa/plugins/org.eclipse.jpt.jpa.gen/about.html | 34 - .../org.eclipse.jpt.jpa.gen/build.properties | 18 - jpa/plugins/org.eclipse.jpt.jpa.gen/component.xml | 12 - .../org.eclipse.jpt.jpa.gen/plugin.properties | 23 - .../property_files/jpt_gen.properties | 20 - .../eclipse/jpt/jpa/gen/internal/Association.java | 388 - .../jpt/jpa/gen/internal/AssociationRole.java | 273 - .../jpa/gen/internal/BaseEntityGenCustomizer.java | 230 - .../internal/DatabaseAnnotationNameBuilder.java | 105 - .../jpt/jpa/gen/internal/JptGenMessages.java | 38 - .../jpt/jpa/gen/internal/JptJpaGenPlugin.java | 33 - .../eclipse/jpt/jpa/gen/internal/ORMGenColumn.java | 415 - .../jpt/jpa/gen/internal/ORMGenCustomizer.java | 820 -- .../eclipse/jpt/jpa/gen/internal/ORMGenTable.java | 1031 -- .../jpt/jpa/gen/internal/OverwriteConfirmer.java | 59 - .../jpt/jpa/gen/internal/PackageGenerator.java | 327 - .../org/eclipse/jpt/jpa/gen/internal/TagNames.java | 46 - .../gen/internal/util/CompilationUnitModifier.java | 131 - .../eclipse/jpt/jpa/gen/internal/util/DTPUtil.java | 80 - .../jpt/jpa/gen/internal/util/EntityGenTools.java | 80 - .../jpt/jpa/gen/internal/util/FileUtil.java | 218 - .../jpt/jpa/gen/internal/util/ForeignKeyInfo.java | 120 - .../jpt/jpa/gen/internal/util/StringUtil.java | 648 - .../eclipse/jpt/jpa/gen/internal/util/UrlUtil.java | 125 - .../templates/entities/column.vm | 54 - .../templates/entities/join.vm | 80 - .../templates/entities/main.java.vm | 134 - .../templates/entities/manyToMany.vm | 26 - .../templates/entities/manyToOne.vm | 13 - .../templates/entities/mappingKind.vm | 34 - .../templates/entities/oneToMany.vm | 18 - .../templates/entities/oneToOne.vm | 22 - .../templates/entities/pk.java.vm | 66 - jpa/plugins/org.eclipse.jpt.jpa.ui/.classpath | 13 - jpa/plugins/org.eclipse.jpt.jpa.ui/.cvsignore | 6 - jpa/plugins/org.eclipse.jpt.jpa.ui/.jetproperties | 4 - jpa/plugins/org.eclipse.jpt.jpa.ui/.options | 14 - jpa/plugins/org.eclipse.jpt.jpa.ui/.project | 34 - .../org.eclipse.jpt.jpa.ui/META-INF/MANIFEST.MF | 94 - jpa/plugins/org.eclipse.jpt.jpa.ui/about.html | 34 - .../org.eclipse.jpt.jpa.ui/build.properties | 26 - jpa/plugins/org.eclipse.jpt.jpa.ui/component.xml | 12 - .../icons/full/dtool16/new_entity_wiz.gif | Bin 594 -> 0 bytes .../icons/full/dtool16/new_jpa_file_wiz.gif | Bin 359 -> 0 bytes .../icons/full/dtool16/new_jpaproject_wiz.gif | Bin 372 -> 0 bytes .../icons/full/etool16/jpa_facet.gif | Bin 896 -> 0 bytes .../icons/full/etool16/new_entity_wiz.gif | Bin 624 -> 0 bytes .../icons/full/etool16/new_jpa_file_wiz.gif | Bin 586 -> 0 bytes .../icons/full/etool16/new_jpaproject_wiz.gif | Bin 991 -> 0 bytes .../icons/full/eview16/jpa_details.gif | Bin 953 -> 0 bytes .../icons/full/eview16/jpa_perspective.gif | Bin 896 -> 0 bytes .../icons/full/eview16/jpa_structure.gif | Bin 900 -> 0 bytes .../icons/full/obj16/basic.gif | Bin 897 -> 0 bytes .../icons/full/obj16/element-collection.gif | Bin 872 -> 0 bytes .../icons/full/obj16/embeddable.gif | Bin 1003 -> 0 bytes .../icons/full/obj16/embedded-id.gif | Bin 953 -> 0 bytes .../icons/full/obj16/embedded.gif | Bin 905 -> 0 bytes .../icons/full/obj16/entity-mappings.gif | Bin 974 -> 0 bytes .../icons/full/obj16/entity.gif | Bin 1010 -> 0 bytes .../org.eclipse.jpt.jpa.ui/icons/full/obj16/id.gif | Bin 938 -> 0 bytes .../icons/full/obj16/jpa-content.gif | Bin 896 -> 0 bytes .../icons/full/obj16/jpa-file.gif | Bin 968 -> 0 bytes .../icons/full/obj16/jpa-jar-file.gif | Bin 1013 -> 0 bytes .../icons/full/obj16/many-to-many.gif | Bin 328 -> 0 bytes .../icons/full/obj16/many-to-one.gif | Bin 307 -> 0 bytes .../icons/full/obj16/mapped-superclass.gif | Bin 1005 -> 0 bytes .../icons/full/obj16/null-attribute-mapping.gif | Bin 911 -> 0 bytes .../icons/full/obj16/null-type-mapping.gif | Bin 586 -> 0 bytes .../icons/full/obj16/one-to-many.gif | Bin 306 -> 0 bytes .../icons/full/obj16/one-to-one.gif | Bin 283 -> 0 bytes .../icons/full/obj16/persistence-unit.gif | Bin 931 -> 0 bytes .../icons/full/obj16/persistence.gif | Bin 961 -> 0 bytes .../icons/full/obj16/transient.gif | Bin 892 -> 0 bytes .../icons/full/obj16/version.gif | Bin 321 -> 0 bytes .../icons/full/obj16/warning.gif | Bin 338 -> 0 bytes .../icons/full/wizban/new_entity_wizban.gif | Bin 3316 -> 0 bytes .../icons/full/wizban/new_jpa_file_wizban.gif | Bin 3070 -> 0 bytes .../icons/full/wizban/new_jpa_prj_wiz.gif | Bin 2791 -> 0 bytes .../images/buttons/add-connection.gif | Bin 920 -> 0 bytes .../org.eclipse.jpt.jpa.ui/images/buttons/add.png | Bin 1000 -> 0 bytes .../images/buttons/browse-mini.png | Bin 448 -> 0 bytes .../images/buttons/browse.png | Bin 1072 -> 0 bytes .../images/buttons/collapse-all.png | Bin 989 -> 0 bytes .../images/buttons/delete.png | Bin 1059 -> 0 bytes .../images/buttons/deselect-all.png | Bin 1050 -> 0 bytes .../org.eclipse.jpt.jpa.ui/images/buttons/dot.gif | Bin 121 -> 0 bytes .../org.eclipse.jpt.jpa.ui/images/buttons/edit.png | Bin 380 -> 0 bytes .../images/buttons/expand-all.png | Bin 1004 -> 0 bytes .../images/buttons/list-of-values.png | Bin 1072 -> 0 bytes .../images/buttons/move-down.png | Bin 305 -> 0 bytes .../images/buttons/move-up.png | Bin 284 -> 0 bytes .../images/buttons/reconnect.png | Bin 1022 -> 0 bytes .../images/buttons/restore-defaults.png | Bin 1057 -> 0 bytes .../images/buttons/select-all.png | Bin 1096 -> 0 bytes .../images/buttons/warningstd.png | Bin 993 -> 0 bytes .../images/diagram/export-as-img-hover.png | Bin 1222 -> 0 bytes .../images/diagram/export-as-img.png | Bin 1047 -> 0 bytes .../images/diagram/header_left_bg.png | Bin 232 -> 0 bytes .../images/diagram/header_mid_bg.png | Bin 190 -> 0 bytes .../images/diagram/header_right_bg.png | Bin 232 -> 0 bytes .../images/diagram/print-hover.png | Bin 1219 -> 0 bytes .../images/diagram/print.png | Bin 1051 -> 0 bytes .../images/diagram/shadow-bottom.png | Bin 928 -> 0 bytes .../images/diagram/shadow-lower-left.png | Bin 978 -> 0 bytes .../images/diagram/shadow-lower-right.png | Bin 989 -> 0 bytes .../images/diagram/shadow-side.png | Bin 924 -> 0 bytes .../images/diagram/shadow-upper-right.png | Bin 976 -> 0 bytes .../images/diagram/toolbar_bg.png | Bin 196 -> 0 bytes .../images/objects/column.gif | Bin 113 -> 0 bytes .../images/objects/columnKey.gif | Bin 1715 -> 0 bytes .../org.eclipse.jpt.jpa.ui/images/objects/file.png | Bin 456 -> 0 bytes .../images/objects/folder.png | Bin 310 -> 0 bytes .../images/objects/forward.gif | Bin 138 -> 0 bytes .../images/objects/moveRight.gif | Bin 138 -> 0 bytes .../images/objects/package.png | Bin 319 -> 0 bytes .../images/objects/table.gif | Bin 953 -> 0 bytes .../images/objects/table_obj.gif | Bin 561 -> 0 bytes .../images/overlays/error.gif | Bin 82 -> 0 bytes .../images/overlays/warning.png | Bin 322 -> 0 bytes .../images/save-image-16.png | Bin 508 -> 0 bytes .../org.eclipse.jpt.jpa.ui/plugin.properties | 73 - jpa/plugins/org.eclipse.jpt.jpa.ui/plugin.xml | 1039 -- .../property_files/jpt_ui.properties | 155 - .../property_files/jpt_ui_details.properties | 323 - .../property_files/jpt_ui_details2_0.properties | 52 - .../property_files/jpt_ui_details_orm.properties | 55 - .../property_files/jpt_ui_entity_gen.properties | 111 - .../property_files/jpt_ui_entity_wizard.properties | 58 - .../property_files/jpt_ui_persistence.properties | 56 - .../jpt_ui_persistence2_0.properties | 60 - .../jpt_ui_validation_preferences.properties | 211 - .../schema/jpaPlatformUis.exsd | 139 - .../src/org/eclipse/jpt/jpa/ui/JpaPlatformUi.java | 126 - .../eclipse/jpt/jpa/ui/JpaPlatformUiFactory.java | 26 - .../eclipse/jpt/jpa/ui/JpaPlatformUiProvider.java | 46 - .../src/org/eclipse/jpt/jpa/ui/JptJpaUiPlugin.java | 252 - .../jpt/jpa/ui/MappingResourceUiDefinition.java | 73 - .../jpa/ui/PersistenceXmlResourceUiDefinition.java | 34 - .../eclipse/jpt/jpa/ui/ResourceUiDefinition.java | 34 - .../jpa/ui/details/DefaultMappingUiDefinition.java | 28 - .../eclipse/jpt/jpa/ui/details/JpaComposite.java | 45 - .../eclipse/jpt/jpa/ui/details/JpaDetailsPage.java | 51 - .../jpt/jpa/ui/details/JpaDetailsProvider.java | 50 - .../jpt/jpa/ui/details/JpaPageComposite.java | 47 - .../jpt/jpa/ui/details/MappingUiDefinition.java | 69 - .../DefaultJavaAttributeMappingUiDefinition.java | 27 - .../java/DefaultJavaTypeMappingUiDefinition.java | 27 - .../java/JavaAttributeMappingUiDefinition.java | 48 - .../details/java/JavaTypeMappingUiDefinition.java | 48 - .../jpt/jpa/ui/details/java/JavaUiFactory.java | 265 - .../orm/OrmAttributeMappingUiDefinition.java | 48 - .../ui/details/orm/OrmTypeMappingUiDefinition.java | 48 - .../jpt/jpa/ui/details/orm/OrmXmlUiFactory.java | 220 - .../ui/internal/AbstractJpaPlatformUiProvider.java | 88 - .../jpa/ui/internal/EditorPartAdapterFactory.java | 65 - .../ui/internal/GenericJpaPlatformUiProvider.java | 70 - .../jpt/jpa/ui/internal/ImageRepository.java | 149 - .../jpt/jpa/ui/internal/JpaHelpContextIds.java | 151 - .../JpaJavaCompletionProposalComputer.java | 187 - .../jpt/jpa/ui/internal/JpaMappingImageHelper.java | 86 - .../eclipse/jpt/jpa/ui/internal/JptUiIcons.java | 127 - .../eclipse/jpt/jpa/ui/internal/JptUiMessages.java | 154 - .../JptUiValidationPreferenceMessages.java | 220 - .../jpa/ui/internal/actions/GenerateDDLAction.java | 27 - .../internal/actions/GenerateEntitiesAction.java | 26 - .../ui/internal/actions/MakePersistentAction.java | 145 - .../ui/internal/actions/OpenJpaResourceAction.java | 101 - .../jpt/jpa/ui/internal/actions/ProjectAction.java | 94 - .../internal/actions/SynchronizeClassesAction.java | 49 - .../AddPersistentAttributeToXmlAndMapHandler.java | 69 - .../AddPersistentAttributeToXmlHandler.java | 56 - .../commands/AddPersistentClassHandler.java | 57 - .../ConvertJavaProjectToJpaCommandHandler.java | 158 - .../commands/PersistentAttributeMapAsHandler.java | 143 - .../commands/PersistentTypeMapAsHandler.java | 124 - .../RemovePersistentAttributeFromXmlHandler.java | 60 - .../commands/RemovePersistentClassHandler.java | 37 - .../commands/UpgradeXmlFileVersionHandler.java | 63 - .../details/AbstractBasicMappingComposite.java | 217 - .../details/AbstractBasicMappingUiDefinition.java | 41 - .../details/AbstractEmbeddableComposite.java | 66 - .../details/AbstractEmbeddableUiDefinition.java | 41 - .../AbstractEmbeddedIdMappingComposite.java | 48 - .../AbstractEmbeddedIdMappingUiDefinition.java | 42 - .../details/AbstractEmbeddedMappingComposite.java | 75 - .../AbstractEmbeddedMappingOverridesComposite.java | 39 - .../AbstractEmbeddedMappingUiDefinition.java | 41 - .../internal/details/AbstractEntityComposite.java | 216 - .../AbstractEntityMappingsDetailsProvider.java | 32 - .../details/AbstractEntityOverridesComposite.java | 55 - .../details/AbstractEntityUiDefinition.java | 41 - .../details/AbstractIdMappingComposite.java | 136 - .../details/AbstractIdMappingUiDefinition.java | 42 - .../details/AbstractInheritanceComposite.java | 291 - .../details/AbstractJoiningStrategyPane.java | 99 - .../internal/details/AbstractJpaDetailsPage.java | 53 - .../AbstractManyToManyMappingComposite.java | 140 - .../AbstractManyToManyMappingUiDefinition.java | 41 - .../details/AbstractManyToOneMappingComposite.java | 80 - .../AbstractManyToOneMappingUiDefinition.java | 41 - .../details/AbstractMappedSuperclassComposite.java | 62 - .../AbstractMappedSuperclassUiDefinition.java | 41 - .../details/AbstractMappingUiDefinition.java | 25 - .../details/AbstractOneToManyMappingComposite.java | 132 - .../AbstractOneToManyMappingUiDefinition.java | 41 - .../details/AbstractOneToOneMappingComposite.java | 80 - .../AbstractOneToOneMappingUiDefinition.java | 41 - .../details/AbstractOrderingComposite.java | 139 - .../details/AbstractOverridesComposite.java | 414 - .../AbstractPrimaryKeyJoinColumnsComposite.java | 344 - .../details/AbstractSecondaryTablesComposite.java | 177 - .../AbstractTransientMappingUiDefinition.java | 41 - .../details/AbstractVersionMappingComposite.java | 161 - .../AbstractVersionMappingUiDefinition.java | 41 - .../ui/internal/details/AccessTypeComposite.java | 117 - .../jpa/ui/internal/details/AddQueryDialog.java | 195 - .../ui/internal/details/AddQueryStateObject.java | 146 - .../details/AssociationOverrideComposite.java | 85 - .../details/AttributeOverrideComposite.java | 71 - .../ui/internal/details/BaseJoinColumnDialog.java | 111 - .../internal/details/BaseJoinColumnDialogPane.java | 442 - .../details/BaseJoinColumnStateObject.java | 389 - .../ui/internal/details/BasicMappingComposite.java | 80 - .../jpa/ui/internal/details/CascadeComposite.java | 211 - .../jpa/ui/internal/details/ColumnComposite.java | 587 - .../details/DiscriminatorColumnComposite.java | 309 - .../details/EmbeddedIdMappingComposite.java | 35 - .../internal/details/EmbeddedMappingComposite.java | 50 - .../details/EmbeddedMappingOverridesComposite.java | 50 - .../ui/internal/details/EntityNameComposite.java | 122 - .../internal/details/EntityOverridesComposite.java | 25 - .../jpa/ui/internal/details/EnumTypeComposite.java | 115 - .../ui/internal/details/FetchTypeComposite.java | 109 - .../internal/details/GeneratedValueComposite.java | 217 - .../ui/internal/details/GenerationComposite.java | 234 - .../ui/internal/details/GeneratorComposite.java | 206 - .../jpa/ui/internal/details/IdClassComposite.java | 139 - .../ui/internal/details/IdMappingComposite.java | 33 - .../details/IdMappingGenerationComposite.java | 348 - .../InverseJoinColumnInJoinTableDialog.java | 78 - .../InverseJoinColumnInJoinTableStateObject.java | 94 - .../jpa/ui/internal/details/JoinColumnDialog.java | 53 - .../ui/internal/details/JoinColumnDialogPane.java | 286 - .../details/JoinColumnInJoiningStrategyDialog.java | 62 - .../JoinColumnInJoiningStrategyStateObject.java | 97 - .../details/JoinColumnInReferenceTableDialog.java | 80 - .../JoinColumnInReferenceTableStateObject.java | 87 - .../details/JoinColumnJoiningStrategyPane.java | 152 - .../ui/internal/details/JoinColumnStateObject.java | 212 - .../ui/internal/details/JoinColumnsComposite.java | 329 - .../ui/internal/details/JoinTableComposite.java | 417 - .../details/JoinTableJoiningStrategyPane.java | 114 - .../JoiningStrategyJoinColumnsComposite.java | 237 - ...tegyJoinColumnsWithOverrideOptionComposite.java | 152 - .../ui/internal/details/JptUiDetailsMessages.java | 303 - .../details/ManyToManyJoiningStrategyPane.java | 125 - .../details/ManyToManyMappingComposite.java | 83 - .../details/ManyToOneJoiningStrategyPane.java | 68 - .../details/ManyToOneMappingComposite.java | 84 - .../jpa/ui/internal/details/MapAsComposite.java | 638 - .../details/MappedByJoiningStrategyPane.java | 94 - .../jpt/jpa/ui/internal/details/MappedByPane.java | 96 - .../details/NamedNativeQueryPropertyComposite.java | 182 - .../details/NamedQueryPropertyComposite.java | 119 - .../details/OneToManyJoiningStrategyPane.java | 82 - .../details/OneToManyMappingComposite.java | 82 - .../details/OneToOneJoiningStrategyPane.java | 96 - .../internal/details/OneToOneMappingComposite.java | 85 - .../jpa/ui/internal/details/OptionalComposite.java | 102 - .../jpa/ui/internal/details/OrderingComposite.java | 115 - .../details/PersistentAttributeDetailsPage.java | 182 - .../details/PersistentAttributeMapAsComposite.java | 134 - .../details/PersistentTypeDetailsPage.java | 169 - .../details/PersistentTypeMapAsComposite.java | 127 - .../details/PrimaryKeyJoinColumnDialog.java | 108 - ...PrimaryKeyJoinColumnInSecondaryTableDialog.java | 111 - ...ryKeyJoinColumnInSecondaryTableStateObject.java | 99 - .../PrimaryKeyJoinColumnJoiningStrategyPane.java | 86 - .../details/PrimaryKeyJoinColumnStateObject.java | 101 - ...aryKeyJoinColumnsInSecondaryTableComposite.java | 414 - .../jpa/ui/internal/details/QueriesComposite.java | 313 - .../ui/internal/details/QueryHintsComposite.java | 339 - .../internal/details/ReferenceTableComposite.java | 436 - .../ui/internal/details/SecondaryTableDialog.java | 450 - .../details/SequenceGeneratorComposite.java | 136 - .../jpa/ui/internal/details/TableComposite.java | 239 - .../internal/details/TableGeneratorComposite.java | 499 - .../ui/internal/details/TargetEntityComposite.java | 131 - .../ui/internal/details/TemporalTypeComposite.java | 139 - .../details/TransientMappingComposite.java | 50 - .../internal/details/VersionMappingComposite.java | 61 - .../jpa/ui/internal/details/db/CatalogCombo.java | 44 - .../jpa/ui/internal/details/db/ColumnCombo.java | 63 - .../internal/details/db/DatabaseObjectCombo.java | 349 - .../jpa/ui/internal/details/db/SchemaCombo.java | 56 - .../jpa/ui/internal/details/db/SequenceCombo.java | 49 - .../jpt/jpa/ui/internal/details/db/TableCombo.java | 56 - .../java/AbstractJavaResourceUiDefinition.java | 242 - .../internal/details/java/BaseJavaUiFactory.java | 173 - .../java/DefaultBasicMappingUiDefinition.java | 83 - .../java/DefaultEmbeddedMappingUiDefinition.java | 83 - .../java/GenericJavaResourceUiDefinition.java | 75 - .../details/java/GenericJavaUiFactory.java | 23 - .../details/java/JavaBasicMappingUiDefinition.java | 55 - .../details/java/JavaEmbeddableComposite.java | 45 - .../details/java/JavaEmbeddableUiDefinition.java | 54 - .../java/JavaEmbeddedIdMappingUDefinition.java | 55 - .../java/JavaEmbeddedMappingUiDefinition.java | 55 - .../internal/details/java/JavaEntityComposite.java | 53 - .../details/java/JavaEntityUiDefinition.java | 55 - .../details/java/JavaIdMappingUiDefinition.java | 55 - .../details/java/JavaInheritanceComposite.java | 44 - .../java/JavaManyToManyMappingUiDefinition.java | 55 - .../java/JavaManyToOneMappingUiDefinition.java | 55 - .../java/JavaMappedSuperclassComposite.java | 54 - .../java/JavaMappedSuperclassUiDefinition.java | 55 - .../java/JavaOneToManyMappingUiDefinition.java | 55 - .../java/JavaOneToOneMappingUiDefinition.java | 55 - .../java/JavaPersistentAttributeDetailsPage.java | 69 - .../JavaPersistentAttributeDetailsProvider.java | 60 - .../java/JavaPersistentTypeDetailsProvider.java | 61 - .../java/JavaPrimaryKeyJoinColumnsComposite.java | 67 - .../details/java/JavaSecondaryTablesComposite.java | 130 - .../java/JavaTransientMappingUiDefinition.java | 55 - .../java/JavaVersionMappingUiDefinition.java | 55 - .../java/NullJavaAttributeMappingUiDefinition.java | 92 - .../java/NullJavaTypeMappingUiDefinition.java | 95 - .../orm/AbstractEntityMappingsDetailsPage.java | 268 - .../details/orm/AbstractOrmEntityComposite.java | 90 - .../orm/AbstractOrmXmlResourceUiDefinition.java | 174 - .../internal/details/orm/AddGeneratorDialog.java | 194 - .../details/orm/AddGeneratorStateObject.java | 146 - .../internal/details/orm/BaseOrmXmlUiFactory.java | 134 - .../details/orm/EntityMappingsDetailsPage.java | 82 - .../details/orm/EntityMappingsDetailsProvider.java | 60 - .../orm/EntityMappingsGeneratorsComposite.java | 371 - .../details/orm/GenericOrmXmlUiFactory.java | 15 - .../details/orm/JptUiDetailsOrmMessages.java | 76 - .../details/orm/MetadataCompleteComposite.java | 89 - .../details/orm/OrmBasicMappingComposite.java | 45 - .../details/orm/OrmBasicMappingUiDefinition.java | 54 - .../details/orm/OrmEmbeddableComposite.java | 54 - .../details/orm/OrmEmbeddableUiDefinition.java | 54 - .../details/orm/OrmEmbeddedIdMappingComposite.java | 39 - .../orm/OrmEmbeddedIdMappingUiDefinition.java | 56 - .../details/orm/OrmEmbeddedMappingComposite.java | 64 - .../orm/OrmEmbeddedMappingUiDefinition.java | 56 - .../internal/details/orm/OrmEntityComposite.java | 43 - .../details/orm/OrmEntityUiDefinition.java | 55 - .../details/orm/OrmIdMappingComposite.java | 36 - .../details/orm/OrmIdMappingUiDefinition.java | 56 - .../details/orm/OrmInheritanceComposite.java | 44 - .../internal/details/orm/OrmJavaClassChooser.java | 112 - .../details/orm/OrmManyToManyMappingComposite.java | 90 - .../orm/OrmManyToManyMappingUiDefinition.java | 56 - .../details/orm/OrmManyToOneMappingComposite.java | 92 - .../orm/OrmManyToOneMappingUiDefinition.java | 56 - .../details/orm/OrmMappedSuperclassComposite.java | 51 - .../orm/OrmMappedSuperclassUiDefinition.java | 55 - .../details/orm/OrmMappingNameChooser.java | 71 - .../details/orm/OrmOneToManyMappingComposite.java | 89 - .../orm/OrmOneToManyMappingUiDefinition.java | 56 - .../details/orm/OrmOneToOneMappingComposite.java | 91 - .../orm/OrmOneToOneMappingUiDefinition.java | 56 - .../ui/internal/details/orm/OrmPackageChooser.java | 98 - .../orm/OrmPersistentAttributeDetailsPage.java | 114 - .../orm/OrmPersistentAttributeDetailsProvider.java | 61 - .../orm/OrmPersistentTypeDetailsProvider.java | 62 - .../orm/OrmPrimaryKeyJoinColumnsComposite.java | 70 - .../internal/details/orm/OrmQueriesComposite.java | 94 - .../details/orm/OrmSecondaryTablesComposite.java | 211 - .../orm/OrmTransientMappingUiDefinition.java | 56 - .../details/orm/OrmVersionMappingComposite.java | 41 - .../details/orm/OrmVersionMappingUiDefinition.java | 56 - .../internal/details/orm/OrmXmlUiDefinition.java | 84 - .../orm/PersistenceUnitMetadataComposite.java | 303 - .../orm/UnsupportedOrmMappingUiDefinition.java | 89 - .../AddPersistentAttributeToXmlAndMapDialog.java | 197 - .../internal/dialogs/AddPersistentClassDialog.java | 314 - .../internal/editors/PersistenceContributor.java | 106 - .../jpa/ui/internal/editors/PersistenceEditor.java | 436 - .../internal/jface/JarFileItemLabelProvider.java | 52 - .../internal/jface/XmlMappingFileViewerFilter.java | 78 - .../jpa2/Generic2_0JpaPlatformUiProvider.java | 77 - .../internal/jpa2/GenericOrmXml2_0UiFactory.java | 147 - .../ui/internal/jpa2/Jpa2_0ProjectFlagModel.java | 31 - ...stractElementCollectionMapping2_0Composite.java | 378 - ...actElementCollectionMapping2_0UiDefinition.java | 42 - .../AbstractManyToOneMapping2_0Composite.java | 57 - .../AbstractOneToOneMapping2_0Composite.java | 53 - .../details/AssociationOverride2_0Composite.java | 86 - .../ui/internal/jpa2/details/Cacheable2_0Pane.java | 107 - .../ui/internal/jpa2/details/CascadePane2_0.java | 81 - .../jpa2/details/CollectionTable2_0Composite.java | 157 - .../jpa2/details/DerivedIdentity2_0Pane.java | 200 - .../ElementCollectionMapping2_0Composite.java | 81 - .../ElementCollectionValueOverridesComposite.java | 64 - .../details/EmbeddedIdMapping2_0Composite.java | 37 - ...beddedIdMapping2_0MappedByRelationshipPane.java | 70 - .../EmbeddedMapping2_0OverridesComposite.java | 64 - .../jpa2/details/Entity2_0OverridesComposite.java | 35 - .../jpa2/details/Generation2_0Composite.java | 42 - .../IdMapping2_0MappedByRelationshipPane.java | 72 - .../details/IdMappingGeneration2_0Composite.java | 48 - .../jpa2/details/JptUiDetailsMessages2_0.java | 78 - .../internal/jpa2/details/LockModeComposite.java | 89 - .../details/ManyToOneJoiningStrategy2_0Pane.java | 84 - .../details/NamedQueryProperty2_0Composite.java | 67 - .../details/OneToManyJoiningStrategy2_0Pane.java | 95 - .../details/OneToOneJoiningStrategy2_0Pane.java | 115 - .../jpa2/details/OrderColumnComposite.java | 370 - .../jpa2/details/Ordering2_0Composite.java | 168 - .../jpa2/details/OrphanRemoval2_0Composite.java | 111 - .../internal/jpa2/details/Queries2_0Composite.java | 55 - .../details/SequenceGenerator2_0Composite.java | 190 - .../jpa2/details/TargetClassComposite.java | 130 - .../java/Generic2_0JavaResourceUiDefinition.java | 91 - .../jpa2/details/java/Generic2_0JavaUiFactory.java | 134 - ...avaElementCollectionMapping2_0UiDefinition.java | 56 - .../details/java/JavaEmbeddable2_0Composite.java | 69 - .../java/JavaEmbeddedMapping2_0Composite.java | 60 - .../jpa2/details/java/JavaEntity2_0Composite.java | 105 - .../details/java/JavaIdMapping2_0Composite.java | 43 - .../java/JavaManyToManyMapping2_0Composite.java | 46 - .../java/JavaManyToOneMapping2_0Composite.java | 42 - .../details/java/JavaManyToOneMapping2_0Pane.java | 14 - .../java/JavaMappedSuperclass2_0Composite.java | 74 - .../java/JavaOneToManyMapping2_0Composite.java | 66 - .../java/JavaOneToOneMapping2_0Composite.java | 62 - .../details/orm/EntityMappings2_0DetailsPage.java | 43 - .../orm/EntityMappings2_0DetailsProvider.java | 58 - .../orm/EntityMappingsGenerators2_0Composite.java | 53 - .../details/orm/OrmBasicMapping2_0Composite.java | 58 - .../OrmElementCollectionMapping2_0Composite.java | 59 - ...OrmElementCollectionMapping2_0UiDefinition.java | 56 - .../orm/OrmEmbeddedIdMapping2_0Composite.java | 53 - .../orm/OrmEmbeddedMapping2_0Composite.java | 77 - .../jpa2/details/orm/OrmEntity2_0Composite.java | 91 - .../jpa2/details/orm/OrmIdMapping2_0Composite.java | 58 - .../orm/OrmManyToManyMapping2_0Composite.java | 57 - .../orm/OrmManyToOneMapping2_0Composite.java | 57 - .../orm/OrmOneToManyMapping2_0Composite.java | 80 - .../orm/OrmOneToOneMapping2_0Composite.java | 76 - .../jpa2/details/orm/OrmQueries2_0Composite.java | 43 - .../details/orm/OrmVersionMapping2_0Composite.java | 55 - .../jpa2/details/orm/OrmXml2_0UiDefinition.java | 96 - .../Generic2_0PersistenceXmlUiFactory.java | 83 - .../persistence/JptUiPersistence2_0Messages.java | 82 - .../persistence/PersistenceXml2_0UiDefinition.java | 55 - .../connection/ConnectionPropertiesComposite.java | 38 - .../connection/DataSourcePropertiesComposite.java | 142 - ...nericPersistenceUnit2_0ConnectionComposite.java | 49 - .../GenericPersistenceUnit2_0ConnectionTab.java | 90 - .../JdbcConnectionPropertiesComposite.java | 314 - .../connection/JdbcDriverComposite.java | 94 - .../connection/JdbcPropertiesComposite.java | 79 - .../connection/TransactionTypeComposite.java | 123 - .../GenericPersistenceUnit2_0OptionsComposite.java | 63 - .../GenericPersistenceUnit2_0OptionsTab.java | 90 - .../options/LockingConfigurationComposite.java | 85 - .../options/QueryConfigurationComposite.java | 85 - .../options/SharedCacheModeComposite.java | 94 - .../options/ValidationConfigurationComposite.java | 385 - .../options/ValidationModeComposite.java | 94 - .../generic/Generic2_0JpaPlatformUiFactory.java | 34 - .../listeners/SWTConnectionListenerWrapper.java | 348 - .../jpa/ui/internal/menus/MapAsContribution.java | 204 - .../PersistentAttributeMapAsContribution.java | 86 - .../menus/PersistentTypeMapAsContribution.java | 64 - .../navigator/JpaNavigatorActionProvider.java | 59 - .../JpaNavigatorContentAndLabelProvider.java | 20 - .../navigator/JpaNavigatorContentProvider.java | 216 - .../JpaNavigatorItemLabelProviderFactory.java | 75 - .../navigator/JpaNavigatorLabelProvider.java | 138 - ...JpaNavigatorTreeItemContentProviderFactory.java | 75 - .../persistence/JptUiPersistenceMessages.java | 78 - ...AbstractPersistenceXmlResourceUiDefinition.java | 50 - .../details/ArchiveFileSelectionDialog.java | 225 - .../GenericPersistenceUnitGeneralComposite.java | 116 - .../GenericPersistenceUnitJarFilesComposite.java | 26 - ...enericPersistenceUnitMappingFilesComposite.java | 52 - .../details/GenericPersistenceXmlUiFactory.java | 38 - .../details/PersistenceUnitClassesComposite.java | 376 - .../PersistenceUnitConnectionComposite.java | 144 - ...PersistenceUnitConnectionDatabaseComposite.java | 159 - .../PersistenceUnitConnectionGeneralComposite.java | 106 - .../details/PersistenceUnitGeneralComposite.java | 230 - .../details/PersistenceUnitJarFilesComposite.java | 230 - .../PersistenceUnitMappingFilesComposite.java | 261 - .../PersistenceUnitPropertiesComposite.java | 419 - .../details/PersistenceXmlUiDefinition.java | 53 - .../details/PersistenceXmlUiFactory.java | 38 - .../perspective/JpaPerspectiveFactory.java | 51 - .../internal/platform/JpaPlatformUiRegistry.java | 190 - .../internal/platform/base/BaseJpaPlatformUi.java | 191 - .../internal/platform/base/EntitiesGenerator.java | 66 - .../generic/ClassRefItemLabelProvider.java | 72 - .../generic/EntityMappingsItemLabelProvider.java | 54 - .../platform/generic/GenericJpaPlatformUi.java | 34 - .../generic/GenericJpaPlatformUiFactory.java | 32 - ...GenericNavigatorItemContentProviderFactory.java | 255 - .../GenericNavigatorItemLabelProviderFactory.java | 51 - .../platform/generic/GenericNavigatorProvider.java | 29 - .../generic/JarFileRefItemLabelProvider.java | 65 - .../JavaPersistentTypeItemContentProvider.java | 53 - .../generic/MappingFileRefItemLabelProvider.java | 71 - .../OrmPersistentTypeItemContentProvider.java | 82 - .../generic/OrmXmlItemContentProvider.java | 69 - .../platform/generic/OrmXmlItemLabelProvider.java | 51 - .../generic/PersistenceItemLabelProvider.java | 53 - .../generic/PersistenceUnitItemLabelProvider.java | 62 - .../generic/PersistenceXmlItemContentProvider.java | 61 - .../generic/PersistenceXmlItemLabelProvider.java | 51 - .../PersistentAttributeItemContentProvider.java | 39 - .../PersistentAttributeItemLabelProvider.java | 80 - .../generic/PersistentTypeItemLabelProvider.java | 71 - .../generic/RootContextItemContentProvider.java | 51 - .../generic/RootContextItemLabelProvider.java | 52 - .../internal/preferences/JpaPreferencesPage.java | 68 - .../preferences/JpaProblemSeveritiesPage.java | 941 -- .../internal/properties/DataModelPropertyPage.java | 309 - .../properties/JpaProjectPropertiesPage.java | 1614 --- .../ui/internal/selection/DefaultJpaSelection.java | 60 - .../selection/DefaultJpaSelectionManager.java | 288 - .../selection/JpaDetailsSelectionParticipant.java | 42 - .../jpa/ui/internal/selection/JpaSelection.java | 37 - .../ui/internal/selection/JpaSelectionEvent.java | 64 - .../ui/internal/selection/JpaSelectionManager.java | 57 - .../selection/JpaSelectionParticipant.java | 38 - .../JpaStructureSelectionParticipant.java | 69 - .../selection/SelectionManagerFactory.java | 105 - .../selection/TextEditorSelectionParticipant.java | 215 - .../selection/WorkbenchPartAdapterFactory.java | 61 - .../GeneralJpaMappingItemLabelProviderFactory.java | 33 - .../structure/JavaItemContentProviderFactory.java | 39 - .../structure/JavaItemLabelProviderFactory.java | 17 - .../JavaResourceModelStructureProvider.java | 45 - .../structure/OrmItemContentProviderFactory.java | 79 - .../structure/OrmItemLabelProviderFactory.java | 27 - .../OrmResourceModelStructureProvider.java | 46 - .../PersistenceItemContentProviderFactory.java | 271 - .../PersistenceItemLabelProviderFactory.java | 48 - .../PersistenceResourceModelStructureProvider.java | 46 - .../ResourceModelItemContentProvider.java | 53 - .../jpt/jpa/ui/internal/views/AbstractJpaView.java | 166 - .../jpt/jpa/ui/internal/views/JpaDetailsView.java | 190 - .../internal/views/structure/JpaStructurePage.java | 409 - .../internal/views/structure/JpaStructureView.java | 134 - .../internal/wizards/DatabaseSchemaWizardPage.java | 445 - .../ui/internal/wizards/JpaFacetActionPage.java | 203 - .../ui/internal/wizards/JpaFacetInstallPage.java | 248 - .../wizards/JpaFacetVersionChangePage.java | 44 - .../internal/wizards/JpaMakePersistentWizard.java | 79 - .../wizards/JpaMakePersistentWizardPage.java | 635 - .../internal/wizards/NewEntityDropDownAction.java | 261 - .../wizards/SelectJpaOrmMappingFileDialog.java | 146 - .../wizards/entity/AnnotatedEntityTemplate.java | 166 - .../wizards/entity/EntityClassWizardPage.java | 408 - .../wizards/entity/EntityFieldsWizardPage.java | 234 - .../entity/EntityRowTableWizardSection.java | 822 -- .../ui/internal/wizards/entity/EntityTemplate.java | 126 - .../ui/internal/wizards/entity/EntityWizard.java | 176 - .../internal/wizards/entity/EntityWizardMsg.java | 127 - .../internal/wizards/entity/IdClassTemplate.java | 255 - .../data/model/CreateEntityTemplateModel.java | 384 - .../entity/data/model/EntityDataModelProvider.java | 504 - .../wizards/entity/data/model/EntityRow.java | 206 - .../data/model/IEntityDataModelProperties.java | 33 - .../data/operation/NewEntityClassOperation.java | 536 - .../ui/internal/wizards/gen/AssociationFigure.java | 227 - .../wizards/gen/AssociationTablesPage.java | 194 - .../wizards/gen/AssociationsListComposite.java | 137 - .../ui/internal/wizards/gen/CardinalityPage.java | 161 - .../jpa/ui/internal/wizards/gen/CascadeDialog.java | 191 - .../ui/internal/wizards/gen/ColumnGenPanel.java | 360 - .../jpa/ui/internal/wizards/gen/DatabaseGroup.java | 526 - .../gen/DefaultTableGenerationWizardPage.java | 327 - .../gen/GenerateEntitiesFromSchemaWizard.java | 541 - .../ui/internal/wizards/gen/JoinColumnsPage.java | 629 - .../wizards/gen/JptUiEntityGenMessages.java | 123 - .../internal/wizards/gen/NewAssociationWizard.java | 199 - .../wizards/gen/NewAssociationWizardPage.java | 60 - .../wizards/gen/PromptJPAProjectWizardPage.java | 154 - .../jpt/jpa/ui/internal/wizards/gen/SWTUtil.java | 133 - .../ui/internal/wizards/gen/SelectTableDialog.java | 75 - .../wizards/gen/TableAssociationsWizardPage.java | 775 -- .../jpa/ui/internal/wizards/gen/TableFigure.java | 86 - .../jpa/ui/internal/wizards/gen/TableGenPanel.java | 400 - .../TablesAndColumnsCustomizationWizardPage.java | 377 - .../wizards/gen/TablesSelectorWizardPage.java | 557 - .../wizards/orm/MappingFileNewFileWizardPage.java | 76 - .../wizards/orm/MappingFileOptionsWizardPage.java | 125 - .../ui/internal/wizards/orm/MappingFileWizard.java | 364 - .../internal/wizards/proj/AddToEarComposite.java | 114 - .../ui/internal/wizards/proj/JpaProjectWizard.java | 62 - .../wizards/proj/JpaProjectWizardFirstPage.java | 121 - .../JpaProjectCreationDataModelProperties.java | 28 - .../model/JpaProjectCreationDataModelProvider.java | 349 - .../jpa/ui/jpa2/details/java/JavaUiFactory2_0.java | 41 - .../ui/jpa2/details/orm/OrmXmlUiFactory2_0.java | 41 - .../jpt/jpa/ui/navigator/JpaNavigatorProvider.java | 43 - .../jpt/jpa/ui/structure/JpaStructureProvider.java | 41 - .../templates/annotated_entity.javajet | 64 - .../templates/entity.javajet | 50 - .../templates/idClass.javajet | 124 - jpa/plugins/org.eclipse.jpt.ui/.project | 5 - jpa/plugins/org.eclipse.jpt.utility/.project | 5 - .../.project | 5 - jpa/tests/org.eclipse.jpt.core.tests/.project | 5 - jpa/tests/org.eclipse.jpt.db.tests/.project | 5 - .../.project | 5 - jpa/tests/org.eclipse.jpt.gen.tests/.project | 5 - .../.classpath | 13 - .../.cvsignore | 6 - .../.project | 28 - .../META-INF/MANIFEST.MF | 23 - .../about.html | 34 - .../build.properties | 19 - .../plugin.properties | 23 - .../plugin.xml | 34 - .../extension/resource/ExtensionTestPlugin.java | 55 - .../resource/JavaTestAttributeMapping.java | 35 - .../JavaTestAttributeMappingDefinition.java | 63 - .../extension/resource/JavaTestTypeMapping.java | 42 - .../resource/JavaTestTypeMappingDefinition.java | 54 - .../extension/resource/TestJavaBasicMapping.java | 21 - .../tests/extension/resource/TestJavaEntity.java | 31 - .../tests/extension/resource/TestJpaFactory.java | 39 - .../extension/resource/TestJpaPlatformFactory.java | 66 - .../resource/TestJpaPlatformProvider.java | 163 - .../resource/TestJpaPlatformUiFactory.java | 33 - .../org.eclipse.jpt.jpa.core.tests/.classpath | 15 - .../org.eclipse.jpt.jpa.core.tests/.cvsignore | 5 - jpa/tests/org.eclipse.jpt.jpa.core.tests/.project | 28 - .../META-INF/MANIFEST.MF | 45 - .../org.eclipse.jpt.jpa.core.tests/about.html | 34 - .../build.properties | 18 - .../plugin.properties | 23 - .../jpt/jpa/core/tests/JptJpaCoreTestsPlugin.java | 61 - .../org/eclipse/jpt/jpa/core/tests/MiscTests.java | 65 - .../jpa/core/tests/internal/JptJpaCoreTests.java | 74 - .../internal/context/ContextModelTestCase.java | 221 - .../core/tests/internal/context/JpaFileTests.java | 411 - .../tests/internal/context/JpaProjectTests.java | 172 - .../context/JptJpaCoreContextModelTests.java | 52 - .../java/GenericJavaPersistentAttributeTests.java | 236 - .../java/GenericJavaPersistentTypeTests.java | 759 -- .../context/java/JavaAssociationOverrideTests.java | 446 - .../context/java/JavaAttributeOverrideTests.java | 260 - .../context/java/JavaBasicMappingTests.java | 995 -- .../internal/context/java/JavaCascadeTests.java | 321 - .../internal/context/java/JavaColumnTests.java | 843 -- .../context/java/JavaDiscriminatorColumnTests.java | 458 - .../internal/context/java/JavaEmbeddableTests.java | 171 - .../context/java/JavaEmbeddedIdMappingTests.java | 659 - .../context/java/JavaEmbeddedMappingTests.java | 863 -- .../internal/context/java/JavaEntityTests.java | 3417 ----- .../context/java/JavaGeneratedValueTests.java | 150 - .../internal/context/java/JavaIdMappingTests.java | 715 -- .../internal/context/java/JavaJoinColumnTests.java | 549 - .../internal/context/java/JavaJoinTableTests.java | 1177 -- .../context/java/JavaManyToManyMappingTests.java | 1180 -- .../context/java/JavaManyToOneMappingTests.java | 960 -- .../context/java/JavaMappedSuperclassTests.java | 288 - .../context/java/JavaNamedNativeQueryTests.java | 432 - .../internal/context/java/JavaNamedQueryTests.java | 333 - .../context/java/JavaOneToManyMappingTests.java | 1160 -- .../context/java/JavaOneToOneMappingTests.java | 1511 --- .../java/JavaPrimaryKeyJoinColumnTests.java | 303 - .../internal/context/java/JavaQueryHintTests.java | 145 - .../context/java/JavaSecondaryTableTests.java | 730 -- .../context/java/JavaSequenceGeneratorTests.java | 235 - .../context/java/JavaTableGeneratorTests.java | 671 - .../internal/context/java/JavaTableTests.java | 610 - .../context/java/JavaTransientMappingTests.java | 249 - .../context/java/JavaVersionMappingTests.java | 400 - .../context/java/JptCoreContextJavaModelTests.java | 59 - .../internal/context/orm/EntityMappingsTests.java | 1066 -- .../orm/GenericOrmPersistentAttributeTests.java | 314 - .../context/orm/GenericOrmPersistentTypeTests.java | 574 - .../context/orm/JptCoreOrmContextModelTests.java | 62 - .../context/orm/OrmAssociationOverrideTests.java | 267 - .../context/orm/OrmAttributeOverrideTests.java | 99 - .../internal/context/orm/OrmBasicMappingTests.java | 711 -- .../internal/context/orm/OrmCascadeTests.java | 280 - .../tests/internal/context/orm/OrmColumnTests.java | 835 -- .../context/orm/OrmDiscriminatorColumnTests.java | 456 - .../internal/context/orm/OrmEmbeddableTests.java | 295 - .../context/orm/OrmEmbeddedIdMappingTests.java | 923 -- .../context/orm/OrmEmbeddedMappingTests.java | 943 -- .../tests/internal/context/orm/OrmEntityTests.java | 2790 ----- .../context/orm/OrmGeneratedValueTests.java | 136 - .../internal/context/orm/OrmIdMappingTests.java | 746 -- .../internal/context/orm/OrmJoinColumnTests.java | 506 - .../internal/context/orm/OrmJoinTableTests.java | 1365 -- .../context/orm/OrmManyToManyMappingTests.java | 1065 -- .../context/orm/OrmManyToOneMappingTests.java | 618 - .../context/orm/OrmMappedSuperclassTests.java | 386 - .../context/orm/OrmNamedNativeQueryTests.java | 358 - .../internal/context/orm/OrmNamedQueryTests.java | 273 - .../context/orm/OrmOneToManyMappingTests.java | 1058 -- .../context/orm/OrmOneToOneMappingTests.java | 1196 -- .../context/orm/OrmPrimaryKeyJoinColumnTests.java | 253 - .../internal/context/orm/OrmQueryHintTests.java | 122 - .../context/orm/OrmSecondaryTableTests.java | 767 -- .../context/orm/OrmSequenceGeneratorTests.java | 172 - .../context/orm/OrmTableGeneratorTests.java | 604 - .../tests/internal/context/orm/OrmTableTests.java | 827 -- .../context/orm/OrmTransientMappingTests.java | 305 - .../context/orm/OrmVersionMappingTests.java | 489 - .../tests/internal/context/orm/OrmXmlTests.java | 69 - .../context/orm/PersistenceUnitDefaultsTests.java | 369 - .../context/orm/PersistenceUnitMetadataTests.java | 104 - .../context/persistence/ClassRefTests.java | 113 - .../JptCorePersistenceContextModelTests.java | 33 - .../context/persistence/MappingFileRefTests.java | 98 - .../context/persistence/PersistenceTests.java | 134 - .../persistence/PersistenceUnitTestCase.java | 361 - .../context/persistence/PersistenceUnitTests.java | 1247 -- .../context/persistence/PersistenceXmlTests.java | 56 - .../context/persistence/RootContextNodeTests.java | 53 - .../context/Generic2_0ContextModelTestCase.java | 35 - .../java/Generic2_0JavaContextModelTests.java | 41 - .../GenericJavaAssociationOverride2_0Tests.java | 580 - .../context/java/GenericJavaCascade2_0Tests.java | 106 - .../java/GenericJavaCollectionTable2_0Tests.java | 722 -- ...enericJavaElementCollectionMapping2_0Tests.java | 2077 --- .../java/GenericJavaEmbeddedMapping2_0Tests.java | 1550 --- .../context/java/GenericJavaEntity2_0Tests.java | 2069 --- .../java/GenericJavaManyToManyMapping2_0Tests.java | 1218 -- .../java/GenericJavaManyToOneMapping2_0Tests.java | 419 - .../java/GenericJavaOneToManyMapping2_0Tests.java | 1526 --- .../java/GenericJavaOneToOneMapping2_0Tests.java | 884 -- .../GenericJavaPersistentAttribute2_0Tests.java | 162 - .../java/GenericJavaPersistentType2_0Tests.java | 853 -- .../java/GenericJavaSequenceGenerator2_0Tests.java | 200 - .../orm/Generic2_0OrmContextModelTests.java | 41 - .../orm/GenericOrmAssociationOverride2_0Tests.java | 534 - .../context/orm/GenericOrmCascade2_0Tests.java | 89 - .../orm/GenericOrmCollectionTable2_0Tests.java | 753 -- ...GenericOrmElementCollectionMapping2_0Tests.java | 1459 --- .../orm/GenericOrmEmbeddedMapping2_0Tests.java | 1734 --- .../jpa2/context/orm/GenericOrmEntity2_0Tests.java | 1972 --- .../orm/GenericOrmManyToManyMapping2_0Tests.java | 939 -- .../orm/GenericOrmManyToOneMapping2_0Tests.java | 674 - .../orm/GenericOrmOneToManyMapping2_0Tests.java | 1230 -- .../orm/GenericOrmOneToOneMapping2_0Tests.java | 991 -- .../orm/GenericOrmPersistentAttribute2_0Tests.java | 550 - .../orm/GenericOrmPersistentType2_0Tests.java | 283 - .../orm/GenericOrmSequenceGenerator2_0Tests.java | 91 - .../persistence/Generic2_0ConnectionTests.java | 186 - .../persistence/Generic2_0OptionsTests.java | 520 - .../Generic2_0PersistenceContextModelTests.java | 30 - .../Generic2_0PersistenceUnitTests.java | 58 - .../resource/java/Access2_0AnnotationTests.java | 175 - .../resource/java/AssociationOverride2_0Tests.java | 885 -- .../java/AssociationOverrides2_0Tests.java | 988 -- .../resource/java/Cacheable2_0AnnotationTests.java | 106 - .../java/CollectionTable2_0AnnotationTests.java | 498 - .../java/ElementCollection2_0AnnotationTests.java | 169 - .../jpa2/resource/java/JavaResource2_0Tests.java | 48 - .../java/JavaResourceModel2_0TestCase.java | 29 - .../java/ManyToMany2_0AnnotationTests.java | 409 - .../resource/java/ManyToOne2_0AnnotationTests.java | 402 - .../java/MapKeyClass2_0AnnotationTests.java | 108 - .../java/MapKeyColumn2_0AnnotationTests.java | 404 - .../java/MapKeyEnumerated2_0AnnotationTests.java | 90 - .../java/MapKeyJoinColumn2_0AnnotationTests.java | 352 - .../java/MapKeyJoinColumns2_0AnnotationTests.java | 420 - .../java/MapKeyTemporal2_0AnnotationTests.java | 89 - .../resource/java/MapsId2_0AnnotationTests.java | 86 - .../resource/java/OneToMany2_0AnnotationTests.java | 412 - .../resource/java/OneToOne2_0AnnotationTests.java | 462 - .../java/OrderColumn2_0AnnotationTests.java | 252 - .../java/SequenceGenerator2_0AnnotationTests.java | 123 - .../internal/model/JpaProjectManagerTests.java | 262 - .../tests/internal/model/JptJpaCoreModelTests.java | 28 - .../internal/platform/BaseJpaPlatformTests.java | 77 - .../platform/JpaPlatformExtensionTests.java | 96 - .../tests/internal/platform/JpaPlatformTests.java | 129 - .../tests/internal/projects/TestJpaProject.java | 128 - .../resource/JptJpaCoreResourceModelTests.java | 42 - .../resource/java/AssociationOverrideTests.java | 253 - .../resource/java/AssociationOverridesTests.java | 320 - .../resource/java/AttributeOverrideTests.java | 157 - .../resource/java/AttributeOverridesTests.java | 274 - .../tests/internal/resource/java/BasicTests.java | 151 - .../tests/internal/resource/java/ColumnTests.java | 404 - .../resource/java/DiscriminatorColumnTests.java | 212 - .../resource/java/DiscriminatorValueTests.java | 83 - .../internal/resource/java/EmbeddableTests.java | 74 - .../internal/resource/java/EmbeddedIdTests.java | 50 - .../internal/resource/java/EmbeddedTests.java | 50 - .../tests/internal/resource/java/EntityTests.java | 125 - .../internal/resource/java/EnumeratedTests.java | 89 - .../resource/java/GeneratedValueTests.java | 133 - .../tests/internal/resource/java/IdClassTests.java | 103 - .../core/tests/internal/resource/java/IdTests.java | 50 - .../internal/resource/java/InheritanceTests.java | 83 - .../internal/resource/java/JPTToolsTests.java | 479 - .../resource/java/JavaResourceModelTestCase.java | 164 - .../java/JavaResourcePersistentAttributeTests.java | 870 -- .../java/JavaResourcePersistentTypeTests.java | 937 -- .../internal/resource/java/JoinColumnTests.java | 352 - .../internal/resource/java/JoinColumnsTests.java | 420 - .../internal/resource/java/JoinTableTests.java | 656 - .../java/JpaJavaResourceModelTestCase.java | 48 - .../resource/java/JptJavaResourceTests.java | 75 - .../tests/internal/resource/java/LobTests.java | 49 - .../internal/resource/java/ManyToManyTests.java | 394 - .../internal/resource/java/ManyToOneTests.java | 387 - .../tests/internal/resource/java/MapKeyTests.java | 88 - .../resource/java/MappedSuperclassTests.java | 74 - .../resource/java/NamedNativeQueriesTests.java | 421 - .../resource/java/NamedNativeQueryTests.java | 341 - .../internal/resource/java/NamedQueriesTests.java | 331 - .../internal/resource/java/NamedQueryTests.java | 259 - .../internal/resource/java/OneToManyTests.java | 397 - .../internal/resource/java/OneToOneTests.java | 447 - .../tests/internal/resource/java/OrderByTests.java | 87 - .../resource/java/PrimaryKeyJoinColumnTests.java | 187 - .../resource/java/PrimaryKeyJoinColumnsTests.java | 252 - .../internal/resource/java/QueryHintTests.java | 65 - .../resource/java/SecondaryTableTests.java | 436 - .../resource/java/SecondaryTablesTests.java | 503 - .../resource/java/SequenceGeneratorTests.java | 234 - .../resource/java/TableGeneratorTests.java | 501 - .../tests/internal/resource/java/TableTests.java | 346 - .../internal/resource/java/TemporalTests.java | 88 - .../internal/resource/java/TransientTests.java | 50 - .../tests/internal/resource/java/VersionTests.java | 49 - jpa/tests/org.eclipse.jpt.jpa.core.tests/test.xml | 35 - jpa/tests/org.eclipse.jpt.jpa.db.tests/.classpath | 11 - jpa/tests/org.eclipse.jpt.jpa.db.tests/.cvsignore | 1 - jpa/tests/org.eclipse.jpt.jpa.db.tests/.project | 28 - .../META-INF/MANIFEST.MF | 19 - jpa/tests/org.eclipse.jpt.jpa.db.tests/about.html | 34 - .../org.eclipse.jpt.jpa.db.tests/build.properties | 14 - .../config/derby.properties | 24 - .../config/mysql.properties | 23 - .../config/oracle10g.properties | 24 - .../config/oracle10gXE.properties | 24 - .../config/oracle9i.properties | 24 - .../config/postgresql.properties | 23 - .../config/sqlserver.properties | 24 - .../config/sybase.properties | 24 - .../org.eclipse.jpt.jpa.db.tests/plugin.properties | 24 - .../jpt/jpa/db/tests/internal/JDBCTests.java | 135 - .../jpt/jpa/db/tests/internal/JDBCTools.java | 105 - .../jpt/jpa/db/tests/internal/JptJpaDbTests.java | 34 - .../jpa/db/tests/internal/JptJpaDbTestsPlugin.java | 56 - .../tests/internal/platforms/AllPlatformTests.java | 37 - .../tests/internal/platforms/DTPPlatformTests.java | 1030 -- .../db/tests/internal/platforms/DerbyTests.java | 482 - .../db/tests/internal/platforms/MySQLTests.java | 454 - .../tests/internal/platforms/Oracle10gTests.java | 397 - .../tests/internal/platforms/Oracle10gXETests.java | 79 - .../db/tests/internal/platforms/Oracle9iTests.java | 79 - .../tests/internal/platforms/PostgreSQLTests.java | 486 - .../tests/internal/platforms/SQLServerTests.java | 83 - .../db/tests/internal/platforms/SybaseTests.java | 443 - .../.classpath | 14 - .../.cvsignore | 5 - .../.project | 28 - .../META-INF/MANIFEST.MF | 46 - .../about.html | 34 - .../build.properties | 18 - .../plugin.properties | 23 - .../tests/internal/JptJpaEclipseLinkCoreTests.java | 93 - .../context/EclipseLinkContextModelTestCase.java | 49 - .../context/EclipseLinkJpaProjectTests.java | 149 - .../JptEclipseLink1_0CoreContextModelTests.java | 34 - .../JptJpaEclipseLinkCoreContextModelTests.java | 45 - .../java/EclipseLinkJavaBasicMappingTests.java | 322 - .../context/java/EclipseLinkJavaCachingTests.java | 646 - .../context/java/EclipseLinkJavaConvertTests.java | 224 - .../java/EclipseLinkJavaConverterTests.java | 222 - .../java/EclipseLinkJavaEmbeddableTests.java | 253 - .../context/java/EclipseLinkJavaEntityTests.java | 387 - .../java/EclipseLinkJavaIdMappingTests.java | 323 - .../EclipseLinkJavaManyToManyMappingTests.java | 149 - .../java/EclipseLinkJavaManyToOneMappingTests.java | 148 - .../java/EclipseLinkJavaMappedSuperclassTests.java | 348 - .../EclipseLinkJavaObjectTypeConverterTests.java | 644 - .../java/EclipseLinkJavaOneToManyMappingTests.java | 579 - .../java/EclipseLinkJavaOneToOneMappingTests.java | 448 - .../java/EclipseLinkJavaStructConverterTests.java | 221 - .../java/EclipseLinkJavaTypeConverterTests.java | 313 - .../java/EclipseLinkJavaVersionMappingTests.java | 322 - .../JptEclipseLinkCoreJavaContextModelTests.java | 43 - .../orm/EclipseLinkEntityMappingsTests.java | 675 - .../orm/EclipseLinkOrmBasicMappingTests.java | 389 - .../orm/EclipseLinkOrmContextModelTestCase.java | 84 - .../context/orm/EclipseLinkOrmConverterTests.java | 194 - .../context/orm/EclipseLinkOrmEmbeddableTests.java | 1035 -- .../context/orm/EclipseLinkOrmEntityTests.java | 2394 ---- .../context/orm/EclipseLinkOrmIdMappingTests.java | 389 - .../orm/EclipseLinkOrmManyToManyMappingTests.java | 383 - .../orm/EclipseLinkOrmManyToOneMappingTests.java | 321 - .../orm/EclipseLinkOrmMappedSuperclassTests.java | 2147 ---- .../EclipseLinkOrmObjectTypeConverterTests.java | 569 - .../orm/EclipseLinkOrmOneToManyMappingTests.java | 747 -- .../orm/EclipseLinkOrmOneToOneMappingTests.java | 455 - .../EclipseLinkOrmPersistentAttributeTests.java | 313 - .../orm/EclipseLinkOrmStructConverterTests.java | 199 - .../orm/EclipseLinkOrmTransientMappingTests.java | 62 - .../orm/EclipseLinkOrmTypeConverterTests.java | 266 - .../orm/EclipseLinkOrmVersionMappingTests.java | 387 - .../EclipseLinkPersistenceUnitDefaultsTests.java | 369 - .../EclipseLinkPersistenceUnitMetadataTests.java | 105 - .../JptEclipseLinkCoreOrmContextModelTests.java | 47 - .../EclipseLinkPersistenceUnitTestCase.java | 53 - .../EclipseLinkPersistenceUnitTests.java | 178 - ...clipseLinkCorePersistenceContextModelTests.java | 43 - .../persistence/caching/CachingAdapterTests.java | 449 - .../caching/CachingValueModelTests.java | 444 - .../JptEclipseLinkPersistenceCachingTests.java | 33 - .../connection/EclipseLinkConnectionTests.java | 542 - .../JptEclipseLinkPersistenceConnectionTests.java | 33 - .../CustomizationValueModelTests.java | 205 - .../EclipseLinkCustomizationTests.java | 761 -- ...ptEclipseLinkPersistenceCustomizationTests.java | 33 - .../general/GeneralPropertiesAdapterTests.java | 105 - .../general/GeneralPropertiesValueModelTests.java | 162 - .../JptEclipseLinkPersistenceGeneralTests.java | 33 - .../JptEclipseLinkPersistenceLoggingTests.java | 33 - .../persistence/logging/LoggingAdapterTests.java | 340 - .../logging/LoggingValueModelTests.java | 162 - .../JptEclipseLinkPersistenceOptionsTests.java | 33 - .../persistence/options/OptionsAdapterTests.java | 380 - .../options/OptionsValueModelTests.java | 161 - ...clipseLinkPersistenceSchemaGenerationTests.java | 35 - .../generation/SchemaGenerationAdapterTests.java | 254 - .../SchemaGenerationBasicAdapterTests.java | 154 - .../SchemaGenerationValueModelTests.java | 232 - .../JptJpaEclipselinkCoreResourceModelTests.java | 41 - .../tests/internal/resource/java/CacheTests.java | 448 - .../resource/java/ChangeTrackingTests.java | 88 - .../java/ConversionValueAnnotationTests.java | 131 - .../resource/java/ConvertAnnotationTests.java | 105 - .../resource/java/ConverterAnnotationTests.java | 155 - .../resource/java/CustomizerAnnotationTests.java | 99 - .../java/EclipseLinkJavaResourceModelTestCase.java | 34 - .../java/EclipseLinkPrimaryKeyAnnotationTests.java | 53 - .../resource/java/ExistenceCheckingTests.java | 88 - .../internal/resource/java/JoinFetchTests.java | 92 - .../JptEclipseLinkCoreJavaResourceModelTests.java | 47 - .../resource/java/MutableAnnotationTests.java | 111 - .../java/ObjectTypeConverterAnnotationTests.java | 426 - .../internal/resource/java/PrivateOwnedTests.java | 49 - .../internal/resource/java/ReadOnlyTests.java | 47 - .../java/ReadTransformerAnnotationTests.java | 155 - .../java/StructConverterAnnotationTests.java | 155 - .../internal/resource/java/TimeOfDayTests.java | 220 - .../java/TransformationAnnotationTests.java | 158 - .../java/TypeConverterAnnotationTests.java | 214 - .../java/WriteTransformerAnnotationTests.java | 219 - .../EclipseLink1_1ContextModelTestCase.java | 33 - .../context/EclipseLink1_1JpaProjectTests.java | 173 - .../JptEclipseLink1_1CoreContextModelTests.java | 31 - .../orm/EclipseLink1_1OrmContextModelTestCase.java | 92 - .../EclipseLink1_1OrmPersistentAttributeTests.java | 430 - .../orm/EclipseLink1_1OrmPersistentTypeTests.java | 302 - .../EclipseLink1_1OrmTransientMappingTests.java | 64 - .../JptEclipseLink1_1CoreOrmContextModelTests.java | 33 - .../EclipseLink1_2ContextModelTestCase.java | 34 - .../context/EclipseLink1_2JpaProjectTests.java | 173 - .../JptEclipseLink1_2CoreContextModelTests.java | 30 - .../EclipseLink2_0ContextModelTestCase.java | 35 - .../JptEclipseLink2_0CoreContextModelTests.java | 38 - .../EclipseLink2_0JavaCollectionTableTests.java | 724 -- ...seLink2_0JavaElementCollectionMappingTests.java | 2077 --- .../java/EclipseLink2_0JavaEntityTests.java | 1813 --- .../EclipseLink2_0JavaManyToManyMappingTests.java | 1303 -- .../EclipseLink2_0JavaManyToOneMappingTests.java | 330 - .../EclipseLink2_0JavaMappedSuperclassTests.java | 528 - .../EclipseLink2_0JavaOneToManyMappingTests.java | 1422 --- .../EclipseLink2_0JavaOneToOneMappingTests.java | 818 -- .../JptEclipseLink2_0JavaContextModelTests.java | 35 - .../orm/EclipseLink2_0OrmCollectionTableTests.java | 752 -- .../orm/EclipseLink2_0OrmContextModelTestCase.java | 92 - ...pseLink2_0OrmElementCollectionMappingTests.java | 1446 --- .../context/orm/EclipseLink2_0OrmEntityTests.java | 1806 --- .../EclipseLink2_0OrmManyToManyMappingTests.java | 963 -- .../EclipseLink2_0OrmMappedSuperclassTests.java | 2375 ---- .../EclipseLink2_0OrmOneToManyMappingTests.java | 1076 -- .../orm/EclipseLink2_0OrmOneToOneMappingTests.java | 910 -- .../Eclipselink2_0OrmManyToOneMappingTests.java | 589 - .../orm/JptEclipseLink2_0OrmContextModelTests.java | 35 - .../persistence/EclipseLink2_0ConnectionTests.java | 173 - .../persistence/EclipseLink2_0LoggingTests.java | 431 - .../persistence/EclipseLink2_0OptionsTests.java | 519 - .../EclipseLink2_0PersistenceUnitTestCase.java | 57 - ...pseLink2_0CorePersistenceContextModelTests.java | 34 - .../test.xml | 49 - jpa/tests/org.eclipse.jpt.jpa.gen.tests/.classpath | 11 - jpa/tests/org.eclipse.jpt.jpa.gen.tests/.project | 28 - .../META-INF/MANIFEST.MF | 14 - jpa/tests/org.eclipse.jpt.jpa.gen.tests/about.html | 34 - .../org.eclipse.jpt.jpa.gen.tests/build.properties | 18 - .../plugin.properties | 23 - .../gen/tests/internal/EntityGenToolsTests.java | 143 - .../jpt/jpa/gen/tests/internal/JptJpaGenTests.java | 32 - jpa/tests/org.eclipse.jpt.jpa.gen.tests/test.xml | 49 - jpa/tests/org.eclipse.jpt.jpa.ui.tests/.classpath | 14 - jpa/tests/org.eclipse.jpt.jpa.ui.tests/.project | 28 - .../META-INF/MANIFEST.MF | 23 - .../org.eclipse.jpt.jpa.ui.tests/build.properties | 13 - .../org.eclipse.jpt.jpa.ui.tests/plugin.properties | 23 - .../org/eclipse/jpt/jpa/ui/tests/JptUiTests.java | 32 - .../platform/JpaPlatformUiExtensionTests.java | 65 - .../internal/platform/JptUiPlatformTests.java | 27 - jpa/tests/org.eclipse.jpt.ui.tests/.project | 5 - jpa/tests/org.eclipse.jpt.utility.tests/.project | 5 - .../.cvsignore | 1 - .../.project | 17 - .../build.properties | 13 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../feature.xml | 55 - .../sourceTemplateBundle/about.html | 27 - .../sourceTemplateBundle/about.ini | 31 - .../sourceTemplateBundle/about.mappings | 6 - .../sourceTemplateBundle/about.properties | 15 - .../sourceTemplateBundle/build.properties | 11 - .../sourceTemplateBundle/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplateBundle/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplateBundle/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateBundle/epl-v10.html | 328 - .../sourceTemplateBundle/license.html | 86 - .../sourceTemplateBundle/plugin.properties | 2 - .../sourceTemplateFeature/build.properties | 4 - .../sourceTemplateFeature/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplateFeature/feature.properties | 38 - .../sourceTemplatePlugin/about.html | 27 - .../sourceTemplatePlugin/about.ini | 31 - .../sourceTemplatePlugin/about.mappings | 6 - .../sourceTemplatePlugin/about.properties | 16 - .../sourceTemplatePlugin/build.properties | 11 - .../sourceTemplatePlugin/eclipse32.gif | Bin 1706 -> 0 bytes .../sourceTemplatePlugin/eclipse32.png | Bin 4634 -> 0 bytes .../sourceTemplatePlugin/eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../sourceTemplatePlugin/epl-v10.html | 328 - .../sourceTemplatePlugin/license.html | 86 - .../sourceTemplatePlugin/plugin.properties | 3 - .../.cvsignore | 2 - .../.project | 17 - .../build.properties | 5 - .../eclipse_update_120.jpg | Bin 21695 -> 0 bytes .../feature.properties | 43 - .../feature.xml | 30 - .../.cvsignore | 1 - .../.project | 22 - .../META-INF/MANIFEST.MF | 7 - .../about.html | 34 - .../about.ini | 33 - .../about.mappings | 6 - .../about.properties | 13 - .../build.properties | 8 - .../component.xml | 7 - .../icons/WTP_icon_x32_v2.png | Bin 5616 -> 0 bytes .../plugin.properties | 2 - .../org.eclipse.jpt.jpadiagrameditor.ui/.classpath | 7 - .../org.eclipse.jpt.jpadiagrameditor.ui/.cvsignore | 1 - .../org.eclipse.jpt.jpadiagrameditor.ui/.project | 28 - .../.settings/org.eclipse.jdt.core.prefs | 8 - .../META-INF/MANIFEST.MF | 41 - .../org.eclipse.jpt.jpadiagrameditor.ui/about.html | 47 - .../build.properties | 21 - .../component.xml | 1 - .../icons/CompoundKey.gif | Bin 923 -> 0 bytes .../icons/EJB_15x16.gif | Bin 140 -> 0 bytes .../icons/cmpEntity_obj.gif | Bin 581 -> 0 bytes .../icons/ent/add_attribute.gif | Bin 913 -> 0 bytes .../icons/ent/add_entity.gif | Bin 1013 -> 0 bytes .../icons/ent/basic.gif | Bin 897 -> 0 bytes .../icons/ent/embeddable.gif | Bin 1003 -> 0 bytes .../icons/ent/embedded-id.gif | Bin 953 -> 0 bytes .../icons/ent/embedded.gif | Bin 905 -> 0 bytes .../icons/ent/entity-mappings.gif | Bin 974 -> 0 bytes .../icons/ent/entity.gif | Bin 1010 -> 0 bytes .../icons/ent/id.gif | Bin 938 -> 0 bytes .../icons/ent/jpa-content.gif | Bin 896 -> 0 bytes .../icons/ent/jpa-file.gif | Bin 968 -> 0 bytes .../icons/ent/many-to-many-1-dir.gif | Bin 933 -> 0 bytes .../icons/ent/many-to-many-2-dir.gif | Bin 935 -> 0 bytes .../icons/ent/many-to-many.gif | Bin 328 -> 0 bytes .../icons/ent/many-to-one-1-dir.gif | Bin 917 -> 0 bytes .../icons/ent/many-to-one-2-dir.gif | Bin 923 -> 0 bytes .../icons/ent/many-to-one.gif | Bin 307 -> 0 bytes .../icons/ent/mapped-superclass.gif | Bin 1005 -> 0 bytes .../icons/ent/null-attribute-mapping.gif | Bin 911 -> 0 bytes .../icons/ent/null-type-mapping.gif | Bin 586 -> 0 bytes .../icons/ent/one-to-many-1-dir.gif | Bin 915 -> 0 bytes .../icons/ent/one-to-many.gif | Bin 306 -> 0 bytes .../icons/ent/one-to-one-1-dir.gif | Bin 889 -> 0 bytes .../icons/ent/one-to-one-2-dir.gif | Bin 896 -> 0 bytes .../icons/ent/one-to-one.gif | Bin 283 -> 0 bytes .../icons/ent/persistence-unit.gif | Bin 931 -> 0 bytes .../icons/ent/persistence.gif | Bin 961 -> 0 bytes .../icons/ent/remove_attribute.gif | Bin 918 -> 0 bytes .../icons/ent/transient.gif | Bin 892 -> 0 bytes .../icons/ent/version.gif | Bin 321 -> 0 bytes .../icons/ent/warning.gif | Bin 338 -> 0 bytes .../icons/restore.gif | Bin 224 -> 0 bytes .../icons/save.gif | Bin 914 -> 0 bytes .../icons/save_and_remove.gif | Bin 905 -> 0 bytes .../plugin.properties | 31 - .../org.eclipse.jpt.jpadiagrameditor.ui/plugin.xml | 149 - .../org.eclipse.jpt.jpadiagrameditor.ui/pom.xml | 15 - .../ui/internal/JPADiagramEditor.java | 314 - .../ui/internal/JPADiagramEditorPlugin.java | 80 - .../ui/internal/dialog/SelectTypeDialog.java | 266 - .../ui/internal/facade/DisplayFacade.java | 27 - .../ui/internal/facade/EclipseFacade.java | 47 - .../ui/internal/facade/JavaCoreFacade.java | 29 - .../ui/internal/facade/StaticIDE.java | 38 - .../ui/internal/feature/AddAllEntitiesFeature.java | 171 - .../ui/internal/feature/AddAttributeFeature.java | 117 - .../ui/internal/feature/AddJPAEntityFeature.java | 456 - .../ui/internal/feature/AddRelationFeature.java | 295 - .../feature/ClickAddAttributeButtonFeature.java | 98 - .../feature/ClickRemoveAttributeButtonFeature.java | 119 - .../feature/CollapseAllEntitiesFeature.java | 78 - .../feature/CollapseCompartmentShapeFeature.java | 94 - .../ui/internal/feature/CollapseEntityFeature.java | 95 - .../internal/feature/CreateJPAEntityFeature.java | 228 - ...CreateJPAEntityFromMappedSuperclassFeature.java | 100 - .../CreateManyToManyBiDirRelationFeature.java | 64 - .../feature/CreateManyToManyRelationFeature.java | 28 - .../CreateManyToManyUniDirRelationFeature.java | 56 - .../CreateManyToOneBiDirRelationFeature.java | 64 - .../feature/CreateManyToOneRelationFeature.java | 27 - .../CreateManyToOneUniDirRelationFeature.java | 56 - .../feature/CreateOneToManyRelationFeature.java | 27 - .../CreateOneToManyUniDirRelationFeature.java | 58 - .../CreateOneToOneBiDirRelationFeature.java | 63 - .../feature/CreateOneToOneRelationFeature.java | 26 - .../CreateOneToOneUniDirRelationFeature.java | 58 - .../ui/internal/feature/CreateRelationFeature.java | 93 - .../internal/feature/DeleteJPAEntityFeature.java | 88 - .../ui/internal/feature/DeleteRelationFeature.java | 129 - .../feature/DirectEditAttributeFeature.java | 128 - .../feature/DirectEditJPAEntityFeature.java | 159 - .../DiscardAndRemoveAllEntitiesFeature.java | 59 - .../internal/feature/ExpandAllEntitiesFeature.java | 84 - .../feature/ExpandCompartmentShapeFeature.java | 114 - .../ui/internal/feature/ExpandEntityFeature.java | 102 - .../feature/GraphicalAddAttributeFeature.java | 143 - .../feature/GraphicalRemoveAttributeFeature.java | 154 - .../feature/JPAMoveConnectionDecoratorFeature.java | 31 - .../internal/feature/LayoutJPAEntityFeature.java | 227 - .../ui/internal/feature/MoveAttributeFeature.java | 50 - .../ui/internal/feature/MoveEntityFeature.java | 39 - .../internal/feature/MoveEntityShapeFeature.java | 72 - .../feature/OpenJPADetailsViewFeature.java | 46 - .../internal/feature/OpenMiniatureViewFeature.java | 46 - .../feature/RefactorAttributeTypeFeature.java | 95 - .../ui/internal/feature/RefactorEntityFeature.java | 349 - .../internal/feature/RemoveAllEntitiesFeature.java | 65 - .../feature/RemoveAndSaveEntityFeature.java | 70 - .../internal/feature/RemoveAttributeFeature.java | 161 - .../internal/feature/RemoveJPAEntityFeature.java | 131 - .../ui/internal/feature/RemoveRelationFeature.java | 136 - .../ui/internal/feature/RenameEntityFeature.java | 42 - .../feature/RenameEntityWithoutUIFeature.java | 45 - .../internal/feature/ResizeAttributeFeature.java | 44 - .../internal/feature/ResizeJPAEntityFeature.java | 76 - .../ui/internal/feature/RestoreEntityFeature.java | 70 - .../feature/SaveAndRemoveAllEntitiesFeature.java | 59 - .../ui/internal/feature/SaveEntityFeature.java | 45 - .../internal/feature/UpdateAttributeFeature.java | 147 - .../ui/internal/i18n/JPAEditorMessages.java | 239 - .../ui/internal/i18n/messages.properties | 200 - .../modelintegration/ui/JPADiagramEditorInput.java | 91 - .../ui/JPAEditorMatchingStrategy.java | 134 - .../ui/OpenJpaDiagramActionDelegate.java | 210 - .../modelintegration/util/CreateDiagramJob.java | 70 - .../util/IModelIntegrationUtil.java | 23 - .../util/ModelIntegrationUtil.java | 228 - .../util/ModelIntegrationUtilImpl.java | 26 - .../JPAEditorPreferenceInitializer.java | 76 - .../preferences/JPAEditorPreferencesPage.java | 311 - .../propertypage/JPADiagramPropertyPage.java | 601 - .../JpaProjectFacetVersionPropertyTester.java | 38 - .../ui/internal/provider/AddEntityContext.java | 54 - .../ui/internal/provider/IAddEntityContext.java | 26 - .../provider/IJPAEditorFeatureProvider.java | 102 - .../internal/provider/IJPAEditorImageCreator.java | 49 - .../provider/JPAEditorContextMenuProvider.java | 45 - .../provider/JPAEditorDiagramTypeProvider.java | 321 - .../provider/JPAEditorFeatureProvider.java | 641 - .../internal/provider/JPAEditorImageCreator.java | 108 - .../internal/provider/JPAEditorImageProvider.java | 95 - .../provider/JPAEditorToolBehaviorProvider.java | 619 - .../ui/internal/relations/AbstractRelation.java | 127 - .../internal/relations/BidirectionalRelation.java | 30 - .../ui/internal/relations/IRelation.java | 57 - .../relations/ManyToManyBiDirRelation.java | 114 - .../ui/internal/relations/ManyToManyRelation.java | 30 - .../relations/ManyToManyUniDirRelation.java | 77 - .../internal/relations/ManyToOneBiDirRelation.java | 104 - .../ui/internal/relations/ManyToOneRelation.java | 30 - .../relations/ManyToOneUniDirRelation.java | 76 - .../ui/internal/relations/OneToManyRelation.java | 30 - .../relations/OneToManyUniDirRelation.java | 75 - .../internal/relations/OneToOneBiDirRelation.java | 103 - .../ui/internal/relations/OneToOneRelation.java | 31 - .../internal/relations/OneToOneUniDirRelation.java | 75 - .../internal/relations/UnidirectionalRelation.java | 26 - .../ui/internal/util/EntityChangeListener.java | 200 - .../ui/internal/util/GraphicsUpdater.java | 198 - .../ui/internal/util/GraphicsUpdaterImpl.java | 26 - .../ui/internal/util/IDisplayFacade.java | 21 - .../ui/internal/util/IEclipseFacade.java | 29 - .../ui/internal/util/IGraphicsUpdater.java | 24 - .../ui/internal/util/IJPADiagramEditorInput.java | 27 - .../ui/internal/util/IJPAEditorUtil.java | 75 - .../ui/internal/util/IJavaCoreFacade.java | 24 - .../ui/internal/util/IJpaSolver.java | 27 - .../ui/internal/util/IPeServiceUtil.java | 35 - .../ui/internal/util/IStaticIDE.java | 24 - .../ui/internal/util/JPACheckSum.java | 121 - .../ui/internal/util/JPAEditorConstants.java | 183 - .../ui/internal/util/JPAEditorUtil.java | 1382 -- .../ui/internal/util/JPAEditorUtilImpl.java | 104 - .../ui/internal/util/JPASolver.java | 1470 --- .../ui/internal/util/JpaArtifactFactory.java | 2297 ---- .../ui/internal/util/PeServiceUtilImpl.java | 46 - .../ui/internal/util/SizePosition.java | 53 - .../jpt/jpadiagrameditor/ui/internal/util/Wrp.java | 30 - 5635 files changed, 892526 deletions(-) delete mode 100644 assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore delete mode 100644 assembly/features/org.eclipse.jpt.assembly.feature/.project delete mode 100644 assembly/features/org.eclipse.jpt.assembly.feature/build.properties delete mode 100644 assembly/features/org.eclipse.jpt.assembly.feature/eclipse_update_120.jpg delete mode 100644 assembly/features/org.eclipse.jpt.assembly.feature/feature.properties delete mode 100644 assembly/features/org.eclipse.jpt.assembly.feature/feature.xml delete mode 100644 assembly/features/org.eclipse.jpt.patch/.project delete mode 100644 assembly/features/org.eclipse.jpt.patch/build.properties delete mode 100644 assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html delete mode 100644 assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg delete mode 100644 assembly/features/org.eclipse.jpt.patch/epl-v10.html delete mode 100644 assembly/features/org.eclipse.jpt.patch/feature.properties delete mode 100644 assembly/features/org.eclipse.jpt.patch/feature.xml delete mode 100644 assembly/features/org.eclipse.jpt.patch/license.html delete mode 100644 assembly/features/org.eclipse.jpt.sdk/.cvsignore delete mode 100644 assembly/features/org.eclipse.jpt.sdk/.project delete mode 100644 assembly/features/org.eclipse.jpt.sdk/build.properties delete mode 100644 assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg delete mode 100644 assembly/features/org.eclipse.jpt.sdk/epl-v10.html delete mode 100644 assembly/features/org.eclipse.jpt.sdk/feature.properties delete mode 100644 assembly/features/org.eclipse.jpt.sdk/feature.xml delete mode 100644 assembly/features/org.eclipse.jpt.sdk/license.html delete mode 100644 assembly/features/org.eclipse.jpt.tests.assembly.feature/.cvsignore delete mode 100644 assembly/features/org.eclipse.jpt.tests.assembly.feature/.project delete mode 100644 assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 assembly/features/org.eclipse.jpt.tests.assembly.feature/build.properties delete mode 100644 assembly/features/org.eclipse.jpt.tests.assembly.feature/eclipse_update_120.jpg delete mode 100644 assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties delete mode 100644 assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml delete mode 100644 assembly/features/org.eclipse.jpt.tests/.project delete mode 100644 assembly/features/org.eclipse.jpt/.project delete mode 100644 assembly/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore delete mode 100644 assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project delete mode 100644 assembly/features/org.eclipse.jpt_sdk.assembly.feature/build.properties delete mode 100644 assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg delete mode 100644 assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties delete mode 100644 assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml delete mode 100644 assembly/plugins/org.eclipse.jpt/.cvsignore delete mode 100644 assembly/plugins/org.eclipse.jpt/.project delete mode 100644 assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs delete mode 100644 assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF delete mode 100644 assembly/plugins/org.eclipse.jpt/about.html delete mode 100644 assembly/plugins/org.eclipse.jpt/about.ini delete mode 100644 assembly/plugins/org.eclipse.jpt/about.mappings delete mode 100644 assembly/plugins/org.eclipse.jpt/about.properties delete mode 100644 assembly/plugins/org.eclipse.jpt/build.properties delete mode 100644 assembly/plugins/org.eclipse.jpt/component.xml delete mode 100644 assembly/plugins/org.eclipse.jpt/eclipse32.gif delete mode 100644 assembly/plugins/org.eclipse.jpt/eclipse32.png delete mode 100644 assembly/plugins/org.eclipse.jpt/plugin.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.core/.classpath delete mode 100644 common/plugins/org.eclipse.jpt.common.core/.project delete mode 100644 common/plugins/org.eclipse.jpt.common.core/META-INF/MANIFEST.MF delete mode 100644 common/plugins/org.eclipse.jpt.common.core/about.html delete mode 100644 common/plugins/org.eclipse.jpt.common.core/build.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.core/plugin.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.core/plugin.xml delete mode 100644 common/plugins/org.eclipse.jpt.common.core/property_files/jpt_common_core.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.core/schema/libraryValidators.exsd delete mode 100644 common/plugins/org.eclipse.jpt.common.core/schema/resourceLocators.exsd delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/IResourcePart.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptCommonCorePlugin.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceModelListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceType.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/JptCommonCoreMessages.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/ResourceAdapterFactory.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/gen/AbstractJptGenerator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/JptOsgiBundlesLibraryProviderInstallOperationConfig.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/JptUserLibraryProviderInstallOperationConfig.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/LibraryProviderPropertyTester.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibValUtil.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibraryValidatorConfig.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibraryValidatorManager.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/operations/AbstractJptFileCreationDataModelProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/operations/JptFileCreationDataModelProperties.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ModuleResourceLocator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/PluginResourceLocator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ResourceLocatorConfig.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ResourceLocatorManager.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/SimpleJavaResourceLocator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/WebModuleResourceLocator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/CallbackJobSynchronizer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/ICUStringCollator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JDTTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JobCommand.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JobSynchronizer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/PlatformTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/SimpleSchedulingRule.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/SimpleTextRange.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/XPointTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ASTNodeTextRange.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ASTTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractDeclarationAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractJDTType.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractNestedDeclarationAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotatedElementAnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotationStringArrayExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/BooleanExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/CharacterStringExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ConversionDeclarationAnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/DefaultAnnotationEditFormatter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ElementAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ElementIndexedAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/EnumArrayDeclarationAnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/EnumDeclarationAnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ExpressionDeclarationAnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/GenericVisitor.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTAnnotatedElement.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTEnum.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTEnumConstant.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTFieldAttribute.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTMember.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTMethodAttribute.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTModifiedDeclaration.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTPackage.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTType.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JPTTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NameStringExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NestedDeclarationAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullAnnotationEditFormatter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullDeclarationAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullDeclarationAnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NumberIntegerExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/PrimitiveTypeStringExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ShortCircuitAnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ShortCircuitArrayAnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/SimpleDeclarationAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/SimpleTypeStringExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/StringArrayExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/StringExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/TypeStringExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/BooleanTranslator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/EmptyTagBooleanTranslator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/EnumeratedValueTranslator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/SimpleRootTranslator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/SimpleTranslator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/libprov/JptLibraryProviderInstallOperationConfig.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/libval/LibraryValidator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/resource/ResourceLocator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/AbstractTextRange.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/BodySourceWriter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/TextRange.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AbstractType.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotatedElement.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotatedPackage.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationEditFormatter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Attribute.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/DeclarationAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/DeclarationAnnotationElementAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Enum.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/EnumConstant.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/ExpressionConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/FieldAttribute.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/IndexedAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/IndexedDeclarationAnnotationAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Member.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/MethodAttribute.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/ModifiedDeclaration.java delete mode 100644 common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Type.java delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/.classpath delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/.cvsignore delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/.project delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/META-INF/MANIFEST.MF delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/about.html delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/build.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/plugin.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/plugin.xml delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/property_files/jpt_common_eclipselink_core.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/JptCommonEclipseLinkCorePlugin.java delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/internal/JptCommonEclipseLinkCoreMessages.java delete mode 100644 common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/internal/libval/EclipseLinkLibValUtil.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/.classpath delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/.project delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/about.html delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/build.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/plugin.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/JptCommonUiPlugin.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/WidgetFactory.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/Tracing.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractItemLabelProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractTreeItemContentProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ArchiveFileViewerFilter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/DelegatingTreeContentAndLabelProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ImageImageDescriptor.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullLabelProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullTreeContentProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/StructuredContentProviderAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTTreeChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/properties/JptProjectPropertiesPage.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ColumnAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlAligner.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlSwitcher.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledButton.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControl.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControlUpdater.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledLabel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneEnabler.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneVisibilityEnabler.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/SWTUtil.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/StateController.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/TableLayoutComposite.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/AsynchronousUiCommandExecutor.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/SynchronousUiCommandExecutor.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/AbstractListWidgetAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanButtonModelBinding.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanStateController.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/DropDownListBoxSelectionBinding.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListBoxSelectionBinding.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListWidgetModelBinding.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/MultiControlBooleanStateController.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTComboAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTListAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SimpleBooleanStateController.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/TextFieldModelBinding.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveListPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveTablePane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ChooserPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserComboPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ComboPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DefaultWidgetFactory.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Dialog.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DialogPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumComboViewer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumDialogComboViewer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumFormComboViewer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserComboPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserComboPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FormWidgetFactory.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/IntegerCombo.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialog.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialogBuilder.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameStateObject.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NullPostExecution.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PostExecution.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PropertySheetWidgetFactory.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/TriStateCheckBox.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ValidatingDialog.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/wizards/JavaProjectWizardPage.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/DelegatingContentAndLabelProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProviderFactory.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProviderFactory.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProvider.java delete mode 100644 common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProviderFactory.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/.classpath delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/.cvsignore delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/.project delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/META-INF/MANIFEST.MF delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/about.html delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/build.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/component.xml delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/plugin.properties delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Command.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/CommandExecutor.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Filter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/IndentingPrintWriter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/JavaType.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/MethodSignature.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ObjectReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ReadOnlyObjectReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AbstractAssociation.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ArrayTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Association.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AsynchronousCommandExecutor.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Bag.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiFilter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiStringConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiTransformer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BitTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ClassName.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Classpath.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CollectionTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CommandRunnable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeCommand.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeException.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ConsumerThreadCoordinator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ExceptionHandler.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FileTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FlaggedObjectReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/HashBag.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IdentityHashBag.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IntReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCType.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/KeyedSet.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/LazyReadOnlyObjectReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ListenerList.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NameTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NonNullBooleanTransformer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotBooleanTransformer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotNullFilter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NullList.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Queue.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Range.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyBooleanReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyIntReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReflectionTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReverseComparator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/RunnableCommand.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleAssociation.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleBooleanReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleCommandExecutor.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleFilter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleIntReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleJavaType.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleMethodSignature.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleObjectReference.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleQueue.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStack.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStringMatcher.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleThreadFactory.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Stack.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StatefulCommandExecutor.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringCollator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringConverter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringMatcher.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringTools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBag.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBoolean.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedInt.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedObject.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedQueue.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedStack.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommand.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommandExecutor.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Tools.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Transformer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/XMLStringEncoder.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/EmptyEnumeration.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/IteratorEnumeration.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ChainIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/FilteringIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/GraphIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/PeekableIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/QueueIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyCompositeListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/StackIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubIterableWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubListIterableWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperIterableWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperListIterableWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationListIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TreeIterable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayListIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ChainIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneListIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeListIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyListIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EnumerationIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/FilteringIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/GraphIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/PeekableIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/QueueIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyCompositeListIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyListIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ResultSetIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReverseIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementListIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/StackIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubIteratorWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubListIteratorWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperIteratorWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperListIteratorWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedListIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationListIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TreeIterator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AbstractModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AspectChangeSupport.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/ChangeSupport.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/SingleAspectChangeSupport.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractCollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractListValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractTreeNodeValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectCollectionValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectPropertyValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectTreeValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/BufferedWritablePropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationPropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ChangePropertyValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionAspectAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionPropertyValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionValueModelWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeBooleanPropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeCollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeListValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositePropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ExtendedListValueModelWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringCollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringPropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringWritablePropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemAspectListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemChangeListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemCollectionListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemListListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemPropertyListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemStateListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemTreeListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListAspectAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCollectionValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCurator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListPropertyValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListValueModelWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullCollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullListValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullPropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullTreeValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyAspectAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyCollectionValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyValueModelWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SetCollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleCollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleListValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimplePropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelWrapper.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StatePropertyValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticCollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticListValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticPropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticTreeValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationListValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationPropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationWritablePropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreeAspectAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreePropertyValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueAspectAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueChangeAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueCollectionAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueListAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValuePropertyAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueStateAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueTreeAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyCollectionValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyListValueModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencePropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/AbstractTreeModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/CheckBoxModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ColumnAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ComboBoxModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DateSpinnerModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DocumentAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListSpinnerModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ObjectListSelectionModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/PrimitiveListTreeModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/RadioButtonModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/SpinnerModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TableModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ToggleButtonModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TreeModelAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AbstractNode.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AsynchronousValidator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/DefaultProblem.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Node.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/PluggableValidator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Problem.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/SynchronousValidator.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CachingComboBoxModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CheckBoxTableCellRenderer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ComboBoxTableCellRenderer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/Displayable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/EmptyIcon.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListBrowser.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListPanel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ListChooser.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NodeSelector.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NonCachingComboBoxModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleDisplayable.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListBrowser.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListCellRenderer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SpinnerTableCellRenderer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/TableCellEditorAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/AsynchronousSynchronizer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackAsynchronousSynchronizer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackSynchronousSynchronizer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/SynchronousSynchronizer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/Model.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ChangeEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionAddEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionChangeEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionClearEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionRemoveEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListAddEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListChangeEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListClearEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListMoveEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListRemoveEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListReplaceEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/PropertyChangeEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/StateChangeEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeAddEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeChangeEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeClearEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeRemoveEvent.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CommandChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/MultiMethodReflectiveChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ReflectiveChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SimpleChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SingleMethodReflectiveChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeAdapter.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeListener.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/CollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/ListValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/PropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeNodeValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableCollectionValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableListValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritablePropertyValueModel.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/CallbackSynchronizer.java delete mode 100644 common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/Synchronizer.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/.classpath delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/.project delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/META-INF/MANIFEST.MF delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/about.html delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/build.properties delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/plugin.properties delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/JptCommonCoreTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestFacetedProject.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestJavaProject.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestPlatformProject.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/ASTToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/AnnotationTestCase.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/DefaultAnnotationEditFormatterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/JptCommonCoreUtilityJdtTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MiscTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/NestedDeclarationAnnotationAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/SimpleDeclarationAnnotationAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/TypeTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.core.tests/test.xml delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/.classpath delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/.project delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/build.properties delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/.classpath delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/.cvsignore delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/.project delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/META-INF/MANIFEST.MF delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/about.html delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/build.properties delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/plugin.properties delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/resource/ClassTools.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ArrayToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/AsynchronousCommandExecutorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BagTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiFilterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiStringConverterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiTransformerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BitToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BooleanToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClassNameTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClasspathTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CollectionToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandExecutorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandRunnableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CompositeCommandTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ExceptionHandlerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/FileToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/FilterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/HashBagTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/IdentityHashBagTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/IndentingPrintWriterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JDBCTypeTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JavaTypeTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JptCommonUtilityTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/KeyedSetTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ListenerListTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MethodSignatureTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MultiThreadedTestCase.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/NameToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/NotNullFilterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/RangeTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ReflectionToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ReverseComparatorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleAssociationTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleBooleanReferenceTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleIntReferenceTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleObjectReferenceTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleQueueTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleStackTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedBooleanTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedIntTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedObjectTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedQueueTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedStackTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ToolsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/XMLStringEncoderTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/EmptyEnumerationTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/IteratorEnumerationTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/JptUtilityEnumerationsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ArrayIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ArrayListIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ChainIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CloneIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CompositeIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CompositeListIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/EmptyIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/EmptyListIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/FilteringIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/GraphIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/JptUtilityIterablesTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/LiveCloneIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/LiveCloneListIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/PeekableIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/QueueIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyCompositeListIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyListIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SingleElementIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SingleElementListIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SnapshotCloneIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SnapshotCloneListIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/StackIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SuperIterableWrapperTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TransformationIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TransformationListIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TreeIterableTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ArrayIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ArrayListIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ChainIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CloneIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CloneListIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CompositeIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CompositeListIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EmptyIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EmptyListIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EnumerationIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/FilteringIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/GraphIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/JptUtilityIteratorsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/PeekableIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyCompositeListIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyListIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SingleElementIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SingleElementListIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SuperIteratorWrapperTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SynchronizedIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SynchronizedListIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TransformationIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TransformationListIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TreeIteratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/ChangeSupportTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/JptUtilityModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/NewEventTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/SingleAspectChangeSupportTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/JptUtilityModelListenerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/BufferedWritablePropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CachingTransformationPropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CachingTransformationWritablePropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionAspectAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionListValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionPropertyValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeBooleanPropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeCollectionValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeListValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositePropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CoordinatedBag.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CoordinatedList.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ExtendedListValueModelWrapperTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/FilteringCollectionValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/FilteringPropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/JptUtilityModelValueTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListAspectAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListCollectionValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListCuratorTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullCollectionValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullListValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullPropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyAspectAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyCollectionValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyListValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ReadOnlyWritablePropertyValueModelWrapperTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SetCollectionValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimpleCollectionValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimpleListValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimplePropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SortedListValueModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SortedListValueModelWrapperTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticCollectionValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticListValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TransformationListValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TransformationPropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TreeAspectAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueCollectionAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueListAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValuePropertyAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueStateAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/JptUtilityModelValuePrefsTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencePropertyValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencesCollectionValueModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencesTestCase.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/CheckBoxModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/CheckBoxModelAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest2.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DateSpinnerModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DocumentAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DocumentAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/JptUtilityModelValueSwingTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListSpinnerModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/NumberSpinnerModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ObjectListSelectionModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/PrimitiveListTreeModelTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/RadioButtonModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/RadioButtonModelAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ReadOnlyTableModelAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/SpinnerModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/SpinnerModelAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TableModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TreeModelAdapterUITest.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/node/AbstractNodeTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/node/JptUtilityNodeTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/AsynchronousSynchronizerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/JptUtilitySynchronizersTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/SynchronizerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/SynchronousSynchronizerTests.java delete mode 100644 common/tests/org.eclipse.jpt.common.utility.tests/test.xml delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/.project delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.xml delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.html delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.ini delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.mappings delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.gif delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.png delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/epl-v10.html delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/license.html delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/plugin.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.html delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.ini delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.mappings delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.png delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/epl-v10.html delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/license.html delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/plugin.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.cvsignore delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.project delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.xml delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/.project delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.xml delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.ini delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.mappings delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.gif delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.png delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/epl-v10.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/license.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/plugin.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.ini delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.mappings delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.png delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/epl-v10.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/license.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/plugin.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.cvsignore delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.project delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.xml delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/.project delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/feature.xml delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.ini delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.mappings delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.gif delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.png delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/epl-v10.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/license.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/plugin.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.ini delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.mappings delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.gif delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.png delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/epl-v10.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/license.html delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/plugin.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.cvsignore delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.project delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.tests.feature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.tests.feature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.xml delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.cvsignore delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.project delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/build.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/eclipse_update_120.jpg delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.properties delete mode 100644 jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.cvsignore delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.project delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/META-INF/MANIFEST.MF delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.html delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.ini delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.mappings delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/build.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/component.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/icons/WTP_icon_x32_v2.png delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/plugin.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.classpath delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.cvsignore delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.project delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/META-INF/MANIFEST.MF delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/about.html delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/build.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/plugin.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/Main.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/JptDbwsCoreMessages.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/Tools.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/jpt_dbws_core.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.classpath delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.cvsignore delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.project delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.settings/org.eclipse.jdt.core.prefs delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/META-INF/MANIFEST.MF delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/about.html delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/build.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/component.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/etool16/newclient_webserv_wiz.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/XSDFile.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/dtdfile.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/text.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/ovr16/error_ovr.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/wizban/webservicesclient_wiz.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/plugin.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/plugin.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/property_files/jpt_dbws_ui.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/core/internal/gen/DbwsGenerator.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/JptDbwsUiPlugin.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/DbwsGeneratorUi.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/JptDbwsUiIcons.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/JptDbwsUiMessages.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/actions/GenerateDbwsAction.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/actions/ObjectAction.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/BuilderXmlWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/DbwsGeneratorWizard.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/JdbcDriverWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectFileOrXMLCatalogIdPanel.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectSingleFileViewFacade.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectXMLCatalogIdPanel.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/WebDynamicProjectWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/XMLCatalogTableViewer.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/.cvsignore delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/.project delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/META-INF/MANIFEST.MF delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.html delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.ini delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.mappings delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/build.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/component.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/icons/WTP_icon_x32_v2.png delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.branding/plugin.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.classpath delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.cvsignore delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/META-INF/MANIFEST.MF delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/about.html delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/build.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/plugin.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/Main.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/JptJaxbCoreMessages.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/Tools.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/jpt_jaxb_core.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/.classpath delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/.cvsignore delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/.project delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/META-INF/MANIFEST.MF delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/about.html delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/build.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/component.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/plugin.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/plugin.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/property_files/jaxb_validation.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/property_files/jpt_jaxb_core.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/schema/jaxbPlatforms.exsd delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/AnnotationProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbPlatform.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbProjectManager.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFacet.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFactory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFile.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbProject.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbProjectManager.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbResourceModelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JptJaxbCorePlugin.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/MappingKeys.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/SchemaLibrary.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbAttributeMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbAttributesContainer.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbClass.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContainmentMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextRoot.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbElementFactoryMethod.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbEnumConstant.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackageInfo.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentAttribute.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentClass.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentEnum.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentField.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentProperty.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbRegistry.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbTransientClass.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessOrder.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessOrderHolder.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessTypeHolder.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAdaptable.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAnyAttributeMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAnyElementMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAttachmentRef.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAttributeMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlElementMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlElementWrapper.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlID.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlIDREF.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlJavaTypeAdapter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlList.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlMixed.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlNs.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlNsForm.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlRootElement.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSchema.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSchemaType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSeeAlso.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlValueMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/DefaultJavaAttributeMappingDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/JavaAttributeMappingDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/JavaContextNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbFactory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbPlatformDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericAnnotationProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericJaxbFile.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericJaxbProject.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JavaPackageInfoResourceModelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JavaResourceModelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JaxbPlatformTester.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JptJaxbCoreMessages.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SchemaLibraryImpl.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SimpleJaxbProjectConfig.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/AbstractJaxbContextNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericContextRoot.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericPackage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaAttributeMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaAttributeMappingDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaContextNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaPersistentType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaXmlJavaTypeAdapter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaAttributeXmlJavaTypeAdapter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaAttributesContainer.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaContainmentMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaContainmentMappingXmlSchemaType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaElementFactoryMethod.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaEnumConstant.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaNullAttributeMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageInfo.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageXmlJavaTypeAdapter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageXmlSchemaType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentAttribute.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentClass.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentEnum.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentField.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentProperty.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaRegistry.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaTransientClass.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaTypeXmlJavaTypeAdapter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAdaptable.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAnyAttributeMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAnyElementMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttachmentRef.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttributeMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementWrapper.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlID.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlIDREF.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlList.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlMixed.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlNs.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlRootElement.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchema.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchemaType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSeeAlso.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlTransientMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlValueMapping.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAnyAttributeMappingDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAnyElementMappingDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAttributeMappingDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlElementMappingDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlTransientMappingDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlValueMappingDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetDataModelProperties.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetDataModelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetDelegate.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetInstallDataModelProperties.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetInstallDataModelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetInstallDelegate.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetUninstallDelegate.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetVersionChangeDataModelProperties.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetVersionChangeDataModelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/facet/JaxbFacetVersionChangeDelegate.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/gen/ClassesGenerator.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/gen/ClassesGeneratorExtensionOptions.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/gen/ClassesGeneratorOptions.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/gen/GenerateJaxbClassesJob.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/gen/SchemaGenerator.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/jaxb21/AbstractJaxb_2_1_PlatformDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/jaxb21/GenericJaxb_2_1_Factory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/jaxb21/GenericJaxb_2_1_PlatformDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/jaxb21/GenericJaxb_2_1_PlatformDefinitionFactory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/jaxb22/AbstractJaxb_2_2_PlatformDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/jaxb22/GenericJaxb_2_2_PlatformDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/jaxb22/GenericJaxb_2_2_PlatformDefinitionFactory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/libprov/JaxbJreLibraryProviderInstallOperationConfig.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/libprov/JaxbOsgiBundlesLibraryProviderInstallOperationConfig.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/libprov/JaxbUserLibraryProviderInstallOperationConfig.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/libval/GenericEclipseLinkBundlesLibraryValidator.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/libval/GenericJaxbUserLibraryValidator.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/libval/JaxbJreLibraryValidator.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/libval/JaxbLibValUtil.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/operations/SchemaFileCreationDataModelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/platform/JaxbPlatformDescriptionImpl.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/platform/JaxbPlatformGroupDescriptionImpl.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/platform/JaxbPlatformImpl.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/platform/JaxbPlatformManagerImpl.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/NullAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/NullXmlAccessorOrderAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/NullXmlAccessorTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/NullXmlElementDeclAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/NullXmlEnumAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/NullXmlEnumValueAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/NullXmlSchemaAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/NullXmlTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlAccessorOrderAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlAccessorTypeAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlAnyAttributeAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlAnyElementAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlAttachmentRefAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlAttributeAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlElementAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlElementDeclAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlElementRefAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlElementWrapperAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlElementsAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlEnumAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlEnumValueAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlIDAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlIDREFAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlInlineBinaryDataAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlJavaTypeAdapterAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlListAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlMimeTypeAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlMixedAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlRegistryAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlRootElementAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlSchemaAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlSchemaTypeAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlSeeAlsoAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlTransientAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlTypeAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/XmlValueAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlAccessorOrderAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlAccessorTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlAnyAttributeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlAnyElementAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlAttachmentRefAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlAttributeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlElementAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlElementDeclAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlElementRefAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlElementWrapperAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlElementsAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlEnumAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlEnumValueAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlIDAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlIDREFAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlInlineBinaryDataAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlJavaTypeAdapterAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlListAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlMimeTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlMixedAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlRegistryAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlRootElementAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlSeeAlsoAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlTransientAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/binary/BinaryXmlValueAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/AbstractJavaResourceNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceAbstractType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceAnnotatedElement.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceAttribute.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceCompilationUnit.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceEnum.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceEnumConstant.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceField.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceMember.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceMethod.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourcePackage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourcePackageInfoCompilationUnit.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceTypeCompilationUnit.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlAccessorOrderAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlAccessorTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlAnyAttributeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlAnyElementAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlAttachmentRefAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlAttributeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlElementAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlElementDeclAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlElementRefAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlElementWrapperAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlElementsAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlEnumAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlEnumValueAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlIDAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlIDREFAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlInlineBinaryDataAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlJavaTypeAdapterAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlListAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlMimeTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlMixedAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlNsAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlRegistryAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlRootElementAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlSchemaAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlSchemaTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlSeeAlsoAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlTransientAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/resource/java/source/SourceXmlValueAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/DefaultValidationMessages.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/JaxbValidationMessages.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/JaxbValidator.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/libprov/JaxbLibraryProviderInstallOperationConfig.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/platform/JaxbPlatform.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/platform/JaxbPlatformDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/platform/JaxbPlatformDefinitionFactory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/platform/JaxbPlatformDescription.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/platform/JaxbPlatformGroupDescription.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/platform/JaxbPlatformManager.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/Annotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/AnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JAXB.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceAbstractType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceAnnotatedElement.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceAttribute.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceClassFile.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceCompilationUnit.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceEnum.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceEnumConstant.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceField.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceMember.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceMethod.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceNode.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourcePackage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourcePackageFragment.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourcePackageFragmentRoot.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourcePackageInfoCompilationUnit.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JavaResourceType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/JaxbContainmentAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/NestableAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/NestableAnnotationDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlAccessOrder.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlAccessType.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlAccessorOrderAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlAccessorTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlAnyAttributeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlAnyElementAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlAttachmentRefAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlAttributeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlElementAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlElementDeclAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlElementRefAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlElementWrapperAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlElementsAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlEnumAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlEnumValueAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlIDAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlIDREFAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlInlineBinaryDataAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlJavaTypeAdapterAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlListAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlMimeTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlMixedAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlNsAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlNsForm.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlRegistryAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlRootElementAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlSchemaAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlSchemaTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlSeeAlsoAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlTransientAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlTypeAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/resource/java/XmlValueAnnotation.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdAdapter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdComplexTypeDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdElementDeclaration.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdSchema.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdSimpleTypeDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdTypeDefinition.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdUtil.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/.cvsignore delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/.project delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/META-INF/MANIFEST.MF delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.html delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.ini delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.mappings delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/about.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/build.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/component.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/icons/WTP_icon_x32_v2.png delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.branding/plugin.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.classpath delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.cvsignore delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/.project delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/META-INF/MANIFEST.MF delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/about.html delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/build.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/lib/eclipselink-src.zip delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/lib/eclipselink.jar delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/plugin.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/Main.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/JptEclipseLinkJaxbCoreMessages.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/Tools.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core.schemagen/src/org/eclipse/jpt/jaxb/eclipselink/core/schemagen/internal/jpt_eclipselink_jaxb_core.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/.classpath delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/.cvsignore delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/.project delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/META-INF/MANIFEST.MF delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/about.html delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/build.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/component.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/etool16/NewXSD.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/etool16/jaxb_facet.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/etool16/new_jaxb_project_wiz.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/etool16/newclass_wiz.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/XSDFile.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/dtdfile.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/enum_constant.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/jaxb_content.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/null-attribute-mapping.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/package.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/persistent_class.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/persistent_enum.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/persistent_field.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/persistent_property.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/registry.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/text.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/transient_class.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/xml-any-attribute.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/xml-any-element.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/xml-attribute.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/xml-element.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/xml-transient.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/obj16/xml-value.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/ovr16/error_ovr.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/wizban/NewXSD.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/wizban/new_jaxb_prj_wiz.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/icons/full/wizban/newclass_wiz.gif delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/plugin.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/plugin.xml delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/property_files/jpt_jaxb_ui.properties delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/schema/jaxbPlatformUis.exsd delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/JptJaxbUiPlugin.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/ClassesGeneratorUi.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/JaxbJavaCompletionProposalComputer.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/JaxbMappingImageHelper.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/JptJaxbUiIcons.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/JptJaxbUiMessages.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/actions/GenerateClassesAction.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/actions/ObjectAction.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/filters/ContainerFilter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/filters/EmptyInnerPackageFilter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/filters/NonArchiveOrExternalElementFilter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/filters/NonContainerFilter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/filters/NonJavaElementFilter.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/GenericJaxb_2_1_NavigatorItemLabelProviderFactory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/GenericJaxb_2_1_NavigatorTreeItemContentProviderFactory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/GenericJaxb_2_1_NavigatorUi.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/GenericJaxb_2_1_PlatformUi.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbContextRootItemContentProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbContextRootItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbEnumConstantItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbPackageItemContentProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbPackageItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbPersistentAttributeItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbPersistentClassItemContentProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbPersistentClassItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbPersistentEnumItemContentProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbPersistentEnumItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbPersistentFieldItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbPersistentPropertyItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbRegistryItemContentProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbRegistryItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbTransientClassItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb21/JaxbTypeItemLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/jaxb22/GenericJaxb_2_2_PlatformUi.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/navigator/JaxbNavigatorContentAndLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/navigator/JaxbNavigatorContentProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/navigator/JaxbNavigatorItemLabelProviderFactory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/navigator/JaxbNavigatorLabelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/navigator/JaxbNavigatorTreeItemContentProviderFactory.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/platform/JaxbPlatformUiConfig.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/platform/JaxbPlatformUiManagerImpl.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/properties/JaxbProjectModel.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/properties/JaxbProjectPropertiesPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/properties/JaxbSchemasPropertiesPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/ProjectWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/ClassesGeneratorExtensionOptionsWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/ClassesGeneratorOptionsWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/ClassesGeneratorWizard.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/ClassesGeneratorWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/SchemaWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/SelectFileOrXMLCatalogIdPanel.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/SelectSingleFileViewFacade.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/SelectXMLCatalogIdPanel.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/XMLCatalogTableViewer.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/facet/JaxbFacetInstallPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/facet/JaxbFacetPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/facet/JaxbFacetVersionChangePage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/proj/JaxbProjectWizard.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/proj/JaxbProjectWizardFirstPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/proj/model/JaxbProjectCreationDataModelProvider.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/schemagen/AbstractJarDestinationWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/schemagen/CheckboxTreeAndListGroup.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/schemagen/NewSchemaFileWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/schemagen/SchemaGeneratorWizard.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/schemagen/SchemaGeneratorWizardPage.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/navigator/JaxbNavigatorUi.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/platform/JaxbPlatformUi.java delete mode 100644 jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/platform/JaxbPlatformUiManager.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/.classpath delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/.project delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/META-INF/MANIFEST.MF delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/about.html delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/build.properties delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/plugin.properties delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/JptJaxbCoreTestsPlugin.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/JaxbCoreTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/JaxbTestCase.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/SchemaLibraryTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/GenericContextRootTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/JaxbContextModelTestCase.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/JaxbCoreContextModelTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaAttributeXmlJavaTypeAdapterTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaElementFactoryMethodTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaEnumConstantTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaPackageInfoTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaPackageXmlJavaTypeAdapterTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaPersistentClassTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaPersistentEnumTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaRegistryTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaTypeXmlJavaTypeAdapterTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaXmlAnyAttributeMappingTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaXmlAnyElementMappingTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaXmlAttributeMappingTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaXmlElementMappingTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaXmlRootElementTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaXmlSchemaTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaXmlSchemaTypeTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaXmlSeeAlsoTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/GenericJavaXmlValueMappingTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/context/java/JaxbCoreJavaContextModelTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/projects/TestJaxbProject.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/JaxbCoreResourceModelTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/JavaResourceModelTestCase.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/JaxbJavaResourceModelTestCase.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/JaxbJavaResourceModelTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlAccessorOrderPackageAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlAccessorOrderTypeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlAccessorTypePackageAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlAccessorTypeTypeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlAnyAttributeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlAnyElementAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlAttachmentRefAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlAttributeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlElementAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlElementDeclAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlElementRefAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlElementWrapperAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlEnumAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlEnumValueAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlIDAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlIDREFAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlInlineBinaryDataAttributeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlInlineBinaryDataTypeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlJavaTypeAdapterPackageAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlJavaTypeAdapterTypeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlListAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlMimeTypeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlMixedAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlRegistryAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlRootElementAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlSchemaAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlSchemaTypeAttributeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlSchemaTypePackageAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlSeeAlsoAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlTransientAttributeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlTransientTypeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlTypeAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/src/org/eclipse/jpt/jaxb/core/tests/internal/resource/java/XmlValueAnnotationTests.java delete mode 100644 jaxb/tests/org.eclipse.jpt.jaxb.core.tests/test.xml delete mode 100644 jpa/features/org.eclipse.jpt.eclipselink.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt.eclipselink_sdk.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.cvsignore delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/feature.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/feature.xml delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.ini delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.mappings delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/about.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse32.gif delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse32.png delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/epl-v10.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/license.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateBundle/plugin.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplateFeature/feature.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.ini delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.mappings delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/about.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse32.png delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/epl-v10.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/license.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.feature/sourceTemplatePlugin/plugin.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.tests.feature/.cvsignore delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.tests.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.tests.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.tests.feature/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.tests.feature/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.tests.feature/feature.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink.tests.feature/feature.xml delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.cvsignore delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/feature.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.eclipselink_sdk.feature/feature.xml delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/.cvsignore delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/feature.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/feature.xml delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.ini delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.mappings delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/about.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse32.gif delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse32.png delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/epl-v10.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/license.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateBundle/plugin.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplateFeature/feature.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.ini delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.mappings delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/about.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse32.gif delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse32.png delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/epl-v10.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/license.html delete mode 100644 jpa/features/org.eclipse.jpt.jpa.feature/sourceTemplatePlugin/plugin.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.tests.feature/.cvsignore delete mode 100644 jpa/features/org.eclipse.jpt.jpa.tests.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt.jpa.tests.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 jpa/features/org.eclipse.jpt.jpa.tests.feature/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.tests.feature/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa.tests.feature/feature.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa.tests.feature/feature.xml delete mode 100644 jpa/features/org.eclipse.jpt.jpa_sdk.feature/.cvsignore delete mode 100644 jpa/features/org.eclipse.jpt.jpa_sdk.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt.jpa_sdk.feature/.settings/org.eclipse.core.resources.prefs delete mode 100644 jpa/features/org.eclipse.jpt.jpa_sdk.feature/build.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa_sdk.feature/eclipse_update_120.jpg delete mode 100644 jpa/features/org.eclipse.jpt.jpa_sdk.feature/feature.properties delete mode 100644 jpa/features/org.eclipse.jpt.jpa_sdk.feature/feature.xml delete mode 100644 jpa/features/org.eclipse.jpt.tests.feature/.project delete mode 100644 jpa/features/org.eclipse.jpt_sdk.feature/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.branding/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.core/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.db.ui/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.db/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/about.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/add_persistence.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/create_entity.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/cheatsheets/map_entity.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/concept_mapping.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/concept_persistence.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/concepts.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/concepts001.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/concepts002.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/concepts003.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/contexts.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/dcommon/css/blafdoc.css delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/dcommon/html/cpyr.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/getting_started.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/getting_started001.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/getting_started002.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/getting_started003.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/getting_started004.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/address.java_jpa_details.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/address_id_details_quickstart.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/address_java_JPA_structure_quickstart.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/create_jpa_entity_wizard.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/create_jpa_fields.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/customize_default_entity_generation.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/customize_individual_entities.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/details_entitymappings.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/error_sample.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/generate_classes_from_schema.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/generate_entities.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/icon_basicmapmappings.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/icon_basicmapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_join.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_single.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/inheritance_tab.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/java_editor_address.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/jaxb_schmea_generation_dialog.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/jpa_wizard_create_fields.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/mapped_entity_type_link.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_file_new.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_embed.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_entity.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/mapping_type_selection_superclass.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/modify_faceted_project.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_basicmappings.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddableentitymapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddedidmapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_embeddedmapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_idmapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_manytomanymapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_manytoonemapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_mappedentity.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_mappedsuperclass.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_onetomanymapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_onetoonemapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_transientmapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_icon_versionmapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_facet_task.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_perspective_button.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/new_jpa_project_task.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelc.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelr.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/ngrelt.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/persistence_outline_view.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/project_properties_tasks.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/quickstart_project.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/secondary_tables.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_entity.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_jpa_project.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/select_a_wizard_mapping.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/select_jaxb_schema_wizard.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/select_tables.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/synchornize_classes.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/table_associations.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/table_entity.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/task_entering_query.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/img/upgrade_persistence_jpa_version.png delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/index.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/legal.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/plugin.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_EntityClassPage.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_EntityPropertiesPage.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_add_converter.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_association_cardinality.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_association_table.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_configure_jaxb_class_generation_dialog.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_create_custom_entities_wizard.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_create_jpa_entity_wizard.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_create_new_association_wizard.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_customizIndividualEntities.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_customizeDefaultEntityGeneration.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_details_orm.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_eclipselink_mapping_file.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_java_page.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_jaxb_schema_wizard.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_join_columns.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_jpa_facet.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_mapping_general.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_new_jpa_project.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_new_jpa_project_wizard.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_general.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_map_view.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_outline.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_perspective.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_prop_view.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_persistence_xmll_editor.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_primary_key.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_project_properties.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_schema_from_classes_page.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_selectTables.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_select_cascade_dialog.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/ref_tableAssociations.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference001.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference002.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference003.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference004.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference005.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference006.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference007.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference008.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference009.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference010.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference011.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference012.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference013.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference014.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference015.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference016.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference017.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference018.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference019.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference020.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference021.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference022.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference023.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference024.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference025.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference026.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference027.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference028.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference029.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference030.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference031.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference032.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/reference033.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_add_persistence.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_additonal_tables.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_create_jpa_entity.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_create_new_project.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_generate_classes_from_schema.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_generating_schema_from_classes.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_inheritance.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_manage_orm.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_manage_persistence.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/task_mapping.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks001.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks002.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks003.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks004.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks005.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks006.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks007.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks008.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks009.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks010.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks011.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks012.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks013.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks014.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks015.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks016.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks017.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks018.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks019.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks020.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks021.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks022.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks023.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks024.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks025.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tasks026.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/tips_and_tricks.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/toc.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/whats_new.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/whats_new001.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/whats_new002.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/whats_new003.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/whats_new004.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/whats_new005.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.doc.user/whats_new006.htm delete mode 100644 jpa/plugins/org.eclipse.jpt.eclipselink.branding/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.eclipselink.core/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.eclipselink.jaxb.core.schemagen/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.gen/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jaxb.ui/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/.settings/org.eclipse.core.resources.prefs delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/about.ini delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/about.mappings delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/about.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/component.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/icons/WTP_icon_x32_v2.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.branding/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/.classpath delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/component.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/model/DaliEmfFormatter.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/model/common.ecore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/model/jpaResourceModels.genmodel delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/model/orm.ecore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/model/persistence.ecore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/plugin.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/property_files/jpa_core.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/property_files/jpa_core_refactoring.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/property_files/jpa_validation.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/property_files/jpa_validation_description.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/schema/jpaPlatforms.exsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/EntityGeneratorDatabaseAnnotationNameBuilder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/GenericJpaProjectManager.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaAnnotationDefinitionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaAnnotationProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaDataSource.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaFacet.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaFile.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaPlatform.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaPlatformFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaPlatformVariation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaProject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaProjectManager.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaResourceModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JpaStructureNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/JptJpaCorePlugin.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/MappingKeys.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/ResourceDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/AccessHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/AccessType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/AssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/AssociationOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/AttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/AttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/AttributeOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/BaseColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/BaseEmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/BaseJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/BasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Cascade.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/CollectionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Column.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ColumnMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Converter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ConvertibleMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/DiscriminatorColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/DiscriminatorType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Embeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/EmbeddedIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/EmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Entity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/EnumType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/EnumeratedConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/FetchType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/FetchableMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/GeneratedValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/GenerationType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Generator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/GeneratorContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/IdClassReference.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/IdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/InheritanceType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/JoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/JoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/JoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/JoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/JoinTableRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/JoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/JpaContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/JpaNamedContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/JpaRootContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/LobConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ManyToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ManyToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ManyToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ManyToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/MappedByRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/MappedByRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/MappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/MappingFile.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/MappingFilePersistenceUnitDefaults.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/MappingFilePersistenceUnitMetadata.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/MappingFileRoot.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/MappingRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/MultiRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/NamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/NamedNativeQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/NamedQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/OneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/OneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/OneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/OneToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/OptionalMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Orderable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/OverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/OverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Override_.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/PersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/PersistentType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/PrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/PrimaryKeyJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/PrimaryKeyJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Query.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/QueryContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/QueryHint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyAccessHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyBaseColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyBaseJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyJoinTableRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyNamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyPrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlySecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReadOnlyUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/ReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Relationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/RelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/RelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/SecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/SequenceGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/SingleRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/Table.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/TableGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/TemporalConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/TemporalType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/TransientMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/TypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/UniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualBaseColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualBaseJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualJoinTableRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualNamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualPrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualSecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/VirtualUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/XmlContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/XmlFile.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/DefaultJavaAttributeMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JarFile.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaAssociationOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaAttributeMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaAttributeOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaBaseColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaBaseEmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaBaseJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaBasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaCascade.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaCollectionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaColumnMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaConvertibleMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaDiscriminatorColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaEmbeddedIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaEmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaEnumeratedConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaGeneratedValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaGeneratorContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaIdClassReference.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaJoinTableRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaJpaContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaLobConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaManyToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaManyToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaManyToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaManyToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaMappedByRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaMappedByRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaMappingJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaMappingJoinTableRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaMappingRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaMultiRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaNamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaNamedNativeQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaNamedQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaOneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaOneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaOneToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaOrderable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaPersistentType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaPrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaPrimaryKeyJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaPrimaryKeyJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaQueryContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaQueryHint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaReadOnlyAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaReadOnlyAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaReadOnlyOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaReadOnlyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaReadOnlyRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaReadOnlyUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaSecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaSequenceGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaSingleRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaStructureNodes.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaTableGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaTemporalConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaTransientMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaTypeMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualJoinTableRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaVirtualUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/EntityMappings.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/MappingFileDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/NullOrmAttributeMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmAssociationOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmAttributeMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmAttributeOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmBaseColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmBaseEmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmBaseJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmBasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmCascade.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmCollectionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmColumnMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmConvertibleMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmDiscriminatorColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmEmbeddedIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmEmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmEnumeratedConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmGeneratedValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmGeneratorContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmIdClassReference.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmJoinTableRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmLobConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmManyToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmManyToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmManyToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmManyToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmMappedByRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmMappedByRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmMappingJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmMappingJoinTableRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmMappingRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmMultiRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmNamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmNamedNativeQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmNamedQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmOneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmOneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmOneToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmOrderable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmPersistenceUnitDefaults.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmPersistenceUnitMetadata.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmPersistentType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmPrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmPrimaryKeyJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmPrimaryKeyJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmQueryContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmQueryHint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmReadOnlyAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmReadOnlyAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmReadOnlyOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmReadOnlyPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmReadOnlyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmReadOnlyRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmReadOnlyUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmSecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmSequenceGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmSingleRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmStructureNodes.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTableGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTemporalConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTransientMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTypeMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualJoinColumnRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualJoinTableRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualPrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualSecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmVirtualUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmXml.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/UnsupportedOrmAttributeMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/ClassRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/JarFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/MappingFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/Persistence.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceStructureNodes.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceUnitProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceUnitTransactionType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceXml.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistentTypeContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaAnnotationDefinitionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaProject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/GenericEntityGeneratorDatabaseAnnotationNameBuilder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/GenericJpaAnnotationDefinitionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/GenericJpaAnnotationProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/GenericJpaPlatform.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/GenericJpaPlatformFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/GenericJpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JarResourceModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JavaPackageInfoResourceModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JavaResourceModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JpaPlatformTester.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JpaTester.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JptCoreMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/OrmResourceModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/PersistenceResourceModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/ProjectAdapterFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/SimpleJpaProjectConfig.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/AbstractJpaContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/AbstractXmlContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/AttributeMappingTools.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/BaseColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/BaseJoinColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/ContextContainerTools.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/EntityTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/JoinColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/JptValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/MappingTools.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/NamedColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/OverrideTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/PersistentAttributePropertyTester.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/PersistentAttributeTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/PrimaryKeyTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/TableTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/TypeMappingTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/TypeMappingTools.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaBaseColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaBasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaBasicMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaEmbeddedMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaIdMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaJpaContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaManyToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaManyToManyMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaManyToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaManyToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaMappingRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaNamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaOneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaOneToManyMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaOneToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaPersistentType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaReadOnlyUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaSequenceGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVersionMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVirtualBaseColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVirtualNamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVirtualOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVirtualReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaVirtualTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaIdClassReference.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaManyToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaManyToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaMappedByRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaMappingJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaOneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaOneToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaOverrideJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaPrimaryKeyJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaVirtualJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaBaseColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaBasicMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaEmbeddableDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaEmbeddedIdMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaEmbeddedMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaEntityDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaEntityTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaIdMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaJoinColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaManyToManyMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaManyToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaMappedSuperclassDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaMappedSuperclassTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaNamedColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaNullTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaOneToManyMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaOneToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaOverrideTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaPersistentAttributeTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaPrimaryKeyJoinColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaTableTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaTransientMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaTypeMappingTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/JavaVersionMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractEntityMappings.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmBaseColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmBaseEmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmBasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmManyToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmManyToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmMappingRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmNamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmOneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmReadOnlyUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmSequenceGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmVersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmVirtualBaseColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmVirtualNamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmVirtualReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmVirtualTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmXmlContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmIdClassReference.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmManyToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmManyToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmMappedByRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmMappingJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmMappingJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmOneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmOneToOneRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmOverrideJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmPrimaryKeyJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmVirtualJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmVirtualOverrideJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmVirtualSecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/NullOrmJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmBaseColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmBasicMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmEmbeddableDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmEmbeddedIdMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmEmbeddedMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmEntityDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmEntityTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmIdMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmJoinColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmManyToManyMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmManyToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmMappedSuperclassDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmMappedSuperclassTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmNamedColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmOneToManyMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmOneToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmOverrideTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmPersistentAttributeTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmPrimaryKeyJoinColumnTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmTableTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmTransientMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmTypeMappingTextRangeResolver.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/OrmVersionMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/VirtualOrmPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractJarFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractMappingFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceUnitProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceXmlContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/GenericPersistenceXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/FacetTools.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/JpaFacetActionDelegate.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/JpaFacetDataModelProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/JpaFacetDataModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/JpaFacetInstallDataModelProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/JpaFacetInstallDataModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/JpaFacetInstallDelegate.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/JpaFacetUninstallDelegate.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/JpaFacetVersionChangeDataModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/JpaFacetVersionChangeDelegate.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/facet/RuntimeChangedListener.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/GenericJpaDataSource.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/GenericJpaFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/GenericJpaFile.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/GenericJpaProject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AbstractEntityPrimaryKeyValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AbstractJoinTableValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AbstractMappedSuperclassPrimaryKeyValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AbstractNamedColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AbstractPersistentAttributeValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AbstractPrimaryKeyValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AbstractTableValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AbstractTypeMappingValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AssociationOverrideInverseJoinColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AssociationOverrideJoinColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AssociationOverrideJoinTableValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AssociationOverrideValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AttributeOverrideColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/AttributeOverrideValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/BaseColumnTableValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/BaseJoinColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/CollectionTableTableDescriptionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/DiscriminatorColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/EmbeddableOverrideDescriptionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/EntityPrimaryKeyJoinColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/EntityTableDescriptionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/GenericEntityPrimaryKeyValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/GenericMappedSuperclassPrimaryKeyValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/GenericPersistentAttributeValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/GenericRootContextNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/GenericTypeMappingValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/InverseJoinColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/JoinColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/JoinTableTableDescriptionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/JoinTableValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/MapKeyAttributeOverrideColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/MapKeyAttributeOverrideValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/MapKeyColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/MappedSuperclassOverrideDescriptionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/NamedColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/OneToOnePrimaryKeyJoinColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/OverrideValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/PrimaryKeyJoinColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/RelationshipStrategyTableDescriptionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/SecondaryTablePrimaryKeyJoinColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/SecondaryTableValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/TableValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/AbstractJavaConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/AbstractJavaOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJarFile.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaAssociationOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaAttributeOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaBasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaCascade.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaDiscriminatorColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaEmbeddedIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaEmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaEnumeratedConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaGeneratedValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaGeneratorContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaLobConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaManyToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaManyToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaMappingJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedNativeQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNullAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaOneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaOrderable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaPersistentType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaPrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaQueryContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaQueryHint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaSecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaSequenceGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaTableGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaTemporalConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaTransientMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaVersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaVirtualAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaVirtualAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaVirtualColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaVirtualJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaVirtualOverrideJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaVirtualOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaVirtualUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/NullJavaConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/NullJavaJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/NullJavaJoinTableRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/AbstractOrmConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/AbstractOrmOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/AbstractOrmOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/AbstractOrmVirtualOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericEntityMappings.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmAttributeOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmBasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmCascade.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmDiscriminatorColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmEmbeddedIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmEmbeddedMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmEnumeratedConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmGeneratedValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmGeneratorContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmLobConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmManyToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmManyToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedNativeQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNullAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmOneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmOrderable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmPersistenceUnitDefaults.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmPersistenceUnitMetadata.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmPersistentType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmPrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmQueryContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmQueryHint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmSecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmSequenceGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmTableGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmTemporalConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmTransientMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmVersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmVirtualAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmVirtualAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmVirtualColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmVirtualJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmVirtualOverrideRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmVirtualPrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmVirtualUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmXml.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/NullOrmConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/NullOrmJoinColumnRelationshipStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/UnsupportedOrmAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/persistence/GenericClassRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/persistence/GenericJarFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/persistence/GenericMappingFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/persistence/GenericPersistence.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/persistence/GenericPersistenceUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/persistence/GenericPersistenceUnitProperty.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/persistence/GenericPersistenceXml.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/persistence/GenericPersistenceXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/persistence/ImpliedMappingFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/resource/java/binary/BinaryAssociationOverride1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/resource/java/binary/BinaryAssociationOverrides1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/resource/java/binary/BinaryNamedQueries1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/resource/java/binary/BinaryNamedQuery1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/resource/java/binary/BinarySequenceGenerator1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/resource/java/source/SourceAssociationOverride1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/resource/java/source/SourceAssociationOverrides1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/resource/java/source/SourceNamedQuery1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/resource/java/source/SourceSequenceGenerator1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/Generic2_0JpaAnnotationDefinitionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/Generic2_0JpaPlatformFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/Generic2_0JpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/GenericJpaDatabaseIdentifierAdapter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/GenericJpaFactory2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/GenericMetamodelSynchronizer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/CollectionTableValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/OrderColumnValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/SimpleMetamodelField.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/AbstractJavaElementCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/AbstractJavaElementCollectionMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/AbstractJavaIdMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaCacheable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaCollectionTable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaDerivedIdentity2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaElementCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaEmbeddable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaIdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaMapsIdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaNamedQuery2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaOrderColumn2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaOrphanRemoval2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaOverrideJoinTableRelationshipStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaPersistentAttribute2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaPersistentType2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaSequenceGenerator2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaVirtualOverrideJoinTableRelationshipStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/JavaElementCollectionMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/JavaEmbeddedMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/JavaIdMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/JavaManyToManyMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/JavaManyToOneMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/JavaOneToManyMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/JavaOneToOneMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/NullJavaCacheable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/NullJavaDerivedIdentity2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/NullJavaMapKeyColumn2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/NullJavaOrphanRemoval2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/AbstractOrmElementCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmCacheable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmCollectionTable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmDerivedIdentity2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmElementCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmEmbeddable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmIdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmMapsIdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmNamedQuery2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmOrderColumn2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmOrphanRemoval2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmOverrideJoinTableRelationshipStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmPersistentAttribute2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmSequenceGenerator2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmVirtualOverrideJoinTableRelationshipStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmXml2_0Definition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/NullOrmCacheable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/NullOrmDerivedIdentity2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/NullOrmOrphanRemoval2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/OrmElementCollectionMapping2_0Definition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/persistence/Generic2_0PersistenceXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/persistence/Generic2_0PersistenceXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/persistence/connection/GenericConnection2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/persistence/connection/NullConnection2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/persistence/options/GenericOptions2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/persistence/options/NullOptions2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/Access2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/AssociationOverride2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/AssociationOverrides2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/Cacheable2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/CollectionTable2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/ElementCollection2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/GeneratedAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/MapKeyClass2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/MapKeyColumn2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/MapKeyEnumerated2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/MapKeyJoinColumn2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/MapKeyJoinColumns2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/MapKeyTemporal2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/MapsId2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NamedQueries2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NamedQuery2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NullAccess2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NullAssociationOverrideJoinTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NullCollectionTable2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NullMapKeyColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NullMapKeyEnumerated2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NullMapKeyTemporal2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NullMapsId2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/NullOrderColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/OrderColumn2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/SequenceGenerator2_0AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/SourceMapKeyJoinColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/SourceMapKeyJoinColumns2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/StaticMetamodelAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryAccess2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryAssociationOverride2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryAssociationOverrides2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryCacheable2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryCollectionTable2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryElementCollection2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryGeneratedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryMapKeyClass2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryMapKeyColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryMapKeyEnumerated2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryMapKeyJoinColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryMapKeyJoinColumns2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryMapKeyTemporal2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryMapsId2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryNamedQueries2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryNamedQuery2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryOrderColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinarySequenceGenerator2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/binary/BinaryStaticMetamodelAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceAccess2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceAssociationOverride2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceAssociationOverrides2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceCacheable2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceCollectionTable2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceElementCollection2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceGeneratedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceMapKeyClass2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceMapKeyColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceMapKeyEnumerated2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceMapKeyTemporal2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceMapsId2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceNamedQueries2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceNamedQuery2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceOrderColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceSequenceGenerator2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/resource/java/source/SourceStaticMetamodelAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/libprov/JpaOsgiBundlesLibraryProviderInstallOperationConfig.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/libprov/JpaUserLibraryProviderInstallOperationConfig.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/libprov/LegacyJpaLibraryProviderDetector.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/libprov/LegacyJpaLibraryProviderUninstallOperation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/libval/AbstractOsgiBundlesLibraryValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/libval/GenericEclipseLinkBundlesLibraryValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/libval/GenericJpaUserLibraryValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/operations/AbstractJpaFileCreationDataModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/operations/AbstractJpaFileCreationOperation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/operations/JpaFileCreationDataModelProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/operations/OrmFileCreationDataModelProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/operations/OrmFileCreationDataModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/operations/OrmFileCreationOperation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/operations/PersistenceFileCreationDataModelProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/operations/PersistenceFileCreationDataModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/operations/PersistenceFileCreationOperation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/platform/JpaPlatformDescriptionImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/platform/JpaPlatformGroupDescriptionImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/platform/JpaPlatformManagerImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/prefs/JpaPreferenceInitializer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/AbstractJpaDeleteTypeParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/AbstractJpaMoveJavaElementParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/AbstractJpaRenameJavaElementParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaCoreRefactoringMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaDeleteMappingFileParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaDeletePackageOrFolderParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaDeleteTypeParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaMoveFolderParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaMoveMappingFileParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaMoveTypeParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaRenameFolderParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaRenameMappingFileParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaRenamePackageParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/refactoring/JpaRenameTypeParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/contenttypes/IndeterminateContentDescriber.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/AbstractJavaResourceNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/AssociationOverrideAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/AssociationOverridesAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/AttributeOverrideAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/AttributeOverridesAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/BasicAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/ColumnAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/DiscriminatorColumnAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/DiscriminatorValueAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/EmbeddableAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/EmbeddedAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/EmbeddedIdAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/EntityAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/EnumeratedAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/GeneratedValueAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/IdAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/IdClassAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/InheritanceAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/JoinColumnAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/JoinColumnsAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/JoinTableAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/LobAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/ManyToManyAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/ManyToOneAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/MapKeyAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/MappedSuperclassAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NamedNativeQueriesAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NamedNativeQueryAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NamedQueriesAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NamedQueryAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullAttributeOverrideColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullBaseColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullBaseTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullDiscriminatorColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullDiscriminatorValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullEnumeratedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullInheritanceAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullJoinTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullNamedColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullPrimaryKeyJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/NullTemporalAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/OneToManyAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/OneToOneAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/OrderByAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/PrimaryKeyJoinColumnAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/PrimaryKeyJoinColumnsAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/SecondaryTableAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/SecondaryTablesAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/SequenceGeneratorAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/TableAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/TableGeneratorAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/TemporalAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/TransientAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/VersionAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryAnnotatedElement.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryAssociationOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryAssociationOverridesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryAttributeOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryAttributeOverridesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryBaseColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryBaseEnumeratedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryBaseJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryBaseTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryBaseTemporalAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryBasicAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryClassFile.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryCompleteColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryContainerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryDiscriminatorColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryDiscriminatorValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryEmbeddableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryEmbeddedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryEmbeddedIdAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryEntityAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryEnumeratedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryGeneratedValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryGeneratorAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryIdAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryIdClassAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryInheritanceAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryJoinColumnsAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryJoinTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryLobAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryManyToManyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryManyToOneAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryMapKeyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryMappedSuperclassAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryNamedColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryNamedNativeQueriesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryNamedNativeQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryNamedQueriesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryNamedQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryOneToManyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryOneToOneAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryOrderByAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryPackageFragment.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryPackageFragmentRoot.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryPersistentMember.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryPersistentType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryPersistentTypeCache.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryPrimaryKeyJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryPrimaryKeyJoinColumnsAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryQueryHintAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryRelationshipMappingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinarySecondaryTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinarySecondaryTablesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinarySequenceGeneratorAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryTableGeneratorAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryTemporalAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryTransientAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryUniqueConstraintAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/BinaryVersionAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/binary/RootBinaryNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/AnnotationContainerTools.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceAnnotatedElement.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceAssociationOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceAssociationOverridesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceAttributeOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceAttributeOverridesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceBaseColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceBaseEnumeratedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceBaseJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceBaseTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceBaseTemporalAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceBasicAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceCompilationUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceCompleteColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceDiscriminatorColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceDiscriminatorValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceEmbeddableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceEmbeddedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceEmbeddedIdAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceEntityAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceEnumeratedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceGeneratedValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceGeneratorAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceIdAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceIdClassAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceInheritanceAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceJoinColumnsAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceJoinTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceLobAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceManyToManyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceManyToOneAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceMapKeyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceMappedSuperclassAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceNamedColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceNamedNativeQueriesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceNamedNativeQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceNamedQueries1_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceNamedQueriesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceNamedQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceOneToManyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceOneToOneAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceOrderByAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourcePackage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourcePackageInfoCompilationUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourcePersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourcePersistentMember.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourcePersistentType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourcePrimaryKeyJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourcePrimaryKeyJoinColumnsAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceQueryHintAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceRelationshipMappingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceSecondaryTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceSecondaryTablesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceSequenceGeneratorAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceTableGeneratorAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceTemporalAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceTransientAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceTypeCompilationUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceUniqueConstraintAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/java/source/SourceVersionAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/orm/OrmXmlResourceProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/persistence/PersistenceXmlResourceProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/xml/JpaXmlResourceAdapterFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/resource/xml/JpaXmlResourcePropertyTester.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/synch/SynchronizeClassesJob.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/validation/DefaultJpaValidationMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/validation/JpaHelper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/validation/JpaValidationDescriptionMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/validation/JpaValidationMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/validation/JpaValidationPreferences.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/validation/JpaValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/JpaFactory2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/JpaProject2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/MappingKeys2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/MetamodelSynchronizer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/AttributeMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/Cacheable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/CacheableHolder2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/Cascade2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/CollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/CollectionTable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/DerivedIdentity2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/DerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ElementCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/EmbeddedIdMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/EmbeddedMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/IdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/IdMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/JpaRootContextNode2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/LockModeType2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ManyToManyMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ManyToOneMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ManyToOneRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/MappedByRelationshipMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/MappingFilePersistenceUnitDefaults2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/MappingFilePersistenceUnitMetadata2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/MapsIdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/MetamodelField.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/MetamodelSourceType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/NamedQuery2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/OneToManyMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/OneToManyRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/OneToOneMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/OneToOneRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/OrderColumn2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/Orderable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/OrphanRemovable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/OrphanRemovalHolder2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/OverrideRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/PersistentAttribute2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/PersistentType2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ReadOnlyOverrideRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ReadOnlyPersistentAttribute2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/SequenceGenerator2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/SingleRelationshipMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/VirtualOverrideRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaCacheable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaCacheableHolder2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaCascade2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaCollectionTable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaDerivedIdentity2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaElementCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaEmbeddedMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaIdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaManyToManyMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaManyToOneMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaManyToOneRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaMapsIdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaNamedQuery2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaOneToManyMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaOneToManyRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaOneToOneMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaOneToOneRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaOrderColumn2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaOrderable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaOrphanRemovable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaOrphanRemovalHolder2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaOverrideRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaPersistentAttribute2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaPersistentType2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaSequenceGenerator2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaSingleRelationshipMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/java/JavaVirtualOverrideRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmCacheable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmCacheableHolder2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmCascade2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmCollectionTable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmDerivedIdentity2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmElementCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmEmbeddedMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmIdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmManyToManyMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmManyToOneMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmManyToOneRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmMapsIdDerivedIdentityStrategy2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmNamedQuery2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmOneToManyMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmOneToManyRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmOneToOneMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmOneToOneRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmOrderColumn2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmOrderable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmOrphanRemovable2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmOrphanRemovalHolder2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmOverrideRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmPersistenceUnitDefaults2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmPersistenceUnitMetadata2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmPersistentAttribute2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmPersistentType2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmReadOnlyPersistentAttribute2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmSequenceGenerator2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmSingleRelationshipMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmVirtualOverrideRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/orm/OrmXml2_0ContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/persistence/Persistence2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/persistence/PersistenceUnit2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/persistence/PersistenceXml2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/persistence/connection/JpaConnection2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/persistence/options/JpaOptions2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/persistence/options/SharedCacheMode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/persistence/options/ValidationMode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/Access2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/AssociationOverride2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/Cacheable2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/CollectionTable2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/ElementCollection2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/GeneratedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/JPA2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/JavaResourcePersistentType2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/LockModeType_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/ManyToMany2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/ManyToOne2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/MapKeyClass2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/MapKeyColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/MapKeyEnumerated2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/MapKeyJoinColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/MapKeyJoinColumns2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/MapKeyTemporal2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/MapsId2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/NamedQuery2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/NestableMapKeyJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/OneToMany2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/OneToOne2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/OrderColumn2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/OwningRelationshipMapping2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/RelationshipMapping2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/SequenceGenerator2_0Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/resource/java/StaticMetamodelAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/libprov/JpaLibraryProviderInstallOperationConfig.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/platform/GenericPlatform.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/platform/JpaPlatformDescription.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/platform/JpaPlatformGroupDescription.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/platform/JpaPlatformManager.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/AbstractXmlResourceProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/JpaXmlResourceProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/JpaXmlResourceProviderEvent.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/JpaXmlResourceProviderListener.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/AccessType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/Annotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/AnnotationContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/AssociationOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/AssociationOverridesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/AttributeOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/AttributeOverridesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/BaseColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/BaseJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/BaseTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/BasicAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/CascadeType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/ColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/CompleteColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/ContainerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/DiscriminatorColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/DiscriminatorType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/DiscriminatorValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/EmbeddableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/EmbeddedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/EmbeddedIdAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/EntityAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/EnumType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/EnumeratedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/FetchType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/GeneratedValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/GenerationType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/GeneratorAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/IdAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/IdClassAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/InheritanceAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/InheritanceType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JPA.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourceAnnotatedElement.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourceClassFile.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourceCompilationUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourceNode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourcePackage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourcePackageFragment.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourcePackageFragmentRoot.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourcePackageInfoCompilationUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourcePersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourcePersistentMember.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourcePersistentType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JavaResourcePersistentTypeCache.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JoinColumnsAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/JoinTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/LobAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/ManyToManyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/ManyToOneAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/MapKeyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/MappedSuperclassAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NamedColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NamedNativeQueriesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NamedNativeQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NamedQueriesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NamedQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestableAssociationOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestableAttributeOverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestableJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestableNamedNativeQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestableNamedQueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestablePrimaryKeyJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestableQueryHintAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestableSecondaryTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/NestableUniqueConstraintAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/OneToManyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/OneToOneAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/OrderByAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/OverrideAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/OwnableRelationshipMappingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/PrimaryKeyJoinColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/PrimaryKeyJoinColumnsAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/QueryAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/QueryHintAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/ReferenceTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/RelationshipMappingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/SecondaryTableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/SecondaryTablesAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/SequenceGeneratorAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/SingleRelationshipMappingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/TableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/TableGeneratorAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/TemporalAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/TemporalType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/TransientAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/UniqueConstraintAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/java/VersionAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlEmbedded.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlMultiRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlNamedColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlSingleRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AbstractXmlTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/AccessType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/Attributes.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/CascadeType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/ColumnMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/ColumnResult.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/DiscriminatorType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/EntityListener.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/EntityListeners.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/EntityResult.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/EnumType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/EventMethod.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/FetchType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/FieldResult.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/GenerationType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/Inheritance.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/InheritanceType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/JPA.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/Lob.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/MapKey.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/OrmFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/OrmPackage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/OrmXmlResourceFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/PostLoad.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/PostPersist.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/PostRemove.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/PostUpdate.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/PrePersist.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/PreRemove.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/PreUpdate.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/SqlResultSetMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/TemporalType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlAccessHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlAssociationOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlAssociationOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlAttributeOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlAttributeOverrideContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlBasic.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlClassReference.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlCollectionTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlConvertibleMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlDiscriminatorColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlElementCollection.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlEmbedded.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlEmbeddedId.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlEntityMappings.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlEventMethodContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlGeneratedValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlGeneratorContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlId.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlIdClassContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlJoinColumnContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlJoinTableContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlManyToMany.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlManyToOne.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlMappedByMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlNamedNativeQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlNamedQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlNullAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlOneToMany.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlOneToOne.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlOrderColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlOrderable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlOverride.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlPersistenceUnitDefaults.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlPersistenceUnitMetadata.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlPrimaryKeyJoinColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlPrimaryKeyJoinColumnContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlQueryContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlQueryHint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlReferenceTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlSecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlSequenceGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlTableGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlTransient.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlUniqueConstraint.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/XmlVersion.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/JPA2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/LockModeType_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/OrmV2_0Factory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/OrmV2_0Package.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlAssociationOverride_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlAttributeMapping_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlAttributeOverride_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlAttributes_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlCacheable_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlCascadeType_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlCollectionTable_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlDerivedId_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlElementCollection_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlEmbedded_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlEntityListener_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlEntity_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlEventMethod_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlGenerator_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlManyToMany_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlMapKeyAttributeOverrideContainer_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlMapKeyClass_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlMapsId_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlMultiRelationshipMapping_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlNamedQuery_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlOneToMany_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlOneToOne_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlOrderColumn_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlOrderable_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlOrphanRemovable_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlPersistenceUnitDefaults_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlPersistenceUnitMetadata_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlQueryHint_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlQuery_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlSequenceGenerator_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlSingleRelationshipMapping_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlSqlResultSetMapping_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/orm/v2_0/XmlUniqueConstraint_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/JPA.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/PersistenceFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/PersistencePackage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/PersistenceXmlResourceFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/XmlJarFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/XmlJavaClassRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/XmlMappingFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/XmlPersistence.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/XmlPersistenceUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/XmlPersistenceUnitTransactionType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/XmlProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/XmlProperty.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/v2_0/JPA2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/v2_0/PersistenceV2_0Factory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/v2_0/PersistenceV2_0Package.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/v2_0/XmlPersistenceUnitCachingType_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/v2_0/XmlPersistenceUnitValidationModeType_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/persistence/v2_0/XmlPersistenceUnit_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/xml/AbstractJpaEObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/xml/AbstractJpaRootEObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/xml/CommonFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/xml/CommonPackage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/xml/EmfTools.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/xml/JpaEObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/xml/JpaRootEObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/xml/JpaXmlResource.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/resource/xml/XML.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db.ui/.classpath delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db.ui/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db.ui/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db.ui/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db.ui/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db.ui/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db.ui/component.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db.ui/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db.ui/src/org/eclipse/jpt/jpa/db/ui/internal/DTPUiTools.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/.classpath delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/component.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Catalog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Column.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionAdapter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionListener.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfile.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileAdapter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ConnectionProfileListener.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Database.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/DatabaseIdentifierAdapter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/DatabaseObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/ForeignKey.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/JptJpaDbPlugin.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Schema.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/SchemaContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Sequence.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/Table.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPCatalogWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPColumnWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPConnectionProfileFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPConnectionProfileWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseObjectWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPDatabaseWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPForeignKeyWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSchemaContainerWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSchemaWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPSequenceWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/DTPTableWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/AbstractDTPDriverAdapter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/CatalogStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/DB2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/DTPDriverAdapter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/DTPDriverAdapterFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/DTPDriverAdapterManager.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/Derby.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/FauxCatalogStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/FoldingStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/HSQLDB.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/Informix.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/LowerCaseFoldingStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/MaxDB.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/MySQL.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/NoCatalogStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/NonFoldingStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/Oracle.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/PostgreSQL.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/SQLServer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/SimpleCatalogStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/Sybase.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/Unknown.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/UnknownCatalogStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.db/src/org/eclipse/jpt/jpa/db/internal/driver/UpperCaseFoldingStrategy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/.settings/org.eclipse.core.resources.prefs delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.ini delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.mappings delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/about.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/component.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/icons/WTP_icon_x32_v2.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.branding/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.classpath delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/lib/persistence.jar delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core.ddlgen/src/org/eclipse/jpt/jpa/eclipselink/core/ddlgen/Main.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/.classpath delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/.settings/org.eclipse.core.resources.prefs delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/model/eclipseLinkResourceModels.genmodel delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/model/eclipselink_orm.ecore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/plugin.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/property_files/eclipselink_jpa_validation.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_orm_1_0.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_orm_1_1.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_orm_1_2.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_orm_2_0.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_orm_2_1.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_orm_2_2.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_oxm_2_0.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_oxm_2_1.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_oxm_2_2.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_persistence_map_1.0.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_persistence_map_1.1.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_persistence_map_1.2.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_persistence_map_2.0.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_sessions_1.0.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_sessions_1.1.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_sessions_1.2.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_sessions_2.0.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/schemas/eclipselink_sessions_2.1.xsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/EclipseLinkJpaProject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/EclipseLinkMappingKeys.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/JptJpaEclipseLinkCorePlugin.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkBasicCollectionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkBasicMapMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkBasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkCacheCoordinationType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkCacheType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkCaching.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkChangeTracking.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkChangeTrackingType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkConversionValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkConvert.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkConverterClassConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkCustomConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkCustomizer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkExistenceType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkJoinFetch.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkJoinFetchMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkJoinFetchType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkMutable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkNonEmbeddableTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkObjectTypeConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkOneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkOneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkPrivateOwned.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkReadOnly.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkRelationshipMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkStructConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkTimeOfDay.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkTransformationMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkTypeConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkVariableOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkVersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/java/EclipseLinkJavaOneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/java/EclipseLinkJavaTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/java/JavaEclipseLinkCaching.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/java/JavaEclipseLinkConverterContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/java/JavaEclipseLinkEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/java/JavaEclipseLinkEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/java/JavaEclipseLinkMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/java/JavaEclipseLinkNonEmbeddableTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/orm/EclipseLinkEntityMappings.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/orm/EclipseLinkOrmOneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/orm/EclipseLinkOrmTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/orm/OrmEclipseLinkCaching.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/orm/OrmEclipseLinkConverterContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/orm/OrmEclipseLinkEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/orm/OrmEclipseLinkEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/orm/OrmEclipseLinkMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/orm/OrmEclipseLinkNonEmbeddableTypeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/EclipseLinkPersistenceUnit.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/EclipseLinkPersistenceXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/caching/CacheType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/caching/Caching.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/caching/Entity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/caching/FlushClearCache.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/connection/BatchWriting.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/connection/Connection.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/connection/ExclusiveConnectionMode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/customization/Customization.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/customization/Entity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/customization/Profiler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/customization/Weaving.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/general/GeneralProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/logging/Logger.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/logging/Logging.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/logging/LoggingLevel.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/options/Options.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/options/TargetDatabase.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/options/TargetServer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/schema/generation/DdlGenerationType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/schema/generation/OutputMode.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/persistence/schema/generation/SchemaGeneration.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/DefaultEclipseLinkJpaValidationMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaAnnotationDefinitionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaPlatformFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaProjectImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaValidationMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkOrmResourceModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/EclipseLinkJavaTimeOfDay.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkBasicCollectionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkBasicCollectionMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkCachingImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkChangeTracking.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkConversionValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkConvert.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkConverterContainerImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkCustomConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkCustomizer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkEmbeddableImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkEntityImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkIdMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkJoinFetch.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkManyToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkManyToManyMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkManyToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkManyToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMappedSuperclassImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMutable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkObjectTypeConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkOneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkOneToManyMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkOneToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkPrivateOwned.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkReadOnly.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkStructConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkTransformationMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkTransformationMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkTypeConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkVariableOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkVariableOneToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkVersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkVersionMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/AbstractEclipseLinkOrmXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicCollectionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicMapMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkEntityMappingsImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyRelationship.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmTimeOfDay.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkBasicCollectionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkBasicCollectionMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkBasicMapMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkBasicMapMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkBasicMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkCachingImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkChangeTracking.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkConversionValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkConvert.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkConverterClassConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkConverterContainerImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkCustomConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkCustomizer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkEmbeddableImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkEntityImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkIdMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkJoinFetch.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkManyToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkManyToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMappedSuperclassImpl.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMutable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkObjectTypeConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkOneToManyMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistentAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPrivateOwned.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkReadOnly.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkStructConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkTransformationMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkTransformationMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkTypeConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkVariableOneToOneMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkVariableOneToOneMappingDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkVersionMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/EclipseLinkJarFileRef.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/EclipseLinkPersistenceUnitProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/EclipseLinkPersistenceXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/EclipseLinkPersistenceXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/caching/EclipseLinkCaching.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/connection/EclipseLinkConnection.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/customization/EclipseLinkCustomization.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/general/EclipseLinkGeneralProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/logging/EclipseLinkLogging.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/options/EclipseLinkOptions.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/schema/generation/EclipseLinkSchemaGeneration.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/ddlgen/AbstractEclipseLinkDDLGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/ddlgen/EclipseLinkDDLGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/libval/EclipseLinkEclipseLinkBundlesLibraryValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/libval/EclipseLinkUserLibraryValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/operations/EclipseLinkOrmFileCreationDataModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/operations/EclipseLinkOrmFileCreationOperation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkBasicCollectionAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkBasicMapAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkCacheAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkChangeTrackingAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkConvertAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkConverterAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkCustomizerAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkExistenceCheckingAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkJoinFetchAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkMutableAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkObjectTypeConverterAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkPrimaryKeyAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkPrivateOwnedAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkReadOnlyAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkReadTransformerAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkStructConverterAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkTransformationAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkTypeConverterAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkVariableOneToOneAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/EclipseLinkWriteTransformerAnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/NullEclipseLinkCacheAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/NullEclipseLinkJoinFetchAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/NullEclipseLinkTransformationAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/NullEclipseLinkWriteTransformerColumnAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryBaseEclipseLinkTypeConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkBasicCollectionAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkBasicMapAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkCacheAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkChangeTrackingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkConversionValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkConvertAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkCustomizerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkExistenceCheckingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkJoinFetchAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkMutableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkNamedConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkObjectTypeConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkPrimaryKeyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkPrivateOwnedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkReadOnlyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkReadTransformerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkStructConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkTimeOfDayAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkTransformationAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkTransformerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkTypeConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkVariableOneToOneAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkWriteTransformerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceBaseEclipseLinkTypeConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkBasicCollectionAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkBasicMapAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkCacheAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkChangeTrackingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkConversionValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkConvertAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkCustomizerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkExistenceCheckingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkJoinFetchAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkMutableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkNamedConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkObjectTypeConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkPrimaryKeyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkPrivateOwnedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkReadOnlyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkReadTransformerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkStructConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkTimeOfDayAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkTransformationAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkTransformerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkTypeConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkVariableOneToOneAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkWriteTransformerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/orm/EclipseLinkOrmXmlResourceProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/EclipseLink1_1JpaPlatformFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/EclipseLink1_1JpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/context/AbstractEclipseLinkTypeMappingValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/context/EclipseLinkEntityPrimaryKeyValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/context/EclipseLinkMappedSuperclassPrimaryKeyValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/context/EclipseLinkMappedSuperclassValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/context/EclipseLinkPersistentAttributeValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/context/EclipseLinkTypeMappingValidator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/context/orm/EclipseLinkOrmXml1_1ContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/context/orm/EclipseLinkOrmXml1_1Definition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_1/context/orm/OrmEclipseLinkPersistentAttribute1_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaAnnotationDefinitionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaPlatformFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/context/java/EclipseLinkJavaPersistentType1_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/context/orm/EclipseLinkOrmXml1_2Definition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/AbstractEclipseLink2_0JpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkElementCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkElementCollectionMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkIdMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkManyToManyMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkManyToOneMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToManyMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToOneMappingDefinition2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0Definition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/persistence/EclipseLink2_0PersistenceXmlContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/persistence/EclipseLink2_0PersistenceXmlDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/persistence/connection/EclipseLinkConnection2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/persistence/logging/EclipseLinkLogging2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/context/persistence/options/EclipseLinkOptions2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/ddlgen/EclipseLink2_0DDLGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/AbstractEclipseLink2_1JpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/EclipseLink2_1JpaAnnotationDefinitionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/EclipseLink2_1JpaPlatformFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/EclipseLink2_1JpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/context/orm/EclipseLinkOrmElementCollectionMapping2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/context/orm/EclipseLinkOrmXml2_1ContextNodeFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/context/orm/EclipseLinkOrmXml2_1Definition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/context/orm/OrmEclipseLinkBasicCollectionMapping2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/context/orm/OrmEclipseLinkBasicMapMapping2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/resource/java/EclipseLinkClassExtractor2_1AnnotationDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/resource/java/binary/BinaryEclipseLinkClassExtractorAnnotation2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_1/resource/java/source/SourceEclipseLinkClassExtractorAnnotation2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_2/EclipseLink2_2JpaPlatformFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_2/EclipseLink2_2JpaPlatformProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_2/context/orm/EclipseLinkOrmXml2_2Definition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/platform/EclipseLinkPlatform.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/BaseEclipseLinkTypeConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/CacheCoordinationType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/CacheType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/ChangeTrackingType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLink.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkBasicCollectionAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkBasicMapAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkCacheAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkChangeTrackingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkConversionValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkConvertAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkCustomizerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkExistenceCheckingAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkJoinFetchAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkMutableAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkNamedConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkObjectTypeConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkPrimaryKeyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkPrivateOwnedAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkReadOnlyAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkReadTransformerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkStructConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkTimeOfDayAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkTransformationAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkTransformerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkTypeConverterAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkVariableOneToOneAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkWriteTransformerAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/ExistenceType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/JoinFetchType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/NestableEclipseLinkConversionValueAnnotation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/Attributes.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/CacheCoordinationType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/CacheType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/EclipseLink.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/EclipseLinkOrmFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/EclipseLinkOrmPackage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/EclipseLinkOrmXmlResourceFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/ExistenceType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlAccessMethods.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlAccessMethodsHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlAdditionalCriteria.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlAttributeMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlBasic.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlBasicCollection.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlBasicMap.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlBatchFetch.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlBatchFetchHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlCache.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlCacheHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlChangeTracking.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlChangeTrackingHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlChangeTrackingType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlCloneCopyPolicy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlCollectionTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConversionValue.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConverterHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConvertersHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConvertibleMapping.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlCopyPolicy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlCustomizer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlCustomizerHolder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlDirection.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlElementCollection.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlEmbeddable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlEmbedded.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlEmbeddedId.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlEntity.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlEntityMappings.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlFetchAttribute.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlFetchGroup.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlHashPartitioning.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlId.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlIndex.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlInstantiationCopyPolicy.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlJoinFetch.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlJoinFetchType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlJoinTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlManyToMany.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlManyToOne.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlMappedSuperclass.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlMutable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlNamedConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlNamedStoredProcedureQuery.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlObjectTypeConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlOneToMany.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlOneToOne.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlOptimisticLocking.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlOptimisticLockingType.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlOrderColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlPartitioning.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlPersistenceUnitDefaults.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlPersistenceUnitMetadata.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlPinnedPartitioning.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlPrimaryKey.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlPrivateOwned.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlProperty.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlPropertyContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlQueryContainer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlQueryRedirectors.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlRangePartitioning.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlReadOnly.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlReplicationPartitioning.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlReturnInsert.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlRoundRobinPartitioning.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlSecondaryTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlStoredProcedureParameter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlStructConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlTableGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlTimeOfDay.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlTransformation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlTransient.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlTypeConverter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlUnionPartitioning.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlValuePartitioning.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlVariableOneToOne.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlVersion.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v1_1/EclipseLink1_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v1_1/EclipseLinkOrmV1_1Factory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v1_1/EclipseLinkOrmV1_1Package.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v1_1/IdValidationType_1_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v1_1/XmlBasic_1_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v1_1/XmlEntity_1_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v1_1/XmlMappedSuperclass_1_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v1_1/XmlPrimaryKey_1_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v1_2/EclipseLink1_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/EclipseLink2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/EclipseLinkOrmV2_0Factory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/EclipseLinkOrmV2_0Package.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/OrderCorrectionType_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlCacheInterceptor_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlCollectionMapping_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlElementCollection_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlEntity_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlManyToMany_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlMapKeyAssociationOverrideContainer_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlMappedSuperclass_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlOneToMany_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlOrderColumn_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_0/XmlQueryRedirectors_2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/BatchFetchType_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/CacheKeyType_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/EclipseLink2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/EclipseLinkOrmV2_1Factory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/EclipseLinkOrmV2_1Package.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlBasic_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlBatchFetch_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlElementCollection_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlEmbeddable_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlEmbeddedId_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlEmbedded_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlEntityMappings_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlEntity_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlFetchAttribute_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlFetchGroupContainer_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlFetchGroup_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlId_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlManyToMany_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlManyToOne_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlMappedSuperclass_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlOneToMany_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlOneToOne_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlPersistenceUnitDefaults_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlPrimaryKey_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlReturnInsert_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlTransformation_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_1/XmlVersion_2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/EclipseLink2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/EclipseLinkOrmV2_2Factory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/EclipseLinkOrmV2_2Package.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlAdditionalCriteria_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlBasicCollection_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlBasicMap_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlBasic_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlCollectionTable_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlElementCollection_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlEmbeddable_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlEntityMappings_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlEntity_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlHashPartitioning_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlId_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlIndex_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlJoinTable_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlManyToMany_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlManyToOne_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlMappedSuperclass_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlOneToMany_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlOneToOne_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlPartitioningGroup_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlPartitioning_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlPinnedPartitioning_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlRangePartitioning_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlReplicationPartitioning_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlRoundRobinPartitioning_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlSecondaryTable_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlTableGenerator_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlTable_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlUnionPartitioning_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlValuePartitioning_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlVariableOneToOne_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_2/XmlVersion_2_2.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/context/EclipseLinkElementCollectionMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/context/EclipseLinkOneToManyMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/context/EclipseLinkOneToManyRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/context/EclipseLinkOneToOneMapping2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/context/java/EclipseLinkJavaOneToManyRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/context/orm/EclipseLinkOrmOneToManyRelationship2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/context/persistence/connection/Connection2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/context/persistence/logging/Logging2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/context/persistence/options/Options2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/resource/java/EclipseLink2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/resource/java/EclipseLinkClassExtractorAnnotation2_1.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/.classpath delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/plugin.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/property_files/eclipselink_ui.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/property_files/eclipselink_ui_details.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/JptJpaEclipseLinkUiPlugin.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/EclipseLinkHelpContextIds.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/EclipseLinkUiMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/ddlgen/EclipseLinkDDLGeneratorUi.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/ddlgen/wizards/GenerateDDLWizard.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/AbstractEclipseLinkBasicCollectionMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/AbstractEclipseLinkBasicMapMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/AbstractEclipseLinkTransformationMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/AbstractEclipseLinkVariableOneToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkAlwaysRefreshComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkBasicCollectionMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkBasicMapMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkBasicMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCacheCoordinationTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCacheSizeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCacheTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCachingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkChangeTrackingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkConversionValueDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkConversionValueStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkConvertComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomConverterComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkDisableHitsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkEmbeddableAdvancedComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkEntityAdvancedComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkExpiryComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkIdMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkJoinFetchComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkManyToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkManyToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkMappedSuperclassAdvancedComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkMutableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkObjectTypeConverterComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkOneToManyJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkOneToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkOneToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkPrivateOwnedComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkReadOnlyComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkRefreshOnlyIfNewerComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkStructConverterComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkTransformationMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkTypeConverterComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkUiDetailsMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkVariableOneToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkVersionMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/AbstractJavaEclipseLinkEmbeddableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/AbstractJavaEclipseLinkEntityComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/AbstractJavaEclipseLinkMappedSuperclassComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/DefaultJavaEclipseLinkOneToManyMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/DefaultJavaEclipseLinkOneToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/DefaultJavaEclipseLinkVariableOneToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/EclipseLinkJavaResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/EclipseLinkJavaUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkBasicCollectionMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkBasicMapMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkCachingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkConvertersComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkEmbeddableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkEntityComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkExistenceCheckingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkMappedSuperclassComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkTransformationMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/java/JavaEclipseLinkVariableOneToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/AbstractEclipseLinkEntityMappingsDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/AbstractOrmEclipseLinkEntityComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/AbstractOrmEclipseLinkMappedSuperclassComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/BaseEclipseLinkOrmXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkConverterDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkConverterStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkEntityMappingsDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkEntityMappingsDetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkOrmXmlUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/EclipseLinkOrmXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkBasicCollectionMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkBasicMapMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkBasicMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkCachingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkConvert1_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkConvertersComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkEmbeddableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkEntityComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkExistenceCheckingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkIdMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkManyToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkManyToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkMappedSuperclassComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkOneToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkOneToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkTransformationMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkVariableOneToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/orm/OrmEclipseLinkVersionMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/EclipseLinkPersistenceXmlUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/EclipseLinkPersistenceXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/CacheDefaultsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/CacheTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/DefaultCacheSizeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/DefaultCacheTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/DefaultSharedCacheComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/EclipseLinkCachingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/EntityCachingPropertyComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/EntityListComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/FlushClearCacheComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/PersistenceXmlCachingTab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/caching/SharedCacheComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/BatchWritingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/CacheStatementsPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/ConnectionPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/DataSourcePropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/EclipseLinkConnectionComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcBindParametersComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcConnectionPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcDriverComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcExclusiveConnectionModeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcExclusiveConnectionsPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcLazyConnectionComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsMaxComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsMinComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsSharedComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionsMaxComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionsMinComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/NativeSqlComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/PersistenceXmlConnectionTab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/connection/TransactionTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/CustomizerComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/EclipseLinkCustomizationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/EntityCustomizationPropertyComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/EntityListComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/ExceptionHandlerComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/PersistenceXmlCustomizationTab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/ProfilerComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/SessionCustomizersComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/ThrowExceptionsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/ValidateSchemaComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/ValidationOnlyComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/WeavingChangeTrackingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/WeavingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/WeavingEagerComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/WeavingFetchGroupsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/WeavingInternalComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/WeavingLazyComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/customization/WeavingPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitGeneralComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitJarFilesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitMappingFilesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/logging/EclipseLinkLoggingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/logging/ExceptionsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/logging/LoggerComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/logging/LoggingFileLocationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/logging/LoggingLevelComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/logging/PersistenceXmlLoggingTab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/logging/SessionComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/logging/ThreadComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/logging/TimestampComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/options/EclipseLinkOptionsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/options/EventListenerComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/options/IncludeDescriptorQueriesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/options/PersistenceXmlOptionsTab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/options/SessionNameComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/options/SessionsXmlComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/options/TargetDatabaseComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/options/TargetServerComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/options/TemporalMutableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/schema/generation/CreateDdlFileNameComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/schema/generation/DdlGenerationLocationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/schema/generation/DdlGenerationTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/schema/generation/DropDdlFileNameComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/schema/generation/EclipseLinkSchemaGenerationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/schema/generation/OutputModeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistence/schema/generation/PersistenceXmlSchemaGenerationTab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistencexml/details/EclipseLinkNavigatorItemContentProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/persistencexml/details/EclipseLinkNavigatorItemLabelProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUi.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/platform/EclipseLinkNavigatorProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/structure/EclipseLinkOrmResourceModelStructureProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/structure/EclipseLinkPersistenceItemContentProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/structure/EclipseLinkPersistenceResourceModelStructureProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/EclipseLinkOrmXml1_1UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/EclipseLinkOrmXml1_1UiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkBasicCollectionMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkBasicMapMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkBasicMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedIdMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkIdMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkManyToManyMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkManyToOneMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkOneToManyMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkOneToOneMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkVersionMapping1_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/platform/EclipseLink1_1JpaPlatformUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_1/platform/EclipseLink1_1JpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_2/details/java/EclipseLink1_2JavaResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_2/details/java/EclipseLink1_2JavaUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_2/details/java/JavaEclipseLinkEmbeddable1_2Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_2/details/java/JavaEclipseLinkEntity1_2Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_2/details/java/JavaEclipseLinkMappedSuperclass1_2Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_2/details/orm/EclipseLinkOrmXml1_2UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_2/platform/EclipseLink1_2JpaPlatformUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v1_2/platform/EclipseLink1_2JpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/ddlgen/wizards/EclipseLink2_0DDLGeneratorUi.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/EclipseLinkCaching2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/EclipseLink2_0JavaResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/EclipseLink2_0JavaUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkCaching2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkElementCollectionMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkEntity2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkIdMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkIdMapping2_0UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkManyToManyMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkManyToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkMappedSuperclass2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToManyMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/EclipseLinkEntityMappings2_0DetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/EclipseLinkEntityMappings2_0DetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/EclipseLinkOrmXml2_0UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/EclipseLinkOrmXml2_0UiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/OrmEclipseLinkCaching2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/OrmEclipseLinkEmbeddedIdMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/OrmEclipseLinkEntity2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/OrmEclipseLinkIdMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/OrmEclipseLinkManyToManyMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/OrmEclipseLinkManyToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/OrmEclipseLinkMappedSuperclass2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/OrmEclipseLinkOneToManyMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/details/orm/OrmEclipseLinkOneToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/EclipseLink2_0PersistenceXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/EclipseLinkPersistenceXml2_0UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/caching/CacheDefaults2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/caching/EclipseLinkCaching2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/caching/FlushClearCache2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/caching/PersistenceXmlCaching2_0Tab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/customization/EclipseLinkCustomization2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/customization/PersistenceXmlCustomization2_0Tab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/logging/ConnectionComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/logging/EclipseLinkCategoryLoggingLevelComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/logging/EclipseLinkLogging2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/logging/PersistenceXmlLogging2_0Tab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/options/EclipseLinkOptions2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/options/LockingConfigurationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/options/PersistenceXmlOptions2_0Tab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/options/QueryConfigurationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/options/ValidationConfigurationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/persistence/options/ValidationModeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/platform/EclipseLink2_0JpaPlatformUi.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/platform/EclipseLink2_0JpaPlatformUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_0/platform/EclipseLink2_0JpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_1/details/orm/EclipseLinkOrmXml2_1UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_1/details/orm/EclipseLinkOrmXml2_1UiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_1/details/orm/OrmEclipseLinkElementCollectionMapping2_1Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_1/platform/EclipseLink2_1JpaPlatformUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_1/platform/EclipseLink2_1JpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_2/details/orm/EclipseLinkOrmXml2_2UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_2/platform/EclipseLink2_2JpaPlatformUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/v2_2/platform/EclipseLink2_2JpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizard.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/.classpath delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/component.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/property_files/jpt_gen.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/Association.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/AssociationRole.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/BaseEntityGenCustomizer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/DatabaseAnnotationNameBuilder.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/JptGenMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/JptJpaGenPlugin.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenColumn.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenCustomizer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/OverwriteConfirmer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/PackageGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/TagNames.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/CompilationUnitModifier.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/DTPUtil.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/EntityGenTools.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/FileUtil.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/ForeignKeyInfo.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/StringUtil.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/util/UrlUtil.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/column.vm delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/join.vm delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/main.java.vm delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/manyToMany.vm delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/manyToOne.vm delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/mappingKind.vm delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/oneToMany.vm delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/oneToOne.vm delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.gen/templates/entities/pk.java.vm delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/.classpath delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/.cvsignore delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/.jetproperties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/.options delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/META-INF/MANIFEST.MF delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/about.html delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/build.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/component.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/dtool16/new_entity_wiz.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/dtool16/new_jpa_file_wiz.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/dtool16/new_jpaproject_wiz.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/etool16/jpa_facet.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/etool16/new_entity_wiz.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/etool16/new_jpa_file_wiz.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/etool16/new_jpaproject_wiz.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/eview16/jpa_details.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/eview16/jpa_perspective.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/eview16/jpa_structure.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/basic.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/element-collection.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/embeddable.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/embedded-id.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/embedded.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/entity-mappings.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/entity.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/id.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/jpa-content.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/jpa-file.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/jpa-jar-file.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/many-to-many.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/many-to-one.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/mapped-superclass.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/null-attribute-mapping.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/null-type-mapping.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/one-to-many.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/one-to-one.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/persistence-unit.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/persistence.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/transient.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/version.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/obj16/warning.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/wizban/new_entity_wizban.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/wizban/new_jpa_file_wizban.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/icons/full/wizban/new_jpa_prj_wiz.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/add-connection.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/add.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/browse-mini.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/browse.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/collapse-all.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/delete.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/deselect-all.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/dot.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/edit.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/expand-all.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/list-of-values.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/move-down.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/move-up.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/reconnect.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/restore-defaults.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/select-all.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/buttons/warningstd.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/export-as-img-hover.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/export-as-img.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/header_left_bg.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/header_mid_bg.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/header_right_bg.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/print-hover.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/print.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/shadow-bottom.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/shadow-lower-left.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/shadow-lower-right.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/shadow-side.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/shadow-upper-right.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/diagram/toolbar_bg.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/objects/column.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/objects/columnKey.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/objects/file.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/objects/folder.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/objects/forward.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/objects/moveRight.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/objects/package.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/objects/table.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/objects/table_obj.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/overlays/error.gif delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/overlays/warning.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/images/save-image-16.png delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/plugin.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/plugin.xml delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/property_files/jpt_ui.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/property_files/jpt_ui_details.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/property_files/jpt_ui_details2_0.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/property_files/jpt_ui_details_orm.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/property_files/jpt_ui_entity_gen.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/property_files/jpt_ui_entity_wizard.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/property_files/jpt_ui_persistence.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/property_files/jpt_ui_persistence2_0.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/property_files/jpt_ui_validation_preferences.properties delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/schema/jpaPlatformUis.exsd delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/JpaPlatformUi.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/JpaPlatformUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/JpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/JptJpaUiPlugin.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/MappingResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/PersistenceXmlResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/ResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/DefaultMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/JpaComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/JpaDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/JpaDetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/JpaPageComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/MappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/java/DefaultJavaAttributeMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/java/DefaultJavaTypeMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/java/JavaAttributeMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/java/JavaTypeMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/java/JavaUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/orm/OrmAttributeMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/orm/OrmTypeMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/details/orm/OrmXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/AbstractJpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/EditorPartAdapterFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/GenericJpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/ImageRepository.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JpaHelpContextIds.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JpaJavaCompletionProposalComputer.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JpaMappingImageHelper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JptUiIcons.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JptUiMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JptUiValidationPreferenceMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/actions/GenerateDDLAction.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/actions/GenerateEntitiesAction.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/actions/MakePersistentAction.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/actions/OpenJpaResourceAction.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/actions/ProjectAction.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/actions/SynchronizeClassesAction.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/commands/AddPersistentAttributeToXmlAndMapHandler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/commands/AddPersistentAttributeToXmlHandler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/commands/AddPersistentClassHandler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/commands/ConvertJavaProjectToJpaCommandHandler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/commands/PersistentAttributeMapAsHandler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/commands/PersistentTypeMapAsHandler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/commands/RemovePersistentAttributeFromXmlHandler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/commands/RemovePersistentClassHandler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/commands/UpgradeXmlFileVersionHandler.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractBasicMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractBasicMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEmbeddableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEmbeddableUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEmbeddedIdMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEmbeddedIdMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEmbeddedMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEmbeddedMappingOverridesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEmbeddedMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEntityComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEntityMappingsDetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEntityOverridesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractEntityUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractIdMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractIdMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractInheritanceComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractJpaDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractManyToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractManyToManyMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractManyToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractManyToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractMappedSuperclassComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractMappedSuperclassUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractOneToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractOneToManyMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractOneToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractOneToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractOrderingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractOverridesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractPrimaryKeyJoinColumnsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractSecondaryTablesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractTransientMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractVersionMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AbstractVersionMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AccessTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AddQueryDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AddQueryStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AssociationOverrideComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/AttributeOverrideComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/BaseJoinColumnDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/BaseJoinColumnDialogPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/BaseJoinColumnStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/BasicMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/CascadeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/ColumnComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/DiscriminatorColumnComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/EmbeddedIdMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/EmbeddedMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/EmbeddedMappingOverridesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/EntityNameComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/EntityOverridesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/EnumTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/FetchTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/GeneratedValueComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/GenerationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/GeneratorComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/IdClassComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/IdMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/IdMappingGenerationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/InverseJoinColumnInJoinTableDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/InverseJoinColumnInJoinTableStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinColumnDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinColumnDialogPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinColumnInJoiningStrategyDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinColumnInJoiningStrategyStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinColumnInReferenceTableDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinColumnInReferenceTableStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinColumnJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinColumnStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinColumnsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinTableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoinTableJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoiningStrategyJoinColumnsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JoiningStrategyJoinColumnsWithOverrideOptionComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/JptUiDetailsMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/ManyToManyJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/ManyToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/ManyToOneJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/ManyToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/MapAsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/MappedByJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/MappedByPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/NamedNativeQueryPropertyComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/NamedQueryPropertyComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/OneToManyJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/OneToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/OneToOneJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/OneToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/OptionalComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/OrderingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PersistentAttributeDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PersistentAttributeMapAsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PersistentTypeDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PersistentTypeMapAsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PrimaryKeyJoinColumnDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PrimaryKeyJoinColumnInSecondaryTableDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PrimaryKeyJoinColumnInSecondaryTableStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PrimaryKeyJoinColumnJoiningStrategyPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PrimaryKeyJoinColumnStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/PrimaryKeyJoinColumnsInSecondaryTableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/QueriesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/QueryHintsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/ReferenceTableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/SecondaryTableDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/SequenceGeneratorComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/TableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/TableGeneratorComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/TargetEntityComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/TemporalTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/TransientMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/VersionMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/db/CatalogCombo.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/db/ColumnCombo.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/db/DatabaseObjectCombo.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/db/SchemaCombo.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/db/SequenceCombo.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/db/TableCombo.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/AbstractJavaResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/BaseJavaUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/DefaultBasicMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/DefaultEmbeddedMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/GenericJavaResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/GenericJavaUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaBasicMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaEmbeddableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaEmbeddableUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaEmbeddedIdMappingUDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaEmbeddedMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaEntityComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaEntityUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaIdMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaInheritanceComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaManyToManyMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaManyToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaMappedSuperclassComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaMappedSuperclassUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaOneToManyMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaOneToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaPersistentAttributeDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaPersistentAttributeDetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaPersistentTypeDetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaPrimaryKeyJoinColumnsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaSecondaryTablesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaTransientMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/JavaVersionMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/NullJavaAttributeMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/java/NullJavaTypeMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/AbstractEntityMappingsDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/AbstractOrmEntityComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/AbstractOrmXmlResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/AddGeneratorDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/AddGeneratorStateObject.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/BaseOrmXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/EntityMappingsDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/EntityMappingsDetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/EntityMappingsGeneratorsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/GenericOrmXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/JptUiDetailsOrmMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/MetadataCompleteComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmBasicMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmBasicMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmEmbeddableComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmEmbeddableUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmEmbeddedIdMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmEmbeddedIdMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmEmbeddedMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmEmbeddedMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmEntityComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmEntityUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmIdMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmIdMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmInheritanceComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmJavaClassChooser.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmManyToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmManyToManyMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmManyToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmManyToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmMappedSuperclassComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmMappedSuperclassUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmMappingNameChooser.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmOneToManyMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmOneToManyMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmOneToOneMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmOneToOneMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmPackageChooser.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmPersistentAttributeDetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmPersistentAttributeDetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmPersistentTypeDetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmPrimaryKeyJoinColumnsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmQueriesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmSecondaryTablesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmTransientMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmVersionMappingComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmVersionMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmXmlUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/PersistenceUnitMetadataComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/UnsupportedOrmMappingUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/dialogs/AddPersistentAttributeToXmlAndMapDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/dialogs/AddPersistentClassDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/editors/PersistenceContributor.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/editors/PersistenceEditor.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jface/JarFileItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jface/XmlMappingFileViewerFilter.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/Generic2_0JpaPlatformUiProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/GenericOrmXml2_0UiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/Jpa2_0ProjectFlagModel.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractElementCollectionMapping2_0UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractManyToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AbstractOneToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/AssociationOverride2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/Cacheable2_0Pane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/CascadePane2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/CollectionTable2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/DerivedIdentity2_0Pane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/ElementCollectionMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/ElementCollectionValueOverridesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/EmbeddedIdMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/EmbeddedIdMapping2_0MappedByRelationshipPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/EmbeddedMapping2_0OverridesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/Entity2_0OverridesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/Generation2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/IdMapping2_0MappedByRelationshipPane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/IdMappingGeneration2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/JptUiDetailsMessages2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/LockModeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/ManyToOneJoiningStrategy2_0Pane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/NamedQueryProperty2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/OneToManyJoiningStrategy2_0Pane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/OneToOneJoiningStrategy2_0Pane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/OrderColumnComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/Ordering2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/OrphanRemoval2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/Queries2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/SequenceGenerator2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/TargetClassComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/Generic2_0JavaResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/Generic2_0JavaUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaElementCollectionMapping2_0UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaEmbeddable2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaEmbeddedMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaEntity2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaIdMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaManyToManyMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaManyToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaManyToOneMapping2_0Pane.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaMappedSuperclass2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaOneToManyMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/java/JavaOneToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/EntityMappings2_0DetailsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/EntityMappings2_0DetailsProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/EntityMappingsGenerators2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmBasicMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmElementCollectionMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmElementCollectionMapping2_0UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmEmbeddedIdMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmEmbeddedMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmEntity2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmIdMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmManyToManyMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmManyToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmOneToManyMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmOneToOneMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmQueries2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmVersionMapping2_0Composite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/orm/OrmXml2_0UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/Generic2_0PersistenceXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/JptUiPersistence2_0Messages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/PersistenceXml2_0UiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/connection/ConnectionPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/connection/DataSourcePropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/connection/GenericPersistenceUnit2_0ConnectionComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/connection/GenericPersistenceUnit2_0ConnectionTab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/connection/JdbcConnectionPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/connection/JdbcDriverComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/connection/JdbcPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/connection/TransactionTypeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/options/GenericPersistenceUnit2_0OptionsComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/options/GenericPersistenceUnit2_0OptionsTab.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/options/LockingConfigurationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/options/QueryConfigurationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/options/SharedCacheModeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/options/ValidationConfigurationComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/persistence/options/ValidationModeComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/platform/generic/Generic2_0JpaPlatformUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/listeners/SWTConnectionListenerWrapper.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/menus/MapAsContribution.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/menus/PersistentAttributeMapAsContribution.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/menus/PersistentTypeMapAsContribution.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/navigator/JpaNavigatorActionProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/navigator/JpaNavigatorContentAndLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/navigator/JpaNavigatorContentProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/navigator/JpaNavigatorItemLabelProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/navigator/JpaNavigatorLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/navigator/JpaNavigatorTreeItemContentProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/JptUiPersistenceMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/AbstractPersistenceXmlResourceUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/ArchiveFileSelectionDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/GenericPersistenceUnitGeneralComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/GenericPersistenceUnitJarFilesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/GenericPersistenceUnitMappingFilesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/GenericPersistenceXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceUnitClassesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceUnitConnectionComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceUnitConnectionDatabaseComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceUnitConnectionGeneralComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceUnitGeneralComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceUnitJarFilesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceUnitMappingFilesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceUnitPropertiesComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceXmlUiDefinition.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/persistence/details/PersistenceXmlUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/perspective/JpaPerspectiveFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/JpaPlatformUiRegistry.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/base/BaseJpaPlatformUi.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/base/EntitiesGenerator.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/ClassRefItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/EntityMappingsItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/GenericJpaPlatformUi.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/GenericJpaPlatformUiFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/GenericNavigatorItemContentProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/GenericNavigatorItemLabelProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/GenericNavigatorProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/JarFileRefItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/JavaPersistentTypeItemContentProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/MappingFileRefItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/OrmPersistentTypeItemContentProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/OrmXmlItemContentProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/OrmXmlItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/PersistenceItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/PersistenceUnitItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/PersistenceXmlItemContentProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/PersistenceXmlItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/PersistentAttributeItemContentProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/PersistentAttributeItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/PersistentTypeItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/RootContextItemContentProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/platform/generic/RootContextItemLabelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/preferences/JpaPreferencesPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/preferences/JpaProblemSeveritiesPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/properties/DataModelPropertyPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/properties/JpaProjectPropertiesPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/DefaultJpaSelection.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/DefaultJpaSelectionManager.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/JpaDetailsSelectionParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/JpaSelection.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/JpaSelectionEvent.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/JpaSelectionManager.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/JpaSelectionParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/JpaStructureSelectionParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/SelectionManagerFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/TextEditorSelectionParticipant.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/selection/WorkbenchPartAdapterFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/GeneralJpaMappingItemLabelProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/JavaItemContentProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/JavaItemLabelProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/JavaResourceModelStructureProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/OrmItemContentProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/OrmItemLabelProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/OrmResourceModelStructureProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/PersistenceItemContentProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/PersistenceItemLabelProviderFactory.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/PersistenceResourceModelStructureProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/structure/ResourceModelItemContentProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/views/AbstractJpaView.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/views/JpaDetailsView.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/views/structure/JpaStructurePage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/views/structure/JpaStructureView.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/DatabaseSchemaWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/JpaFacetActionPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/JpaFacetInstallPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/JpaFacetVersionChangePage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/JpaMakePersistentWizard.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/JpaMakePersistentWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/NewEntityDropDownAction.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/SelectJpaOrmMappingFileDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/AnnotatedEntityTemplate.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/EntityClassWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/EntityFieldsWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/EntityRowTableWizardSection.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/EntityTemplate.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/EntityWizard.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/EntityWizardMsg.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/IdClassTemplate.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/data/model/CreateEntityTemplateModel.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/data/model/EntityDataModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/data/model/EntityRow.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/data/model/IEntityDataModelProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/entity/data/operation/NewEntityClassOperation.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/AssociationFigure.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/AssociationTablesPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/AssociationsListComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/CardinalityPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/CascadeDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/ColumnGenPanel.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/DatabaseGroup.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/DefaultTableGenerationWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/GenerateEntitiesFromSchemaWizard.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/JoinColumnsPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/JptUiEntityGenMessages.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/NewAssociationWizard.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/NewAssociationWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/PromptJPAProjectWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/SWTUtil.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/SelectTableDialog.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/TableAssociationsWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/TableFigure.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/TableGenPanel.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/TablesAndColumnsCustomizationWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/gen/TablesSelectorWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/orm/MappingFileNewFileWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/orm/MappingFileOptionsWizardPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/orm/MappingFileWizard.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/proj/AddToEarComposite.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/proj/JpaProjectWizard.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/proj/JpaProjectWizardFirstPage.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/proj/model/JpaProjectCreationDataModelProperties.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/wizards/proj/model/JpaProjectCreationDataModelProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/jpa2/details/java/JavaUiFactory2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/jpa2/details/orm/OrmXmlUiFactory2_0.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/navigator/JpaNavigatorProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/structure/JpaStructureProvider.java delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/templates/annotated_entity.javajet delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/templates/entity.javajet delete mode 100644 jpa/plugins/org.eclipse.jpt.jpa.ui/templates/idClass.javajet delete mode 100644 jpa/plugins/org.eclipse.jpt.ui/.project delete mode 100644 jpa/plugins/org.eclipse.jpt.utility/.project delete mode 100644 jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project delete mode 100644 jpa/tests/org.eclipse.jpt.core.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.db.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.gen.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/.classpath delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/.cvsignore delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/.project delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/META-INF/MANIFEST.MF delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/about.html delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/build.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/plugin.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/plugin.xml delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/ExtensionTestPlugin.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/JavaTestAttributeMapping.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/JavaTestAttributeMappingDefinition.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/JavaTestTypeMapping.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/JavaTestTypeMappingDefinition.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/TestJavaBasicMapping.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/TestJavaEntity.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/TestJpaFactory.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/TestJpaPlatformFactory.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/TestJpaPlatformProvider.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests.extension.resource/src/org/eclipse/jpt/jpa/core/tests/extension/resource/TestJpaPlatformUiFactory.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/.classpath delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/.cvsignore delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/META-INF/MANIFEST.MF delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/about.html delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/build.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/plugin.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/JptJpaCoreTestsPlugin.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/MiscTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/JptJpaCoreTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/ContextModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/JpaFileTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/JpaProjectTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/JptJpaCoreContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/GenericJavaPersistentAttributeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/GenericJavaPersistentTypeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaAssociationOverrideTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaAttributeOverrideTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaBasicMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaCascadeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaDiscriminatorColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaEmbeddableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaEmbeddedIdMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaEmbeddedMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaEntityTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaGeneratedValueTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaIdMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaJoinColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaJoinTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaManyToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaManyToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaMappedSuperclassTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaNamedNativeQueryTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaNamedQueryTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaOneToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaOneToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaPrimaryKeyJoinColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaQueryHintTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaSecondaryTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaSequenceGeneratorTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaTableGeneratorTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaTransientMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JavaVersionMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/java/JptCoreContextJavaModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/EntityMappingsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/GenericOrmPersistentAttributeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/GenericOrmPersistentTypeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/JptCoreOrmContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmAssociationOverrideTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmAttributeOverrideTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmBasicMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmCascadeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmDiscriminatorColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmEmbeddableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmEmbeddedIdMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmEmbeddedMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmEntityTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmGeneratedValueTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmIdMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmJoinColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmJoinTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmManyToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmManyToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmMappedSuperclassTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmNamedNativeQueryTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmNamedQueryTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmOneToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmOneToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmPrimaryKeyJoinColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmQueryHintTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmSecondaryTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmSequenceGeneratorTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmTableGeneratorTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmTransientMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmVersionMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/OrmXmlTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/PersistenceUnitDefaultsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/orm/PersistenceUnitMetadataTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/persistence/ClassRefTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/persistence/JptCorePersistenceContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/persistence/MappingFileRefTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/persistence/PersistenceTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/persistence/PersistenceUnitTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/persistence/PersistenceUnitTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/persistence/PersistenceXmlTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/context/persistence/RootContextNodeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/Generic2_0ContextModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/Generic2_0JavaContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaAssociationOverride2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaCascade2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaCollectionTable2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaElementCollectionMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaEmbeddedMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaEntity2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaManyToManyMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaManyToOneMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaPersistentAttribute2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaPersistentType2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/java/GenericJavaSequenceGenerator2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/Generic2_0OrmContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmAssociationOverride2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmCascade2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmCollectionTable2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmElementCollectionMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmEmbeddedMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmEntity2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmManyToManyMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmPersistentAttribute2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmPersistentType2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/orm/GenericOrmSequenceGenerator2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/persistence/Generic2_0ConnectionTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/persistence/Generic2_0OptionsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/persistence/Generic2_0PersistenceContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/context/persistence/Generic2_0PersistenceUnitTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/Access2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/AssociationOverride2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/AssociationOverrides2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/Cacheable2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/CollectionTable2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/ElementCollection2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/JavaResource2_0Tests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/JavaResourceModel2_0TestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/ManyToMany2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/ManyToOne2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/MapKeyClass2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/MapKeyColumn2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/MapKeyEnumerated2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/MapKeyJoinColumn2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/MapKeyJoinColumns2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/MapKeyTemporal2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/MapsId2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/OneToMany2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/OneToOne2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/OrderColumn2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/jpa2/resource/java/SequenceGenerator2_0AnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/model/JpaProjectManagerTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/model/JptJpaCoreModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/platform/BaseJpaPlatformTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/platform/JpaPlatformExtensionTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/platform/JpaPlatformTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/projects/TestJpaProject.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/JptJpaCoreResourceModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/AssociationOverrideTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/AssociationOverridesTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/AttributeOverrideTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/AttributeOverridesTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/BasicTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/ColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/DiscriminatorColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/DiscriminatorValueTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/EmbeddableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/EmbeddedIdTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/EmbeddedTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/EntityTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/EnumeratedTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/GeneratedValueTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/IdClassTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/IdTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/InheritanceTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/JPTToolsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/JavaResourceModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/JavaResourcePersistentAttributeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/JavaResourcePersistentTypeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/JoinColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/JoinColumnsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/JoinTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/JpaJavaResourceModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/JptJavaResourceTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/LobTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/ManyToManyTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/ManyToOneTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/MapKeyTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/MappedSuperclassTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/NamedNativeQueriesTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/NamedNativeQueryTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/NamedQueriesTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/NamedQueryTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/OneToManyTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/OneToOneTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/OrderByTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/PrimaryKeyJoinColumnTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/PrimaryKeyJoinColumnsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/QueryHintTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/SecondaryTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/SecondaryTablesTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/SequenceGeneratorTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/TableGeneratorTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/TableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/TemporalTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/TransientTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/src/org/eclipse/jpt/jpa/core/tests/internal/resource/java/VersionTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.core.tests/test.xml delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/.classpath delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/.cvsignore delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/META-INF/MANIFEST.MF delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/about.html delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/build.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/config/derby.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/config/mysql.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10g.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle10gXE.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/config/oracle9i.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/config/postgresql.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sqlserver.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/config/sybase.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/plugin.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JDBCTools.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/JptJpaDbTestsPlugin.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/AllPlatformTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DTPPlatformTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/DerbyTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/MySQLTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle10gXETests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/Oracle9iTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/PostgreSQLTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SQLServerTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.db.tests/src/org/eclipse/jpt/jpa/db/tests/internal/platforms/SybaseTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/.classpath delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/.cvsignore delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/about.html delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/build.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/plugin.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/JptJpaEclipseLinkCoreTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/EclipseLinkContextModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/EclipseLinkJpaProjectTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/JptEclipseLink1_0CoreContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/JptJpaEclipseLinkCoreContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaBasicMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaCachingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaConvertTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaConverterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEmbeddableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEntityTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaIdMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaManyToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaManyToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaMappedSuperclassTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaObjectTypeConverterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaOneToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaOneToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaStructConverterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaTypeConverterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/EclipseLinkJavaVersionMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/java/JptEclipseLinkCoreJavaContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkEntityMappingsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmBasicMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmContextModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmConverterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEmbeddableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmIdMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmManyToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmManyToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmMappedSuperclassTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmObjectTypeConverterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmOneToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmOneToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmPersistentAttributeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmStructConverterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmTransientMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmTypeConverterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmVersionMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkPersistenceUnitDefaultsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkPersistenceUnitMetadataTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/EclipseLinkPersistenceUnitTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/EclipseLinkPersistenceUnitTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/JptEclipseLinkCorePersistenceContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/caching/CachingAdapterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/caching/CachingValueModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/caching/JptEclipseLinkPersistenceCachingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/connection/EclipseLinkConnectionTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/connection/JptEclipseLinkPersistenceConnectionTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/customization/CustomizationValueModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/customization/EclipseLinkCustomizationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/customization/JptEclipseLinkPersistenceCustomizationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/general/GeneralPropertiesAdapterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/general/GeneralPropertiesValueModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/general/JptEclipseLinkPersistenceGeneralTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/logging/JptEclipseLinkPersistenceLoggingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/logging/LoggingAdapterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/logging/LoggingValueModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/options/JptEclipseLinkPersistenceOptionsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/options/OptionsAdapterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/options/OptionsValueModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/schema/generation/JptEclipseLinkPersistenceSchemaGenerationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationAdapterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationBasicAdapterTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationValueModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/CacheTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/ChangeTrackingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/ConversionValueAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/ConvertAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/ConverterAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/CustomizerAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/EclipseLinkJavaResourceModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/EclipseLinkPrimaryKeyAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/ExistenceCheckingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/JoinFetchTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/JptEclipseLinkCoreJavaResourceModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/MutableAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/ObjectTypeConverterAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/PrivateOwnedTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/ReadOnlyTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/ReadTransformerAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/StructConverterAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/TimeOfDayTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/TransformationAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/TypeConverterAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/java/WriteTransformerAnnotationTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_1/context/EclipseLink1_1ContextModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_1/context/EclipseLink1_1JpaProjectTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_1/context/JptEclipseLink1_1CoreContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_1/context/orm/EclipseLink1_1OrmContextModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_1/context/orm/EclipseLink1_1OrmPersistentAttributeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_1/context/orm/EclipseLink1_1OrmPersistentTypeTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_1/context/orm/EclipseLink1_1OrmTransientMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_1/context/orm/JptEclipseLink1_1CoreOrmContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_2/context/EclipseLink1_2ContextModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_2/context/EclipseLink1_2JpaProjectTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v1_2/context/JptEclipseLink1_2CoreContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/EclipseLink2_0ContextModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/JptEclipseLink2_0CoreContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/java/EclipseLink2_0JavaCollectionTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/java/EclipseLink2_0JavaElementCollectionMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/java/EclipseLink2_0JavaEntityTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/java/EclipseLink2_0JavaManyToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/java/EclipseLink2_0JavaManyToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/java/EclipseLink2_0JavaMappedSuperclassTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/java/EclipseLink2_0JavaOneToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/java/EclipseLink2_0JavaOneToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/java/JptEclipseLink2_0JavaContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/EclipseLink2_0OrmCollectionTableTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/EclipseLink2_0OrmContextModelTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/EclipseLink2_0OrmElementCollectionMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/EclipseLink2_0OrmEntityTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/EclipseLink2_0OrmManyToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/EclipseLink2_0OrmMappedSuperclassTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/EclipseLink2_0OrmOneToManyMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/EclipseLink2_0OrmOneToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/Eclipselink2_0OrmManyToOneMappingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/orm/JptEclipseLink2_0OrmContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/persistence/EclipseLink2_0ConnectionTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/persistence/EclipseLink2_0LoggingTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/persistence/EclipseLink2_0OptionsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/persistence/EclipseLink2_0PersistenceUnitTestCase.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/context/persistence/JptEclipseLink2_0CorePersistenceContextModelTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/test.xml delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.gen.tests/.classpath delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.gen.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.gen.tests/META-INF/MANIFEST.MF delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.gen.tests/about.html delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.gen.tests/build.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.gen.tests/plugin.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/EntityGenToolsTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.gen.tests/src/org/eclipse/jpt/jpa/gen/tests/internal/JptJpaGenTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.gen.tests/test.xml delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.ui.tests/.classpath delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.ui.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.ui.tests/META-INF/MANIFEST.MF delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.ui.tests/build.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.ui.tests/plugin.properties delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/JptUiTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/internal/platform/JpaPlatformUiExtensionTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.jpa.ui.tests/src/org/eclipse/jpt/jpa/ui/tests/internal/platform/JptUiPlatformTests.java delete mode 100644 jpa/tests/org.eclipse.jpt.ui.tests/.project delete mode 100644 jpa/tests/org.eclipse.jpt.utility.tests/.project delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/.cvsignore delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/.project delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/build.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/eclipse_update_120.jpg delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/feature.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/feature.xml delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/about.html delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/about.ini delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/about.mappings delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/about.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/build.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/eclipse32.gif delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/eclipse32.png delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/eclipse_update_120.jpg delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/epl-v10.html delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/license.html delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateBundle/plugin.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateFeature/build.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateFeature/eclipse_update_120.jpg delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplateFeature/feature.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/about.html delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/about.ini delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/about.mappings delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/about.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/build.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/eclipse32.gif delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/eclipse32.png delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/eclipse_update_120.jpg delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/epl-v10.html delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/license.html delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor.feature/sourceTemplatePlugin/plugin.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor_sdk.feature/.cvsignore delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor_sdk.feature/.project delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor_sdk.feature/build.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor_sdk.feature/eclipse_update_120.jpg delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor_sdk.feature/feature.properties delete mode 100644 jpa_diagram_editor/features/org.eclipse.jpt.jpadiagrameditor_sdk.feature/feature.xml delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/.cvsignore delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/.project delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/META-INF/MANIFEST.MF delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/about.html delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/about.ini delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/about.mappings delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/about.properties delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/build.properties delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/component.xml delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/icons/WTP_icon_x32_v2.png delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.branding/plugin.properties delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/.classpath delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/.cvsignore delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/.project delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/.settings/org.eclipse.jdt.core.prefs delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/META-INF/MANIFEST.MF delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/about.html delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/build.properties delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/component.xml delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/CompoundKey.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/EJB_15x16.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/cmpEntity_obj.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/add_attribute.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/add_entity.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/basic.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/embeddable.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/embedded-id.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/embedded.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/entity-mappings.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/entity.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/id.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/jpa-content.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/jpa-file.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/many-to-many-1-dir.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/many-to-many-2-dir.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/many-to-many.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/many-to-one-1-dir.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/many-to-one-2-dir.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/many-to-one.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/mapped-superclass.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/null-attribute-mapping.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/null-type-mapping.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/one-to-many-1-dir.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/one-to-many.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/one-to-one-1-dir.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/one-to-one-2-dir.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/one-to-one.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/persistence-unit.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/persistence.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/remove_attribute.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/transient.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/version.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/ent/warning.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/restore.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/save.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/icons/save_and_remove.gif delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/plugin.properties delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/plugin.xml delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/pom.xml delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/JPADiagramEditor.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/JPADiagramEditorPlugin.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/dialog/SelectTypeDialog.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/facade/DisplayFacade.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/facade/EclipseFacade.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/facade/JavaCoreFacade.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/facade/StaticIDE.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/AddAllEntitiesFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/AddAttributeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/AddJPAEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/AddRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/ClickAddAttributeButtonFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/ClickRemoveAttributeButtonFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CollapseAllEntitiesFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CollapseCompartmentShapeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CollapseEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateJPAEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateJPAEntityFromMappedSuperclassFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateManyToManyBiDirRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateManyToManyRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateManyToManyUniDirRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateManyToOneBiDirRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateManyToOneRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateManyToOneUniDirRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateOneToManyRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateOneToManyUniDirRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateOneToOneBiDirRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateOneToOneRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateOneToOneUniDirRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/CreateRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/DeleteJPAEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/DeleteRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/DirectEditAttributeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/DirectEditJPAEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/DiscardAndRemoveAllEntitiesFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/ExpandAllEntitiesFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/ExpandCompartmentShapeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/ExpandEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/GraphicalAddAttributeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/GraphicalRemoveAttributeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/JPAMoveConnectionDecoratorFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/LayoutJPAEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/MoveAttributeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/MoveEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/MoveEntityShapeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/OpenJPADetailsViewFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/OpenMiniatureViewFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RefactorAttributeTypeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RefactorEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RemoveAllEntitiesFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RemoveAndSaveEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RemoveAttributeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RemoveJPAEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RemoveRelationFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RenameEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RenameEntityWithoutUIFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/ResizeAttributeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/ResizeJPAEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/RestoreEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/SaveAndRemoveAllEntitiesFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/SaveEntityFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/feature/UpdateAttributeFeature.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/i18n/JPAEditorMessages.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/i18n/messages.properties delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/ui/JPADiagramEditorInput.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/ui/JPAEditorMatchingStrategy.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/ui/OpenJpaDiagramActionDelegate.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/util/CreateDiagramJob.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/util/IModelIntegrationUtil.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/util/ModelIntegrationUtil.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/modelintegration/util/ModelIntegrationUtilImpl.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/preferences/JPAEditorPreferenceInitializer.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/preferences/JPAEditorPreferencesPage.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/propertypage/JPADiagramPropertyPage.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/propertytester/JpaProjectFacetVersionPropertyTester.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/AddEntityContext.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IAddEntityContext.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorFeatureProvider.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorImageCreator.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorContextMenuProvider.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorDiagramTypeProvider.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorFeatureProvider.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageCreator.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageProvider.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorToolBehaviorProvider.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/AbstractRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/BidirectionalRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/IRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/ManyToManyBiDirRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/ManyToManyRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/ManyToManyUniDirRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/ManyToOneBiDirRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/ManyToOneRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/ManyToOneUniDirRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/OneToManyRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/OneToManyUniDirRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/OneToOneBiDirRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/OneToOneRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/OneToOneUniDirRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/relations/UnidirectionalRelation.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/EntityChangeListener.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/GraphicsUpdater.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/GraphicsUpdaterImpl.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/IDisplayFacade.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/IEclipseFacade.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/IGraphicsUpdater.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/IJPADiagramEditorInput.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/IJPAEditorUtil.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/IJavaCoreFacade.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/IJpaSolver.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/IPeServiceUtil.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/IStaticIDE.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPACheckSum.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPAEditorConstants.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPAEditorUtil.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPAEditorUtilImpl.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JPASolver.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/JpaArtifactFactory.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/PeServiceUtilImpl.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/SizePosition.java delete mode 100644 jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/Wrp.java diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore deleted file mode 100644 index de8b73fb72..0000000000 --- a/assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -build.xml -org.eclipse.jpt_1.0.0.* diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/.project b/assembly/features/org.eclipse.jpt.assembly.feature/.project deleted file mode 100644 index 1e211aff8d..0000000000 --- a/assembly/features/org.eclipse.jpt.assembly.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.assembly.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/build.properties b/assembly/features/org.eclipse.jpt.assembly.feature/build.properties deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.assembly.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/assembly/features/org.eclipse.jpt.assembly.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/feature.properties b/assembly/features/org.eclipse.jpt.assembly.feature/feature.properties deleted file mode 100644 index 67207bfc0c..0000000000 --- a/assembly/features/org.eclipse.jpt.assembly.feature/feature.properties +++ /dev/null @@ -1,50 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -# feature.properties -# contains externalized strings for feature.xml -# "%foo" in feature.xml corresponds to the key "foo" in this file -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file should be translated. - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - -# "updateSiteName" property - label for the update site -updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site - -# "description" property - description of the feature -description=Dali Java Persistence Tools - Runtime - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/feature.xml b/assembly/features/org.eclipse.jpt.assembly.feature/feature.xml deleted file mode 100644 index 256051a1e6..0000000000 --- a/assembly/features/org.eclipse.jpt.assembly.feature/feature.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - - - - - - - - diff --git a/assembly/features/org.eclipse.jpt.patch/.project b/assembly/features/org.eclipse.jpt.patch/.project deleted file mode 100644 index b7a2bf552d..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.patch - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/assembly/features/org.eclipse.jpt.patch/build.properties b/assembly/features/org.eclipse.jpt.patch/build.properties deleted file mode 100644 index c381fb22bb..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/build.properties +++ /dev/null @@ -1,10 +0,0 @@ -bin.includes = feature.xml,\ - license.html,\ - feature.properties,\ - epl-v10.html,\ - eclipse_update_120.jpg -src.includes = eclipse_update_120.jpg,\ - epl-v10.html,\ - feature.properties,\ - feature.xml,\ - license.html diff --git a/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html b/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html deleted file mode 100644 index 0d115f43fb..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - Java Persistence Tools (JTP) 1.0.2 Patches - - - - -

JTP 2.0.2 Patches

- -

Feature Patched: org.eclipse.jpt.patch

-

Plugin(s) replaced:

- -

Bug 220297. Entity generation creates Embeddables with compile errors in some cases.

- - - \ No newline at end of file diff --git a/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg and /dev/null differ diff --git a/assembly/features/org.eclipse.jpt.patch/epl-v10.html b/assembly/features/org.eclipse.jpt.patch/epl-v10.html deleted file mode 100644 index ed4b196655..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - Version 1.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.

- -

 

- -
- - - - \ No newline at end of file diff --git a/assembly/features/org.eclipse.jpt.patch/feature.properties b/assembly/features/org.eclipse.jpt.patch/feature.properties deleted file mode 100644 index a8457ea0cc..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/feature.properties +++ /dev/null @@ -1,143 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### - -# "featureName" property - name of the feature -featureName=Java Persistence Tools (JTP) Patches - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse.org - -# "updateSiteName" property - label for the update site -updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site - -# "description" property - description of the feature -description=\ -Patch(s) for Java Persistence API (JPA) Tools. \n\ -See bug 220297 (https://bugs.eclipse.org/bugs/220297) Entity generation creates Embeddables with compile errors in some cases \n\ - - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006-08 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -licenseURL=license.html - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -license=\ -ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\ -June 06, 2007\n\ -\n\ -Usage Of Content\n\ -\n\ -THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ -OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ -USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ -AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ -NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ -AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ -AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ -OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ -TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ -OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ -BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ -\n\ -Applicable Licenses\n\ -\n\ -Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\ -is provided to you under the terms and conditions of the Eclipse Public\n\ -License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\ -Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ -For purposes of the EPL, "Program" will mean the Content.\n\ -\n\ -Content includes, but is not limited to, source code, object code,\n\ -documentation and other files maintained in the Eclipse.org CVS\n\ -repository ("Repository") in CVS modules ("Modules") and made available\n\ -as downloadable archives ("Downloads").\n\ -\n\ - - Content may be structured and packaged into modules to facilitate delivering,\n\ - extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ - plug-in fragments ("Fragments"), and features ("Features").\n\ - - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\ - in a directory named "plugins".\n\ - - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ - Each Feature may be packaged as a sub-directory in a directory named "features".\n\ - Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ - numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ - - Features may also include other Features ("Included Features"). Within a Feature, files\n\ - named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ -\n\ -Features may also include other Features ("Included Features"). Files named\n\ -"feature.xml" may contain a list of the names and version numbers of\n\ -Included Features.\n\ -\n\ -The terms and conditions governing Plug-ins and Fragments should be\n\ -contained in files named "about.html" ("Abouts"). The terms and\n\ -conditions governing Features and Included Features should be contained\n\ -in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ -Licenses may be located in any directory of a Download or Module\n\ -including, but not limited to the following locations:\n\ -\n\ - - The top-level (root) directory\n\ - - Plug-in and Fragment directories\n\ - - Inside Plug-ins and Fragments packaged as JARs\n\ - - Sub-directories of the directory named "src" of certain Plug-ins\n\ - - Feature directories\n\ -\n\ -Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ -Eclipse Update Manager, you must agree to a license ("Feature Update\n\ -License") during the installation process. If the Feature contains\n\ -Included Features, the Feature Update License should either provide you\n\ -with the terms and conditions governing the Included Features or inform\n\ -you where you can locate them. Feature Update Licenses may be found in\n\ -the "license" property of files named "feature.properties". Such Abouts,\n\ -Feature Licenses and Feature Update Licenses contain the terms and\n\ -conditions (or references to such terms and conditions) that govern your\n\ -use of the associated Content in that directory.\n\ -\n\ -THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\ -TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ -SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ -\n\ - - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ - - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ - - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ - - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\ - - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ - - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ - - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\ -\n\ -IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ -TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\ -is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ -govern that particular Content.\n\ -\n\ -Cryptography\n\ -\n\ -Content may contain encryption software. The country in which you are\n\ -currently may have restrictions on the import, possession, and use,\n\ -and/or re-export to another country, of encryption software. BEFORE\n\ -using any encryption software, please check the country's laws,\n\ -regulations and policies concerning the import, possession, or use,\n\ -and re-export of encryption software, to see if this is permitted.\n\ -\n\ -Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n -########### end of license property ########################################## diff --git a/assembly/features/org.eclipse.jpt.patch/feature.xml b/assembly/features/org.eclipse.jpt.patch/feature.xml deleted file mode 100644 index 4fae92b5fa..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/feature.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - diff --git a/assembly/features/org.eclipse.jpt.patch/license.html b/assembly/features/org.eclipse.jpt.patch/license.html deleted file mode 100644 index 2347060ef3..0000000000 --- a/assembly/features/org.eclipse.jpt.patch/license.html +++ /dev/null @@ -1,93 +0,0 @@ - - -Eclipse.org Software User Agreement - - - -

Eclipse Foundation Software User Agreement

-

January 28, 2005

-

Usage Of Content

-

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.

-

Applicable Licenses

-

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.

-

Cryptography

-

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.

diff --git a/assembly/features/org.eclipse.jpt.sdk/.cvsignore b/assembly/features/org.eclipse.jpt.sdk/.cvsignore deleted file mode 100644 index bc2abf75c1..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -*.bin.dist.zip -build.xml -features -plugins diff --git a/assembly/features/org.eclipse.jpt.sdk/.project b/assembly/features/org.eclipse.jpt.sdk/.project deleted file mode 100644 index 821d453136..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.sdk - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/assembly/features/org.eclipse.jpt.sdk/build.properties b/assembly/features/org.eclipse.jpt.sdk/build.properties deleted file mode 100644 index 7200939aca..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/build.properties +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -bin.includes = feature.xml,\ - eclipse_update_120.jpg,\ - epl-v10.html,\ - license.html,\ - feature.properties diff --git a/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg and /dev/null differ diff --git a/assembly/features/org.eclipse.jpt.sdk/epl-v10.html b/assembly/features/org.eclipse.jpt.sdk/epl-v10.html deleted file mode 100644 index ed4b196655..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - Version 1.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.

- -

 

- -
- - - - \ No newline at end of file diff --git a/assembly/features/org.eclipse.jpt.sdk/feature.properties b/assembly/features/org.eclipse.jpt.sdk/feature.properties deleted file mode 100644 index 64b1fab799..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/feature.properties +++ /dev/null @@ -1,170 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -# feature.properties -# contains externalized strings for feature.xml -# "%foo" in feature.xml corresponds to the key "foo" in this file -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file should be translated. - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools project SDK - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse.org - -# "updateSiteName" property - label for the update site -updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site - -# "description" property - description of the feature -description=Dali Java Persistence Tools project SDK - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -licenseURL=license.html - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -license=\ -Eclipse Foundation Software User Agreement\n\ -April 14, 2010\n\ -\n\ -Usage Of Content\n\ -\n\ -THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\ -OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\ -USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\ -AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\ -NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\ -AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\ -AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\ -OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\ -TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\ -OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\ -BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\ -\n\ -Applicable Licenses\n\ -\n\ -Unless otherwise indicated, all Content made available by the\n\ -Eclipse Foundation is provided to you under the terms and conditions of\n\ -the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\ -provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\ -For purposes of the EPL, "Program" will mean the Content.\n\ -\n\ -Content includes, but is not limited to, source code, object code,\n\ -documentation and other files maintained in the Eclipse Foundation source code\n\ -repository ("Repository") in software modules ("Modules") and made available\n\ -as downloadable archives ("Downloads").\n\ -\n\ - - Content may be structured and packaged into modules to facilitate delivering,\n\ - extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\ - plug-in fragments ("Fragments"), and features ("Features").\n\ - - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\ - in a directory named "plugins".\n\ - - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\ - Each Feature may be packaged as a sub-directory in a directory named "features".\n\ - Within a Feature, files named "feature.xml" may contain a list of the names and version\n\ - numbers of the Plug-ins and/or Fragments associated with that Feature.\n\ - - Features may also include other Features ("Included Features"). Within a Feature, files\n\ - named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\ -\n\ -The terms and conditions governing Plug-ins and Fragments should be\n\ -contained in files named "about.html" ("Abouts"). The terms and\n\ -conditions governing Features and Included Features should be contained\n\ -in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\ -Licenses may be located in any directory of a Download or Module\n\ -including, but not limited to the following locations:\n\ -\n\ - - The top-level (root) directory\n\ - - Plug-in and Fragment directories\n\ - - Inside Plug-ins and Fragments packaged as JARs\n\ - - Sub-directories of the directory named "src" of certain Plug-ins\n\ - - Feature directories\n\ -\n\ -Note: if a Feature made available by the Eclipse Foundation is installed using the\n\ -Provisioning Technology (as defined below), you must agree to a license ("Feature \n\ -Update License") during the installation process. If the Feature contains\n\ -Included Features, the Feature Update License should either provide you\n\ -with the terms and conditions governing the Included Features or inform\n\ -you where you can locate them. Feature Update Licenses may be found in\n\ -the "license" property of files named "feature.properties" found within a Feature.\n\ -Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\ -terms and conditions (or references to such terms and conditions) that\n\ -govern your use of the associated Content in that directory.\n\ -\n\ -THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\ -TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\ -SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\ -\n\ - - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\ - - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\ - - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\ - - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\ - - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\ -\n\ -IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\ -TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\ -is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\ -govern that particular Content.\n\ -\n\ -\n\Use of Provisioning Technology\n\ -\n\ -The Eclipse Foundation makes available provisioning software, examples of which include,\n\ -but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\ -the purpose of allowing users to install software, documentation, information and/or\n\ -other materials (collectively "Installable Software"). This capability is provided with\n\ -the intent of allowing such users to install, extend and update Eclipse-based products.\n\ -Information about packaging Installable Software is available at\n\ -http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\ -\n\ -You may use Provisioning Technology to allow other parties to install Installable Software.\n\ -You shall be responsible for enabling the applicable license agreements relating to the\n\ -Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\ -in accordance with the Specification. By using Provisioning Technology in such a manner and\n\ -making it available in accordance with the Specification, you further acknowledge your\n\ -agreement to, and the acquisition of all necessary rights to permit the following:\n\ -\n\ - 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\ - the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\ - extending or updating the functionality of an Eclipse-based product.\n\ - 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\ - Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\ - 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\ - govern the use of the Installable Software ("Installable Software Agreement") and such\n\ - Installable Software Agreement shall be accessed from the Target Machine in accordance\n\ - with the Specification. Such Installable Software Agreement must inform the user of the\n\ - terms and conditions that govern the Installable Software and must solicit acceptance by\n\ - the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\ - indication of agreement by the user, the provisioning Technology will complete installation\n\ - of the Installable Software.\n\ -\n\ -Cryptography\n\ -\n\ -Content may contain encryption software. The country in which you are\n\ -currently may have restrictions on the import, possession, and use,\n\ -and/or re-export to another country, of encryption software. BEFORE\n\ -using any encryption software, please check the country's laws,\n\ -regulations and policies concerning the import, possession, or use, and\n\ -re-export of encryption software, to see if this is permitted.\n\ -\n\ -Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n -########### end of license property ########################################## diff --git a/assembly/features/org.eclipse.jpt.sdk/feature.xml b/assembly/features/org.eclipse.jpt.sdk/feature.xml deleted file mode 100644 index 28dc74f6c8..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/feature.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - - diff --git a/assembly/features/org.eclipse.jpt.sdk/license.html b/assembly/features/org.eclipse.jpt.sdk/license.html deleted file mode 100644 index c184ca36a9..0000000000 --- a/assembly/features/org.eclipse.jpt.sdk/license.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - -Eclipse Foundation Software User Agreement - - - -

Eclipse Foundation Software User Agreement

-

April 14, 2010

- -

Usage Of Content

- -

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.

- -

Applicable Licenses

- -

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 Foundation source code - repository ("Repository") in software 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 Provisioning Technology (as defined below), 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.

- - -

Use of Provisioning Technology

- -

The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse - Update Manager ("Provisioning Technology") for the purpose of allowing users to install software, documentation, information and/or - other materials (collectively "Installable Software"). This capability is provided with the intent of allowing such users to - install, extend and update Eclipse-based products. Information about packaging Installable Software is available at http://eclipse.org/equinox/p2/repository_packaging.html - ("Specification").

- -

You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the - applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology - in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the - Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:

- -
    -
  1. A series of actions may occur ("Provisioning Process") in which a user may execute the Provisioning Technology - on a machine ("Target Machine") with the intent of installing, extending or updating the functionality of an Eclipse-based - product.
  2. -
  3. During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be - accessed and copied to the Target Machine.
  4. -
  5. Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable - Software ("Installable Software Agreement") and such Installable Software Agreement shall be accessed from the Target - Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern - the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such - indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.
  6. -
- -

Cryptography

- -

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 Oracle Corporation in the United States, other countries, or both.

- - diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jpt.tests.assembly.feature/.cvsignore deleted file mode 100644 index 2544693f86..0000000000 --- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.bin.dist.zip -build.xml -org.eclipse.jpt.tests_1.0.0.* \ No newline at end of file diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.project b/assembly/features/org.eclipse.jpt.tests.assembly.feature/.project deleted file mode 100644 index f34899cb8b..0000000000 --- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.tests.assembly.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs b/assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 17acb651a8..0000000000 --- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Sun May 27 15:11:05 EDT 2007 -eclipse.preferences.version=1 -encoding/=ISO-8859-1 diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/build.properties b/assembly/features/org.eclipse.jpt.tests.assembly.feature/build.properties deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.tests.assembly.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/assembly/features/org.eclipse.jpt.tests.assembly.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties b/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties deleted file mode 100644 index 0f26029475..0000000000 --- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties +++ /dev/null @@ -1,50 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -# feature.properties -# contains externalized strings for feature.xml -# "%foo" in feature.xml corresponds to the key "foo" in this file -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file should be translated. - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools Tests - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - -# "updateSiteName" property - label for the update site -updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site - -# "description" property - description of the feature -description=Dali Java Persistence Tools project Tests - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml b/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml deleted file mode 100644 index 1450cac5f1..0000000000 --- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - diff --git a/assembly/features/org.eclipse.jpt.tests/.project b/assembly/features/org.eclipse.jpt.tests/.project deleted file mode 100644 index c9a282f03f..0000000000 --- a/assembly/features/org.eclipse.jpt.tests/.project +++ /dev/null @@ -1,5 +0,0 @@ - - - org.eclipse.jpt.tests - Unused Project - \ No newline at end of file diff --git a/assembly/features/org.eclipse.jpt/.project b/assembly/features/org.eclipse.jpt/.project deleted file mode 100644 index 7a69c2f3bf..0000000000 --- a/assembly/features/org.eclipse.jpt/.project +++ /dev/null @@ -1,5 +0,0 @@ - - - org.eclipse.jpt - Unused Project - \ No newline at end of file diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore deleted file mode 100644 index bc2abf75c1..0000000000 --- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -*.bin.dist.zip -build.xml -features -plugins diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project deleted file mode 100644 index e901372085..0000000000 --- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt_sdk.assembly.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/build.properties b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/build.properties deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties deleted file mode 100644 index afcb117163..0000000000 --- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties +++ /dev/null @@ -1,50 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -# feature.properties -# contains externalized strings for feature.xml -# "%foo" in feature.xml corresponds to the key "foo" in this file -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file should be translated. - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools SDK - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - -# "updateSiteName" property - label for the update site -updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site - -# "description" property - description of the feature -description=Dali Java Persistence Tools project SDK - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml deleted file mode 100644 index fff471a1d5..0000000000 --- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - - - - - - - - diff --git a/assembly/plugins/org.eclipse.jpt/.cvsignore b/assembly/plugins/org.eclipse.jpt/.cvsignore deleted file mode 100644 index c9401a2c83..0000000000 --- a/assembly/plugins/org.eclipse.jpt/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -build.xml -org.eclipse.jpt_1.0.0.* \ No newline at end of file diff --git a/assembly/plugins/org.eclipse.jpt/.project b/assembly/plugins/org.eclipse.jpt/.project deleted file mode 100644 index f51b04cc90..0000000000 --- a/assembly/plugins/org.eclipse.jpt/.project +++ /dev/null @@ -1,22 +0,0 @@ - - - org.eclipse.jpt - - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - - diff --git a/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs b/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 4aec29d1cd..0000000000 --- a/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Sun May 27 15:10:09 EDT 2007 -eclipse.preferences.version=1 -encoding/=ISO-8859-1 diff --git a/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF b/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF deleted file mode 100644 index a5fbedd077..0000000000 --- a/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF +++ /dev/null @@ -1,7 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.jpt; singleton:=true -Bundle-Version: 2.3.1.qualifier -Bundle-Localization: plugin -Bundle-Vendor: %providerName diff --git a/assembly/plugins/org.eclipse.jpt/about.html b/assembly/plugins/org.eclipse.jpt/about.html deleted file mode 100644 index ca606b1bb5..0000000000 --- a/assembly/plugins/org.eclipse.jpt/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

June 06, 2007

- -

License

- -

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/.

- - - \ No newline at end of file diff --git a/assembly/plugins/org.eclipse.jpt/about.ini b/assembly/plugins/org.eclipse.jpt/about.ini deleted file mode 100644 index 588a325a8f..0000000000 --- a/assembly/plugins/org.eclipse.jpt/about.ini +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -# about.ini -# contains information about a feature -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# "%key" are externalized strings defined in about.properties -# This file does not need to be translated. - -# Property "aboutText" contains blurb for "About" dialog (translated) -aboutText=%blurb - -# Property "windowImage" contains path to window icon (16x16) -# needed for primary features only - -# Property "featureImage" contains path to feature image (32x32) -featureImage=eclipse32.gif - -# Property "aboutImage" contains path to product image (500x330 or 115x164) -# needed for primary features only - -# Property "appName" contains name of the application (translated) -# needed for primary features only - -# Property "welcomePage" contains path to welcome page (special XML-based format) -# optional - -# Property "welcomePerspective" contains the id of the perspective in which the -# welcome page is to be opened. -# optional - -# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page -# optional -tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm - - diff --git a/assembly/plugins/org.eclipse.jpt/about.mappings b/assembly/plugins/org.eclipse.jpt/about.mappings deleted file mode 100644 index bddaab4310..0000000000 --- a/assembly/plugins/org.eclipse.jpt/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/assembly/plugins/org.eclipse.jpt/about.properties b/assembly/plugins/org.eclipse.jpt/about.properties deleted file mode 100644 index c74a186a13..0000000000 --- a/assembly/plugins/org.eclipse.jpt/about.properties +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -# 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=Dali Java Persistence Tools\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Eclipse contributors and others 2006. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools diff --git a/assembly/plugins/org.eclipse.jpt/build.properties b/assembly/plugins/org.eclipse.jpt/build.properties deleted file mode 100644 index 0ccfb0ebb8..0000000000 --- a/assembly/plugins/org.eclipse.jpt/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2007 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -bin.includes = META-INF/,\ - about.ini,\ - about.html,\ - about.mappings,\ - about.properties,\ - eclipse32.gif,\ - eclipse32.png,\ - plugin.properties,\ - component.xml diff --git a/assembly/plugins/org.eclipse.jpt/component.xml b/assembly/plugins/org.eclipse.jpt/component.xml deleted file mode 100644 index 11f133f65a..0000000000 --- a/assembly/plugins/org.eclipse.jpt/component.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/assembly/plugins/org.eclipse.jpt/eclipse32.gif b/assembly/plugins/org.eclipse.jpt/eclipse32.gif deleted file mode 100644 index e6ad7ccd75..0000000000 Binary files a/assembly/plugins/org.eclipse.jpt/eclipse32.gif and /dev/null differ diff --git a/assembly/plugins/org.eclipse.jpt/eclipse32.png b/assembly/plugins/org.eclipse.jpt/eclipse32.png deleted file mode 100644 index 568fac1d05..0000000000 Binary files a/assembly/plugins/org.eclipse.jpt/eclipse32.png and /dev/null differ diff --git a/assembly/plugins/org.eclipse.jpt/plugin.properties b/assembly/plugins/org.eclipse.jpt/plugin.properties deleted file mode 100644 index c3c055a778..0000000000 --- a/assembly/plugins/org.eclipse.jpt/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2006 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools -providerName = Eclipse.org diff --git a/common/plugins/org.eclipse.jpt.common.core/.classpath b/common/plugins/org.eclipse.jpt.common.core/.classpath deleted file mode 100644 index 934fb38085..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/.classpath +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/common/plugins/org.eclipse.jpt.common.core/.project b/common/plugins/org.eclipse.jpt.common.core/.project deleted file mode 100644 index 5513a1552d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.common.core - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/common/plugins/org.eclipse.jpt.common.core/META-INF/MANIFEST.MF b/common/plugins/org.eclipse.jpt.common.core/META-INF/MANIFEST.MF deleted file mode 100644 index 56ca77aebc..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,71 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.common.core;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Activator: org.eclipse.jpt.common.core.JptCommonCorePlugin -Bundle-ActivationPolicy: lazy -Bundle-ClassPath: . -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)", - org.eclipse.core.filebuffers;bundle-version="[3.4.0,4.0.0)", - org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)", - org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)", - org.eclipse.debug.core;bundle-version="[3.4.0,4.0.0)", - org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)", - org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jst.common.project.facet.core;bundle-version="[1.3.100,2.0.0)", - org.eclipse.jst.j2ee;bundle-version="[1.1.200,2.0.0)", - org.eclipse.pde.core;bundle-version="[3.6.0,4.0.0)";resolution:=optional, - org.eclipse.text;bundle-version="[3.5.100,4.0.0)", - org.eclipse.wst.common.emf;bundle-version="[1.1.200,2.0.0)", - org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,2.0.0)", - org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)", - org.eclipse.wst.validation;bundle-version="[1.2.0,2.0.0)" -Export-Package: org.eclipse.jpt.common.core, - org.eclipse.jpt.common.core.internal; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.jaxb.core", - org.eclipse.jpt.common.core.internal.gen; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.dbws.eclipselink.ui", - org.eclipse.jpt.common.core.internal.libprov; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.jaxb.core", - org.eclipse.jpt.common.core.internal.libval; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.jaxb.core", - org.eclipse.jpt.common.core.internal.operations; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.jaxb.core", - org.eclipse.jpt.common.core.internal.resource; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.jaxb.core", - org.eclipse.jpt.common.core.internal.utility; - x-friends:="org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.core, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.core.internal.utility.jdt; - x-friends:="org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jpa.core", - org.eclipse.jpt.common.core.internal.utility.translators; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.jaxb.core", - org.eclipse.jpt.common.core.libprov, - org.eclipse.jpt.common.core.libval, - org.eclipse.jpt.common.core.resource, - org.eclipse.jpt.common.core.utility, - org.eclipse.jpt.common.core.utility.jdt -Import-Package: com.ibm.icu.text;version="4.0.1" diff --git a/common/plugins/org.eclipse.jpt.common.core/about.html b/common/plugins/org.eclipse.jpt.common.core/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/common/plugins/org.eclipse.jpt.common.core/build.properties b/common/plugins/org.eclipse.jpt.common.core/build.properties deleted file mode 100644 index 750874fe97..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/build.properties +++ /dev/null @@ -1,21 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -javacSource=1.5 -javacTarget=1.5 -source.. = src/,\ - property_files/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - about.html,\ - plugin.xml,\ - plugin.properties -jars.compile.order = . -src.includes = schema/ diff --git a/common/plugins/org.eclipse.jpt.common.core/plugin.properties b/common/plugins/org.eclipse.jpt.common.core/plugin.properties deleted file mode 100644 index a38a4a43c3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/plugin.properties +++ /dev/null @@ -1,31 +0,0 @@ -############################################################################### -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName = Dali Java Persistence Tools - Common Core -providerName = Eclipse Web Tools Platform - -LIBRARY_VALIDATORS=Library Validators -RESOURCE_LOCATORS=Resource Locators - -JAR_CONTENT = JAR Content -JAVA_PACKAGE_INFO_CONTENT = package-info.java - -NO_OP_LIBRARY_PROVIDER_WARNING = Library configuration is disabled. The user may need to configure further classpath changes later. diff --git a/common/plugins/org.eclipse.jpt.common.core/plugin.xml b/common/plugins/org.eclipse.jpt.common.core/plugin.xml deleted file mode 100644 index 0fe4f7e514..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/plugin.xml +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/common/plugins/org.eclipse.jpt.common.core/property_files/jpt_common_core.properties b/common/plugins/org.eclipse.jpt.common.core/property_files/jpt_common_core.properties deleted file mode 100644 index e474609500..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/property_files/jpt_common_core.properties +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -DALI_EVENT_HANDLER_THREAD_NAME=Dali Event Handler -GENERATION_CREATING_LAUNCH_CONFIG_TASK=Creating launch configuration -GENERATION_SAVING_LAUNCH_CONFIG_TASK=Saving launch configuration -GENERATION_LAUNCHING_CONFIG_TASK=Launching configuration -REGISTRY_MISSING_ATTRIBUTE=Missing required attribute ''{0}'' for element ''{1}'' in extension ''{1}'' from plug-in ''{2}''. -REGISTRY_INVALID_VALUE=Invalid value ''{0}'' for ''{1}'' in extension ''{2}'' from plug-in ''{3}''. -REGISTRY_DUPLICATE=An extension of ''{0}'' with the ''{1}'' value of ''{2}'' is already registered. -REGISTRY_FAILED_CLASS_LOAD=Unable to load the class ''{0}'' declared for the extension point ''{1}'' in the plug-in ''{2}''. -REGISTRY_FAILED_INTERFACE_ASSIGNMENT=Unable to assign the class ''{0}'' declared for the extension point ''{1}'' in the plug-in ''{2}'' to the interface ''{3}''. -REGISTRY_FAILED_INSTANTIATION=Unable to instantiate the class ''{0}'' declared for the extension point ''{1}'' in the plug-in ''{2}''. -USER_LIBRARY_VALIDATOR__CLASS_NOT_FOUND=The class ''{0}'' is required to be in the selected libraries. -VALIDATE_CONTAINER_NOT_SPECIFIED=Parent folder must be specified -VALIDATE_FILE_NAME_NOT_SPECIFIED=File name must be specified -VALIDATE_FILE_ALREADY_EXISTS=File already exist \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.core/schema/libraryValidators.exsd b/common/plugins/org.eclipse.jpt.common.core/schema/libraryValidators.exsd deleted file mode 100644 index abfe03b046..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/schema/libraryValidators.exsd +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - - Used to provide custom library validation to JPT project configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Declares a library validator. See <samp>org.eclipse.jpt.core.libval.LibraryValidator</samp> for more information on library validators. - - - - - - - - - - A unique identifier for the declared library validator. - - - - - - - The implementation class, which implements <samp>org.eclipse.jpt.core.libval.LibraryValidator</samp>. - - - - - - - - - - - - - - - JPT 3.0 - - - - - - - - - <br> -<p> -The following example is the included generic library validator, which is used for user library validation for projects of the generic JPA platform group. -<p> -<pre> -<extension - point="org.eclipse.jpt.common.core.libraryValidators"> - <libraryValidator - id="genericUserLibraryValidator" - class="org.eclipse.jpt.core.internal.libval.GenericJpaUserLibraryValidator"> - <enablement> - <with variable="libraryProvider"> - <test property="org.eclipse.jpt.core.extendsId" value="jpa-user-library-provider"/> - </with> - </enablement> - </libraryValidator> -</extension> -</pre> -</p> - - - - - - - - - <p> -The contributed resource locator class must implement <code>org.eclipse.jpt.common.core.resource.ResourceLocator</code>. -<p> -The enablement variables include: -<ul> -<li>"libraryProvider" which gives the current ILibraryProvider.</li> -<li>"jpaPlatform" which gives the current JpaPlatformDescription.</li> -</ul> -</p> - - - - - - - - - <p>The org.eclipse.jpt.core plug-in provides the following library validators: -<ul> -<li>genericUserLibraryValidator</li> -<li>genericEclipselinkBundlesLibraryValidator</li> -</ul> -</p> - - - - - - - - - Copyright (c) 2010, 2011 Oracle. All rights reserved. -This program and the accompanying materials are made available under the -terms of the Eclipse Public License v1.0, which accompanies this distribution -and is available at http://www.eclipse.org/legal/epl-v10.html. - -Contributors: -Oracle - initial API and implementation - - - - diff --git a/common/plugins/org.eclipse.jpt.common.core/schema/resourceLocators.exsd b/common/plugins/org.eclipse.jpt.common.core/schema/resourceLocators.exsd deleted file mode 100644 index 5eaf59b07a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/schema/resourceLocators.exsd +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - Used to provide custom (non-java) resource location logic to JPT projects. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Declares a resource locator. See <samp>org.eclipse.jpt.common.core.resource.ResourceLocator</samp> for more information on resource locators. - - - - - - - - - - A unique identifier for the declared resource locator. - - - - - - - The implementation class, which implements <samp>org.eclipse.jpt.common.core.resource.ResourceLocator</samp>. - - - - - - - - - - Indicates the relative priority of this extension to other extensions. Used by the resource locator manager to determine which extension should be used in the case that multiple extensions apply to a given project. Defaults to "normal". - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JPT 3.0 - - - - - - - - - <br> -<p> -The following example is the included simple java resource locator, which is used for simple java projects. It is of "lowest" priority, since all JPT projects will at their roots be simple java projects. -<p> -<pre> -<extension - point="org.eclipse.jpt.common.core.resourceLocators"> - <resourceLocator - id="simpleJavaResourceLocator" - class="org.eclipse.jpt.common.core.internal.resource.SimpleJavaResourceLocator" - priority="lowest" - <enablement> - <with variable="project"> - <test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="java" forcePluginActivation="true"/> - </with> - </enablement> - </resourceLocator> -</extension> -</pre> -</p> - - - - - - - - - <p> -The contributed resource locator class must implement <code>org.eclipse.jpt.co9mmon.core.resource.ResourceLocator</code>. -<p> -The enablement variables include: -<ul> -<li>"project" which gives the current IProject.</li> -</ul> -</p> - - - - - - - - - <p>The org.eclipse.jpt.common.core plug-in provides the following resource locators: -<ul> -<li>simpleJavaResourceLocator</li> -<li>moduleResourceLocator</li> -<li>webModuleResourceLocator</li> -<li>pluginResourceLocator</li> -</ul> -</p> - - - - - - - - - Copyright (c) 2011 Oracle. All rights reserved. -This program and the accompanying materials are made available under the -terms of the Eclipse Public License v1.0, which accompanies this distribution -and is available at http://www.eclipse.org/legal/epl-v10.html. - -Contributors: -Oracle - initial API and implementation - - - - diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/IResourcePart.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/IResourcePart.java deleted file mode 100644 index e5e6a4251a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/IResourcePart.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. - * All rights reserved. This program and the accompanying materials are - * made available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core; - -import org.eclipse.core.resources.IResource; - - -/** - * Represents an object that can be described as being part of an {@link IResource} - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 2.1 - * @since 2.1 - */ -public interface IResourcePart -{ - /** - * Return the resource of which this object is a part - */ - IResource getResource(); -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptCommonCorePlugin.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptCommonCorePlugin.java deleted file mode 100644 index 1dfc996b70..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptCommonCorePlugin.java +++ /dev/null @@ -1,174 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jpt.common.core.internal.libval.LibraryValidatorManager; -import org.eclipse.jpt.common.core.internal.resource.ResourceLocatorManager; -import org.eclipse.jpt.common.core.libprov.JptLibraryProviderInstallOperationConfig; -import org.eclipse.jpt.common.core.libval.LibraryValidator; -import org.eclipse.jpt.common.core.resource.ResourceLocator; -import org.osgi.framework.BundleContext; - -public class JptCommonCorePlugin - extends Plugin -{ - - // ********** public constants ********** - - /** - * The plug-in identifier of the jpt common core support - * (value "org.eclipse.jpt.common.core"). - */ - public static final String PLUGIN_ID = "org.eclipse.jpt.common.core"; //$NON-NLS-1$ - public static final String PLUGIN_ID_ = PLUGIN_ID + '.'; - - - /** - * The content type for Java source code files. - */ - public static final IContentType JAVA_SOURCE_CONTENT_TYPE = getContentType(JavaCore.JAVA_SOURCE_CONTENT_TYPE); - - /** - * The resource type for Java source code files - */ - public static final JptResourceType JAVA_SOURCE_RESOURCE_TYPE = new JptResourceType(JAVA_SOURCE_CONTENT_TYPE); - - /** - * The content type for Java archives (JARs). - */ - public static final IContentType JAR_CONTENT_TYPE = getJptContentType("jar"); //$NON-NLS-1$ - - /** - * The resource type for Java archives (JARs). - */ - public static final JptResourceType JAR_RESOURCE_TYPE = new JptResourceType(JptCommonCorePlugin.JAR_CONTENT_TYPE); - - /** - * The content type for package-info Java code files. - */ - public static final IContentType JAVA_SOURCE_PACKAGE_INFO_CONTENT_TYPE = getJptContentType("javaPackageInfo"); //$NON-NLS-1$ - - /** - * The resource type for package-info Java code files - */ - public static final JptResourceType JAVA_SOURCE_PACKAGE_INFO_RESOURCE_TYPE = new JptResourceType(JAVA_SOURCE_PACKAGE_INFO_CONTENT_TYPE); - - - private static final String JPT_CONTENT_PREFIX = PLUGIN_ID_ + "content"; //$NON-NLS-1$ - - private static final String JPT_CONTENT_PREFIX_ = JPT_CONTENT_PREFIX + '.'; - - private static IContentType getJptContentType(String jptContentType) { - return getContentType(JPT_CONTENT_PREFIX_ + jptContentType); - } - - private static IContentType getContentType(String contentType) { - return Platform.getContentTypeManager().getContentType(contentType); - } - - public static ResourceLocator getResourceLocator(IProject project) { - return ResourceLocatorManager.instance().getResourceLocator(project); - } - - public static IFile getPlatformFile(IProject project, IPath runtimePath) { - ResourceLocator resourceLocator = getResourceLocator(project); - if (resourceLocator == null) { - return null; - } - IPath sourcePath = resourceLocator.getResourcePath(project, runtimePath); - if (sourcePath == null) { - return null; - } - return project.getWorkspace().getRoot().getFile(sourcePath); - } - - public static Iterable getLibraryValidators( - JptLibraryProviderInstallOperationConfig config) { - return LibraryValidatorManager.instance().getLibraryValidators(config); - } - - // ********** singleton ********** - - private static JptCommonCorePlugin INSTANCE; - - /** - * Return the singleton jpt common core plug-in. - */ - public static JptCommonCorePlugin instance() { - return INSTANCE; - } - - - // ********** public static methods ********** - - /** - * Log the specified status. - */ - public static void log(IStatus status) { - INSTANCE.getLog().log(status); - } - - /** - * Log the specified message. - */ - public static void log(String msg) { - log(msg, null); - } - - /** - * Log the specified exception or error. - */ - public static void log(Throwable throwable) { - log(throwable.getLocalizedMessage(), throwable); - } - - /** - * Log the specified message and exception or error. - */ - public static void log(String msg, Throwable throwable) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, throwable)); - } - - - // ********** plug-in implementation ********** - - public JptCommonCorePlugin() { - super(); - if (INSTANCE != null) { - throw new IllegalStateException(); - } - // this convention is *wack*... ~bjv - INSTANCE = this; - } - - - @Override - public void start(BundleContext context) throws Exception { - super.start(context); - // nothing yet... - } - - @Override - public void stop(BundleContext context) throws Exception { - super.stop(context); - // nothing yet... - } - -} - diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceModel.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceModel.java deleted file mode 100644 index db1cf21f26..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceModel.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core; - -/** - * Listeners are notified whenever anything in the JPT resource model changes. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 2.3 - * @since 2.2 - */ -public interface JptResourceModel { - - /** - * Return the resource type of the model. This may potentially change. - * Return null if it cannot be determined, the content type or version is null. - */ - JptResourceType getResourceType(); - - /** - * Changes to the resource model result in events. - * In particular, the JPA project performs an "update" whenever a resource - * model changes. - */ - void addResourceModelListener(JptResourceModelListener listener); - - /** - * @see #addResourceModelListener(ResourceModelListener) - */ - void removeResourceModelListener(JptResourceModelListener listener); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceModelListener.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceModelListener.java deleted file mode 100644 index a0d0d3f046..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceModelListener.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core; - -import java.util.EventListener; - -/** - * The listener is notified whenever anything in the JPA resource model changes. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 2.3 - * @since 2.2 - */ -public interface JptResourceModelListener - extends EventListener -{ - void resourceModelChanged(JptResourceModel jpaResourceModel); - - void resourceModelReverted(JptResourceModel jpaResourceModel); - - void resourceModelUnloaded(JptResourceModel jpaResourceModel); -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceType.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceType.java deleted file mode 100644 index e86355e266..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/JptResourceType.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core; - -import org.eclipse.core.runtime.content.IContentType; - -/** - * Describes the file content type and version for JPA resources. - * This is a value object that defines an {@link #equals(Object)} method. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 2.3 - * @since 2.3 - */ -public class JptResourceType -{ - private final IContentType contentType; - - private final String version; - - - /** - * Version used when version can not be determined or when there is no - * sense of version (e.g. Java). - */ - public static final String UNDETERMINED_VERSION = ""; //$NON-NLS-1$ - - - public JptResourceType(IContentType contentType) { - this(contentType, UNDETERMINED_VERSION); - } - - public JptResourceType(IContentType contentType, String version) { - super(); - if (contentType == null) { - throw new NullPointerException("content type"); //$NON-NLS-1$ - } - if (version == null) { - throw new NullPointerException("version"); //$NON-NLS-1$ - } - this.contentType = contentType; - this.version = version; - } - - - public IContentType getContentType() { - return this.contentType; - } - - public String getVersion() { - return this.version; - } - - @Override - public boolean equals(Object obj) { - if (obj == this) { - return true; - } - if ((obj == null) || (obj.getClass() != this.getClass())) { - return false; - } - JptResourceType other = (JptResourceType) obj; - return this.contentType.equals(other.contentType) && this.version.equals(other.version); - } - - @Override - public int hashCode() { - final int prime = 31; - int hash = 17; - hash = hash * prime + this.contentType.hashCode(); - hash = hash * prime + this.version.hashCode(); - return hash; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(this.getClass().getSimpleName()); - sb.append("(content = "); //$NON-NLS-1$ - sb.append(this.contentType); - sb.append(", "); //$NON-NLS-1$ - sb.append("version = "); //$NON-NLS-1$ - sb.append(this.version); - sb.append(')'); - return sb.toString(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/JptCommonCoreMessages.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/JptCommonCoreMessages.java deleted file mode 100644 index b962c61115..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/JptCommonCoreMessages.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal; - -import org.eclipse.osgi.util.NLS; - -/** - * Localized messages used by Dali common core. - */ -public class JptCommonCoreMessages { - - public static String DALI_EVENT_HANDLER_THREAD_NAME; - public static String GENERATION_CREATING_LAUNCH_CONFIG_TASK; - public static String GENERATION_SAVING_LAUNCH_CONFIG_TASK; - public static String GENERATION_LAUNCHING_CONFIG_TASK; - public static String REGISTRY_MISSING_ATTRIBUTE; - public static String REGISTRY_INVALID_VALUE; - public static String REGISTRY_DUPLICATE; - public static String REGISTRY_FAILED_CLASS_LOAD; - public static String REGISTRY_FAILED_INTERFACE_ASSIGNMENT; - public static String REGISTRY_FAILED_INSTANTIATION; - public static String USER_LIBRARY_VALIDATOR__CLASS_NOT_FOUND; - public static String VALIDATE_CONTAINER_NOT_SPECIFIED; - public static String VALIDATE_FILE_NAME_NOT_SPECIFIED; - public static String VALIDATE_FILE_ALREADY_EXISTS; - - private static final String BUNDLE_NAME = "jpt_common_core"; //$NON-NLS-1$ - private static final Class BUNDLE_CLASS = JptCommonCoreMessages.class; - static { - NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS); - } - - private JptCommonCoreMessages() { - throw new UnsupportedOperationException(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/ResourceAdapterFactory.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/ResourceAdapterFactory.java deleted file mode 100644 index 6514e060f1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/ResourceAdapterFactory.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.IAdapterFactory; -import org.eclipse.jpt.common.core.IResourcePart; - -/** - * Factory to build adapters for converting Eclipse resources to Dali - * resource parts. - *

- * See org.eclipse.jpt.common.core plugin.xml. - */ -public class ResourceAdapterFactory - implements IAdapterFactory -{ - private static final Class[] ADAPTER_LIST = new Class[] { IResourcePart.class }; - - public Class[] getAdapterList() { - return ADAPTER_LIST; - } - - public Object getAdapter(Object adaptableObject, @SuppressWarnings("rawtypes") Class adapterType) { - if (adaptableObject instanceof IResource) { - return this.getAdapter((IResource) adaptableObject, adapterType); - } - return null; - } - - private Object getAdapter(final IResource resource, Class adapterType) { - if (adapterType == IResourcePart.class) { - return new IResourcePart() { - public IResource getResource() { - return resource; - } - }; - } - return null; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/gen/AbstractJptGenerator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/gen/AbstractJptGenerator.java deleted file mode 100644 index eeee457a07..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/gen/AbstractJptGenerator.java +++ /dev/null @@ -1,369 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2008, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.common.core.internal.gen; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.SubMonitor; -import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.core.ILaunch; -import org.eclipse.debug.core.ILaunchConfiguration; -import org.eclipse.debug.core.ILaunchConfigurationType; -import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; -import org.eclipse.debug.core.ILaunchManager; -import org.eclipse.debug.core.ILaunchesListener2; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; -import org.eclipse.jdt.launching.IRuntimeClasspathEntry; -import org.eclipse.jdt.launching.IVMInstall; -import org.eclipse.jdt.launching.JavaRuntime; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.internal.JptCommonCoreMessages; -import org.eclipse.osgi.service.datalocation.Location; -import org.osgi.framework.Bundle; - -public abstract class AbstractJptGenerator -{ - public static final String PLUGINS_DIR = "plugins/"; //$NON-NLS-1$ - - private IVMInstall jre; - protected ILaunchConfigurationWorkingCopy launchConfig; - private ILaunch launch; - - protected final IJavaProject javaProject; - protected final String projectLocation; - - private final boolean isDebug = true; - - // ********** constructors ********** - - protected AbstractJptGenerator(IJavaProject javaProject) { - super(); - this.javaProject = javaProject; - this.projectLocation = javaProject.getProject().getLocation().toString(); - this.initialize(); - } - - // ********** abstract methods ********** - - protected abstract String getMainType(); - - protected abstract String getLaunchConfigName(); - - protected String getBootstrapJarPrefix() { - throw new RuntimeException("Bootstrap JAR not specified."); //$NON-NLS-1$; - } - - protected abstract void specifyProgramArguments(); - - protected abstract List buildClasspath() throws CoreException; - - // ********** behavior ********** - - protected void initialize() { - try { - this.jre = this.getProjectJRE(); - if (this.jre == null) { - String message = "Could not identify the VM."; //$NON-NLS-1$ - throw new RuntimeException(message); - } - this.launchConfig = this.buildLaunchConfiguration(); - } - catch (CoreException e) { - throw new RuntimeException(e); - } - } - - protected void generate(IProgressMonitor monitor) { - SubMonitor sm = SubMonitor.convert(monitor, 10); - this.preGenerate(sm.newChild(2)); - if (sm.isCanceled()) { - throw new OperationCanceledException(); - } - sm.subTask(JptCommonCoreMessages.GENERATION_CREATING_LAUNCH_CONFIG_TASK); - this.initializeLaunchConfiguration(); - sm.worked(1); - if (sm.isCanceled()) { - throw new OperationCanceledException(); - } - - this.addLaunchListener(); - sm.worked(1); - - if (sm.isCanceled()) { - throw new OperationCanceledException(); - } - this.launch = this.saveAndLaunchConfig(sm.newChild(6)); - } - - private void initializeLaunchConfiguration() { - this.specifyJRE(); - - this.specifyProject(); - this.specifyMainType(); - - this.specifyProgramArguments(); - this.specifyWorkingDir(); - - this.specifyClasspathProperties(); - } - - private void addLaunchListener() { - - this.getLaunchManager().addLaunchListener(this.buildLaunchListener()); - } - - protected abstract void preGenerate(IProgressMonitor monitor); - - protected void postGenerate() { - try { - if( ! this.isDebug) { - this.removeLaunchConfiguration(); - } - } - catch(CoreException e) { - throw new RuntimeException(e); - } - } - - private ILaunchesListener2 buildLaunchListener() { - return new ILaunchesListener2() { - - public void launchesTerminated(ILaunch[] launches) { - for(int i = 0; i < launches.length; i++) { - ILaunch launch = launches[i]; - if (launch.equals(AbstractJptGenerator.this.getLaunch())) { - - AbstractJptGenerator.this.postGenerate(); - return; - } - } - } - - public void launchesAdded(ILaunch[] launches) { - // not interested to this event - } - - public void launchesChanged(ILaunch[] launches) { - // not interested to this event - } - - public void launchesRemoved(ILaunch[] launches) { - // not interested to this event - } - }; - } - - // ********** Setting Launch Configuration ********** - - private void specifyJRE() { - String jreName = this.jre.getName(); - String vmId = this.jre.getVMInstallType().getId(); - this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_JRE_CONTAINER_PATH, jreName); - this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_JRE_CONTAINER_PATH, vmId); - } - - private void specifyProject() { - String projectName = this.getProject().getName(); - this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, projectName); - } - - protected IProject getProject() { - return this.javaProject.getProject(); - } - - private void specifyMainType() { - this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, this.getMainType()); - } - - protected void specifyClasspathProperties() { - List classpath; - try { - classpath = this.buildClasspath(); - } - catch (CoreException e) { - throw new RuntimeException("An error occured generating a memento", e); //$NON-NLS-1$ - } - this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, classpath); - this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false); - } - - // ********** ClasspathEntry ********** - - protected IRuntimeClasspathEntry getSystemLibraryClasspathEntry() throws CoreException { - - IPath systemLibsPath = new Path(JavaRuntime.JRE_CONTAINER); - return JavaRuntime.newRuntimeContainerClasspathEntry(systemLibsPath, IRuntimeClasspathEntry.STANDARD_CLASSES); - } - - protected IRuntimeClasspathEntry getDefaultProjectClasspathEntry() { - - IRuntimeClasspathEntry projectEntry = JavaRuntime.newDefaultProjectClasspathEntry(this.javaProject); - projectEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES); - - return projectEntry; - } - - protected static IRuntimeClasspathEntry getArchiveClasspathEntry(IPath archivePath) { - IRuntimeClasspathEntry archiveEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(archivePath); - archiveEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES); - - return archiveEntry; - } - - - // ********** LaunchConfig ********** - - private ILaunch saveAndLaunchConfig(IProgressMonitor monitor) { - SubMonitor sm = SubMonitor.convert(monitor, 10); - ILaunchConfiguration configuration = null; - ILaunch result = null; - try { - sm.subTask(JptCommonCoreMessages.GENERATION_SAVING_LAUNCH_CONFIG_TASK); - configuration = this.launchConfig.doSave(); - } - catch (CoreException saveException) { - throw new RuntimeException("Could not save LaunchConfig", saveException); //$NON-NLS-1$ - } - sm.worked(1); - if (sm.isCanceled()) { - throw new OperationCanceledException(); - } - try { - sm.subTask(JptCommonCoreMessages.GENERATION_LAUNCHING_CONFIG_TASK); - result = configuration.launch(ILaunchManager.RUN_MODE, sm.newChild(9)); - } - catch (CoreException launchException) { - throw new RuntimeException("An error occured during launch", launchException); //$NON-NLS-1$ - } - return result; - } - - // ********** Main arguments ********** - - protected void appendDebugArgument(StringBuffer sb) { - if (this.isDebug) { - sb.append(" -debug"); //$NON-NLS-1$ - } - } - - // ********** Queries ********** - - protected ILaunch getLaunch() { - return this.launch; - } - - protected ILaunchManager getLaunchManager() { - return DebugPlugin.getDefault().getLaunchManager(); - } - - private IVMInstall getProjectJRE() throws CoreException { - return JavaRuntime.getVMInstall(this.javaProject); - } - - // ********** Utilities ********** - - protected IRuntimeClasspathEntry getBootstrapJarClasspathEntry() { - return getArchiveClasspathEntry(this.buildBootstrapJarPath()); - } - - protected IPath buildBootstrapJarPath() { - return this.findGenJarStartingWith(this.getBootstrapJarPrefix()); - } - - protected IPath findGenJarStartingWith(String genJarName) { - try { - File jarInstallDir = this.getBundleParentDir(JptCommonCorePlugin.PLUGIN_ID); - - List result = new ArrayList(); - this.findFileStartingWith(genJarName, jarInstallDir, result); - if (result.isEmpty()) { - throw new RuntimeException("Could not find: " + genJarName + "#.#.#v###.jar in: " + jarInstallDir); //$NON-NLS-1$ //$NON-NLS-2$ - } - File genJarFile = result.get(0); - String genJarPath = genJarFile.getCanonicalPath(); - return new Path(genJarPath); - } - catch (IOException e) { - throw new RuntimeException(e); - } - } - - // ********** private methods ********** - - private File getBundleParentDir(String bundleName) throws IOException { - - if (Platform.inDevelopmentMode()) { - Location eclipseHomeLoc = Platform.getInstallLocation(); - String eclipseHome = eclipseHomeLoc.getURL().getPath(); - if ( ! eclipseHome.endsWith(PLUGINS_DIR)) { - eclipseHome += PLUGINS_DIR; - } - return new File(eclipseHome); - } - Bundle bundle = Platform.getBundle(bundleName); - return FileLocator.getBundleFile(bundle).getParentFile(); - } - - private ILaunchConfigurationWorkingCopy buildLaunchConfiguration() throws CoreException { - this.removeLaunchConfiguration(); - - ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager(); - ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION); - - return type.newInstance(null, this.getLaunchConfigName()); - } - - private void removeLaunchConfiguration() throws CoreException { - - ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager(); - ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION); - - ILaunchConfiguration[] configurations = manager.getLaunchConfigurations(type); - for (int i = 0; i < configurations.length; i++) { - ILaunchConfiguration configuration = configurations[i]; - if (configuration.getName().equals(this.getLaunchConfigName())) { - configuration.delete(); - break; - } - } - } - - private void findFileStartingWith(String fileName, File directory, List list) { - if(directory.listFiles() == null) { - throw new RuntimeException("Could not find directory: " + directory); //$NON-NLS-1$ - } - for (File file : directory.listFiles()) { - if (file.getName().startsWith(fileName)) { - list.add(file); - } - if (file.isDirectory()) { - this.findFileStartingWith(fileName, file, list); - } - } - } - - private void specifyWorkingDir() { - File workingDir = new Path(this.projectLocation).toFile(); - this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, workingDir.getAbsolutePath()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/JptOsgiBundlesLibraryProviderInstallOperationConfig.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/JptOsgiBundlesLibraryProviderInstallOperationConfig.java deleted file mode 100644 index b91c73b440..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/JptOsgiBundlesLibraryProviderInstallOperationConfig.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.libprov; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.libprov.JptLibraryProviderInstallOperationConfig; -import org.eclipse.jpt.common.core.libval.LibraryValidator; -import org.eclipse.jst.j2ee.internal.common.classpath.WtpOsgiBundlesLibraryProviderInstallOperationConfig; - - -public abstract class JptOsgiBundlesLibraryProviderInstallOperationConfig - extends WtpOsgiBundlesLibraryProviderInstallOperationConfig - implements JptLibraryProviderInstallOperationConfig { - - protected JptOsgiBundlesLibraryProviderInstallOperationConfig() { - super(); - } - - - @Override - public synchronized IStatus validate() { - IStatus status = super.validate(); - if (! status.isOK()) { - return status; - } - - for (LibraryValidator libraryValidator : JptCommonCorePlugin.getLibraryValidators(this)) { - status = libraryValidator.validate(this); - if (! status.isOK()) { - return status; - } - } - - return Status.OK_STATUS; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/JptUserLibraryProviderInstallOperationConfig.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/JptUserLibraryProviderInstallOperationConfig.java deleted file mode 100644 index 224f52afe2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/JptUserLibraryProviderInstallOperationConfig.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.libprov; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.libprov.JptLibraryProviderInstallOperationConfig; -import org.eclipse.jpt.common.core.libval.LibraryValidator; -import org.eclipse.jst.j2ee.internal.common.classpath.WtpUserLibraryProviderInstallOperationConfig; - - -public abstract class JptUserLibraryProviderInstallOperationConfig - extends WtpUserLibraryProviderInstallOperationConfig - implements JptLibraryProviderInstallOperationConfig { - - protected JptUserLibraryProviderInstallOperationConfig() { - super(); - } - - - @Override - public synchronized IStatus validate() { - IStatus status = super.validate(); - if (! status.isOK()) { - return status; - } - - for (LibraryValidator libraryValidator : JptCommonCorePlugin.getLibraryValidators(this)) { - status = libraryValidator.validate(this); - if (! status.isOK()) { - return status; - } - } - - return Status.OK_STATUS; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/LibraryProviderPropertyTester.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/LibraryProviderPropertyTester.java deleted file mode 100644 index e3bb569eed..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libprov/LibraryProviderPropertyTester.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.libprov; - -import org.eclipse.core.expressions.PropertyTester; -import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider; - -public class LibraryProviderPropertyTester - extends PropertyTester { - - public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { - if (! (property.equals("id") || property.equals("extendsId")) //$NON-NLS-1$ //$NON-NLS-2$ - || ! (receiver instanceof ILibraryProvider) - || ! (expectedValue instanceof String)) { - return false; - } - - ILibraryProvider libraryProvider = (ILibraryProvider) receiver; - - if (property.equals("id")) { //$NON-NLS-1$ - return libraryProvider.getId().equals(expectedValue); - } - else if (property.equals("extendsId")) { //$NON-NLS-1$ - while (libraryProvider != null) { - if (libraryProvider.getId().equals(expectedValue)) { - return true; - } - libraryProvider = libraryProvider.getBaseProvider(); - } - } - - return false; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibValUtil.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibValUtil.java deleted file mode 100644 index 34afb0c83b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibValUtil.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.libval; - -import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.PLUGIN_ID; -import java.io.File; -import java.io.IOException; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jpt.common.core.internal.JptCommonCoreMessages; -import org.eclipse.osgi.util.NLS; - - -public class LibValUtil { - - public static IStatus validate(Iterable libraryPaths, Set classNames) { - Set classFileNames = new HashSet(); - Map classFileNameToClassName = new HashMap(); - for (String className : classNames) { - String classFileName = className.replace('.', '/') + ".class"; //$NON-NLS-1$ - classFileNames.add(classFileName); - classFileNameToClassName.put(classFileName, className); - } - - final Map classAppearanceCounts = new HashMap(); - - for (String classFileName : classFileNames) { - classAppearanceCounts.put(classFileName, 0); - } - - for (IPath libraryPath : libraryPaths) { - final File file = libraryPath.toFile(); - - if (file.exists()) { - ZipFile zip = null; - - try { - zip = new ZipFile(file); - - for (Enumeration itr = zip.entries(); itr.hasMoreElements(); ) { - final ZipEntry zipEntry = itr.nextElement(); - final String name = zipEntry.getName(); - - Integer count = classAppearanceCounts.get(name); - - if (count != null) { - classAppearanceCounts.put(name, count + 1); - } - } - } - catch (IOException e) {} - finally { - if (zip != null) { - try { - zip.close(); - } - catch (IOException e) {} - } - } - } - } - - for (Map.Entry entry : classAppearanceCounts.entrySet()) { - final int count = entry.getValue(); - - if (count == 0) { - final String classFileName = entry.getKey(); - final String className = classFileNameToClassName.get(classFileName); - final String message = - NLS.bind(JptCommonCoreMessages.USER_LIBRARY_VALIDATOR__CLASS_NOT_FOUND, className); - return new Status(IStatus.ERROR, PLUGIN_ID, message); - } - } - - return Status.OK_STATUS; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibraryValidatorConfig.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibraryValidatorConfig.java deleted file mode 100644 index 27a84ae9ba..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibraryValidatorConfig.java +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.libval; - -import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log; -import org.eclipse.core.expressions.EvaluationContext; -import org.eclipse.core.expressions.EvaluationResult; -import org.eclipse.core.expressions.Expression; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jpt.common.core.internal.utility.XPointTools; -import org.eclipse.jpt.common.core.libprov.JptLibraryProviderInstallOperationConfig; -import org.eclipse.jpt.common.core.libval.LibraryValidator; - -public class LibraryValidatorConfig { - - public static final String CONFIG_EXPR_VAR = "config"; //$NON-NLS-1$ - public static final String LIBRARY_PROVIDER_EXPR_VAR = "libraryProvider"; //$NON-NLS-1$ - - - private String id; - private String pluginId; - private String className; - private Expression enablementCondition; - - - LibraryValidatorConfig() { - super(); - } - - - public String getId() { - return this.id; - } - - void setId(String id) { - this.id = id; - } - - public String getPluginId() { - return this.pluginId; - } - - void setPluginId(String pluginId) { - this.pluginId = pluginId; - } - - public String getClassName() { - return this.className; - } - - void setClassName(String className) { - this.className = className; - } - - public Expression getEnablementCondition() { - return this.enablementCondition; - } - - void setEnablementCondition(Expression enablementCondition) { - this.enablementCondition = enablementCondition; - } - - public LibraryValidator getLibraryValidator() { - return XPointTools.instantiate( - this.pluginId, LibraryValidatorManager.QUALIFIED_EXTENSION_POINT_ID, - this.className, LibraryValidator.class); - } - - public boolean isEnabledFor(JptLibraryProviderInstallOperationConfig config) { - EvaluationContext evalContext = new EvaluationContext(null, config); - evalContext.setAllowPluginActivation(true); - evalContext.addVariable(CONFIG_EXPR_VAR, config); - evalContext.addVariable(LIBRARY_PROVIDER_EXPR_VAR, config.getLibraryProvider()); - - if (this.enablementCondition != null) { - try { - EvaluationResult evalResult = this.enablementCondition.evaluate(evalContext); - - if (evalResult == EvaluationResult.FALSE) { - return false; - } - } - catch (CoreException e) { - log(e); - } - } - - return true; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibraryValidatorManager.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibraryValidatorManager.java deleted file mode 100644 index ce7c2eb179..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/libval/LibraryValidatorManager.java +++ /dev/null @@ -1,149 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.libval; - -import static org.eclipse.jpt.common.core.internal.utility.XPointTools.*; -import java.util.ArrayList; -import java.util.List; -import org.eclipse.core.expressions.Expression; -import org.eclipse.core.expressions.ExpressionConverter; -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.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.internal.utility.XPointTools.XPointException; -import org.eclipse.jpt.common.core.libprov.JptLibraryProviderInstallOperationConfig; -import org.eclipse.jpt.common.core.libval.LibraryValidator; -import org.eclipse.jpt.common.utility.internal.KeyedSet; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; - -public class LibraryValidatorManager { - - public static final String EXTENSION_POINT_ID = "libraryValidators"; //$NON-NLS-1$ - public static final String QUALIFIED_EXTENSION_POINT_ID = JptCommonCorePlugin.PLUGIN_ID_ + EXTENSION_POINT_ID; - public static final String LIBRARY_VALIDATOR_ELEMENT = "libraryValidator"; //$NON-NLS-1$ - public static final String ID_ATTRIBUTE = "id"; //$NON-NLS-1$ - public static final String CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$ - public static final String ENABLEMENT_ELEMENT = "enablement"; //$NON-NLS-1$ - - - private static LibraryValidatorManager INSTANCE = new LibraryValidatorManager(); - - - public static LibraryValidatorManager instance() { - return INSTANCE; - } - - - private KeyedSet libraryValidatorConfigs; - - - private LibraryValidatorManager() { - this.libraryValidatorConfigs = new KeyedSet(); - readExtensions(); - } - - - /** - * Return the {@link LibraryValidator}s - */ - public Iterable getLibraryValidators(final JptLibraryProviderInstallOperationConfig config) { - return new FilteringIterable( - new TransformationIterable( - new FilteringIterable( - this.libraryValidatorConfigs.getItemSet()) { - @Override - protected boolean accept(LibraryValidatorConfig o) { - return o.isEnabledFor(config); - } - }) { - @Override - protected LibraryValidator transform(LibraryValidatorConfig o) { - return o.getLibraryValidator(); - } - }) { - @Override - protected boolean accept(LibraryValidator o) { - return o != null; - } - }; - } - - private void readExtensions() { - final IExtensionRegistry registry = Platform.getExtensionRegistry(); - - final IExtensionPoint xpoint - = registry.getExtensionPoint(QUALIFIED_EXTENSION_POINT_ID); - - if (xpoint == null) { - throw new IllegalStateException(); - } - - final List configs = new ArrayList(); - - for (IExtension extension : xpoint.getExtensions()) { - for (IConfigurationElement element : extension.getConfigurationElements()) { - configs.add(element); - } - } - - for (IConfigurationElement element : configs) { - if (element.getName().equals(LIBRARY_VALIDATOR_ELEMENT)) { - readExtension(element); - } - } - } - - private void readExtension(IConfigurationElement element) { - try { - final LibraryValidatorConfig lvConfig = new LibraryValidatorConfig(); - - // plug-in id - lvConfig.setPluginId(element.getContributor().getName()); - - // resource locator id - lvConfig.setId(findRequiredAttribute(element, ID_ATTRIBUTE)); - - if (this.libraryValidatorConfigs.containsKey(lvConfig.getId())) { - logDuplicateExtension(QUALIFIED_EXTENSION_POINT_ID, ID_ATTRIBUTE, lvConfig.getId()); - throw new XPointException(); - } - - // resource locator class name - lvConfig.setClassName(findRequiredAttribute(element, CLASS_ATTRIBUTE)); - - // enablement - for (IConfigurationElement child : element.getChildren()) { - String childName = child.getName(); - if (childName.equals(ENABLEMENT_ELEMENT)) { - Expression expr; - try { - expr = ExpressionConverter.getDefault().perform(child); - } - catch (CoreException e) { - log(e); - throw new XPointException(); - } - lvConfig.setEnablementCondition(expr); - } - } - - this.libraryValidatorConfigs.addItem(lvConfig.getId(), lvConfig); - } - catch (XPointException e) { - // Ignore and continue. The problem has already been reported to the user - // in the log. - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/operations/AbstractJptFileCreationDataModelProvider.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/operations/AbstractJptFileCreationDataModelProvider.java deleted file mode 100644 index e15e98011a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/operations/AbstractJptFileCreationDataModelProvider.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.operations; - -import java.util.Set; -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Status; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.internal.JptCommonCoreMessages; -import org.eclipse.jpt.common.core.internal.utility.PlatformTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider; - -public abstract class AbstractJptFileCreationDataModelProvider - extends AbstractDataModelProvider - implements JptFileCreationDataModelProperties -{ - protected AbstractJptFileCreationDataModelProvider() { - super(); - } - - - @Override - public Set getPropertyNames() { - @SuppressWarnings("unchecked") - Set propertyNames = super.getPropertyNames(); - propertyNames.add(PROJECT); - propertyNames.add(CONTAINER_PATH); - propertyNames.add(FILE_NAME); - return propertyNames; - } - - @Override - public Object getDefaultProperty(String propertyName) { - if (propertyName.equals(CONTAINER_PATH)) { - IContainer sourceLocation = getDefaultContainer(); - if (sourceLocation != null && sourceLocation.exists()) { - return sourceLocation.getFullPath(); - } - } - else if (propertyName.equals(FILE_NAME)) { - return getDefaultFileName(); - } - return super.getDefaultProperty(propertyName); - } - - protected abstract String getDefaultFileName(); - - - // **************** validation ********************************************* - - @Override - public IStatus validate(String propertyName) { - IStatus status = Status.OK_STATUS; - if (propertyName.equals(CONTAINER_PATH) - || propertyName.equals(FILE_NAME)) { - status = validateContainerPathAndFileName(); - } - if (! status.isOK()) { - return status; - } - - return status; - } - - protected IStatus validateContainerPathAndFileName() { - IContainer container = getContainer(); - if (container == null) { - // verifies container has been specified, but should be unnecessary in most cases. - // there is almost always a default, and the new file wizard does this validation as well. - return new Status( - IStatus.ERROR, JptCommonCorePlugin.PLUGIN_ID, - JptCommonCoreMessages.VALIDATE_CONTAINER_NOT_SPECIFIED); - } - String fileName = getStringProperty(FILE_NAME); - if (StringTools.stringIsEmpty(fileName)) { - // verifies file name has been specified, but should be unnecessary in most cases. - // there is almost always a default, and the new file wizard does this validation as well. - return new Status( - IStatus.ERROR, JptCommonCorePlugin.PLUGIN_ID, - JptCommonCoreMessages.VALIDATE_FILE_NAME_NOT_SPECIFIED); - } - if (container.getFile(new Path(fileName)).exists()) { - // verifies file does not exist, but should be unnecessary in most cases. - // the new file wizard does this validation as well. - return new Status( - IStatus.ERROR, JptCommonCorePlugin.PLUGIN_ID, - JptCommonCoreMessages.VALIDATE_FILE_ALREADY_EXISTS); - } - return Status.OK_STATUS; - } - - - // **************** helper methods ***************************************** - - protected IPath getContainerPath() { - return (IPath) this.model.getProperty(CONTAINER_PATH); - } - - protected IContainer getContainer() { - IPath containerPath = getContainerPath(); - if (containerPath == null) { - return null; - } - return PlatformTools.getContainer(containerPath); - } - - protected IProject getProject() { - return getProject(getContainer()); - } - - protected IProject getProject(IContainer container) { - return (container == null) ? null : container.getProject(); - } - - /** - * Return a best guess source location for the for the specified project - */ - protected IContainer getDefaultContainer() { - IProject project = (IProject) this.model.getProperty(PROJECT); - if (project != null) { - return JptCommonCorePlugin.getResourceLocator(project).getDefaultResourceLocation(project); - } - return null; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/operations/JptFileCreationDataModelProperties.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/operations/JptFileCreationDataModelProperties.java deleted file mode 100644 index 5c635c98c8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/operations/JptFileCreationDataModelProperties.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2011 Oracle. - * All rights reserved. This program and the accompanying materials are - * made available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.operations; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; - -public interface JptFileCreationDataModelProperties -{ - /** - * Optional, type {@link IProject}, gives a clue as to the default container path - */ - String PROJECT = "JptFileCreationDataModelProperties.PROJECT"; //$NON-NLS-1$ - - /** - * Required, type {@link IPath}, identifies the full path to the container in which - * the file should be created - */ - String CONTAINER_PATH = "JptFileCreationDataModelProperties.CONTAINER_PATH"; //$NON-NLS-1$ - - /** - * Required, type {@link String}, identifies the file name - */ - String FILE_NAME = "JptFileCreationDataModelProperties.FILE_NAME"; //$NON-NLS-1$ -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ModuleResourceLocator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ModuleResourceLocator.java deleted file mode 100644 index 104081ec57..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ModuleResourceLocator.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.resource; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.internal.utility.PlatformTools; -import org.eclipse.wst.common.componentcore.ComponentCore; -import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; -import org.eclipse.wst.common.componentcore.resources.IVirtualFile; -import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; -import org.eclipse.wst.common.componentcore.resources.IVirtualResource; - -public class ModuleResourceLocator - extends SimpleJavaResourceLocator { - - /** - * Return the folder representing the "META-INF" runtime location - */ - @Override - public IContainer getDefaultResourceLocation(IProject project) { - IVirtualComponent component = ComponentCore.createComponent(project); - return component.getRootFolder().getFolder(META_INF_PATH).getUnderlyingFolder(); - } - - @Override - public IPath getResourcePath(IProject project, IPath runtimePath) { - IVirtualComponent component = ComponentCore.createComponent(project); - return component.getRootFolder().getFile(runtimePath).getWorkspaceRelativePath(); - } - - @Override - public IPath getRuntimePath(IProject project, IPath resourcePath) { - IFile file = PlatformTools.getFile(resourcePath); - IVirtualComponent component = ComponentCore.createComponent(project); - IVirtualFolder root = component.getRootFolder(); - IVirtualFile vFile = findVirtualFile(root, file); - if (vFile != null) { - return vFile.getRuntimePath().makeRelative(); - } - // couldn't find it. try the super-case - return super.getRuntimePath(project, resourcePath); - } - - private IVirtualFile findVirtualFile(IVirtualFolder vFolder, IFile file) { - try { - for (IVirtualResource vResource : vFolder.members()) { - if (vResource.getType() == IVirtualResource.FILE) { - IVirtualFile vFile = (IVirtualFile) vResource; - if (file.equals(vFile.getUnderlyingResource())) { - return vFile; - } - } - else if (vResource.getType() == IVirtualResource.FOLDER) { - IVirtualFile vFile = findVirtualFile((IVirtualFolder) vResource, file); - if (vFile != null) { - return vFile; - } - } - } - } - catch (CoreException ce) { - // fall through - JptCommonCorePlugin.log(ce); - } - return null; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/PluginResourceLocator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/PluginResourceLocator.java deleted file mode 100644 index 4dcd3fd221..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/PluginResourceLocator.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.resource; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.internal.utility.PlatformTools; -import org.eclipse.pde.core.project.IBundleProjectDescription; -import org.eclipse.pde.core.project.IBundleProjectService; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceReference; - -public class PluginResourceLocator - extends SimpleJavaResourceLocator { - - @Override - public IContainer getDefaultResourceLocation(IProject project) { - try { - IContainer root = getBundleRoot(project); - return root.getFolder(META_INF_PATH); - } - catch (CoreException ce) { - // fall through - JptCommonCorePlugin.log(ce); - } - return super.getDefaultResourceLocation(project); - } - - @Override - public IPath getResourcePath(IProject project, IPath runtimePath) { - try { - IContainer root = getBundleRoot(project); - IPath resourcePath = root.getFullPath().append(runtimePath); - if (project.getWorkspace().getRoot().getFile(resourcePath).exists()) { - return resourcePath; - } - } - catch (CoreException ce) { - // fall through - JptCommonCorePlugin.log(ce); - } - return super.getResourcePath(project, runtimePath); - } - - @Override - public IPath getRuntimePath(IProject project, IPath resourcePath) { - IFile file = PlatformTools.getFile(resourcePath); - try { - IContainer root = getBundleRoot(project); - if (root.contains(file)) { - return resourcePath.makeRelativeTo(root.getFullPath()); - } - } - catch (CoreException ce) { - // fall through - JptCommonCorePlugin.log(ce); - } - return super.getRuntimePath(project, resourcePath); - } - - protected IContainer getBundleRoot(IProject project) - throws CoreException { - - IBundleProjectService service = getBundleProjectService(); - IBundleProjectDescription description = service.getDescription(project); - IPath path = description.getBundleRoot(); - return (path == null) ? project : project.getFolder(path); - } - - protected IBundleProjectService getBundleProjectService() { - BundleContext context = JptCommonCorePlugin.instance().getBundle().getBundleContext(); - ServiceReference reference = context.getServiceReference(IBundleProjectService.class); - if (reference == null) { - return null; - } - IBundleProjectService service = context.getService(reference); - if (service != null) { - context.ungetService(reference); - } - return service; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ResourceLocatorConfig.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ResourceLocatorConfig.java deleted file mode 100644 index 8de6363a4b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ResourceLocatorConfig.java +++ /dev/null @@ -1,168 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.resource; - -import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log; -import org.eclipse.core.expressions.EvaluationContext; -import org.eclipse.core.expressions.EvaluationResult; -import org.eclipse.core.expressions.Expression; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.internal.utility.XPointTools; -import org.eclipse.jpt.common.core.resource.ResourceLocator; -import org.eclipse.jpt.common.utility.internal.StringTools; - -public class ResourceLocatorConfig - implements Comparable { - - public static final String PROJECT_ENABLEMENT_VARIABLE = "project"; //$NON-NLS-1$ - - private String id; - private String pluginId; - private String className; - private Priority priority; - private Expression enablementCondition; - - - ResourceLocatorConfig() { - super(); - } - - - public String getId() { - return this.id; - } - - void setId(String id) { - this.id = id; - } - - public String getPluginId() { - return this.pluginId; - } - - void setPluginId(String pluginId) { - this.pluginId = pluginId; - } - - public String getClassName() { - return this.className; - } - - void setClassName(String className) { - this.className = className; - } - - public Priority getPriority() { - return this.priority; - } - - void setPriority(Priority priority) { - this.priority = priority; - } - - public Expression getEnablementCondition() { - return this.enablementCondition; - } - - void setEnablementCondition(Expression enablementCondition) { - this.enablementCondition = enablementCondition; - } - - public ResourceLocator getResourceLocator() { - return XPointTools.instantiate( - JptCommonCorePlugin.PLUGIN_ID, ResourceLocatorManager.QUALIFIED_EXTENSION_POINT_ID, - this.className, ResourceLocator.class); - } - - public boolean isEnabledFor(IProject project) { - EvaluationContext evalContext = new EvaluationContext(null, project); - evalContext.setAllowPluginActivation(true); - evalContext.addVariable(PROJECT_ENABLEMENT_VARIABLE, project); - - if (this.enablementCondition != null) { - try { - EvaluationResult evalResult = this.enablementCondition.evaluate(evalContext); - - if (evalResult == EvaluationResult.FALSE) { - return false; - } - } - catch (CoreException e) { - log(e); - } - } - - return true; - } - - public int compareTo(ResourceLocatorConfig other) { - return Priority.compare(this.priority, other.priority); - } - - - public static enum Priority { - - /* The lowest priority for a resource locator */ - LOWEST(6, "lowest"), //$NON-NLS-1$ - - /* The second lowest priority for a resource locator */ - LOWER(5, "lower"), //$NON-NLS-1$ - - /* The third lowest priority for a resource locator */ - LOW(4, "low"), //$NON-NLS-1$ - - /* The default priority for a resource locator */ - NORMAL(3, "normal"), //$NON-NLS-1$ - - /* The third highest priority for a resource locator */ - HIGH(2, "high"), //$NON-NLS-1$ - - /* The second highest priority for a resource locator */ - HIGHER(1, "higher"), //$NON-NLS-1$ - - /* The highest priority for a resource locator */ - HIGHEST(0, "highest"); //$NON-NLS-1$ - - - public static int compare(Priority priority1, Priority priority2) { - return priority1.value.compareTo(priority2.value); - } - - public static Priority get(String literal) { - if (literal == null) { - return NORMAL; - } - for (Priority priority : values()) { - if (StringTools.stringsAreEqual(literal, priority.literal)) { - return priority; - } - } - return null; - } - - - private Integer value; - private String literal; - - - private Priority(int value, String literal) { - this.value = Integer.valueOf(value); - this.literal = literal; - } - - - @Override - public String toString() { - return this.literal; - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ResourceLocatorManager.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ResourceLocatorManager.java deleted file mode 100644 index 51fb9d5820..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/ResourceLocatorManager.java +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.resource; - -import static org.eclipse.jpt.common.core.internal.utility.XPointTools.findRequiredAttribute; -import static org.eclipse.jpt.common.core.internal.utility.XPointTools.log; -import static org.eclipse.jpt.common.core.internal.utility.XPointTools.logDuplicateExtension; -import static org.eclipse.jpt.common.core.internal.utility.XPointTools.logInvalidValue; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.TreeSet; -import org.eclipse.core.expressions.Expression; -import org.eclipse.core.expressions.ExpressionConverter; -import org.eclipse.core.resources.IProject; -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.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.internal.resource.ResourceLocatorConfig.Priority; -import org.eclipse.jpt.common.core.internal.utility.XPointTools.XPointException; -import org.eclipse.jpt.common.core.resource.ResourceLocator; -import org.eclipse.jpt.common.utility.internal.KeyedSet; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; - -public class ResourceLocatorManager { - - public static final String EXTENSION_POINT_ID = "resourceLocators"; //$NON-NLS-1$ - public static final String QUALIFIED_EXTENSION_POINT_ID = JptCommonCorePlugin.PLUGIN_ID_ + EXTENSION_POINT_ID; - public static final String RESOURCE_LOCATOR_ELEMENT = "resourceLocator"; //$NON-NLS-1$ - public static final String ID_ATTRIBUTE = "id"; //$NON-NLS-1$ - public static final String CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$ - public static final String PRIORITY_ATTRIBUTE = "priority"; //$NON-NLS-1$ - public static final String ENABLEMENT_ELEMENT = "enablement"; //$NON-NLS-1$ - - - private static ResourceLocatorManager INSTANCE = new ResourceLocatorManager(); - - - public static ResourceLocatorManager instance() { - return INSTANCE; - } - - - private KeyedSet resourceLocatorConfigs; - - - private ResourceLocatorManager() { - this.resourceLocatorConfigs = new KeyedSet(); - readExtensions(); - } - - - /** - * Return the {@link ResourceLocator} of highest priority that is acceptable - * for the given project - */ - public ResourceLocator getResourceLocator(final IProject project) { - Iterator stream = new FilteringIterable( - new TransformationIterable( - new FilteringIterable( - new TreeSet(this.resourceLocatorConfigs.getItemSet())) { - @Override - protected boolean accept(ResourceLocatorConfig o) { - return o.isEnabledFor(project); - } - }) { - @Override - protected ResourceLocator transform(ResourceLocatorConfig o) { - return o.getResourceLocator(); - } - }) { - @Override - protected boolean accept(ResourceLocator o) { - return o != null; - } - }.iterator(); - return (stream.hasNext()) ? stream.next() : null; - } - - private void readExtensions() { - final IExtensionRegistry registry = Platform.getExtensionRegistry(); - - final IExtensionPoint xpoint - = registry.getExtensionPoint(QUALIFIED_EXTENSION_POINT_ID); - - if (xpoint == null) { - throw new IllegalStateException(); - } - - final List configs = new ArrayList(); - - for (IExtension extension : xpoint.getExtensions()) { - for (IConfigurationElement element : extension.getConfigurationElements()) { - configs.add(element); - } - } - - for (IConfigurationElement element : configs) { - if (element.getName().equals(RESOURCE_LOCATOR_ELEMENT)) { - readExtension(element); - } - } - } - - private void readExtension(IConfigurationElement element) { - try { - final ResourceLocatorConfig rlConfig = new ResourceLocatorConfig(); - - // plug-in id - rlConfig.setPluginId(element.getContributor().getName()); - - // resource locator id - rlConfig.setId(findRequiredAttribute(element, ID_ATTRIBUTE)); - - if (this.resourceLocatorConfigs.containsKey(rlConfig.getId())) { - logDuplicateExtension(QUALIFIED_EXTENSION_POINT_ID, ID_ATTRIBUTE, rlConfig.getId()); - throw new XPointException(); - } - - // resource locator class name - rlConfig.setClassName(findRequiredAttribute(element, CLASS_ATTRIBUTE)); - - // priority - String priorityString = element.getAttribute(PRIORITY_ATTRIBUTE).trim(); - Priority priority = Priority.get(priorityString); - if (priority == null) { - logInvalidValue(element, PRIORITY_ATTRIBUTE, priorityString); - throw new XPointException(); - } - rlConfig.setPriority(priority); - - // enablement - for (IConfigurationElement child : element.getChildren()) { - String childName = child.getName(); - if (childName.equals(ENABLEMENT_ELEMENT)) { - Expression expr; - try { - expr = ExpressionConverter.getDefault().perform(child); - } - catch (CoreException e) { - log(e); - throw new XPointException(); - } - rlConfig.setEnablementCondition(expr); - } - } - - this.resourceLocatorConfigs.addItem(rlConfig.getId(), rlConfig); - } - catch (XPointException e) { - // Ignore and continue. The problem has already been reported to the user - // in the log. - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/SimpleJavaResourceLocator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/SimpleJavaResourceLocator.java deleted file mode 100644 index 2050f09006..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/SimpleJavaResourceLocator.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.resource; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.internal.utility.PlatformTools; -import org.eclipse.jpt.common.core.resource.ResourceLocator; -import org.eclipse.jst.j2ee.internal.J2EEConstants; - -public class SimpleJavaResourceLocator - implements ResourceLocator { - - protected static IPath META_INF_PATH = new Path(J2EEConstants.META_INF); - - /** - * Simply ensure the container is either: - * - on the java project classpath - * or - * - in the non-java resources, but not in the project output location - */ - public boolean acceptResourceLocation(IProject project, IContainer container) { - IJavaProject javaProject = getJavaProject(project); - if (javaProject.isOnClasspath(container)) { - return true; - } - try { - IPath outputLocation = javaProject.getOutputLocation(); - if (container.equals(project) && outputLocation.isPrefixOf(container.getFullPath())) { - return true; - } - for (Object resource : javaProject.getNonJavaResources()) { - if (resource instanceof IFolder) { - IFolder folder = (IFolder) resource; - if ((folder.equals(container) || folder.contains(container)) - && ! outputLocation.isPrefixOf(container.getFullPath())) { - return true; - } - } - } - } - catch (JavaModelException jme) { - JptCommonCorePlugin.log(jme); - // only happens if the java project doesn't exist. fall through. - } - return false; - } - - /** - * Return - * - the first package fragment root (source folder) META-INF folder if it exists, - * or - * - the project rooted META-INF folder if it exists - * or - * - the non-existent META-INF folder in the first package fragment root (source folder) - */ - public IContainer getDefaultResourceLocation(IProject project) { - IJavaProject javaProject = getJavaProject(project); - IContainer defaultLocation = null; - try { - for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { - if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { - IContainer rootContainer = (IContainer) root.getUnderlyingResource(); - IFolder metaInfFolder = rootContainer.getFolder(META_INF_PATH); - if (metaInfFolder.exists()) { - return metaInfFolder; - } - if (defaultLocation == null) { - // hold on to this in case the META-INF folder can't be found - defaultLocation = metaInfFolder; - } - } - } - IFolder metaInfFolder = project.getFolder(META_INF_PATH); - if (metaInfFolder.exists()) { - return metaInfFolder; - } - } - catch (JavaModelException jme) { - // only happens if the java project doesn't exist or there is some problem with the - // java resources. fall through. - JptCommonCorePlugin.log(jme); - } - - return defaultLocation; - } - - public IPath getResourcePath(IProject project, IPath runtimePath) { - IJavaProject javaProject = getJavaProject(project); - IPath firstResourcePath = null; - try { - for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { - if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { - IContainer rootContainer = (IContainer) root.getUnderlyingResource(); - IPath resourcePath = rootContainer.getFullPath().append(runtimePath); - if (firstResourcePath == null) { - firstResourcePath = resourcePath; - } - IFile file = project.getWorkspace().getRoot().getFile(resourcePath); - if (file.exists()) { - return file.getFullPath(); - } - } - } - } - catch (JavaModelException jme) { - JptCommonCorePlugin.log(jme); - return null; - } - return firstResourcePath; - } - - public IPath getRuntimePath(IProject project, IPath resourcePath) { - IJavaProject javaProject = getJavaProject(project); - IFile file = PlatformTools.getFile(resourcePath); - try { - for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { - if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { - IContainer rootContainer = (IContainer) root.getUnderlyingResource(); - if (rootContainer.contains(file)) { - return resourcePath.makeRelativeTo(rootContainer.getFullPath()); - } - } - } - } - catch (JavaModelException jme) { - // fall through - JptCommonCorePlugin.log(jme); - } - return resourcePath.makeRelativeTo(project.getFullPath()); - } - - private IJavaProject getJavaProject(IProject project) { - return JavaCore.create(project); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/WebModuleResourceLocator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/WebModuleResourceLocator.java deleted file mode 100644 index a7fffe7e8c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/WebModuleResourceLocator.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.resource; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.jst.j2ee.internal.J2EEConstants; -import org.eclipse.wst.common.componentcore.ComponentCore; -import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; - -public class WebModuleResourceLocator - extends ModuleResourceLocator{ - - protected static IPath WEB_INF_CLASSES_PATH = new Path(J2EEConstants.WEB_INF_CLASSES); - - /** - * Return the folder representing the "WEB-INF/classes/META-INF" location - */ - @Override - public IContainer getDefaultResourceLocation(IProject project) { - IVirtualComponent component = ComponentCore.createComponent(project); - return component.getRootFolder().getFolder(WEB_INF_CLASSES_PATH.append(META_INF_PATH)).getUnderlyingFolder(); - } - - /** - * Return the full resource path representing the given runtime location appended - * to the "WEB-INF/classes" location - */ - @Override - public IPath getResourcePath(IProject project, IPath runtimePath) { - return super.getResourcePath(project, WEB_INF_CLASSES_PATH.append(runtimePath)); - } - - /** - * - */ - @Override - public IPath getRuntimePath(IProject project, IPath resourcePath) { - IPath runtimePath = super.getRuntimePath(project, resourcePath); - if (WEB_INF_CLASSES_PATH.isPrefixOf(runtimePath)) { - return runtimePath.makeRelativeTo(WEB_INF_CLASSES_PATH); - } - return runtimePath; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/CallbackJobSynchronizer.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/CallbackJobSynchronizer.java deleted file mode 100644 index 38a4cda80f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/CallbackJobSynchronizer.java +++ /dev/null @@ -1,154 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.synchronizers.CallbackSynchronizer; - -/** - * Extend the job synchronizer to notify listeners - * when a synchronization "cycle" is complete; i.e. the synchronization has, - * for the moment, handled every "synchronize" request and quiesced. - * This notification is not guaranteed to occur with every - * synchronization "cycle"; - * since other, unrelated, synchronizations can be triggered concurrently; - * preventing the synchronization from quiescing. - */ -public class CallbackJobSynchronizer - extends JobSynchronizer - implements CallbackSynchronizer -{ - private final ListenerList listenerList = new ListenerList(Listener.class); - - - // ********** construction ********** - - /** - * Construct a callback job synchronizer that uses the specified job command to - * perform the synchronization. Assign the generated Eclipse job the - * specified name. - */ - public CallbackJobSynchronizer(String jobName, JobCommand command) { - super(jobName, command); - } - - /** - * Construct a callback job synchronizer that uses the specified job command to - * perform the synchronization. Assign the generated Eclipse job the - * specified name and scheduling rule. - */ - public CallbackJobSynchronizer(String jobName, JobCommand command, ISchedulingRule schedulingRule) { - super(jobName, command, schedulingRule); - } - - /** - * Build a job that will let us know when the synchronization has - * quiesced. - */ - @Override - SynchronizationJob buildJob(String jobName, JobCommand command, ISchedulingRule schedulingRule) { - return new CallbackSynchronizationJob(jobName, command, schedulingRule); - } - - - // ********** CallbackSynchronizer implementation ********** - - public void addListener(Listener listener) { - this.listenerList.add(listener); - } - - public void removeListener(Listener listener) { - this.listenerList.remove(listener); - } - - /** - * Notify our listeners. - */ - void synchronizationQuiesced() { - for (Listener listener : this.listenerList.getListeners()) { - listener.synchronizationQuiesced(this); - } - } - - - // ********** synchronization job ********** - - /** - * Extend {@link JobSynchronizer.SynchronizationJob} - * to notify the synchronizer when the synchronization has quiesced - * (i.e. the command has finished executing and there are no further - * requests for synchronization). - * Because synchronization occurs during the job's execution, - * no other thread will be able to - * initiate another synchronization until the synchronizer's listeners have been - * notified. Note also, the synchronizer's listeners can, themselves, - * trigger another synchronization (by directly or indirectly calling - * {@link org.eclipse.jpt.common.utility.synchronizers.Synchronizer#synchronize()}); - * but this synchronization will not occur until after all the - * listeners have been notified. - */ - class CallbackSynchronizationJob - extends SynchronizationJob - { - /** - * When this flag is set to true, the job has been scheduled to run. - * We need this because {@link org.eclipse.core.runtime.jobs.Job Job} - * has no public API for discovering whether a job is "scheduled". - */ - // use 'volatile' because synchronization isn't really required - private volatile boolean scheduled; - - - CallbackSynchronizationJob(String jobName, JobCommand command, ISchedulingRule schedulingRule) { - super(jobName, command, schedulingRule); - this.scheduled = false; - } - - /** - * If we are allowing the job to be scheduled (i.e. {@link #start()} - * was called), set the "scheduled" flag. - */ - @Override - void synchronize() { - if (this.shouldSchedule) { - this.scheduled = true; - } - super.synchronize(); - } - - /** - * Clear the "scheduled" flag; perform the synchronization; and, - * if the "scheduled" flag is still clear (i.e. there have been no - * further calls to {@link #synchronize()}), notify our listeners. - */ - @Override - protected IStatus run(IProgressMonitor monitor) { - this.scheduled = false; - IStatus status = super.run(monitor); - // hmmm - we will notify listeners even when we our job is "stopped"; - // that seems ok... ~bjv - if ( ! this.scheduled) { - CallbackJobSynchronizer.this.synchronizationQuiesced(); - } - return status; - } - - @Override - void stop() { - this.scheduled = false; - super.stop(); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/ICUStringCollator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/ICUStringCollator.java deleted file mode 100644 index 555fa43caf..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/ICUStringCollator.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility; - -import java.util.Comparator; -import java.util.Locale; -import org.eclipse.jpt.common.utility.internal.StringTools; -import com.ibm.icu.text.Collator; - -/** - * This collator simply wraps an ICU4J collator and implements a - * {@link String} {@link Comparator} (instead of an {@link Object} - * {@link Comparator}, which is what {@link Collator} does, mimicking the - * JDK(?)). - * - * @see Collator - */ -public class ICUStringCollator - implements Comparator -{ - private final Collator collator; - - - /** - * Wrap the default collator. - * @see Collator#getInstance() - */ - public ICUStringCollator() { - this(Collator.getInstance()); - } - - /** - * Wrap the collator for the specified locale. - * @see Collator#getInstance(Locale) - */ - public ICUStringCollator(Locale locale) { - this(Collator.getInstance(locale)); - } - - /** - * Wrap the specified collator. - */ - public ICUStringCollator(Collator collator) { - super(); - this.collator = collator; - } - - public int compare(String string1, String string2) { - return this.collator.compare(string1, string2); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.collator); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JDTTools.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JDTTools.java deleted file mode 100644 index 4052d252da..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JDTTools.java +++ /dev/null @@ -1,276 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility; - -import java.io.FileNotFoundException; -import java.util.ArrayList; -import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.eclipse.jdt.core.IParent; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.ClassName; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; - -/** - * Convenience methods for dealing with JDT core - */ -public final class JDTTools { - - /** - * Wrap checked exception. - */ - public static boolean packageFragmentRootIsSourceFolder(IPackageFragmentRoot pfr) { - try { - return packageFragmentRootIsSourceFolder_(pfr); - } catch (JavaModelException ex) { - JptCommonCorePlugin.log(ex); - return false; - } - } - - static boolean packageFragmentRootIsSourceFolder_(IPackageFragmentRoot pfr) throws JavaModelException { - return pfr.exists() && (pfr.getKind() == IPackageFragmentRoot.K_SOURCE); - } - - /** - * Wrap checked exception and check for out of sync workspace. - */ - public static IJavaElement[] getChildren(IParent parent) { - try { - return parent.getChildren(); - } catch (JavaModelException ex) { - // ignore FNFE - which can happen when the workspace is out of sync with O/S file system - if ( ! (ex.getCause() instanceof FileNotFoundException)) { - JptCommonCorePlugin.log(ex); - } - return EMPTY_JAVA_ELEMENT_ARRAY; - } - } - - private static final IJavaElement[] EMPTY_JAVA_ELEMENT_ARRAY = new IJavaElement[0]; - - /** - * Climb the specified type's inheritance hierarchy looking for the - * specified interface. - */ - public static boolean typeNamedImplementsInterfaceNamed(IJavaProject javaProject, String typeName, String interfaceName) { - try { - return typeImplementsInterface(javaProject, javaProject.findType(typeName), javaProject.findType(interfaceName)); - } catch (JavaModelException ex) { - JptCommonCorePlugin.log(ex); - return false; - } - } - - private static boolean typeImplementsInterfaceNamed(IJavaProject javaProject, IType type, String interfaceName) throws JavaModelException { - return typeImplementsInterface(javaProject, type, javaProject.findType(interfaceName)); - } - - private static boolean typeImplementsInterface(IJavaProject javaProject, IType type, IType interfase) throws JavaModelException { - if ((type == null) || (interfase == null)) { - return false; - } - - String interfaceName = interfase.getFullyQualifiedName(); - for (String superInterfaceName : resolveSuperInterfaceNames(type)) { - if (superInterfaceName.equals(interfaceName)) { - return true; - } - // recurse into super interface - if (typeImplementsInterface(javaProject, javaProject.findType(superInterfaceName), interfase)) { - return true; - } - } - - if (type.getSuperclassName() == null) { - return false; - } - // recurse into superclass - return typeImplementsInterface(javaProject, javaProject.findType(resolveSuperclassName(type)), interfase); - } - - /** - * Return the names of the specified type's super interfaces. - * This is necessary because, for whatever reason, {@link IType#getSuperInterfaceNames()} - * returns unqualified names when the type is from Java source. - */ - private static Iterable resolveSuperInterfaceNames(IType type) throws JavaModelException { - if (type.isBinary()) { - return new ArrayIterable(type.getSuperInterfaceNames()); - } - ArrayList resolvedSuperInterfaceNames = new ArrayList(); - for (String superInterfaceName : type.getSuperInterfaceNames()) { - resolvedSuperInterfaceNames.add(resolveType(type, superInterfaceName)); - } - return resolvedSuperInterfaceNames; - } - - /** - * Return the name of the specified type's superclass. - * This is necessary because, for whatever reason, {@link IType#getSuperclassName()} - * returns unqualified names when the type is from Java source. - */ - private static String resolveSuperclassName(IType type) throws JavaModelException { - return type.isBinary() ? - type.getSuperclassName() : - resolveType(type, type.getSuperclassName()); - } - - /** - * Just grab the first candidate type. - */ - private static String resolveType(IType type, String className) throws JavaModelException { - String[][] resolvedClassNames = type.resolveType(className); - if (resolvedClassNames == null) { - return null; - } - String pkg = resolvedClassNames[0][0]; - String cls = resolvedClassNames[0][1]; - // check for default package - return (pkg.length() == 0) ? cls : (pkg + '.' + cls); - } - - public static IType findType(IJavaProject javaProject, String fullyQualifiedName) { - try { - return javaProject.findType(fullyQualifiedName); - } catch (JavaModelException ex) { - JptCommonCorePlugin.log(ex); - return null; - } - } - - public static Iterable getJavaSourceFolders(IJavaProject javaProject) { - return new FilteringIterable( - getPackageFragmentRoots(javaProject), - SOURCE_PACKAGE_FRAGMENT_ROOT_FILTER - ); - } - - private static final Filter SOURCE_PACKAGE_FRAGMENT_ROOT_FILTER = - new Filter() { - public boolean accept(IPackageFragmentRoot pfr) { - return packageFragmentRootIsSourceFolder(pfr); - } - }; - - private static Iterable getPackageFragmentRoots(IJavaProject javaProject) { - try { - return getPackageFragmentRoots_(javaProject); - } catch (JavaModelException ex) { - JptCommonCorePlugin.log(ex); - return EmptyIterable.instance(); - } - } - - private static Iterable getPackageFragmentRoots_(IJavaProject javaProject) throws JavaModelException { - return new ArrayIterable(javaProject.getPackageFragmentRoots()); - } - - /** - * Return whether the specified type is "basic". - * @param fullyQualifiedName may include array brackets but not generic type arguments - */ - public static boolean typeIsBasic(IJavaProject javaProject, String fullyQualifiedName) { - try { - return typeIsBasic(javaProject, javaProject.findType(fullyQualifiedName)); - } catch (JavaModelException ex) { - JptCommonCorePlugin.log(ex); - return false; - } - } - - private static boolean typeIsBasic(IJavaProject javaProject, IType type) throws JavaModelException { - if (type == null) { - return false; - } - String fullyQualifiedName = type.getFullyQualifiedName(); - - if (fullyQualifiedName == null) { - return false; - } - - int arrayDepth = ReflectionTools.getArrayDepthForTypeDeclaration(fullyQualifiedName); - if (arrayDepth > 1) { - return false; // multi-dimensional arrays are not supported - } - - if (arrayDepth == 1) { - String elementTypeName = ReflectionTools.getElementTypeNameForTypeDeclaration(fullyQualifiedName, 1); - return elementTypeIsValidForBasicArray(elementTypeName); - } - - // arrayDepth == 0 - if (ClassName.isVariablePrimitive(fullyQualifiedName)) { - return true; // any primitive but 'void' - } - if (ClassName.isVariablePrimitiveWrapper(fullyQualifiedName)) { - return true; // any primitive wrapper but 'java.lang.Void' - } - if (typeIsOtherValidBasicType(fullyQualifiedName)) { - return true; - } - if (typeImplementsInterfaceNamed(javaProject, type, SERIALIZABLE_CLASS_NAME)) { - return true; - } - if (type.isEnum()) { - return true; - } - return false; - } - - private static final String SERIALIZABLE_CLASS_NAME = java.io.Serializable.class.getName(); - - /** - * Return whether the specified type is a valid element type for - * a one-dimensional array that can default to a basic mapping:

    - *
  • byte - *
  • java.lang.Byte - *
  • char - *
  • java.lang.Character - *
- */ - public static boolean elementTypeIsValidForBasicArray(String elementTypeName) { - return ArrayTools.contains(VALID_BASIC_ARRAY_ELEMENT_TYPE_NAMES, elementTypeName); - } - - private static final String[] VALID_BASIC_ARRAY_ELEMENT_TYPE_NAMES = { - byte.class.getName(), - char.class.getName(), - java.lang.Byte.class.getName(), - java.lang.Character.class.getName() - }; - - /** - * Return whether the specified type is among the various "other" types - * that can default to a basic mapping. - */ - public static boolean typeIsOtherValidBasicType(String typeName) { - return ArrayTools.contains(OTHER_VALID_BASIC_TYPE_NAMES, typeName); - } - - private static final String[] OTHER_VALID_BASIC_TYPE_NAMES = { - java.lang.String.class.getName(), - java.math.BigInteger.class.getName(), - java.math.BigDecimal.class.getName(), - java.util.Date.class.getName(), - java.util.Calendar.class.getName(), - java.sql.Date.class.getName(), - java.sql.Time.class.getName(), - java.sql.Timestamp.class.getName(), - }; -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JobCommand.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JobCommand.java deleted file mode 100644 index 0a46bb470d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JobCommand.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility; - -import java.io.Serializable; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; - -/** - * Simple interface for implementing the GOF Command design pattern in an - * Eclipse job. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface JobCommand { - - /** - * Execute the command. The semantics of the command - * is determined by the contract between the client and server. - * The command should check, as appropriate, whether the specified progress - * monitor is {@link IProgressMonitor#isCanceled() "canceled"}; if it is, - * the command should throw an - * {@link org.eclipse.core.runtime.OperationCanceledException OperationCanceledException}. - * @see IProgressMonitor#isCanceled() - */ - IStatus execute(IProgressMonitor monitor); - - /** - * Singleton implementation of the job command interface that will do - * nothing when executed. - */ - final class Null implements JobCommand, Serializable { - public static final JobCommand INSTANCE = new Null(); - public static JobCommand instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - public IStatus execute(IProgressMonitor arg0) { - return Status.OK_STATUS; - } - @Override - public String toString() { - return "JobCommand.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - /** - * Singleton implementation of the job command interface that will throw an - * exception when executed. - */ - final class Disabled implements JobCommand, Serializable { - public static final JobCommand INSTANCE = new Disabled(); - public static JobCommand instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public IStatus execute(IProgressMonitor arg0) { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "JobCommand.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JobSynchronizer.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JobSynchronizer.java deleted file mode 100644 index 2ab0283e5a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/JobSynchronizer.java +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.synchronizers.Synchronizer; - -/** - * This synchronizer will perform synchronizations in an Eclipse job on a - * separate thread, allowing calls to {@link Synchronizer#synchronize()} - * to return immediately. - *

- * If necessary, the client-supplied job command should handle any - * exceptions appropriately. Although, the default exception-handling provided - * by the Eclipse Job Framework is probably adequate in most cases:

    - *
  • An {@link org.eclipse.core.runtime.OperationCanceledException OperationCanceledException} - * results in a {@link org.eclipse.core.runtime.Status#CANCEL_STATUS CANCEL_STATUS}. - *
  • Any non-{@link ThreadDeath} {@link Throwable} - * results in a {@link org.eclipse.core.runtime.IStatus#ERROR ERROR} - * {@link org.eclipse.core.runtime.IStatus IStatus} - *
- * @see org.eclipse.core.internal.jobs.Worker#run() - */ -public class JobSynchronizer - implements Synchronizer -{ - /** - * The synchronization is performed by this job. The same job is used - * for every start/stop cycle (since a job can be re-started). - */ - private final SynchronizationJob job; - - - // ********** construction ********** - - /** - * Construct a job synchronizer that uses the specified job command to - * perform the synchronization. Assign the generated Eclipse job the - * specified name. - */ - public JobSynchronizer(String jobName, JobCommand command) { - this(jobName, command, null); - } - - /** - * Construct a job synchronizer that uses the specified job command to - * perform the synchronization. Assign the generated Eclipse job the - * specified name and scheduling rule. - */ - public JobSynchronizer(String jobName, JobCommand command, ISchedulingRule schedulingRule) { - super(); - this.job = this.buildJob(jobName, command, schedulingRule); - } - - SynchronizationJob buildJob(String jobName, JobCommand command, ISchedulingRule schedulingRule) { - return new SynchronizationJob(jobName, command, schedulingRule); - } - - - // ********** Synchronizer implementation ********** - - /** - * Allow the job to be scheduled, but postpone the first synchronization - * until requested, via {@link #synchronize()}. - */ - public void start() { - this.job.start(); - } - - /** - * "Schedule" the job. - */ - public void synchronize() { - this.job.synchronize(); - } - - /** - * Wait for the current job execution to complete. - */ - public void stop() { - this.job.stop(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.job); - } - - - // ********** synchronization job ********** - - /** - * This is the job that gets scheduled by the job synchronizer. - * When the job is run it executes the client-supplied job command. - */ - static class SynchronizationJob extends Job { - /** - * The client-supplied job command that executes every time the job - * runs. - */ - private final JobCommand command; - - /** - * When this flag is set to false, the job does not stop immediately; - * but it will not be scheduled to run again. - */ - // use 'volatile' because synchronization isn't really required - volatile boolean shouldSchedule; - - - SynchronizationJob(String jobName, JobCommand command, ISchedulingRule schedulingRule) { - super(jobName); - if (command == null) { - throw new NullPointerException(); - } - this.command = command; - this.shouldSchedule = false; - this.setRule(schedulingRule); - } - - /** - * Just set the "should schedule" flag so the job can be - * scheduled; but don't actually schedule it. - */ - void start() { - if (this.shouldSchedule) { - throw new IllegalStateException("The Synchronizer was not stopped."); //$NON-NLS-1$ - } - this.shouldSchedule = true; - } - - /** - * Simply re-schedule the job, allowing the current execution - * to run to completion (i.e. do not try to cancel it prematurely). - * This should minimize the number of times the job is re-executed - * (recursively and otherwise). - */ - void synchronize() { - this.schedule(); - } - - /** - * Any uncaught exceptions thrown by the command will be reasonably - * handled by the Job Framework. - * @see org.eclipse.core.internal.jobs.Worker#run() - */ - @Override - protected IStatus run(IProgressMonitor monitor) { - return this.command.execute(monitor); - } - - /** - * Prevent the job from running again and wait for the current - * execution, if there is any, to end before returning. - */ - void stop() { - if ( ! this.shouldSchedule) { - throw new IllegalStateException("The Synchronizer was not started."); //$NON-NLS-1$ - } - // this will prevent the job from being scheduled to run again - this.shouldSchedule = false; - // this will cancel the job if it has already been scheduled, but is currently WAITING - this.cancel(); - try { - // if the job is currently RUNNING, wait until it is done before returning - this.join(); - } catch (InterruptedException ex) { - // the thread that called #stop() was interrupted while waiting to - // join the synchronization job - ignore; - // 'shouldSchedule' is still set to 'false', so the job loop will still stop - we - // just won't wait around for it... - } - } - - /** - * This is part of the normal {@link Job} behavior. By default, it is - * not used (i.e. it always returns true). - * We implement it here. - */ - @Override - public boolean shouldSchedule() { - return this.shouldSchedule; - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/PlatformTools.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/PlatformTools.java deleted file mode 100644 index a63855b794..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/PlatformTools.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility; - -import java.io.IOException; -import java.io.InputStream; -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.core.runtime.content.IContentTypeManager; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; - -/** - * A collection of utilities for dealing with the Eclipse platform API. - */ -public class PlatformTools { - - /** - * Return the {@link IContainer} with the workspace relative "full" path - */ - public static IContainer getContainer(IPath fullContainerPath) { - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - // changed to handle non-workspace projects - String projectName = fullContainerPath.segment(0).toString(); - IPath projectRelativePath = fullContainerPath.removeFirstSegments(1); - IProject project = root.getProject(projectName); - if (projectRelativePath.isEmpty()) { - return project; - } - return project.getFolder(projectRelativePath); - } - - /** - * Return the {@link IFile} with the workspace relative "full" path - */ - public static IFile getFile(IPath fullFilePath) { - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - return root.getFileForLocation(root.getLocation().append(fullFilePath)); - } - - /** - * Return the specified file's content type, - * using the Eclipse platform's content type manager. - */ - public static IContentType getContentType(IFile file) { - String fileName = file.getName(); - InputStream fileContents = null; - try { - fileContents = file.getContents(); - } catch (CoreException ex) { - // seems like we can ignore any exception that might occur here; - // e.g. we get a FNFE if the workspace is out of synch with the O/S file system - // JptCorePlugin.log(ex); - - // look for content type based on the file name only(?) - return findContentTypeFor(fileName); - } - - IContentType contentType = null; - try { - contentType = findContentTypeFor(fileContents, fileName); - } catch (IOException ex) { - JptCommonCorePlugin.log(ex); - } finally { - try { - fileContents.close(); - } catch (IOException ex) { - JptCommonCorePlugin.log(ex); - } - } - return contentType; - } - - private static IContentType findContentTypeFor(InputStream fileContents, String fileName) throws IOException { - return getContentTypeManager().findContentTypeFor(fileContents, fileName); - } - - private static IContentType findContentTypeFor(String fileName) { - return getContentTypeManager().findContentTypeFor(fileName); - } - - private static IContentTypeManager getContentTypeManager() { - return Platform.getContentTypeManager(); - } - - private PlatformTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/SimpleSchedulingRule.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/SimpleSchedulingRule.java deleted file mode 100644 index 04d8a24d15..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/SimpleSchedulingRule.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility; - -import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A job scheduling rule that conflicts only with itself. - */ -public final class SimpleSchedulingRule - implements ISchedulingRule -{ - public SimpleSchedulingRule() { - super(); - } - - public boolean contains(ISchedulingRule rule) { - return rule == this; - } - - public boolean isConflicting(ISchedulingRule rule) { - return rule == this; - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/SimpleTextRange.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/SimpleTextRange.java deleted file mode 100644 index f7d5dc90a1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/SimpleTextRange.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility; - -import org.eclipse.jpt.common.core.utility.AbstractTextRange; - -/** - * Straightforward implementation of TextRange. - */ -public class SimpleTextRange extends AbstractTextRange { - private final int offset; - private final int length; - private final int lineNumber; - - public SimpleTextRange(int offset, int length, int lineNumber) { - super(); - this.offset = offset; - this.length = length; - this.lineNumber = lineNumber; - } - - public int getOffset() { - return this.offset; - } - - public int getLength() { - return this.length; - } - - public int getLineNumber() { - return this.lineNumber; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/XPointTools.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/XPointTools.java deleted file mode 100644 index 5942fb531f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/XPointTools.java +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility; - -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.internal.JptCommonCoreMessages; -import org.eclipse.osgi.util.NLS; -import org.osgi.framework.Bundle; - -/** - * Utilities for extension point management, validation, etc. - */ -public class XPointTools { - - public static String findRequiredAttribute( - IConfigurationElement configElement, String attributeName) - throws XPointException { - - String val = configElement.getAttribute(attributeName); - if (val == null) { - logMissingAttribute(configElement, attributeName); - throw new XPointException(); - } - return val; - } - - public static T instantiate(String pluginId, String extensionPoint, String className, Class interfaze) { - Class clazz = loadClass(pluginId, extensionPoint, className, interfaze); - return (clazz == null) ? null : instantiate(pluginId, extensionPoint, clazz); - } - - /** - * Instantiate the specified class. - */ - public static T instantiate(String pluginId, String extensionPoint, Class clazz) { - try { - return clazz.newInstance(); - } catch (Exception ex) { - logFailedInstantiation(ex, pluginId, extensionPoint, clazz.getName()); - return null; - } - } - - /** - * Load the specified class and cast it to the specified interface. - */ - private static Class loadClass(String pluginId, String extensionPoint, String className, Class interfaze) { - Bundle bundle = Platform.getBundle(pluginId); - - Class clazz; - try { - clazz = bundle.loadClass(className); - } catch (Exception ex) { - logFailedClassLoad(ex, pluginId, extensionPoint, className); - return null; - } - - if (interfaze.isAssignableFrom(clazz)) { - @SuppressWarnings("unchecked") - Class clazzT = (Class) clazz; - return clazzT; - } - - logFailedInterfaceAssignment(pluginId, extensionPoint, className, interfaze.getName()); - return null; - } - - public static void logDuplicateExtension(String extensionPoint, String nodeName, String value) { - log(JptCommonCoreMessages.REGISTRY_DUPLICATE, extensionPoint, nodeName, value); - } - - public static void logMissingAttribute(IConfigurationElement configElement, String attributeName) { - log(JptCommonCoreMessages.REGISTRY_MISSING_ATTRIBUTE, - attributeName, - configElement.getName(), - configElement.getDeclaringExtension().getExtensionPointUniqueIdentifier(), - configElement.getContributor().getName()); - } - - public static void logInvalidValue( - IConfigurationElement configElement, String nodeName, String invalidValue) { - - log(JptCommonCoreMessages.REGISTRY_INVALID_VALUE, - invalidValue, - nodeName, - configElement.getDeclaringExtension().getExtensionPointUniqueIdentifier(), - configElement.getContributor().getName()); - } - - private static void logFailedClassLoad(Exception ex, String pluginId, String extensionPoint, String className) { - log(ex, JptCommonCoreMessages.REGISTRY_FAILED_CLASS_LOAD, - className, - extensionPoint, - pluginId); - } - - private static void logFailedInterfaceAssignment( - String pluginId, String extensionPoint, String className, String interfaceName) { - - log(JptCommonCoreMessages.REGISTRY_FAILED_INTERFACE_ASSIGNMENT, - className, - extensionPoint, - pluginId, - interfaceName); - } - - private static void logFailedInstantiation(Exception ex, String pluginId, String extensionPoint, String className) { - log(ex, JptCommonCoreMessages.REGISTRY_FAILED_INSTANTIATION, - className, - extensionPoint, - pluginId); - } - - public static void log(String msg, String... bindings) { - JptCommonCorePlugin.log(NLS.bind(msg, bindings)); - } - - public static void log(Throwable ex, String msg, String... bindings) { - JptCommonCorePlugin.log(NLS.bind(msg, bindings), ex); - } - - public static void log(Throwable ex) { - JptCommonCorePlugin.log(ex); - } - - - public static final class XPointException extends Exception { - private static final long serialVersionUID = 1L; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ASTNodeTextRange.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ASTNodeTextRange.java deleted file mode 100644 index 1d44f9fcdb..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ASTNodeTextRange.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.AbstractTextRange; - -/** - * Adapt an ASTNode to the TextRange interface. - */ -public class ASTNodeTextRange extends AbstractTextRange { - private final ASTNode astNode; - - public ASTNodeTextRange(ASTNode astNode) { - super(); - this.astNode = astNode; - } - - public int getOffset() { - return this.astNode.getStartPosition(); - } - - public int getLength() { - return this.astNode.getLength(); - } - - public int getLineNumber() { - return ((CompilationUnit) this.astNode.getRoot()).getLineNumber(this.getOffset()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ASTTools.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ASTTools.java deleted file mode 100644 index 39a706f312..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ASTTools.java +++ /dev/null @@ -1,284 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.HashSet; -import java.util.List; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.ASTParser; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.ArrayInitializer; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.IAnnotationBinding; -import org.eclipse.jdt.core.dom.IBinding; -import org.eclipse.jdt.core.dom.ITypeBinding; -import org.eclipse.jdt.core.dom.IVariableBinding; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jdt.core.dom.Name; -import org.eclipse.jdt.core.dom.SingleVariableDeclaration; -import org.eclipse.jdt.core.dom.TypeLiteral; -import org.eclipse.jpt.common.utility.JavaType; -import org.eclipse.jpt.common.utility.MethodSignature; -import org.eclipse.jpt.common.utility.internal.SimpleJavaType; -import org.eclipse.jpt.common.utility.internal.SimpleMethodSignature; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; - -/** - * Convenience methods for dealing with JDT ASTs. - */ -public class ASTTools { - - /** - * Build an AST without method bodies for the specified compilation unit - * with its bindings resolved (and the resultant performance hit). - */ - public static CompilationUnit buildASTRoot(ICompilationUnit compilationUnit) { - ASTParser parser = ASTParser.newParser(AST.JLS3); - parser.setSource(compilationUnit); - parser.setIgnoreMethodBodies(true); // we don't need method bodies - parser.setResolveBindings(true); - parser.setBindingsRecovery(true); // see bugs 196200, 222735 - return (CompilationUnit) parser.createAST(null); - } - - - // ********** JDT DOM ********** - - public static String resolveEnum(Expression expression) { - if (expression == null) { - return null; - } - switch (expression.getNodeType()) { - case ASTNode.QUALIFIED_NAME: - case ASTNode.SIMPLE_NAME: - return resolveEnum((Name) expression); - default: - return null; - } - } - - public static String resolveEnum(Name enumExpression) { - IBinding binding = enumExpression.resolveBinding(); - if (binding == null) { - return null; // TODO figure out why this is null sometimes - } - if (binding.getKind() != IBinding.VARIABLE) { - return null; - } - IVariableBinding variableBinding = (IVariableBinding) binding; - return variableBinding.getType().getQualifiedName() + '.' + variableBinding.getName(); - } - - /** - * Return the fully-qualified name of the specified node's annotation - * class. - */ - public static String resolveAnnotation(Annotation node) { - IAnnotationBinding annotationBinding = node.resolveAnnotationBinding(); - if (annotationBinding == null) { - return null; - } - ITypeBinding annotationTypeBinding = annotationBinding.getAnnotationType(); - return (annotationTypeBinding == null) ? null : annotationTypeBinding.getQualifiedName(); - } - - /** - * If the specified expression is a type literal, return the type's fully- - * qualified name. Return null otherwise. - */ - public static String resolveFullyQualifiedName(Expression expression) { - ITypeBinding resolvedTypeBinding = resolveTypeBinding(expression); - return (resolvedTypeBinding == null) ? null : resolvedTypeBinding.getQualifiedName(); - } - - /** - * If the specified expression is an array initializer, return an an iterable - * on the types' fully qualfified names. - * The results may include nulls. - */ - public static Iterable resolveFullyQualifiedNames(Expression expression) { - return new TransformationIterable(resolveTypeBindings(expression)) { - @Override - protected String transform(ITypeBinding o) { - return (o == null) ? null : o.getQualifiedName(); - } - }; - } - - /** - * If the specified expression is a type literal, return the corresponding - * type binding. - */ - public static ITypeBinding resolveTypeBinding(Expression expression) { - if (expression.getNodeType() == ASTNode.TYPE_LITERAL) { - return ((TypeLiteral) expression).getType().resolveBinding(); - } - return null; - } - - /** - * If the specified expression is an array initializer, return an iterable on - * the corresponding type bindings for each sub-expression. - * The result may include nulls. - */ - public static Iterable resolveTypeBindings(Expression expression) { - if (expression.getNodeType() == ASTNode.ARRAY_INITIALIZER) { - ArrayInitializer arrayExpression = (ArrayInitializer) expression; - return new TransformationIterable(arrayExpression.expressions()) { - @Override - protected ITypeBinding transform(Expression o) { - return resolveTypeBinding(o); - } - }; - } - return EmptyIterable.instance(); - } - - public static MethodSignature buildMethodSignature(MethodDeclaration methodDeclaration) { - return new SimpleMethodSignature( - methodDeclaration.getName().getFullyQualifiedName(), - buildParameterTypes(methodDeclaration) - ); - } - - public static JavaType[] buildParameterTypes(MethodDeclaration methodDeclaration) { - List parameters = parameters(methodDeclaration); - int len = parameters.size(); - JavaType[] parameterTypes = new JavaType[len]; - for (int i = 0; i < len; i++) { - ITypeBinding type = parameters.get(i).getType().resolveBinding(); - parameterTypes[i] = new SimpleJavaType(type.getQualifiedName(), type.getDimensions()); - } - return parameterTypes; - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - private static List parameters(MethodDeclaration methodDeclaration) { - return methodDeclaration.parameters(); - } - - /** - * Return whether the specified expression is a type literal and the type binding - * corresponding to the specified type name exists in the type - * literal's inheritance hierarchy (superclasses and interfaces). - * Return null otherwise. - */ - public static boolean typeIsSubTypeOf(Expression expression, String searchTypeName) { - return findTypeInHierarchy(expression, searchTypeName) != null; - } - - /** - * If the specified expression is a type literal, return the type binding - * corresponding to the specified type name if it exists in the type - * literal's inheritance hierarchy (superclasses and interfaces). - * Return null otherwise. - */ - public static ITypeBinding findTypeInHierarchy(Expression expression, String searchTypeName) { - ITypeBinding typeBinding = resolveTypeBinding(expression); - return (typeBinding == null) ? null : findTypeInHierarchy(typeBinding, searchTypeName); - } - - /** - * Return whether a type binding with the specified type name exists in - * the specified type binding's inheritance hierarchy (superclasses - * and interfaces). - */ - public static boolean typeIsSubTypeOf(ITypeBinding typeBinding, String searchTypeName) { - return findTypeInHierarchy(typeBinding, searchTypeName) != null; - } - - /** - * Return the type binding corresponding to the specified type name if it - * exists in the specified type binding's inheritance hierarchy (superclasses - * and interfaces). Return null otherwise. - */ - public static ITypeBinding findTypeInHierarchy(ITypeBinding typeBinding, String searchTypeName) { - return findTypeInHierarchy(typeBinding, searchTypeName, new HashSet()); - } - - private static ITypeBinding findTypeInHierarchy(ITypeBinding typeBinding, String searchTypeName, HashSet visited) { - String typeName = typeBinding.getQualifiedName(); - if (visited.contains(typeName)) { - return null; - } - if (typeName.equals(searchTypeName)) { - return typeBinding; - } - visited.add(typeName); - - ITypeBinding interfaceBinding = findTypeInInterfaces(typeBinding, searchTypeName, visited); - if (interfaceBinding != null) { - return interfaceBinding; - } - - return findTypeInSuperclasses(typeBinding, searchTypeName, visited); - } - - private static ITypeBinding findTypeInInterfaces(ITypeBinding typeBinding, String searchTypeName, HashSet visited) { - ITypeBinding[] interfaceBindings = typeBinding.getInterfaces(); - for (ITypeBinding interfaceBinding : interfaceBindings) { // recurse up interfaces - ITypeBinding result = findTypeInHierarchy(interfaceBinding, searchTypeName, visited); - if (result != null) { - return result; - } - } - return null; - } - - private static ITypeBinding findTypeInSuperclasses(ITypeBinding typeBinding, String searchTypeName, HashSet visited) { - ITypeBinding superBinding = typeBinding.getSuperclass(); - if (superBinding != null) { // recurse up superclasses - ITypeBinding result = findTypeInHierarchy(superBinding, searchTypeName, visited); - if (result != null) { - return result; - } - } - return null; - } - /** - * Return whether the specified expression is a type literal and the type binding - * corresponding to the specified interface name exists in the type - * literal's inheritance hierarchy (superclasses and interfaces). - * Return null otherwise. - */ - public static boolean typeImplementsInterface(Expression expression, String searchInterfaceName) { - ITypeBinding typeBinding = resolveTypeBinding(expression); - if (typeBinding == null) { - return false; - } - return findInterfaceInHierarchy(typeBinding, searchInterfaceName) != null; - } - - /** - * Return whether a type binding with the specified interface name exists in - * the specified type binding's inheritance hierarchy (superclasses - * and interfaces). - */ - public static boolean typeImplementsInterface(ITypeBinding typeBinding, String searchInterfaceName) { - return findInterfaceInHierarchy(typeBinding, searchInterfaceName) != null; - } - - private static ITypeBinding findInterfaceInHierarchy(ITypeBinding typeBinding, String searchInterfaceName) { - HashSet visited = new HashSet(); - ITypeBinding interfaceBinding = findTypeInInterfaces(typeBinding, searchInterfaceName, visited); - if (interfaceBinding != null) { - return interfaceBinding; - } - - return findTypeInSuperclasses(typeBinding, searchInterfaceName, visited); - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractAnnotationAdapter.java deleted file mode 100644 index 7333322d48..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractAnnotationAdapter.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Adapt an annotated element and a declaration annotation adapter. - */ -public abstract class AbstractAnnotationAdapter implements AnnotationAdapter { - private final AnnotatedElement annotatedElement; - private final DeclarationAnnotationAdapter daa; - - - // ********** constructor ********** - - public AbstractAnnotationAdapter(AnnotatedElement annotatedElement, DeclarationAnnotationAdapter daa) { - super(); - this.annotatedElement = annotatedElement; - this.daa = daa; - } - - - // ********** AnnotationAdapter implementation ********** - - public Annotation getAnnotation(CompilationUnit astRoot) { - return this.daa.getAnnotation(this.annotatedElement.getModifiedDeclaration(astRoot)); - } - - public void newMarkerAnnotation() { - this.edit(this.buildNewMarkerAnnotationEditor()); - } - - public void newSingleMemberAnnotation() { - this.edit(this.buildNewSingleMemberAnnotationEditor()); - } - - public void newNormalAnnotation() { - this.edit(this.buildNewNormalAnnotationEditor()); - } - - public void removeAnnotation() { - this.edit(this.buildRemoveAnnotationEditor()); - } - - public ASTNode getAstNode(CompilationUnit astRoot) { - return this.daa.getAstNode(this.annotatedElement.getModifiedDeclaration(astRoot)); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.daa); - } - - - // ********** internal methods ********** - - protected void edit(AnnotatedElement.Editor editor) { - this.annotatedElement.edit(editor); - } - - - // ********** factory methods ********** - - protected AnnotatedElement.Editor buildNewMarkerAnnotationEditor() { - return new NewMarkerAnnotationEditor(this.daa); - } - - protected AnnotatedElement.Editor buildNewSingleMemberAnnotationEditor() { - return new NewSingleMemberAnnotationEditor(this.daa); - } - - protected AnnotatedElement.Editor buildNewNormalAnnotationEditor() { - return new NewNormalAnnotationEditor(this.daa); - } - - protected AnnotatedElement.Editor buildRemoveAnnotationEditor() { - return new RemoveAnnotationEditor(this.daa); - } - - - // ********** member classes ********** - - protected static class NewMarkerAnnotationEditor implements AnnotatedElement.Editor { - private final DeclarationAnnotationAdapter daa; - - NewMarkerAnnotationEditor(DeclarationAnnotationAdapter daa) { - super(); - this.daa = daa; - } - public void edit(ModifiedDeclaration declaration) { - this.daa.newMarkerAnnotation(declaration); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - } - - - protected static class NewSingleMemberAnnotationEditor implements AnnotatedElement.Editor { - private final DeclarationAnnotationAdapter daa; - - NewSingleMemberAnnotationEditor(DeclarationAnnotationAdapter daa) { - super(); - this.daa = daa; - } - public void edit(ModifiedDeclaration declaration) { - this.daa.newSingleMemberAnnotation(declaration); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - } - - - protected static class NewNormalAnnotationEditor implements AnnotatedElement.Editor { - private final DeclarationAnnotationAdapter daa; - - NewNormalAnnotationEditor(DeclarationAnnotationAdapter daa) { - super(); - this.daa = daa; - } - public void edit(ModifiedDeclaration declaration) { - this.daa.newNormalAnnotation(declaration); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - } - - - protected static class RemoveAnnotationEditor implements AnnotatedElement.Editor { - private final DeclarationAnnotationAdapter daa; - - RemoveAnnotationEditor(DeclarationAnnotationAdapter daa) { - super(); - this.daa = daa; - } - public void edit(ModifiedDeclaration declaration) { - this.daa.removeAnnotation(declaration); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractDeclarationAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractDeclarationAnnotationAdapter.java deleted file mode 100644 index 821c4ed618..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractDeclarationAnnotationAdapter.java +++ /dev/null @@ -1,153 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.List; -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * - */ -public abstract class AbstractDeclarationAnnotationAdapter implements DeclarationAnnotationAdapter { - private final String annotationName; - - - // ********** constructors ********** - - protected AbstractDeclarationAnnotationAdapter(String annotationName) { - super(); - this.annotationName = annotationName; - } - - - // ********** DeclarationAnnotationAdapter implementation ********** - - public MarkerAnnotation newMarkerAnnotation(ModifiedDeclaration declaration) { - MarkerAnnotation annotation = this.newMarkerAnnotation(declaration.getAst()); - this.addAnnotationAndImport(declaration, annotation); - return annotation; - } - - public SingleMemberAnnotation newSingleMemberAnnotation(ModifiedDeclaration declaration) { - SingleMemberAnnotation annotation = this.newSingleMemberAnnotation(declaration.getAst()); - this.addAnnotationAndImport(declaration, annotation); - return annotation; - } - - public NormalAnnotation newNormalAnnotation(ModifiedDeclaration declaration) { - NormalAnnotation annotation = this.newNormalAnnotation(declaration.getAst()); - this.addAnnotationAndImport(declaration, annotation); - return annotation; - } - - /** - * Add the appropriate import statement, then shorten the annotation's - * name before adding it to the declaration. - */ - protected void addAnnotationAndImport(ModifiedDeclaration declaration, Annotation annotation) { - annotation.setTypeName(declaration.getAst().newName(this.getSourceCodeAnnotationName(declaration))); - this.addAnnotation(declaration, annotation); - } - - /** - * Return the annotation's name as it can be used in source code; - * i.e. if we can add it to the compilation unit's imports, return the short - * name; if we can't (because of a collision), return the fully-qualified name. - * NB: an import may be added as a side-effect :-( - */ - protected String getSourceCodeAnnotationName(ModifiedDeclaration declaration) { - return declaration.addImport(this.annotationName) ? this.getShortAnnotationName() : this.annotationName; - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.annotationName); - } - - /** - * Add the specified annotation to the specified declaration, - * replacing the original annotation if present. - */ - protected abstract void addAnnotation(ModifiedDeclaration declaration, Annotation annotation); - - - // ********** public methods ********** - - /** - * This is 'public' because we use it in CombinationIndexedDeclarationAnnotationAdapter - * to get the annotation name from a NestedIndexedDeclarationAnnotationAdapter. - */ - public String getAnnotationName() { - return this.annotationName; - } - - - // ********** helper methods ********** - - protected boolean nameMatches(ModifiedDeclaration declaration, Annotation annotation) { - return this.nameMatches(declaration, annotation, this.annotationName); - } - - protected boolean nameMatches(ModifiedDeclaration declaration, Annotation annotation, String name) { - return declaration.annotationIsNamed(annotation, name); - } - - protected MarkerAnnotation newMarkerAnnotation(AST ast) { - return this.newMarkerAnnotation(ast, this.annotationName); - } - - protected MarkerAnnotation newMarkerAnnotation(AST ast, String name) { - MarkerAnnotation annotation = ast.newMarkerAnnotation(); - annotation.setTypeName(ast.newName(name)); - return annotation; - } - - protected SingleMemberAnnotation newSingleMemberAnnotation(AST ast) { - return this.newSingleMemberAnnotation(ast, this.annotationName); - } - - protected SingleMemberAnnotation newSingleMemberAnnotation(AST ast, String name) { - SingleMemberAnnotation annotation = ast.newSingleMemberAnnotation(); - annotation.setTypeName(ast.newName(name)); - return annotation; - } - - protected NormalAnnotation newNormalAnnotation(AST ast) { - return this.newNormalAnnotation(ast, this.annotationName); - } - - protected NormalAnnotation newNormalAnnotation(AST ast, String name) { - NormalAnnotation annotation = ast.newNormalAnnotation(); - annotation.setTypeName(ast.newName(name)); - return annotation; - } - - protected String getShortAnnotationName() { - return convertToShortName(this.annotationName); - } - - protected static String convertToShortName(String name) { - return name.substring(name.lastIndexOf('.') + 1); - } - - @SuppressWarnings("unchecked") - protected List values(NormalAnnotation na) { - return na.values(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractExpressionConverter.java deleted file mode 100644 index 66b49ff157..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractExpressionConverter.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Gather together the common implementation behavior. - * T is the type of the object to be converted to and from an expression. - * - * We're still figuring out Java Generics here.... The methods in this abstract - * class work fine with any subclass of Expression E; but a ClassCastException - * will occur as soon as we call any method implemented by a subclass - * (e.g. StringExpressionConverter) that expects a particular subclass of - * Expression (e.g. StringLiteral). - */ -public abstract class AbstractExpressionConverter - implements ExpressionConverter -{ - - protected AbstractExpressionConverter() { - super(); - } - - - // ********** object -> expression ********** - - public Expression convert(T object, AST ast) { - return (object == null) ? this.convertNull(ast) : this.convertObject(object, ast); - } - - /** - * Return the expression for a null object. By default, a null object will - * be converted into a null expression. - */ - protected Expression convertNull(@SuppressWarnings("unused") AST ast) { - return null; - } - - /** - * The specified object is not null. - * @see #convert(Object, AST) - */ - protected abstract Expression convertObject(T object, AST ast); - - - // ********** expression -> object ********** - - public T convert(Expression expression) { - return (expression == null) ? this.convertNull() : this.convertExpression(expression); - } - - /** - * Return the object for a null expression. By default, a null expression will - * be converted into a null object. - */ - protected T convertNull() { - return null; - } - - /** - * The specified expression is not null. - * @see #convert(Expression) - */ - protected abstract T convertExpression(Expression expression); - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractJDTType.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractJDTType.java deleted file mode 100644 index abbd202f7a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractJDTType.java +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.Iterator; -import java.util.List; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.AbstractTypeDeclaration; -import org.eclipse.jdt.core.dom.BodyDeclaration; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.EnumDeclaration; -import org.eclipse.jdt.core.dom.ITypeBinding; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.core.utility.jdt.AbstractType; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.common.core.utility.jdt.Type; -import org.eclipse.jpt.common.utility.CommandExecutor; - -/** - * Adapt and extend a JDT abstract type. - */ -public abstract class AbstractJDTType - extends JDTMember - implements AbstractType -{ - - /** - * constructor for the compilation unit's primary type - */ - protected AbstractJDTType( - AbstractTypeDeclaration typeDeclaration, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(typeDeclaration, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - /** - * constructor for the compilation unit's primary type - */ - protected AbstractJDTType( - AbstractTypeDeclaration typeDeclaration, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - this(null, typeDeclaration, 1, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - /** - * constructor for nested types - */ - protected AbstractJDTType( - Type declaringType, - AbstractTypeDeclaration typeDeclaration, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(declaringType, typeDeclaration, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - /** - * constructor for nested types - */ - protected AbstractJDTType( - Type declaringType, - AbstractTypeDeclaration typeDeclaration, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(declaringType, typeDeclaration.getName().getFullyQualifiedName(), occurrence, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - /** - * constructor for testing - */ - protected AbstractJDTType(Type declaringType, String name, int occurrence, ICompilationUnit compilationUnit) { - super(declaringType, name, occurrence, compilationUnit, CommandExecutor.Default.instance(), DefaultAnnotationEditFormatter.instance()); - } - - @Override - protected Type getDeclaringType() { - return (Type) super.getDeclaringType(); - } - - // ********** Member/Type implementation ********** - - public ITypeBinding getBinding(CompilationUnit astRoot) { - AbstractTypeDeclaration td = this.getBodyDeclaration(astRoot); - return (td == null) ? null : td.resolveBinding(); - } - - /** - * find the type's body declaration in the specified AST - */ - @Override - public AbstractTypeDeclaration getBodyDeclaration(CompilationUnit astRoot) { - Type declaringType = this.getDeclaringType(); - if (declaringType == null) { - return this.getTopLevelTypeDeclaration(astRoot); - } - TypeDeclaration typeDeclaration = declaringType.getBodyDeclaration(astRoot); - // the type declaration can be null when the source is completely hosed - return (typeDeclaration == null) ? null : this.getNestedTypeDeclaration(typeDeclaration); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return new ASTNodeTextRange(this.getBodyDeclaration(astRoot).getName()); - } - - - // ********** internal ********** - - /** - * return the first top-level type in the specified AST with a matching name - */ - protected AbstractTypeDeclaration getTopLevelTypeDeclaration(CompilationUnit astRoot) { - return this.getTypeDeclaration(types(astRoot)); - } - - protected AbstractTypeDeclaration getTypeDeclaration(List typeDeclarations) { - return this.getTypeDeclaration(typeDeclarations.toArray(new AbstractTypeDeclaration[typeDeclarations.size()])); - } - - /** - * Return the nested type declaration with matching name and occurrence within the declaring type - */ - protected abstract AbstractTypeDeclaration getNestedTypeDeclaration(TypeDeclaration declaringTypeDeclaration); - - /** - * return the type declaration corresponding to the type from the specified - * set of type declarations (match name and occurrence). - * Only return type or enum declarations - */ - protected AbstractTypeDeclaration getTypeDeclaration(AbstractTypeDeclaration[] typeDeclarations) { - String name = this.getName(); - int occurrence = this.getOccurrence(); - int count = 0; - for (AbstractTypeDeclaration typeDeclaration : typeDeclarations) { - if (typeDeclaration.getName().getFullyQualifiedName().equals(name)) { - count++; - if (count == occurrence) { - return (typeDeclaration.getNodeType() == this.getASTNodeType()) ? typeDeclaration : null; - } - } - } - // return null if the type is no longer in the source code; - // this can happen when the context model has not yet - // been synchronized with the resource model but is still - // asking for an ASTNode (e.g. during a selection event) - return null; - } - - protected abstract int getASTNodeType(); - - /** - * we only instantiate a single top-level, non-annotation - * type per compilation unit (i.e. a class, enum, or interface) - */ - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected static List types(CompilationUnit astRoot) { - return astRoot.types(); - } - - protected static EnumDeclaration[] getEnums(TypeDeclaration declaringTypeDeclaration) { - List bd = bodyDeclarations(declaringTypeDeclaration); - int typeCount = 0; - for (Iterator it = bd.listIterator(); it.hasNext(); ) { - if (it.next().getNodeType() == ASTNode.ENUM_DECLARATION) { - typeCount++; - } - } - EnumDeclaration[] memberEnums = new EnumDeclaration[typeCount]; - int next = 0; - for (Iterator it = bd.listIterator(); it.hasNext(); ) { - BodyDeclaration decl = it.next(); - if (decl.getNodeType() == ASTNode.ENUM_DECLARATION) { - memberEnums[next++] = (EnumDeclaration) decl; - } - } - return memberEnums; - } - - @SuppressWarnings("unchecked") - protected static List bodyDeclarations(TypeDeclaration typeDeclaration) { - return typeDeclaration.bodyDeclarations(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractNestedDeclarationAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractNestedDeclarationAnnotationAdapter.java deleted file mode 100644 index 1e12f713b0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AbstractNestedDeclarationAnnotationAdapter.java +++ /dev/null @@ -1,403 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.Iterator; -import java.util.List; -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -/** - * Pull together some of the behavior common to - * {@link NestedDeclarationAnnotationAdapter} - * and {@link NestedIndexedDeclarationAnnotationAdapter} - */ -public abstract class AbstractNestedDeclarationAnnotationAdapter - extends AbstractDeclarationAnnotationAdapter -{ - private final DeclarationAnnotationAdapter outerAnnotationAdapter; - private final String elementName; - - // reduce NLS checks - protected static final String VALUE = "value"; //$NON-NLS-1$ - - - // ********** constructors ********** - - /** - * The default element name is value. - */ - protected AbstractNestedDeclarationAnnotationAdapter(DeclarationAnnotationAdapter outerAnnotationAdapter, String annotationName) { - this(outerAnnotationAdapter, VALUE, annotationName); - } - - protected AbstractNestedDeclarationAnnotationAdapter(DeclarationAnnotationAdapter outerAnnotationAdapter, String elementName, String annotationName) { - super(annotationName); - this.outerAnnotationAdapter = outerAnnotationAdapter; - this.elementName = elementName; - } - - - // ********** DeclarationAnnotationAdapter implementation ********** - - public Annotation getAnnotation(ModifiedDeclaration declaration) { - Annotation outer = this.outerAnnotationAdapter.getAnnotation(declaration); - if (outer == null) { - return null; - } - Expression value = this.elementValue(outer); - if (value == null) { - return null; - } - Annotation inner = this.getAnnotation(value); - if (inner == null) { - return null; - } - // return the annotation only if it has a matching name(?) - return this.nameMatches(declaration, inner) ? inner : null; - } - - public void removeAnnotation(ModifiedDeclaration declaration) { - Annotation outer = this.outerAnnotationAdapter.getAnnotation(declaration); - if (outer == null) { - return; - } - Expression value = this.elementValue(outer); - if (value == null) { - return; - } - // hack to allow short-circuit when the value is an array initializer - if (this.removeAnnotation(declaration, outer, value)) { - return; - } - Annotation inner = this.annotationValue(value); - if (inner == null) { - return; - } - // remove the annotation only if it has a matching name(?) - if (this.nameMatches(declaration, inner)) { - this.removeElementAndNormalize(declaration, outer); - } - } - - public ASTNode getAstNode(ModifiedDeclaration declaration) { - // if the annotation is missing, return the outer annotation's node - Annotation annotation = this.getAnnotation(declaration); - return (annotation != null) ? annotation : this.outerAnnotationAdapter.getAstNode(declaration); - } - - @Override - protected void addAnnotation(ModifiedDeclaration declaration, Annotation inner) { - Annotation outer = this.outerAnnotationAdapter.getAnnotation(declaration); - if (outer == null) { - this.buildNewOuterAnnotation(declaration, inner); - } else if (outer.isMarkerAnnotation()) { - this.modifyAnnotation(declaration, (MarkerAnnotation) outer, inner); - } else if (outer.isSingleMemberAnnotation()) { - this.modifyAnnotation(declaration, (SingleMemberAnnotation) outer, inner); - } else if (outer.isNormalAnnotation()) { - this.modifyAnnotation(declaration, (NormalAnnotation) outer, inner); - } else { - throw new IllegalStateException("unknown annotation type: " + outer); //$NON-NLS-1$ - } - } - - - // ********** abstract methods ********** - - /** - * Return an annotation extracted from the specified expression, - * which is the value of the adapter's element. - */ - protected abstract Annotation getAnnotation(Expression value); - - /** - * Remove the annotation from the specified expression, - * which is the value of the adapter's element. - * Return whether the removal was successful. - */ - protected abstract boolean removeAnnotation(ModifiedDeclaration declaration, Annotation outer, Expression value); - - /** - * Set the value of the specified outer annotation to the - * specified inner annotation. - */ - protected abstract void modifyAnnotationValue(SingleMemberAnnotation outer, Annotation inner); - - /** - * Set the value of the specified member value pair to the - * specified inner annotation. - */ - protected abstract void modifyMemberValuePair(MemberValuePair pair, Annotation inner); - - - // ********** public methods ********** - - public DeclarationAnnotationAdapter getOuterAnnotationAdapter() { - return this.outerAnnotationAdapter; - } - - public String getElementName() { - return this.elementName; - } - - - // ********** internal methods ********** - - /** - * If the specified expression is an annotation, cast it to an annotation; - * otherwise return null. - */ - protected Annotation annotationValue(Expression expression) { - switch (expression.getNodeType()) { - case ASTNode.NORMAL_ANNOTATION: - case ASTNode.SINGLE_MEMBER_ANNOTATION: - case ASTNode.MARKER_ANNOTATION: - return (Annotation) expression; - default: - return null; - } - } - - /** - * Remove the first annotation element with the specified name - * from the specified annotation, converting the annotation as appropriate. - */ - protected void removeElementAndNormalize(ModifiedDeclaration declaration, Annotation outer) { - if (outer.isNormalAnnotation()) { - this.removeElementAndNormalize(declaration, (NormalAnnotation) outer); - } else if (outer.isSingleMemberAnnotation()) { - this.removeElementAndNormalize(declaration, (SingleMemberAnnotation) outer); - } else if (outer.isMarkerAnnotation()) { - this.removeElementAndNormalize(declaration, (MarkerAnnotation) outer); - } else { - throw new IllegalArgumentException("unknown annotation type: " + outer); //$NON-NLS-1$ - } - } - - /** - * Remove the first annotation element with the adapter's element - * name from the specified annotation. Convert the annotation to - * a marker annotation or single member annotation if appropriate. - *
-	 * @Outer(name="Fred", foo=@Inner) => @Outer(name="Fred")
-	 * @Outer(foo=@Inner) => @Outer
-	 * 
- */ - protected void removeElementAndNormalize(ModifiedDeclaration declaration, NormalAnnotation outer) { - this.removeElement(outer); - this.normalizeAnnotation(declaration, outer); - } - - /** - * Remove from the specified annotation the element with - * the adapter's element name. - */ - protected void removeElement(NormalAnnotation annotation) { - for (Iterator stream = this.values(annotation).iterator(); stream.hasNext(); ) { - MemberValuePair pair = stream.next(); - if (pair.getName().getFullyQualifiedName().equals(this.elementName)) { - stream.remove(); - break; - } - } - } - - /** - * Convert the specified normal annotation to a marker annotation or - * single member annotation if appropriate. - */ - protected void normalizeAnnotation(ModifiedDeclaration declaration, NormalAnnotation outer) { - List values = this.values(outer); - switch (values.size()) { - case 0: - // if the elements are all gone, convert the annotation to a marker annotation - this.outerAnnotationAdapter.newMarkerAnnotation(declaration); - break; - case 1: - MemberValuePair pair = values.get(0); - if (pair.getName().getFullyQualifiedName().equals(VALUE)) { - // if the last remaining element is 'value', convert the annotation to a single member annotation - Expression vv = pair.getValue(); - vv = (Expression) ASTNode.copySubtree(vv.getAST(), vv); - this.outerAnnotationAdapter.newSingleMemberAnnotation(declaration).setValue(vv); - } - break; - default: - // do nothing - break; - } - } - - /** - * Convert the specified single member annotation to a marker annotation - * if the adapter's element name is value. - */ - protected void removeElementAndNormalize(ModifiedDeclaration declaration, @SuppressWarnings("unused") SingleMemberAnnotation outer) { - if (this.elementName.equals(VALUE)) { - this.outerAnnotationAdapter.newMarkerAnnotation(declaration); - } - } - - protected void removeElementAndNormalize(@SuppressWarnings("unused") ModifiedDeclaration declaration, @SuppressWarnings("unused") MarkerAnnotation outer) { - // NOP - } - - /** - * Return the value of the *first* annotation element - * with the adapter's element name. - * Return null if the annotation has no such element. - * (An element name of "value" will return the value of a single - * member annotation.) - */ - protected Expression elementValue(Annotation annotation) { - if (annotation.isNormalAnnotation()) { - return this.elementValue((NormalAnnotation) annotation); - } - if (annotation.isSingleMemberAnnotation()) { - return this.elementValue((SingleMemberAnnotation) annotation); - } - return null; - } - - protected Expression elementValue(NormalAnnotation annotation) { - MemberValuePair pair = this.memberValuePair(annotation); - return (pair == null) ? null : pair.getValue(); - } - - /** - * If the adapter's element name is "value", return the value of the - * annotation, otherwise return null. - */ - protected Expression elementValue(SingleMemberAnnotation annotation) { - return this.elementName.equals(VALUE) ? annotation.getValue() : null; - } - - /** - * Return the *first* member value pair for the adapter's element name. - * Return null if the specified annotation has no such element. - */ - protected MemberValuePair memberValuePair(NormalAnnotation annotation) { - for (MemberValuePair pair : this.values(annotation)) { - if (pair.getName().getFullyQualifiedName().equals(this.elementName)) { - return pair; - } - } - return null; - } - - /** - * Build a new outer annotation and add the specified - * inner annotation to it: - *
-	 *     @Outer(@Inner)
-	 * 
- * or - *
-	 *     @Outer(foo=@Inner)
-	 * 
- */ - protected void buildNewOuterAnnotation(ModifiedDeclaration declaration, Annotation inner) { - if (this.elementName.equals(VALUE)) { - this.outerAnnotationAdapter.newSingleMemberAnnotation(declaration).setValue(this.buildNewInnerExpression(inner)); - } else { - List values = this.values(this.outerAnnotationAdapter.newNormalAnnotation(declaration)); - values.add(this.newMemberValuePair(this.buildNewInnerExpression(inner))); - } - } - - /** - * Build an expression to be added to a new outer annotation - * for the specified inner annotation. - */ - protected abstract Expression buildNewInnerExpression(Annotation inner); - - /** - * Build a new member value pair with the specified name and value. - */ - protected MemberValuePair newMemberValuePair(String name, Expression value) { - AST ast = value.getAST(); - MemberValuePair pair = ast.newMemberValuePair(); - pair.setName(ast.newSimpleName(name)); - pair.setValue(value); - return pair; - } - - /** - * Build a new member value pair with the adapter's element name - * and the specified inner annotation. - */ - protected MemberValuePair newMemberValuePair(Expression value) { - return this.newMemberValuePair(this.elementName, value); - } - - /** - * Add the specified inner annotation to the marker annotation. - */ - protected void modifyAnnotation(ModifiedDeclaration declaration, @SuppressWarnings("unused") MarkerAnnotation outer, Annotation inner) { - this.buildNewOuterAnnotation(declaration, inner); - } - - /** - * Add the specified inner annotation to the single member annotation. - */ - protected void modifyAnnotation(ModifiedDeclaration declaration, SingleMemberAnnotation outer, Annotation inner) { - if (this.elementName.equals(VALUE)) { - this.modifyAnnotationValue(outer, inner); - } else { - this.modifyAnnotationNonValue(declaration, outer, inner); - } - } - - /** - * Add the specified inner annotation to the single member annotation, - * converting it to a normal annotation: - *
-	 *     @Outer("lorem ipsum") => @Outer(value="lorem ipsum", foo=@Inner)
-	 * 
- */ - protected void modifyAnnotationNonValue(ModifiedDeclaration declaration, SingleMemberAnnotation outer, Annotation inner) { - Expression vv = outer.getValue(); - vv = (Expression) ASTNode.copySubtree(vv.getAST(), vv); - NormalAnnotation newOuter = this.outerAnnotationAdapter.newNormalAnnotation(declaration); - List values = this.values(newOuter); - values.add(this.newMemberValuePair(VALUE, vv)); - values.add(this.newMemberValuePair(this.buildNewInnerExpression(inner))); - } - - /** - * Add the specified inner annotation to the normal annotation: - *
-	 *     @Outer(bar="lorem ipsum") => @Outer(bar="lorem ipsum", foo=@Inner)
-	 * 
- * or - *
-	 *     @Outer(foo=@Inner("lorem ipsum")) => @Outer(foo=@Inner)
-	 * 
- */ - protected void modifyAnnotation(@SuppressWarnings("unused") ModifiedDeclaration declaration, NormalAnnotation outer, Annotation inner) { - MemberValuePair pair = this.memberValuePair(outer); - if (pair == null) { - List values = this.values(outer); - values.add(this.newMemberValuePair(inner)); - } else { - this.modifyMemberValuePair(pair, inner); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotatedElementAnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotatedElementAnnotationElementAdapter.java deleted file mode 100644 index 4419a56f0c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotatedElementAnnotationElementAdapter.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.internal.StringTools; - - /** - * Adapt an annotated element and a declaration annotation element adapter. - */ -public class AnnotatedElementAnnotationElementAdapter - implements AnnotationElementAdapter -{ - private final AnnotatedElement annotatedElement; - private final DeclarationAnnotationElementAdapter daea; - - - // ********** constructor ********** - - public AnnotatedElementAnnotationElementAdapter(AnnotatedElement annotatedElement, DeclarationAnnotationElementAdapter daea) { - super(); - this.annotatedElement = annotatedElement; - this.daea = daea; - } - - - // ********** AnnotationElementAdapter implementation ********** - - public T getValue() { - return this.daea.getValue(this.annotatedElement.getModifiedDeclaration()); - } - - public T getValue(CompilationUnit astRoot) { - return this.daea.getValue(this.annotatedElement.getModifiedDeclaration(astRoot)); - } - - public void setValue(T value) { - this.edit(this.buildSetValueEditor(value)); - } - - public Expression getExpression(CompilationUnit astRoot) { - return this.daea.getExpression(this.annotatedElement.getModifiedDeclaration(astRoot)); - } - - public ASTNode getAstNode(CompilationUnit astRoot) { - return this.daea.getAstNode(this.annotatedElement.getModifiedDeclaration(astRoot)); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.daea); - } - - - // ********** internal methods ********** - - protected void edit(AnnotatedElement.Editor editor) { - this.annotatedElement.edit(editor); - } - - protected AnnotatedElement.Editor buildSetValueEditor(T value) { - return new SetValueEditor(value, this.daea); - } - - - // ********** member classes ********** - - protected static class SetValueEditor implements AnnotatedElement.Editor { - private final DeclarationAnnotationElementAdapter daea; - private final T value; - - SetValueEditor(T value, DeclarationAnnotationElementAdapter daea) { - super(); - this.value = value; - this.daea = daea; - } - public void edit(ModifiedDeclaration declaration) { - this.daea.setValue(this.value, declaration); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotationStringArrayExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotationStringArrayExpressionConverter.java deleted file mode 100644 index bd085ef4ff..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/AnnotationStringArrayExpressionConverter.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.ArrayInitializer; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -/** - * Convert an array initializer or single expression to/from an array of - * strings (e.g. {"text0", "text1"}). - * E is the type of the expressions to be found either stand-alone or - * as elements in the array initializer. - */ -public class AnnotationStringArrayExpressionConverter - extends AbstractExpressionConverter -{ - private final ExpressionConverter elementConverter; - private final StringArrayExpressionConverter arrayConverter; - - - /** - * The default behavior is to remove the array initializer if it is empty. - */ - public AnnotationStringArrayExpressionConverter(ExpressionConverter elementConverter) { - this(elementConverter, true); - } - - public AnnotationStringArrayExpressionConverter(ExpressionConverter elementConverter, boolean removeArrayInitializerWhenEmpty) { - super(); - this.elementConverter = elementConverter; - this.arrayConverter = new StringArrayExpressionConverter(elementConverter, removeArrayInitializerWhenEmpty); - } - - /** - * if we only have a single string in the array return the single expression, - * without braces, instead of an array initializer - */ - @Override - protected Expression convertObject(String[] strings, AST ast) { - return (strings.length == 1) ? - this.elementConverter.convert(strings[0], ast) - : - this.arrayConverter.convertObject(strings, ast); - } - - @Override - protected String[] convertNull() { - return this.arrayConverter.convertNull(); - } - - /** - * check for a single expression with no surrounding braces, implying a - * single-entry array - */ - @Override - protected String[] convertExpression(Expression expression) { - return (expression.getNodeType() == ASTNode.ARRAY_INITIALIZER) ? - this.arrayConverter.convertArrayInitializer((ArrayInitializer) expression) - : - new String[] {this.elementConverter.convert(expression)}; - } - - - // ********** factory methods ********** - - /** - * Build an expression converter for an annotation element of type String[]. - * @Foo(bar={"text0", "text1"}) - * or - * @Foo(bar="text0") - */ - public static AnnotationStringArrayExpressionConverter forStrings() { - return new AnnotationStringArrayExpressionConverter(StringExpressionConverter.instance()); - } - - /** - * Build an expression converter for an annotation element of type []. - * @Foo(bar={BAZ, BAT}) - * or - * @Foo(bar=BAZ) - */ - public static AnnotationStringArrayExpressionConverter forNames() { - return new AnnotationStringArrayExpressionConverter(NameStringExpressionConverter.instance()); - } - - - /** - * Build an expression converter for an annotation element of type Class[]. - * @Foo(bar={Baz.class, Bat.class}) - * or - * @Foo(bar=Baz.class) - */ - public static AnnotationStringArrayExpressionConverter forTypes() { - return new AnnotationStringArrayExpressionConverter(TypeStringExpressionConverter.instance()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/BooleanExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/BooleanExpressionConverter.java deleted file mode 100644 index f33a719986..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/BooleanExpressionConverter.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.BooleanLiteral; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -/** - * Convert a boolean literal to/from a Boolean - * (e.g. Boolean.TRUE). - */ -public final class BooleanExpressionConverter - extends AbstractExpressionConverter -{ - private static final ExpressionConverter INSTANCE = new BooleanExpressionConverter(); - - /** - * Return the singleton. - */ - public static ExpressionConverter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private BooleanExpressionConverter() { - super(); - } - - @Override - protected BooleanLiteral convertObject(Boolean booleanObject, AST ast) { - return ast.newBooleanLiteral(booleanObject.booleanValue()); - } - - @Override - protected Boolean convertExpression(Expression expression) { - Object value = expression.resolveConstantExpressionValue(); - return (value instanceof Boolean) ? ((Boolean) value) : null; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/CharacterStringExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/CharacterStringExpressionConverter.java deleted file mode 100644 index cfb470581b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/CharacterStringExpressionConverter.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.CharacterLiteral; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -/** - * Convert a character literal to/from a string representation of a character - * (e.g. "A"). - */ -public final class CharacterStringExpressionConverter - extends AbstractExpressionConverter -{ - private static final ExpressionConverter INSTANCE = new CharacterStringExpressionConverter(); - - /** - * Return the singleton. - */ - public static ExpressionConverter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private CharacterStringExpressionConverter() { - super(); - } - - @Override - protected CharacterLiteral convertObject(String string, AST ast) { - CharacterLiteral characterLiteral = ast.newCharacterLiteral(); - characterLiteral.setCharValue(string.charAt(0)); - return characterLiteral; - } - - @Override - protected String convertExpression(Expression expression) { - Object value = expression.resolveConstantExpressionValue(); - return (value instanceof Character) ? ((Character) value).toString() : null; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapter.java deleted file mode 100644 index c41fc8e8a9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapter.java +++ /dev/null @@ -1,500 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.List; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Manipulate an annotation that either occurs stand-alone, e.g. - *
- *     @Inner("zero")
- *     private int id;
- * 
- * - * or is embedded in an element array within another annotation, e.g. - *
- *     @Outer(foo={@Inner("zero"), @Inner("one"), @Inner("two")})
- *     private int id;
- *     
- *         annotationName = "Inner"
- *         containerAnnotationName = "Outer"
- *         elementName = "foo"
- *         index = 0-2
- * 
- * - * This is a useful pattern because a declaration cannot have more - * than one annotation of the same type, and allowing the stand-alone - * configuration reduces clutter. - *
- * NB: This configuration only makes sense for "top-level" annotations, as - * opposed to "nested" annotations. This is because annotation elements - * can only be declared with a type of a single annotation and annotations - * cannot be part of an inheritance hierarchy. - * For example, the following configurations cannot *both* be supported: - *
- *     @Foo(bar=@Outer(...))
- *     private int id;
- * 
- *     @Foo(bar=@Inner(...))  // not allowed
- *     private int id;
- * 
- * - * NB: Behavior is undefined when both the stand-alone and the nested - * configurations annotate the same declaration, e.g. - *
- *     // undefined behavior
- *     @Inner("zero")
- *     @Outer(foo={@Inner("zero"), @Inner("one"), @Inner("two")})
- *     private int id;
- * 
- */ -public class CombinationIndexedDeclarationAnnotationAdapter - implements IndexedDeclarationAnnotationAdapter -{ - - /** - * this adapter is used when the annotation is "stand-alone": - *
-	 *     @Inner("zero")
-	 * 
- * and is only used when the index is 0 or 1 - */ - private final SimpleDeclarationAnnotationAdapter standAloneAnnotationAdapter; - - /** - * this adapter is used when the annotation is "nested": - *
-	 *     @Outer(foo={@Inner("zero"), @Inner("one")})
-	 * 
- */ - private final NestedIndexedDeclarationAnnotationAdapter nestedAnnotationAdapter; - - /** - * this adapter is for the "nested" annotation at the zero index; - * and is only used when the index is 1 - */ - private final NestedIndexedDeclarationAnnotationAdapter zeroNestedAnnotationAdapter; - - // reduce NLS checks - protected static final String VALUE = "value"; //$NON-NLS-1$ - - - // ********** constructors ********** - - /** - * default element name is "value" - *
-	 *     @Inner("zero")
-	 *     @Outer({@Inner("zero"), @Inner("one")})
-	 * 
- */ - public CombinationIndexedDeclarationAnnotationAdapter(String annotationName, String containerAnnotationName, int index) { - this(annotationName, containerAnnotationName, VALUE, index); - } - - public CombinationIndexedDeclarationAnnotationAdapter(String annotationName, String containerAnnotationName, String elementName, int index) { - this(new SimpleDeclarationAnnotationAdapter(annotationName), new SimpleDeclarationAnnotationAdapter(containerAnnotationName), elementName, index, annotationName); - } - - /** - * default element name is "value" - */ - public CombinationIndexedDeclarationAnnotationAdapter( - SimpleDeclarationAnnotationAdapter standAloneAnnotationAdapter, - SimpleDeclarationAnnotationAdapter containerAnnotationAdapter, - int index, - String nestedAnnotationName - ) { - this(standAloneAnnotationAdapter, containerAnnotationAdapter, VALUE, index, nestedAnnotationName); - } - - public CombinationIndexedDeclarationAnnotationAdapter( - SimpleDeclarationAnnotationAdapter standAloneAnnotationAdapter, - SimpleDeclarationAnnotationAdapter containerAnnotationAdapter, - String elementName, - int index, - String nestedAnnotationName - ) { - super(); - this.standAloneAnnotationAdapter = standAloneAnnotationAdapter; - this.nestedAnnotationAdapter = new NestedIndexedDeclarationAnnotationAdapter(containerAnnotationAdapter, elementName, index, nestedAnnotationName); - this.zeroNestedAnnotationAdapter = new NestedIndexedDeclarationAnnotationAdapter(containerAnnotationAdapter, elementName, 0, nestedAnnotationName); - } - - - // ********** DeclarationAnnotationAdapter implementation ********** - - public Annotation getAnnotation(ModifiedDeclaration declaration) { - if (this.getIndex() == 0) { - // check for the stand-alone annotation - Annotation standAloneAnnotation = this.getStandAloneAnnotation(declaration); - if (standAloneAnnotation != null) { - return standAloneAnnotation; - } - } - return this.getNestedAnnotation(declaration); - } - - /** - *
-	 * [none] => @Inner
-	 *     or
-	 * @Inner("lorem ipsum") => @Inner
-	 *     or
-	 * @Inner(text="lorem ipsum") => @Inner
-	 *     or
-	 * @Outer(foo={@Inner, @Inner}) => @Outer(foo={@Inner, @Inner, @Inner})
-	 *     or
-	 * @Outer(foo=@Inner) => @Outer(foo={@Inner, @Inner})
-	 *     or
-	 * @Inner => @Outer(foo={@Inner, @Inner})
-	 *     etc.
-	 * 
- */ - public MarkerAnnotation newMarkerAnnotation(ModifiedDeclaration declaration) { - return (MarkerAnnotation) this.newAnnotation(MARKER_ANNOTATION_FACTORY, declaration); - } - - public SingleMemberAnnotation newSingleMemberAnnotation(ModifiedDeclaration declaration) { - return (SingleMemberAnnotation) this.newAnnotation(SINGLE_MEMBER_ANNOTATION_FACTORY, declaration); - } - - public NormalAnnotation newNormalAnnotation(ModifiedDeclaration declaration) { - return (NormalAnnotation) this.newAnnotation(NORMAL_ANNOTATION_FACTORY, declaration); - } - - public void removeAnnotation(ModifiedDeclaration declaration) { - if (this.getIndex() == 0) { - // check for the stand-alone annotation - if (this.standAloneAnnotationIsPresent(declaration)) { - this.removeStandAloneAnnotation(declaration); - return; - } - } - this.removeNestedAnnotation(declaration); - if (this.nestedElementCanBeConvertedToStandAlone(declaration)) { - this.convertLastElementAnnotationToStandAloneAnnotation(declaration); - } - } - - public ASTNode getAstNode(ModifiedDeclaration declaration) { - // if the annotation is missing, delegate to the nested annotation adapter - Annotation annotation = this.getAnnotation(declaration); - return (annotation != null) ? annotation : this.nestedAnnotationAdapter.getAstNode(declaration); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.getAnnotationName()); - } - - - // ********** IndexedDeclarationAnnotationAdapter implementation ********** - - public int getIndex() { - return this.nestedAnnotationAdapter.getIndex(); - } - - public void moveAnnotation(int newIndex, ModifiedDeclaration declaration) { - int oldIndex = this.getIndex(); - if (newIndex == oldIndex) { - return; - } - - Annotation standAloneAnnotation = this.getStandAloneAnnotation(declaration); - if (standAloneAnnotation == null) { - this.moveNestedAnnotation(newIndex, declaration); - if (this.nestedElementCanBeConvertedToStandAlone(declaration)) { - this.convertLastElementAnnotationToStandAloneAnnotation(declaration); - } - } else { - if ((oldIndex == 0) && (newIndex == 1)) { - // this is one of two situations where we transition from stand-alone to container - this.moveStandAloneAnnotationToContainerAnnotation(standAloneAnnotation, declaration); - this.moveNestedAnnotation(newIndex, declaration); - } else if (newIndex == 0) { - // we are moving a 'null' entry on top of the stand-alone, so remove it - this.removeStandAloneAnnotation(declaration); - } else { - throw new IllegalStateException("old index = " + oldIndex + "; new index = " + newIndex); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - } - - - // ********** internal methods ********** - - /** - * build the appropriate new annotation, - * which may require moving the 0th annotation from "stand-alone" to "nested" - */ - private Annotation newAnnotation(AnnotationFactory annotationFactory, ModifiedDeclaration declaration) { - if (this.getIndex() == 0) { - return this.newZeroAnnotation(annotationFactory, declaration); - } - if (this.zeroNestedAnnotationIsPresent(declaration)) { - // manipulate the container annotation - ignore the stand-alone annotation(?) - // @Outer(foo=@Inner("zero")) => @Outer(foo={@Inner("zero"), @Inner}) - // or - // @Outer(foo={@Inner("zero"), @Inner("one")}) => @Outer(foo={@Inner("zero"), @Inner}) - return annotationFactory.newAnnotation(this.nestedAnnotationAdapter, declaration); - } - - // this is one of two situations where we transition from stand-alone to container - this.moveStandAloneAnnotationToContainerAnnotation(declaration); - // once the stand-alone annotation is moved to index=0, build the new annotation at index=1 - return annotationFactory.newAnnotation(this.nestedAnnotationAdapter, declaration); - } - - /** - * the index is 0 - build the appropriate new annotation, - * which may be either "stand-alone" or "nested" - */ - private Annotation newZeroAnnotation(AnnotationFactory annotationFactory, ModifiedDeclaration declaration) { - if (this.standAloneAnnotationIsPresent(declaration)) { - // replace the stand-alone annotation - ignore the container annotation(?) - // @Inner(text="lorem ipsum") => @Inner - return annotationFactory.newAnnotation(this.standAloneAnnotationAdapter, declaration); - } - if (this.containerAnnotationIsPresent(declaration)) { - // manipulate the container annotation - // @Outer(foo=@Inner(text="lorem ipsum")) => @Outer(foo=@Inner) - return annotationFactory.newAnnotation(this.nestedAnnotationAdapter, declaration); - } - // neither annotation is present - add a new stand-alone annotation - return annotationFactory.newAnnotation(this.standAloneAnnotationAdapter, declaration); - } - - /** - * move the stand-alone annotation to the container annotation at index=0 - */ - private void moveStandAloneAnnotationToContainerAnnotation(ModifiedDeclaration declaration) { - Annotation standAloneAnnotation = this.getStandAloneAnnotation(declaration); - if (standAloneAnnotation == null) { - throw new IllegalStateException("the stand-alone annotation is missing"); //$NON-NLS-1$ - } - this.moveStandAloneAnnotationToContainerAnnotation(standAloneAnnotation, declaration); - } - - /** - * move the specified, non-null, stand-alone annotation to - * the container annotation at index=0 - */ - private void moveStandAloneAnnotationToContainerAnnotation(Annotation standAloneAnnotation, ModifiedDeclaration declaration) { - if (standAloneAnnotation.isMarkerAnnotation()) { - this.zeroNestedAnnotationAdapter.newMarkerAnnotation(declaration); - } else if (standAloneAnnotation.isSingleMemberAnnotation()) { - Expression vv = ((SingleMemberAnnotation) standAloneAnnotation).getValue(); - vv = (Expression) ASTNode.copySubtree(vv.getAST(), vv); - this.zeroNestedAnnotationAdapter.newSingleMemberAnnotation(declaration).setValue(vv); - } else if (standAloneAnnotation.isNormalAnnotation()) { - NormalAnnotation newNA = this.zeroNestedAnnotationAdapter.newNormalAnnotation(declaration); - List values = this.values(newNA); - for (MemberValuePair pair : this.values((NormalAnnotation) standAloneAnnotation)) { - values.add((MemberValuePair) ASTNode.copySubtree(pair.getAST(), pair)); - } - } else { - throw new IllegalStateException("unknown annotation type: " + standAloneAnnotation); //$NON-NLS-1$ - } - this.removeStandAloneAnnotation(declaration); - } - - /** - * return whether the "nested" annotation container has been reduced to - * a single element (and the array initializer is converted to just - * the single remaining element) and can be further converted to the - * "stand-alone" annotation: - *
-	 *     @Outer(foo={@Inner("zero"), @Inner("one")}) =>
-	 *     @Outer(foo=@Inner("zero")) =>
-	 *     @Inner("zero")
-	 * 
- */ - private boolean nestedElementCanBeConvertedToStandAlone(ModifiedDeclaration declaration) { - Annotation containerAnnotation = this.getContainerAnnotation(declaration); - if (containerAnnotation == null) { - return false; - } - if (containerAnnotation.isMarkerAnnotation()) { - return false; - } - if (containerAnnotation.isSingleMemberAnnotation()) { - if (this.getElementName().equals(VALUE)) { - return (((SingleMemberAnnotation) containerAnnotation).getValue().getNodeType() != ASTNode.ARRAY_INITIALIZER) - && (this.zeroNestedAnnotationAdapter.getAnnotation(declaration) != null); - } - return false; - } - if (containerAnnotation.isNormalAnnotation()) { - NormalAnnotation na = (NormalAnnotation) containerAnnotation; - if (na.values().size() == 0) { - return false; // there are no elements present - } - if (na.values().size() != 1) { - return false; // there are other elements present - leave them all alone - } - MemberValuePair pair = (MemberValuePair) na.values().get(0); - if (this.getElementName().equals(pair.getName().getFullyQualifiedName())) { - return (pair.getValue().getNodeType() != ASTNode.ARRAY_INITIALIZER) - && (this.zeroNestedAnnotationAdapter.getAnnotation(declaration) != null); - } - return false; - } - throw new IllegalStateException("unknown annotation type: " + containerAnnotation); //$NON-NLS-1$ - } - - /** - * move the annotation in the container annotation at index=0 - * to the stand-alone annotation - */ - private void convertLastElementAnnotationToStandAloneAnnotation(ModifiedDeclaration declaration) { - Annotation last = this.zeroNestedAnnotationAdapter.getAnnotation(declaration); - if (last == null) { - throw new IllegalStateException("the last nested annotation is missing"); //$NON-NLS-1$ - } else if (last.isMarkerAnnotation()) { - this.newStandAloneMarkerAnnotation(declaration); - } else if (last.isSingleMemberAnnotation()) { - Expression vv = ((SingleMemberAnnotation) last).getValue(); - vv = (Expression) ASTNode.copySubtree(vv.getAST(), vv); - this.newStandAloneSingleMemberAnnotation(declaration).setValue(vv); - } else if (last.isNormalAnnotation()) { - NormalAnnotation newNA = this.newStandAloneNormalAnnotation(declaration); - List values = this.values(newNA); - for (MemberValuePair pair : this.values((NormalAnnotation) last)) { - values.add((MemberValuePair) ASTNode.copySubtree(pair.getAST(), pair)); - } - } else { - throw new IllegalStateException("unknown annotation type: " + last); //$NON-NLS-1$ - } - this.removeContainerAnnotation(declaration); - } - - private boolean standAloneAnnotationIsPresent(ModifiedDeclaration declaration) { - return this.getStandAloneAnnotation(declaration) != null; - } - - private Annotation getStandAloneAnnotation(ModifiedDeclaration declaration) { - return this.standAloneAnnotationAdapter.getAnnotation(declaration); - } - - private MarkerAnnotation newStandAloneMarkerAnnotation(ModifiedDeclaration declaration) { - return this.standAloneAnnotationAdapter.newMarkerAnnotation(declaration); - } - - private SingleMemberAnnotation newStandAloneSingleMemberAnnotation(ModifiedDeclaration declaration) { - return this.standAloneAnnotationAdapter.newSingleMemberAnnotation(declaration); - } - - private NormalAnnotation newStandAloneNormalAnnotation(ModifiedDeclaration declaration) { - return this.standAloneAnnotationAdapter.newNormalAnnotation(declaration); - } - - private void removeStandAloneAnnotation(ModifiedDeclaration declaration) { - this.standAloneAnnotationAdapter.removeAnnotation(declaration); - } - - private Annotation getNestedAnnotation(ModifiedDeclaration declaration) { - return this.nestedAnnotationAdapter.getAnnotation(declaration); - } - - private void moveNestedAnnotation(int newIndex, ModifiedDeclaration declaration) { - this.nestedAnnotationAdapter.moveAnnotation(newIndex, declaration); - } - - private void removeNestedAnnotation(ModifiedDeclaration declaration) { - this.nestedAnnotationAdapter.removeAnnotation(declaration); - } - - private boolean containerAnnotationIsPresent(ModifiedDeclaration declaration) { - return this.getContainerAnnotation(declaration) != null; - } - - private Annotation getContainerAnnotation(ModifiedDeclaration declaration) { - return this.nestedAnnotationAdapter.getOuterAnnotationAdapter().getAnnotation(declaration); - } - - private void removeContainerAnnotation(ModifiedDeclaration declaration) { - this.nestedAnnotationAdapter.getOuterAnnotationAdapter().removeAnnotation(declaration); - } - - private boolean zeroNestedAnnotationIsPresent(ModifiedDeclaration declaration) { - return this.getZeroNestedAnnotation(declaration) != null; - } - - private Annotation getZeroNestedAnnotation(ModifiedDeclaration declaration) { - return this.zeroNestedAnnotationAdapter.getAnnotation(declaration); - } - - private String getAnnotationName() { - return this.nestedAnnotationAdapter.getAnnotationName(); - } - - private String getElementName() { - return this.nestedAnnotationAdapter.getElementName(); - } - - @SuppressWarnings("unchecked") - protected List values(NormalAnnotation na) { - return na.values(); - } - - - // ********** annotation factories ********** - - /** - * define interface that allows us to "re-use" the nasty code in - * #newAnnotation(AnnotationFactory, ModifiedDeclaration) - */ - private interface AnnotationFactory { - Annotation newAnnotation(DeclarationAnnotationAdapter adapter, ModifiedDeclaration declaration); - } - - private static final AnnotationFactory MARKER_ANNOTATION_FACTORY = new AnnotationFactory() { - public Annotation newAnnotation(DeclarationAnnotationAdapter adapter, ModifiedDeclaration declaration) { - return adapter.newMarkerAnnotation(declaration); - } - @Override - public String toString() { - return "MarkerAnnotationFactory"; //$NON-NLS-1$ - } - }; - - private static final AnnotationFactory SINGLE_MEMBER_ANNOTATION_FACTORY = new AnnotationFactory() { - public Annotation newAnnotation(DeclarationAnnotationAdapter adapter, ModifiedDeclaration declaration) { - return adapter.newSingleMemberAnnotation(declaration); - } - @Override - public String toString() { - return "SingleMemberAnnotationFactory"; //$NON-NLS-1$ - } - }; - - private static final AnnotationFactory NORMAL_ANNOTATION_FACTORY = new AnnotationFactory() { - public Annotation newAnnotation(DeclarationAnnotationAdapter adapter, ModifiedDeclaration declaration) { - return adapter.newNormalAnnotation(declaration); - } - @Override - public String toString() { - return "NormalAnnotationFactory"; //$NON-NLS-1$ - } - }; - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ConversionDeclarationAnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ConversionDeclarationAnnotationElementAdapter.java deleted file mode 100644 index b65a2fec5f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ConversionDeclarationAnnotationElementAdapter.java +++ /dev/null @@ -1,154 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Wrap a declaration annotation element adapter that deals with AST - * expressions, converting them to/from various other objects. - * - * @param the type of the object be passed to and returned by the adapter - */ -public class ConversionDeclarationAnnotationElementAdapter - implements DeclarationAnnotationElementAdapter -{ - /** - * The wrapped adapter that returns and takes AST expressions. - */ - private final DeclarationAnnotationElementAdapter adapter; - - /** - * The converter that converts AST expressions to other objects - * (e.g. Strings). - */ - private final ExpressionConverter converter; - - - // ********** constructors ********** - - /** - * The default element name is value. - */ - public ConversionDeclarationAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, ExpressionConverter converter) { - this(new ExpressionDeclarationAnnotationElementAdapter(annotationAdapter), converter); - } - - public ConversionDeclarationAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName, ExpressionConverter converter) { - this(new ExpressionDeclarationAnnotationElementAdapter(annotationAdapter, elementName), converter); - } - - public ConversionDeclarationAnnotationElementAdapter(DeclarationAnnotationElementAdapter adapter, ExpressionConverter converter) { - super(); - this.adapter = adapter; - this.converter = converter; - } - - - // ********** DeclarationAnnotationElementAdapter implementation ********** - - public T getValue(ModifiedDeclaration declaration) { - Expression expression = this.adapter.getValue(declaration); - return this.converter.convert(expression); - } - - public void setValue(T value, ModifiedDeclaration declaration) { - Expression expression; - try { - expression = this.converter.convert(value, declaration.getAst()); - } catch (IllegalArgumentException ex) { - // if there is a problem converting the 'value' to an Expression we get this exception - return; // don't set the value if it is "illegal" - } - this.adapter.setValue(expression, declaration); - } - - public Expression getExpression(ModifiedDeclaration declaration) { - return this.adapter.getExpression(declaration); - } - - public ASTNode getAstNode(ModifiedDeclaration declaration) { - return this.adapter.getAstNode(declaration); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.adapter); - } - - - // ********** factory static methods ********** - - /** - * The default element name is value; - * the default expression converter expects string constant expressions. - */ - public static ConversionDeclarationAnnotationElementAdapter forStrings(DeclarationAnnotationAdapter annotationAdapter) { - return new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, StringExpressionConverter.instance()); - } - - /** - * The default expression converter expects string constant expressions. - */ - public static ConversionDeclarationAnnotationElementAdapter forStrings(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, elementName, StringExpressionConverter.instance()); - } - - /** - * The default element name is value; - * the default expression converter expects number constant expressions. - */ - public static ConversionDeclarationAnnotationElementAdapter forNumbers(DeclarationAnnotationAdapter annotationAdapter) { - return new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, NumberIntegerExpressionConverter.instance()); - } - - /** - * The default expression converter expects number constant expressions. - */ - public static ConversionDeclarationAnnotationElementAdapter forNumbers(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, elementName, NumberIntegerExpressionConverter.instance()); - } - - /** - * The default element name is value; - * the default expression converter expects boolean constant expressions. - */ - public static ConversionDeclarationAnnotationElementAdapter forBooleans(DeclarationAnnotationAdapter annotationAdapter) { - return new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, BooleanExpressionConverter.instance()); - } - - /** - * The default expression converter expects boolean constant expressions. - */ - public static ConversionDeclarationAnnotationElementAdapter forBooleans(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, elementName, BooleanExpressionConverter.instance()); - } - - /** - * The default element name is value; - * the default expression converter expects character constant expressions. - */ - public static ConversionDeclarationAnnotationElementAdapter forCharacters(DeclarationAnnotationAdapter annotationAdapter) { - return new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, CharacterStringExpressionConverter.instance()); - } - - /** - * The default expression converter expects character constant expressions. - */ - public static ConversionDeclarationAnnotationElementAdapter forCharacters(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, elementName, CharacterStringExpressionConverter.instance()); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/DefaultAnnotationEditFormatter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/DefaultAnnotationEditFormatter.java deleted file mode 100644 index 97264a9d93..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/DefaultAnnotationEditFormatter.java +++ /dev/null @@ -1,219 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.text.edits.InsertEdit; -import org.eclipse.text.edits.MalformedTreeException; -import org.eclipse.text.edits.MultiTextEdit; -import org.eclipse.text.edits.ReplaceEdit; -import org.eclipse.text.edits.TextEdit; - -/** - * This implementation will clean up some of the nasty Eclipse annotation - * formatting (or lack thereof); e.g. arrays of annotations. - */ -public final class DefaultAnnotationEditFormatter - implements AnnotationEditFormatter -{ - private static final DefaultAnnotationEditFormatter INSTANCE = new DefaultAnnotationEditFormatter(); - - /** - * Return the singleton. - */ - public static DefaultAnnotationEditFormatter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private DefaultAnnotationEditFormatter() { - super(); - } - - /** - * TODO - */ - public void format(IDocument doc, TextEdit editTree) throws MalformedTreeException, BadLocationException { - TextEdit[] edits = editTree.getChildren(); - int len = edits.length; - if (len == 0) { - return; - } - - MultiTextEdit extraEdits = new MultiTextEdit(); - for (int i = 0; i < len; i++) { - TextEdit edit1 = edits[i]; - if ( ! (edit1 instanceof InsertEdit)) { - continue; // if the edit is not an insert, skip to the next edit - } - InsertEdit insert1 = (InsertEdit) edit1; - int j = i + 1; - if (j < len) { - TextEdit edit2 = edits[j]; - if (edit2 instanceof InsertEdit) { - InsertEdit insert2 = (InsertEdit) edit2; - String text1 = insert1.getText(); - String text2 = insert2.getText(); - int offset1 = insert1.getOffset(); - int offset2 = insert2.getOffset(); - if (this.stringIsAnnotation(text1) && text2.equals(" ")) { //$NON-NLS-1$ - // an annotation was inserted before something on the same line; - // replace the trailing space with a newline and appropriate indent - extraEdits.addChild(new ReplaceEdit(offset2, 1, this.buildCR(doc, offset2))); - i++; // jump the index past 'edit2' - continue; // go to the next edit - } - int comma1Length = this.commaLength(text1); - if ((comma1Length != 0) && this.stringIsAnnotation(text2)) { - // an annotation was inserted in an array initializer on the - // same line as the previous array element; - // replace the preceding space with a newline and appropriate indent - extraEdits.addChild(new ReplaceEdit(offset1 + comma1Length, text1.length() - comma1Length, this.buildCR(doc, offset1))); - i++; // jump the index past 'edit2' - continue; // go to the next edit - } - } - } - this.formatArrayInitializer(doc, insert1, extraEdits); - } - extraEdits.apply(doc, TextEdit.NONE); - } - - /** - * If the insert edit is inserting an annotation containing an array of annotations as - * its value then format them nicely. - */ - private void formatArrayInitializer(IDocument doc, InsertEdit insertEdit, MultiTextEdit extraEdits) throws BadLocationException { - String s = insertEdit.getText(); - if ( ! this.stringIsAnnotation(s)) { - return; - } - int len = s.length(); - int pos = 1; // skip '@' - while (pos < len) { - char c = s.charAt(pos); - pos++; // bump to just past first '(' - if (c == '(') { - break; - } - } - if (pos == len) { - return; // reached end of string - } - while (pos < len) { - char c = s.charAt(pos); - pos++; // bump to just past first '{' - if (c == '{') { - break; - } - if (c != ' ') { - return; - } - } - if (pos == len) { - return; // reached end of string - } - // now look for '@' not inside parentheses and put in - // line delimeter and indent string before each - int offset = insertEdit.getOffset(); - String indent = null; - int parenDepth = 0; - while (pos < len) { - switch (s.charAt(pos)) { - case '(' : - parenDepth++; - break; - case ')' : - parenDepth--; - break; - case '@' : - if (parenDepth == 0) { - if (indent == null) { - indent = this.buildCR(doc, offset, "\t"); // TODO use tab preference? //$NON-NLS-1$ - } - extraEdits.addChild(new InsertEdit(offset + pos, indent)); - } - break; - case '}' : - if (parenDepth == 0) { - extraEdits.addChild(new InsertEdit(offset + pos, this.buildCR(doc, offset))); - } - break; - } - pos++; - } - } - - /** - * Build a string containing a line delimeter and indenting characters - * matching the indent level of the line containing the character offset - * (i.e. the new line's indent matches the current line). - */ - private String buildCR(IDocument doc, int offset) throws BadLocationException { - return this.buildCR(doc, offset, ""); //$NON-NLS-1$ - } - - private String buildCR(IDocument doc, int offset, String suffix) throws BadLocationException { - int line = doc.getLineOfOffset(offset); - StringBuilder sb = new StringBuilder(); - sb.append(doc.getLineDelimiter(line)); // use same CR as current line - - int o = doc.getLineOffset(line); // match the whitespace of the current line - char c = doc.getChar(o++); - while ((c == ' ') || (c == '\t')) { - sb.append(c); - c = doc.getChar(o++); - } - sb.append(suffix); - return sb.toString(); - } - - /** - * Return whether the specified string is an annotation. - */ - private boolean stringIsAnnotation(String string) { - return (string.length() > 1) && string.charAt(0) == '@'; - } - - /** - * If the specified string is a single comma, possibly surrounded by - * spaces, return the length of the substring containing the - * initial spaces and the comma. - */ - private int commaLength(String string) { - boolean comma = false; - int len = string.length(); - int result = 0; - for (int i = 0; i < len; i++) { - switch (string.charAt(i)) { - case ' ' : - if ( ! comma) { - result++; // space preceding comma - } - break; - case ',' : - if (comma) { - return 0; // second comma! - } - comma = true; - result++; - break; - default: - return 0; // non-comma, non-space char - } - } - return result; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ElementAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ElementAnnotationAdapter.java deleted file mode 100644 index 17f14a4b22..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ElementAnnotationAdapter.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; - -/** - * Adapt an annotated element and a declaration annotation adapter. - */ -public class ElementAnnotationAdapter extends AbstractAnnotationAdapter { - - - // ********** constructor ********** - - public ElementAnnotationAdapter(AnnotatedElement annotatedElement, DeclarationAnnotationAdapter daa) { - super(annotatedElement, daa); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ElementIndexedAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ElementIndexedAnnotationAdapter.java deleted file mode 100644 index f3e3467b8b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ElementIndexedAnnotationAdapter.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement; -import org.eclipse.jpt.common.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Adapt an annotated element and an indexed declaration annotation adapter. - */ -public class ElementIndexedAnnotationAdapter - extends AbstractAnnotationAdapter - implements IndexedAnnotationAdapter -{ - private final IndexedDeclarationAnnotationAdapter idaa; - - - // ********** constructor ********** - - public ElementIndexedAnnotationAdapter(AnnotatedElement annotatedElement, IndexedDeclarationAnnotationAdapter idaa) { - super(annotatedElement, idaa); - this.idaa = idaa; - } - - - // ********** IndexedAnnotationAdapter implementation ********** - - public int getIndex() { - return this.idaa.getIndex(); - } - - public void moveAnnotation(int newIndex) { - this.edit(this.buildMoveAnnotationEditor(newIndex)); - } - - - // ********** factory methods ********** - - protected AnnotatedElement.Editor buildMoveAnnotationEditor(int newIndex) { - return new MoveAnnotationEditor(this.idaa, newIndex); - } - - - // ********** member classes ********** - - protected static class MoveAnnotationEditor implements AnnotatedElement.Editor { - private final IndexedDeclarationAnnotationAdapter idaa; - private int index; - - MoveAnnotationEditor(IndexedDeclarationAnnotationAdapter idaa, int index) { - super(); - this.idaa = idaa; - this.index = index; - } - public void edit(ModifiedDeclaration declaration) { - this.idaa.moveAnnotation(this.index, declaration); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/EnumArrayDeclarationAnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/EnumArrayDeclarationAnnotationElementAdapter.java deleted file mode 100644 index 3b3a74be0d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/EnumArrayDeclarationAnnotationElementAdapter.java +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.List; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.ArrayInitializer; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Wrap a declaration annotation element adapter and simply - * add an import for the enums when necessary. - */ -public class EnumArrayDeclarationAnnotationElementAdapter - implements DeclarationAnnotationElementAdapter -{ - /** - * The wrapped adapter that returns and takes name strings (enums). - */ - private final ConversionDeclarationAnnotationElementAdapter adapter; - - - // ********** constructors ********** - - /** - * The default element name is value. - * The default behavior is to remove the array initializer if it is empty. - */ - public EnumArrayDeclarationAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter) { - this(annotationAdapter, VALUE); - } - - /** - * The default behavior is to remove the array initializer if it is empty. - */ - public EnumArrayDeclarationAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - this(annotationAdapter, elementName, true); - } - - public EnumArrayDeclarationAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName, boolean removeArrayInitializerWhenEmpty) { - this(new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, elementName, buildExpressionConverter(removeArrayInitializerWhenEmpty))); - } - - private static ExpressionConverter buildExpressionConverter(boolean removeArrayInitializerWhenEmpty) { - return new AnnotationStringArrayExpressionConverter(NameStringExpressionConverter.instance(), removeArrayInitializerWhenEmpty); - } - - protected EnumArrayDeclarationAnnotationElementAdapter(ConversionDeclarationAnnotationElementAdapter adapter) { - super(); - this.adapter = adapter; - } - - - // ********** DeclarationAnnotationElementAdapter implementation ********** - - public String[] getValue(ModifiedDeclaration declaration) { - // ignore the adapter's getValue() - we want the expression - return this.resolve(this.adapter.getExpression(declaration), declaration); - } - - public void setValue(String[] value, ModifiedDeclaration declaration) { - this.adapter.setValue(this.convertToSourceCodeNames(value, declaration), declaration); - } - - public Expression getExpression(ModifiedDeclaration declaration) { - return this.adapter.getExpression(declaration); - } - - public ASTNode getAstNode(ModifiedDeclaration declaration) { - return this.adapter.getAstNode(declaration); - } - - - // ********** internal methods ********** - - /** - * resolve the enums, which can be - * null - * or - * {FOO, BAR, BAZ} - * or - * FOO - */ - protected String[] resolve(Expression expression, ModifiedDeclaration declaration) { - if (expression == null) { - return StringTools.EMPTY_STRING_ARRAY; - } else if (expression.getNodeType() == ASTNode.ARRAY_INITIALIZER) { - return this.resolveArray((ArrayInitializer) expression, declaration); - } else { - return this.resolveSingleElement(expression, declaration); - } - } - - protected String[] resolveArray(ArrayInitializer ai, @SuppressWarnings("unused") ModifiedDeclaration declaration) { - List expressions = this.expressions(ai); - int len = expressions.size(); - String[] enums = new String[len]; - for (int i = len; i-- > 0; ) { - enums[i] = this.resolveEnum(expressions.get(i)); - } - return enums; - } - - protected String[] resolveSingleElement(Expression enumExpression, @SuppressWarnings("unused") ModifiedDeclaration declaration) { - return new String[] {this.resolveEnum(enumExpression)}; - } - - protected String resolveEnum(Expression expression) { - return ASTTools.resolveEnum(expression); - } - - // minimize scope of suppressd warnings - @SuppressWarnings("unchecked") - private List expressions(ArrayInitializer arrayInitializer) { - return arrayInitializer.expressions(); - } - - /** - * convert the fully-qualified enums to names that can be inserted in source code - * NB: imports may be added as a side-effect :-( - */ - protected String[] convertToSourceCodeNames(String[] enums, ModifiedDeclaration declaration) { - if (enums == null) { - return null; - } - int len = enums.length; - String[] sourceCodeNames = new String[len]; - for (int i = 0; i < len; i++) { - sourceCodeNames[i] = this.convertToSourceCodeName(enums[i], declaration); - } - return sourceCodeNames; - } - - protected String convertToSourceCodeName(String enum_, ModifiedDeclaration declaration) { - return EnumDeclarationAnnotationElementAdapter.convertToSourceCodeName(enum_, declaration); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/EnumDeclarationAnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/EnumDeclarationAnnotationElementAdapter.java deleted file mode 100644 index 21cbe29aaa..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/EnumDeclarationAnnotationElementAdapter.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -/** - * Wrap a declaration annotation element adapter and simply - * add an import for the enum when necessary. - */ -public class EnumDeclarationAnnotationElementAdapter - implements DeclarationAnnotationElementAdapter -{ - /** - * The wrapped adapter that returns and takes name strings (enums). - */ - private final ConversionDeclarationAnnotationElementAdapter adapter; - - - // ********** constructors ********** - - /** - * The default element name is value. - */ - public EnumDeclarationAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter) { - this(annotationAdapter, VALUE); - } - - public EnumDeclarationAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - this(new ConversionDeclarationAnnotationElementAdapter(annotationAdapter, elementName, NameStringExpressionConverter.instance())); - } - - protected EnumDeclarationAnnotationElementAdapter(ConversionDeclarationAnnotationElementAdapter adapter) { - super(); - this.adapter = adapter; - } - - - // ********** DeclarationAnnotationElementAdapter implementation ********** - - public String getValue(ModifiedDeclaration declaration) { - return this.resolve(this.adapter.getExpression(declaration)); - } - - public void setValue(String value, ModifiedDeclaration declaration) { - this.adapter.setValue(convertToSourceCodeName(value, declaration), declaration); - } - - public Expression getExpression(ModifiedDeclaration declaration) { - return this.adapter.getExpression(declaration); - } - - public ASTNode getAstNode(ModifiedDeclaration declaration) { - return this.adapter.getAstNode(declaration); - } - - - // ********** internal methods ********** - - /** - * resolve the enum - */ - protected String resolve(Expression expression) { - return ASTTools.resolveEnum(expression); - } - - /** - * convert the fully-qualified enum constant to a static import and the constant's short name, e.g. - * static import javax.persistence.FetchType.EAGER; - * return "EAGER" - * if that doesn't work, convert to a normal import and the constant's partially-qualified name, e.g. - * import javax.persistence.FetchType; - * return "FetchType.EAGER" - * if that doesn't work, simply return the constant's fully-qualified name, e.g. - * return "javax.persistence.FetchType.EAGER" - * NB: an import may be added as a side-effect :-( - */ - protected static String convertToSourceCodeName(String enumConstantName, ModifiedDeclaration declaration) { - return (enumConstantName == null) ? null : convertToSourceCodeName_(enumConstantName, declaration); - } - - /** - * pre-condition: enum constant name is non-null; - * convert it to its short version if we can add a static import etc. - */ - protected static String convertToSourceCodeName_(String enumConstantName, ModifiedDeclaration declaration) { - if (declaration.addStaticImport(enumConstantName)) { - return convertToShortName(enumConstantName); - } - if (declaration.addImport(convertToTypeName(enumConstantName))) { - return convertToPartiallyQualifiedName(enumConstantName); - } - return enumConstantName; - } - - protected static String convertToShortName(String name) { - return name.substring(name.lastIndexOf('.') + 1); - } - - protected static String convertToTypeName(String name) { - return name.substring(0, name.lastIndexOf('.')); - } - - protected static String convertToPartiallyQualifiedName(String name) { - return name.substring(name.lastIndexOf('.', name.lastIndexOf('.') - 1) + 1); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ExpressionDeclarationAnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ExpressionDeclarationAnnotationElementAdapter.java deleted file mode 100644 index d3b0370942..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ExpressionDeclarationAnnotationElementAdapter.java +++ /dev/null @@ -1,327 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.Iterator; -import java.util.List; -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Most obvious implementation of the interface. - * Assume the element's value is an Expression. - */ -public class ExpressionDeclarationAnnotationElementAdapter - implements DeclarationAnnotationElementAdapter -{ - /** - * Adapter used to manipulate the element's annotation. - */ - private final DeclarationAnnotationAdapter annotationAdapter; - - /** - * The name of the relevant annotation element. - */ - private final String elementName; - - - // ********** constructors ********** - - /** - * The default element name is value. - */ - public ExpressionDeclarationAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter) { - this(annotationAdapter, VALUE); - } - - public ExpressionDeclarationAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - this.annotationAdapter = annotationAdapter; - this.elementName = elementName; - } - - - // ********** DeclarationAnnotationElementAdapter implementation ********** - - public E getValue(ModifiedDeclaration declaration) { - // return the expression unmodified - return this.getExpression(declaration); - } - - public void setValue(E value, ModifiedDeclaration declaration) { - this.setValue(value, this.annotationAdapter.getAnnotation(declaration), declaration); - } - - public E getExpression(ModifiedDeclaration declaration) { - return this.expression(this.annotationAdapter.getAnnotation(declaration)); - } - - public ASTNode getAstNode(ModifiedDeclaration declaration) { - Expression exp = this.getExpression(declaration); - return (exp != null) ? exp : this.annotationAdapter.getAstNode(declaration); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.elementName); - } - - - // ********** expression ********** - - /** - * Return the expression value of the *first* annotation element - * with the adapter's element name. - * Return null if the annotation has no such element. - * (An element name of "value" will return the value of a single - * member annotation.) - */ - protected E expression(Annotation annotation) { - if (annotation == null) { - return this.expressionNoAnnotation(); - } - if (annotation.isMarkerAnnotation()) { - return this.expressionMarkerAnnotation((MarkerAnnotation) annotation); - } - if (annotation.isSingleMemberAnnotation()) { - return this.expressionSingleMemberAnnotation((SingleMemberAnnotation) annotation); - } - if (annotation.isNormalAnnotation()) { - return this.expressionNormalAnnotation((NormalAnnotation) annotation); - } - throw new IllegalArgumentException("unknown annotation type: " + annotation); //$NON-NLS-1$ - } - - protected E expressionNoAnnotation() { - return null; - } - - /** - * Return the expression value of the *first* annotation element - * with the adapter's element name. - * Return null if the annotation has no such element. - */ - protected E expressionMarkerAnnotation(@SuppressWarnings("unused") MarkerAnnotation annotation) { - return null; - } - - /** - * Return the expression value of the *first* annotation element - * with the adapter's element name. - * Return null if the annotation has no such element. - */ - protected E expressionSingleMemberAnnotation(SingleMemberAnnotation annotation) { - return this.downcast(this.elementName.equals(VALUE) ? annotation.getValue() : null); - } - - @SuppressWarnings("unchecked") - private E downcast(Expression e) { - return (E) e; - } - - /** - * Return the expression value of the *first* annotation element - * with the adapter's element name. - * Return null if the annotation has no such element. - */ - protected E expressionNormalAnnotation(NormalAnnotation annotation) { - MemberValuePair pair = this.memberValuePair(annotation); - return this.downcast((pair == null) ? null : pair.getValue()); - } - - - // ********** set value ********** - - /** - * set non-null, non-empty value - */ - protected void setValue(Expression value, Annotation annotation, ModifiedDeclaration declaration) { - if (value == null) { - this.removeElement(annotation, declaration); - } - else if (annotation == null) { - this.setValueNoAnnotation(value, declaration); - } - else if (annotation.isMarkerAnnotation()) { - this.setValueMarkerAnnotation(value, (MarkerAnnotation) annotation, declaration); - } - else if (annotation.isSingleMemberAnnotation()) { - this.setValueSingleMemberAnnotation(value, (SingleMemberAnnotation) annotation, declaration); - } - else if (annotation.isNormalAnnotation()) { - this.setValueNormalAnnotation(value, (NormalAnnotation) annotation, declaration); - } - else { - throw new IllegalArgumentException("unknown annotation type: " + annotation); //$NON-NLS-1$ - } - } - - /** - * add non-null, non-empty value - */ - protected void setValueNoAnnotation(Expression value, ModifiedDeclaration declaration) { - if (this.elementName.equals(VALUE)) { - // @Foo("xxx") - this.annotationAdapter.newSingleMemberAnnotation(declaration).setValue(value); - } else { - // @Foo(bar="xxx") - this.addValue(value, this.annotationAdapter.newNormalAnnotation(declaration)); - } - } - - protected void addValue(Expression value, NormalAnnotation annotation) { - this.addValue(value, annotation, this.elementName); - } - - protected void addValue(Expression value, NormalAnnotation annotation, String annotationElementName) { - AST ast = annotation.getAST(); - MemberValuePair pair = ast.newMemberValuePair(); - pair.setName(ast.newSimpleName(annotationElementName)); - pair.setValue(value); - List values = this.values(annotation); - values.add(pair); - } - - protected void setValueMarkerAnnotation(Expression value, @SuppressWarnings("unused") MarkerAnnotation annotation, ModifiedDeclaration declaration) { - // @Foo => @Foo("xxx") - // or - // @Foo => @Foo(bar="xxx") - this.setValueNoAnnotation(value, declaration); - } - - protected void setValueSingleMemberAnnotation(Expression value, SingleMemberAnnotation annotation, ModifiedDeclaration declaration) { - if (this.elementName.equals(VALUE)) { - // @Foo("yyy") => @Foo("xxx") - annotation.setValue(value); - } else { - // @Foo("yyy") => @Foo(value="yyy", bar="xxx") - Expression vv = annotation.getValue(); - vv = (Expression) ASTNode.copySubtree(vv.getAST(), vv); - NormalAnnotation normalAnnotation = this.annotationAdapter.newNormalAnnotation(declaration); - this.addValue(vv, normalAnnotation, VALUE); - this.addValue(value, normalAnnotation); - } - } - - protected void setValueNormalAnnotation(Expression value, NormalAnnotation annotation, @SuppressWarnings("unused") ModifiedDeclaration declaration) { - MemberValuePair pair = this.memberValuePair(annotation); - if (pair == null) { - this.addValue(value, annotation); - } else { - pair.setValue(value); - } - } - - - // ********** remove element ********** - - protected void removeElement(Annotation annotation, ModifiedDeclaration declaration) { - if (annotation == null) { - this.removeElementNoAnnotation(declaration); - } - else if (annotation.isMarkerAnnotation()) { - this.removeElementMarkerAnnotation((MarkerAnnotation) annotation, declaration); - } - else if (annotation.isSingleMemberAnnotation()) { - this.removeElementSingleMemberAnnotation((SingleMemberAnnotation) annotation, declaration); - } - else if (annotation.isNormalAnnotation()) { - this.removeElementNormalAnnotation((NormalAnnotation) annotation, declaration); - } - else { - throw new IllegalArgumentException("unknown annotation type: " + annotation); //$NON-NLS-1$ - } - } - - protected void removeElementNoAnnotation(@SuppressWarnings("unused") ModifiedDeclaration declaration) { - // the element is already gone (?) - } - - protected void removeElementMarkerAnnotation(@SuppressWarnings("unused") MarkerAnnotation annotation, @SuppressWarnings("unused") ModifiedDeclaration declaration) { - // the element is already gone (?) - } - - protected void removeElementSingleMemberAnnotation(@SuppressWarnings("unused") SingleMemberAnnotation annotation, ModifiedDeclaration declaration) { - if (this.elementName.equals(VALUE)) { - // @Foo("xxx") => @Foo - this.annotationAdapter.newMarkerAnnotation(declaration); - } else { - // the [non-'value'] element is already gone (?) - } - } - - protected void removeElementNormalAnnotation(NormalAnnotation annotation, ModifiedDeclaration declaration) { - List values = this.values(annotation); - if ((values.size() == 1) && values.get(0).getName().getFullyQualifiedName().equals(this.elementName)) { - // @Foo(bar="xxx") => @Foo - this.annotationAdapter.newMarkerAnnotation(declaration); - } else { - this.removeElement(annotation); - if (values.size() == 1) { - MemberValuePair pair = values.get(0); - if (pair.getName().getFullyQualifiedName().equals(VALUE)) { - // @Foo(bar="xxx", value="yyy") => @Foo("yyy") - Expression vv = pair.getValue(); - vv = (Expression) ASTNode.copySubtree(vv.getAST(), vv); - this.annotationAdapter.newSingleMemberAnnotation(declaration).setValue(vv); - } else { - // @Foo(bar="xxx", baz="yyy") => @Foo(baz="yyy") - } - } else { - // @Foo(bar="xxx", baz="yyy", joo="xxx") => @Foo(baz="yyy", joo="xxx") - } - } - } - - /** - * Remove the *first* member value pair from the specified annotation element - * with the adapter's element name. - */ - protected void removeElement(NormalAnnotation annotation) { - for (Iterator stream = this.values(annotation).iterator(); stream.hasNext(); ) { - MemberValuePair pair = stream.next(); - if (pair.getName().getFullyQualifiedName().equals(this.elementName)) { - stream.remove(); - } - } - } - - - // ********** convenience methods ********** - - /** - * Return the *first* member value pair for the specified annotation element - * with the adapter's element name. - * Return null if the annotation has no such element. - */ - protected MemberValuePair memberValuePair(NormalAnnotation annotation) { - for (MemberValuePair pair : this.values(annotation)) { - if (pair.getName().getFullyQualifiedName().equals(this.elementName)) { - return pair; - } - } - return null; - } - - @SuppressWarnings("unchecked") - protected List values(NormalAnnotation na) { - return na.values(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/GenericVisitor.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/GenericVisitor.java deleted file mode 100644 index 92160afdf5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/GenericVisitor.java +++ /dev/null @@ -1,791 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.ASTVisitor; -import org.eclipse.jdt.core.dom.AnnotationTypeDeclaration; -import org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration; -import org.eclipse.jdt.core.dom.AnonymousClassDeclaration; -import org.eclipse.jdt.core.dom.ArrayAccess; -import org.eclipse.jdt.core.dom.ArrayCreation; -import org.eclipse.jdt.core.dom.ArrayInitializer; -import org.eclipse.jdt.core.dom.ArrayType; -import org.eclipse.jdt.core.dom.AssertStatement; -import org.eclipse.jdt.core.dom.Assignment; -import org.eclipse.jdt.core.dom.Block; -import org.eclipse.jdt.core.dom.BlockComment; -import org.eclipse.jdt.core.dom.BooleanLiteral; -import org.eclipse.jdt.core.dom.BreakStatement; -import org.eclipse.jdt.core.dom.CastExpression; -import org.eclipse.jdt.core.dom.CatchClause; -import org.eclipse.jdt.core.dom.CharacterLiteral; -import org.eclipse.jdt.core.dom.ClassInstanceCreation; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.ConditionalExpression; -import org.eclipse.jdt.core.dom.ConstructorInvocation; -import org.eclipse.jdt.core.dom.ContinueStatement; -import org.eclipse.jdt.core.dom.DoStatement; -import org.eclipse.jdt.core.dom.EmptyStatement; -import org.eclipse.jdt.core.dom.EnhancedForStatement; -import org.eclipse.jdt.core.dom.EnumConstantDeclaration; -import org.eclipse.jdt.core.dom.EnumDeclaration; -import org.eclipse.jdt.core.dom.ExpressionStatement; -import org.eclipse.jdt.core.dom.FieldAccess; -import org.eclipse.jdt.core.dom.FieldDeclaration; -import org.eclipse.jdt.core.dom.ForStatement; -import org.eclipse.jdt.core.dom.IfStatement; -import org.eclipse.jdt.core.dom.ImportDeclaration; -import org.eclipse.jdt.core.dom.InfixExpression; -import org.eclipse.jdt.core.dom.Initializer; -import org.eclipse.jdt.core.dom.InstanceofExpression; -import org.eclipse.jdt.core.dom.Javadoc; -import org.eclipse.jdt.core.dom.LabeledStatement; -import org.eclipse.jdt.core.dom.LineComment; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.MemberRef; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jdt.core.dom.MethodInvocation; -import org.eclipse.jdt.core.dom.MethodRef; -import org.eclipse.jdt.core.dom.MethodRefParameter; -import org.eclipse.jdt.core.dom.Modifier; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.NullLiteral; -import org.eclipse.jdt.core.dom.NumberLiteral; -import org.eclipse.jdt.core.dom.PackageDeclaration; -import org.eclipse.jdt.core.dom.ParameterizedType; -import org.eclipse.jdt.core.dom.ParenthesizedExpression; -import org.eclipse.jdt.core.dom.PostfixExpression; -import org.eclipse.jdt.core.dom.PrefixExpression; -import org.eclipse.jdt.core.dom.PrimitiveType; -import org.eclipse.jdt.core.dom.QualifiedName; -import org.eclipse.jdt.core.dom.QualifiedType; -import org.eclipse.jdt.core.dom.ReturnStatement; -import org.eclipse.jdt.core.dom.SimpleName; -import org.eclipse.jdt.core.dom.SimpleType; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jdt.core.dom.SingleVariableDeclaration; -import org.eclipse.jdt.core.dom.StringLiteral; -import org.eclipse.jdt.core.dom.SuperConstructorInvocation; -import org.eclipse.jdt.core.dom.SuperFieldAccess; -import org.eclipse.jdt.core.dom.SuperMethodInvocation; -import org.eclipse.jdt.core.dom.SwitchCase; -import org.eclipse.jdt.core.dom.SwitchStatement; -import org.eclipse.jdt.core.dom.SynchronizedStatement; -import org.eclipse.jdt.core.dom.TagElement; -import org.eclipse.jdt.core.dom.TextElement; -import org.eclipse.jdt.core.dom.ThisExpression; -import org.eclipse.jdt.core.dom.ThrowStatement; -import org.eclipse.jdt.core.dom.TryStatement; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jdt.core.dom.TypeDeclarationStatement; -import org.eclipse.jdt.core.dom.TypeLiteral; -import org.eclipse.jdt.core.dom.TypeParameter; -import org.eclipse.jdt.core.dom.VariableDeclarationExpression; -import org.eclipse.jdt.core.dom.VariableDeclarationFragment; -import org.eclipse.jdt.core.dom.VariableDeclarationStatement; -import org.eclipse.jdt.core.dom.WhileStatement; -import org.eclipse.jdt.core.dom.WildcardType; - -/** - * copied from org.eclipse.jdt.internal.corext.dom.GenericVisitor - */ -public class GenericVisitor extends ASTVisitor { - - public GenericVisitor() { - super(); - } - - public GenericVisitor(boolean visitJavadocTags) { - super(visitJavadocTags); - } - - // ********** hooks for subclasses ********** - - protected boolean visit_(@SuppressWarnings("unused") ASTNode node) { - return true; - } - - protected void endVisit_(@SuppressWarnings("unused") ASTNode node) { - // do nothing - } - - // ********** overrides ********** - - @Override - public boolean visit(AnonymousClassDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(ArrayAccess node) { - return visit_(node); - } - @Override - public boolean visit(ArrayCreation node) { - return visit_(node); - } - @Override - public boolean visit(ArrayInitializer node) { - return visit_(node); - } - @Override - public boolean visit(ArrayType node) { - return visit_(node); - } - @Override - public boolean visit(AssertStatement node) { - return visit_(node); - } - @Override - public boolean visit(Assignment node) { - return visit_(node); - } - @Override - public boolean visit(Block node) { - return visit_(node); - } - @Override - public boolean visit(BooleanLiteral node) { - return visit_(node); - } - @Override - public boolean visit(BreakStatement node) { - return visit_(node); - } - @Override - public boolean visit(CastExpression node) { - return visit_(node); - } - @Override - public boolean visit(CatchClause node) { - return visit_(node); - } - @Override - public boolean visit(CharacterLiteral node) { - return visit_(node); - } - @Override - public boolean visit(ClassInstanceCreation node) { - return visit_(node); - } - @Override - public boolean visit(CompilationUnit node) { - return visit_(node); - } - @Override - public boolean visit(ConditionalExpression node) { - return visit_(node); - } - @Override - public boolean visit(ConstructorInvocation node) { - return visit_(node); - } - @Override - public boolean visit(ContinueStatement node) { - return visit_(node); - } - @Override - public boolean visit(DoStatement node) { - return visit_(node); - } - @Override - public boolean visit(EmptyStatement node) { - return visit_(node); - } - @Override - public boolean visit(ExpressionStatement node) { - return visit_(node); - } - @Override - public boolean visit(FieldAccess node) { - return visit_(node); - } - @Override - public boolean visit(FieldDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(ForStatement node) { - return visit_(node); - } - @Override - public boolean visit(IfStatement node) { - return visit_(node); - } - @Override - public boolean visit(ImportDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(InfixExpression node) { - return visit_(node); - } - @Override - public boolean visit(InstanceofExpression node) { - return visit_(node); - } - @Override - public boolean visit(Initializer node) { - return visit_(node); - } - @Override - public boolean visit(Javadoc node) { - return (super.visit(node)) ? visit_(node) : false; - } - @Override - public boolean visit(LabeledStatement node) { - return visit_(node); - } - @Override - public boolean visit(MethodDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(MethodInvocation node) { - return visit_(node); - } - @Override - public boolean visit(NullLiteral node) { - return visit_(node); - } - @Override - public boolean visit(NumberLiteral node) { - return visit_(node); - } - @Override - public boolean visit(PackageDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(ParenthesizedExpression node) { - return visit_(node); - } - @Override - public boolean visit(PostfixExpression node) { - return visit_(node); - } - @Override - public boolean visit(PrefixExpression node) { - return visit_(node); - } - @Override - public boolean visit(PrimitiveType node) { - return visit_(node); - } - @Override - public boolean visit(QualifiedName node) { - return visit_(node); - } - @Override - public boolean visit(ReturnStatement node) { - return visit_(node); - } - @Override - public boolean visit(SimpleName node) { - return visit_(node); - } - @Override - public boolean visit(SimpleType node) { - return visit_(node); - } - @Override - public boolean visit(StringLiteral node) { - return visit_(node); - } - @Override - public boolean visit(SuperConstructorInvocation node) { - return visit_(node); - } - @Override - public boolean visit(SuperFieldAccess node) { - return visit_(node); - } - @Override - public boolean visit(SuperMethodInvocation node) { - return visit_(node); - } - @Override - public boolean visit(SwitchCase node) { - return visit_(node); - } - @Override - public boolean visit(SwitchStatement node) { - return visit_(node); - } - @Override - public boolean visit(SynchronizedStatement node) { - return visit_(node); - } - @Override - public boolean visit(ThisExpression node) { - return visit_(node); - } - @Override - public boolean visit(ThrowStatement node) { - return visit_(node); - } - @Override - public boolean visit(TryStatement node) { - return visit_(node); - } - @Override - public boolean visit(TypeDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(TypeDeclarationStatement node) { - return visit_(node); - } - @Override - public boolean visit(TypeLiteral node) { - return visit_(node); - } - @Override - public boolean visit(SingleVariableDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(VariableDeclarationExpression node) { - return visit_(node); - } - @Override - public boolean visit(VariableDeclarationStatement node) { - return visit_(node); - } - @Override - public boolean visit(VariableDeclarationFragment node) { - return visit_(node); - } - @Override - public boolean visit(WhileStatement node) { - return visit_(node); - } - @Override - public boolean visit(AnnotationTypeDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(AnnotationTypeMemberDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(BlockComment node) { - return visit_(node); - } - @Override - public boolean visit(EnhancedForStatement node) { - return visit_(node); - } - @Override - public boolean visit(EnumConstantDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(EnumDeclaration node) { - return visit_(node); - } - @Override - public boolean visit(LineComment node) { - return visit_(node); - } - @Override - public boolean visit(MarkerAnnotation node) { - return visit_(node); - } - @Override - public boolean visit(MemberRef node) { - return visit_(node); - } - @Override - public boolean visit(MemberValuePair node) { - return visit_(node); - } - @Override - public boolean visit(MethodRef node) { - return visit_(node); - } - @Override - public boolean visit(MethodRefParameter node) { - return visit_(node); - } - @Override - public boolean visit(Modifier node) { - return visit_(node); - } - @Override - public boolean visit(NormalAnnotation node) { - return visit_(node); - } - @Override - public boolean visit(ParameterizedType node) { - return visit_(node); - } - @Override - public boolean visit(QualifiedType node) { - return visit_(node); - } - @Override - public boolean visit(SingleMemberAnnotation node) { - return visit_(node); - } - @Override - public boolean visit(TagElement node) { - return visit_(node); - } - @Override - public boolean visit(TextElement node) { - return visit_(node); - } - @Override - public boolean visit(TypeParameter node) { - return visit_(node); - } - @Override - public boolean visit(WildcardType node) { - return visit_(node); - } - - @Override - public void endVisit(AnonymousClassDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(ArrayAccess node) { - endVisit_(node); - } - @Override - public void endVisit(ArrayCreation node) { - endVisit_(node); - } - @Override - public void endVisit(ArrayInitializer node) { - endVisit_(node); - } - @Override - public void endVisit(ArrayType node) { - endVisit_(node); - } - @Override - public void endVisit(AssertStatement node) { - endVisit_(node); - } - @Override - public void endVisit(Assignment node) { - endVisit_(node); - } - @Override - public void endVisit(Block node) { - endVisit_(node); - } - @Override - public void endVisit(BooleanLiteral node) { - endVisit_(node); - } - @Override - public void endVisit(BreakStatement node) { - endVisit_(node); - } - @Override - public void endVisit(CastExpression node) { - endVisit_(node); - } - @Override - public void endVisit(CatchClause node) { - endVisit_(node); - } - @Override - public void endVisit(CharacterLiteral node) { - endVisit_(node); - } - @Override - public void endVisit(ClassInstanceCreation node) { - endVisit_(node); - } - @Override - public void endVisit(CompilationUnit node) { - endVisit_(node); - } - @Override - public void endVisit(ConditionalExpression node) { - endVisit_(node); - } - @Override - public void endVisit(ConstructorInvocation node) { - endVisit_(node); - } - @Override - public void endVisit(ContinueStatement node) { - endVisit_(node); - } - @Override - public void endVisit(DoStatement node) { - endVisit_(node); - } - @Override - public void endVisit(EmptyStatement node) { - endVisit_(node); - } - @Override - public void endVisit(ExpressionStatement node) { - endVisit_(node); - } - @Override - public void endVisit(FieldAccess node) { - endVisit_(node); - } - @Override - public void endVisit(FieldDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(ForStatement node) { - endVisit_(node); - } - @Override - public void endVisit(IfStatement node) { - endVisit_(node); - } - @Override - public void endVisit(ImportDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(InfixExpression node) { - endVisit_(node); - } - @Override - public void endVisit(InstanceofExpression node) { - endVisit_(node); - } - @Override - public void endVisit(Initializer node) { - endVisit_(node); - } - @Override - public void endVisit(Javadoc node) { - endVisit_(node); - } - @Override - public void endVisit(LabeledStatement node) { - endVisit_(node); - } - @Override - public void endVisit(MethodDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(MethodInvocation node) { - endVisit_(node); - } - @Override - public void endVisit(NullLiteral node) { - endVisit_(node); - } - @Override - public void endVisit(NumberLiteral node) { - endVisit_(node); - } - @Override - public void endVisit(PackageDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(ParenthesizedExpression node) { - endVisit_(node); - } - @Override - public void endVisit(PostfixExpression node) { - endVisit_(node); - } - @Override - public void endVisit(PrefixExpression node) { - endVisit_(node); - } - @Override - public void endVisit(PrimitiveType node) { - endVisit_(node); - } - @Override - public void endVisit(QualifiedName node) { - endVisit_(node); - } - @Override - public void endVisit(ReturnStatement node) { - endVisit_(node); - } - @Override - public void endVisit(SimpleName node) { - endVisit_(node); - } - @Override - public void endVisit(SimpleType node) { - endVisit_(node); - } - @Override - public void endVisit(StringLiteral node) { - endVisit_(node); - } - @Override - public void endVisit(SuperConstructorInvocation node) { - endVisit_(node); - } - @Override - public void endVisit(SuperFieldAccess node) { - endVisit_(node); - } - @Override - public void endVisit(SuperMethodInvocation node) { - endVisit_(node); - } - @Override - public void endVisit(SwitchCase node) { - endVisit_(node); - } - @Override - public void endVisit(SwitchStatement node) { - endVisit_(node); - } - @Override - public void endVisit(SynchronizedStatement node) { - endVisit_(node); - } - @Override - public void endVisit(ThisExpression node) { - endVisit_(node); - } - @Override - public void endVisit(ThrowStatement node) { - endVisit_(node); - } - @Override - public void endVisit(TryStatement node) { - endVisit_(node); - } - @Override - public void endVisit(TypeDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(TypeDeclarationStatement node) { - endVisit_(node); - } - @Override - public void endVisit(TypeLiteral node) { - endVisit_(node); - } - @Override - public void endVisit(SingleVariableDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(VariableDeclarationExpression node) { - endVisit_(node); - } - @Override - public void endVisit(VariableDeclarationStatement node) { - endVisit_(node); - } - @Override - public void endVisit(VariableDeclarationFragment node) { - endVisit_(node); - } - @Override - public void endVisit(WhileStatement node) { - endVisit_(node); - } - @Override - public void endVisit(AnnotationTypeDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(AnnotationTypeMemberDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(BlockComment node) { - endVisit_(node); - } - @Override - public void endVisit(EnhancedForStatement node) { - endVisit_(node); - } - @Override - public void endVisit(EnumConstantDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(EnumDeclaration node) { - endVisit_(node); - } - @Override - public void endVisit(LineComment node) { - endVisit_(node); - } - @Override - public void endVisit(MarkerAnnotation node) { - endVisit_(node); - } - @Override - public void endVisit(MemberRef node) { - endVisit_(node); - } - @Override - public void endVisit(MemberValuePair node) { - endVisit_(node); - } - @Override - public void endVisit(MethodRef node) { - endVisit_(node); - } - @Override - public void endVisit(MethodRefParameter node) { - endVisit_(node); - } - @Override - public void endVisit(Modifier node) { - endVisit_(node); - } - @Override - public void endVisit(NormalAnnotation node) { - endVisit_(node); - } - @Override - public void endVisit(ParameterizedType node) { - endVisit_(node); - } - @Override - public void endVisit(QualifiedType node) { - endVisit_(node); - } - @Override - public void endVisit(SingleMemberAnnotation node) { - endVisit_(node); - } - @Override - public void endVisit(TagElement node) { - endVisit_(node); - } - @Override - public void endVisit(TextElement node) { - endVisit_(node); - } - @Override - public void endVisit(TypeParameter node) { - endVisit_(node); - } - @Override - public void endVisit(WildcardType node) { - endVisit_(node); - } - -} - diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTAnnotatedElement.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTAnnotatedElement.java deleted file mode 100644 index c771c77ce5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTAnnotatedElement.java +++ /dev/null @@ -1,201 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.core.filebuffers.FileBuffers; -import org.eclipse.core.filebuffers.ITextFileBuffer; -import org.eclipse.core.filebuffers.LocationKind; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.Document; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.CommandExecutor; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.text.edits.MalformedTreeException; -import org.eclipse.text.edits.TextEdit; - -/** - * Adapt and extend a JDT member with simplified annotation handling. - */ -public abstract class JDTAnnotatedElement - implements AnnotatedElement -{ - - /** the annotated element's name (duh) */ - private final String name; - - /** - * the compilation unit (file) containing the annotated element; - * used for building an AST when we modify the annotated element - */ - private final ICompilationUnit compilationUnit; - - /** - * this allows clients to provide a way to modify the compilation unit - * (file) when it is open in an editor and should be modified on the UI - * thread - */ - private final CommandExecutor modifySharedDocumentCommandExecutor; - - /** this will format the annotated element's annotations a bit */ - private final AnnotationEditFormatter annotationEditFormatter; - - - // ********** constructors ********** - - protected JDTAnnotatedElement( - String name, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(name, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - protected JDTAnnotatedElement( - String name, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(); - this.name = name; - this.compilationUnit = compilationUnit; - this.modifySharedDocumentCommandExecutor = modifySharedDocumentCommandExecutor; - this.annotationEditFormatter = annotationEditFormatter; - } - - - // ********** AnnotatedElement implementation ********** - - public String getName() { - return this.name; - } - - public abstract ModifiedDeclaration getModifiedDeclaration(CompilationUnit astRoot); - - public ModifiedDeclaration getModifiedDeclaration() { - return this.getModifiedDeclaration(this.buildASTRoot()); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.name); - } - - - // ********** editing ********** - - /** - * Edit the member with the specified editor. - * The editor will be invoked once the member's compilation unit - * is in an editable state. - */ - public void edit(Editor editor) { - try { - this.edit_(editor); - } catch (JavaModelException ex) { - throw new RuntimeException(ex); - } catch (BadLocationException ex) { - throw new RuntimeException(ex); - } - } - - /** - * NB: Be careful changing this method. - * Things to look out for: - * - when editing via the JavaEditor there is no need to create a working copy - * - when editing without an editor or via a simple text editor, a "working copy" must be created. - * (at least as far as I can tell ~kfm) - * - sharedDocument is only ever false in tests (headless mode). In the UI, even if the file - * is not open in an editor, sharedDocument is still true (buffer is not null) - * - if a working copy is created, then we must discard it - */ - protected void edit_(Editor editor) throws JavaModelException, BadLocationException { - boolean createWorkingCopy = ! this.compilationUnit.isWorkingCopy(); - if (createWorkingCopy) { - this.compilationUnit.becomeWorkingCopy(null); - } - - ITextFileBuffer buffer = FileBuffers.getTextFileBufferManager().getTextFileBuffer(this.compilationUnit.getResource().getFullPath(), LocationKind.NORMALIZE); - boolean sharedDocument = (buffer != null); // documents are typically shared when they are already open in an editor - IDocument doc = sharedDocument ? - buffer.getDocument() : - new Document(this.compilationUnit.getBuffer().getContents()); - - try { - CompilationUnit astRoot = this.buildASTRoot(); - astRoot.recordModifications(); - - editor.edit(this.getModifiedDeclaration(astRoot)); - - TextEdit edits = astRoot.rewrite(doc, this.compilationUnit.getJavaProject().getOptions(true)); - if (sharedDocument) { - this.modifySharedDocumentCommandExecutor.execute(new ModifySharedDocumentCommand(edits, doc)); - } else { - this.applyEdits(edits, doc); - } - } - finally { - if (createWorkingCopy) { - //discardWorkingCopy must be called every time becomeWorkingCopy is called. - this.compilationUnit.getBuffer().setContents(doc.get()); - this.compilationUnit.commitWorkingCopy(true, null); // true="force" - this.compilationUnit.discardWorkingCopy(); - } - } - } - - /** - * apply the specified edits to the specified document, - * reformatting the document if necessary - */ - protected void applyEdits(TextEdit edits, IDocument doc) throws MalformedTreeException, BadLocationException { - edits.apply(doc, TextEdit.UPDATE_REGIONS); - this.annotationEditFormatter.format(doc, edits); - } - - protected CompilationUnit buildASTRoot() { - return ASTTools.buildASTRoot(this.compilationUnit); - } - - - // ********** modify shared document command class ********** - - /** - * simple command that calls back to the member to apply the edits - * in the same way as if the document were not shared - */ - protected class ModifySharedDocumentCommand implements Command { - private final TextEdit edits; - private final IDocument doc; - - protected ModifySharedDocumentCommand(TextEdit edits, IDocument doc) { - super(); - this.edits = edits; - this.doc = doc; - } - - public void execute() { - try { - JDTAnnotatedElement.this.applyEdits(this.edits, this.doc); - } catch (MalformedTreeException ex) { - throw new RuntimeException(ex); - } catch (BadLocationException ex) { - throw new RuntimeException(ex); - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTEnum.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTEnum.java deleted file mode 100644 index 53d9bc2c1c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTEnum.java +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.List; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.AbstractTypeDeclaration; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.EnumConstantDeclaration; -import org.eclipse.jdt.core.dom.EnumDeclaration; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.common.core.utility.jdt.Enum; -import org.eclipse.jpt.common.core.utility.jdt.Type; -import org.eclipse.jpt.common.utility.CommandExecutor; - -/** - * Adapt and extend a JDT enum. - */ -public class JDTEnum - extends AbstractJDTType - implements Enum -{ - - /** - * constructor for the compilation unit's primary type, an enum - */ - public JDTEnum( - EnumDeclaration enumDeclaration, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(enumDeclaration, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - /** - * constructor for the compilation unit's primary type, an enum - */ - public JDTEnum( - EnumDeclaration enumDeclaration, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(null, enumDeclaration, 1, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - /** - * constructor for nested enums - */ - public JDTEnum( - Type declaringType, - EnumDeclaration enumDeclaration, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(declaringType, enumDeclaration, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - /** - * constructor for nested enums - */ - public JDTEnum( - Type declaringType, - EnumDeclaration enumDeclaration, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(declaringType, enumDeclaration, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - /** - * constructor for testing - */ - public JDTEnum(Type declaringType, String name, int occurrence, ICompilationUnit compilationUnit) { - super(declaringType, name, occurrence, compilationUnit); - } - - @Override - public EnumDeclaration getBodyDeclaration(CompilationUnit astRoot) { - return (EnumDeclaration) super.getBodyDeclaration(astRoot); - } - - public boolean isPersistable(CompilationUnit astRoot) { - return true; - } - - public EnumConstantDeclaration[] getEnumConstants(CompilationUnit astRoot) { - List enumConstants = enumConstants(getBodyDeclaration(astRoot)); - return enumConstants.toArray(new EnumConstantDeclaration[enumConstants.size()]); - } - - @SuppressWarnings("unchecked") - private static List enumConstants(EnumDeclaration ed) { - return ed.enumConstants(); - } - - - // ********** internal ********** - - @Override - protected EnumDeclaration getTopLevelTypeDeclaration(CompilationUnit astRoot) { - return (EnumDeclaration) super.getTopLevelTypeDeclaration(astRoot); - } - - @Override - protected EnumDeclaration getTypeDeclaration(List typeDeclarations) { - return (EnumDeclaration) super.getTypeDeclaration(typeDeclarations); - } - - @Override - protected EnumDeclaration getNestedTypeDeclaration(TypeDeclaration declaringTypeDeclaration) { - return this.getTypeDeclaration(getEnums(declaringTypeDeclaration)); - } - - @Override - protected EnumDeclaration getTypeDeclaration(AbstractTypeDeclaration[] typeDeclarations) { - return (EnumDeclaration) super.getTypeDeclaration(typeDeclarations); - } - - @Override - protected int getASTNodeType() { - return ASTNode.ENUM_DECLARATION; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTEnumConstant.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTEnumConstant.java deleted file mode 100644 index 3bedd952bf..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTEnumConstant.java +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.List; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.EnumConstantDeclaration; -import org.eclipse.jdt.core.dom.EnumDeclaration; -import org.eclipse.jdt.core.dom.IVariableBinding; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.common.core.utility.jdt.Enum; -import org.eclipse.jpt.common.core.utility.jdt.EnumConstant; -import org.eclipse.jpt.common.utility.CommandExecutor; - -/** - * Adapt and extend a JDT enum constant. - */ -public class JDTEnumConstant - extends JDTMember - implements EnumConstant -{ - - // ********** constructors ********** - - public JDTEnumConstant( - Enum declaringEnum, - String name, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(declaringEnum, name, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - public JDTEnumConstant( - Enum declaringEnum, - String name, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(declaringEnum, name, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - /** - * constructor for testing - */ - public JDTEnumConstant(Enum declaringEnum, String name, int occurrence, ICompilationUnit compilationUnit) { - this(declaringEnum, name, occurrence, compilationUnit, CommandExecutor.Default.instance(), DefaultAnnotationEditFormatter.instance()); - } - - @Override - protected Enum getDeclaringType() { - return (Enum) super.getDeclaringType(); - } - - // ********** AnnotatedElement/EnumConstant implementation ********** - - public IVariableBinding getBinding(CompilationUnit astRoot) { - return this.getBodyDeclaration(astRoot).resolveVariable(); - } - - @Override - public EnumConstantDeclaration getBodyDeclaration(CompilationUnit astRoot) { - return this.getSelectedDeclaration(astRoot); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return new ASTNodeTextRange(this.getBodyDeclaration(astRoot).getName()); - } - - //As far as I can tell, enum constants are always "persistable", - //there are no modifiers you can add to an enum constant - public boolean isPersistable(CompilationUnit astRoot) { - return true; - } - - - // ********** internal ********** - - protected EnumConstantDeclaration getSelectedDeclaration(CompilationUnit astRoot) { - String name = this.getName(); - int occurrence = this.getOccurrence(); - int count = 0; - for (EnumConstantDeclaration enumConstantDeclaration : this.getDeclaringTypeEnumConstantDeclarations(astRoot)) { - if (enumConstantDeclaration.getName().getFullyQualifiedName().equals(name)) { - count++; - if (count == occurrence) { - return enumConstantDeclaration; - } - } - } - // return null if the field is no longer in the source code; - // this can happen when the context model has not yet - // been synchronized with the resource model but is still - // asking for an ASTNode (e.g. during a selection event) - return null; - } - - protected EnumConstantDeclaration[] getDeclaringTypeEnumConstantDeclarations(CompilationUnit astRoot) { - List enumConstants = enumConstants(this.getDeclaringTypeDeclaration(astRoot)); - return enumConstants.toArray(new EnumConstantDeclaration[enumConstants.size()]); - } - - @SuppressWarnings("unchecked") - private static List enumConstants(EnumDeclaration ed) { - return ed.enumConstants(); - } - - protected EnumDeclaration getDeclaringTypeDeclaration(CompilationUnit astRoot) { - return this.getDeclaringType().getBodyDeclaration(astRoot); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTFieldAttribute.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTFieldAttribute.java deleted file mode 100644 index fcce1eed37..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTFieldAttribute.java +++ /dev/null @@ -1,216 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.List; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.FieldDeclaration; -import org.eclipse.jdt.core.dom.ITypeBinding; -import org.eclipse.jdt.core.dom.IVariableBinding; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jdt.core.dom.VariableDeclarationFragment; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.common.core.utility.jdt.FieldAttribute; -import org.eclipse.jpt.common.core.utility.jdt.Type; -import org.eclipse.jpt.common.utility.CommandExecutor; - -/** - * Adapt and extend a JDT field. - * Attribute based on a Java field, e.g. - * private int foo; - */ -public class JDTFieldAttribute - extends JDTMember - implements FieldAttribute -{ - - // ********** constructors ********** - - public JDTFieldAttribute( - Type declaringType, - String name, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(declaringType, name, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - public JDTFieldAttribute( - Type declaringType, - String name, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(declaringType, name, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - /** - * constructor for testing - */ - public JDTFieldAttribute(Type declaringType, String name, int occurrence, ICompilationUnit compilationUnit) { - this(declaringType, name, occurrence, compilationUnit, CommandExecutor.Default.instance(), DefaultAnnotationEditFormatter.instance()); - } - - - // ********** Member/Attribute/FieldAttribute implementation ********** - - @Override - protected Type getDeclaringType() { - return (Type) super.getDeclaringType(); - } - - public IVariableBinding getBinding(CompilationUnit astRoot) { - return this.getFragment(astRoot).resolveBinding(); - } - - @Override - public FieldDeclaration getBodyDeclaration(CompilationUnit astRoot) { - return this.getSelectedDeclaration(astRoot, FIELD_DECLARATION_SELECTOR); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return new ASTNodeTextRange(this.getFragment(astRoot).getName()); - } - - public String getAttributeName() { - return this.getName(); - } - - public ITypeBinding getTypeBinding(CompilationUnit astRoot) { - return this.getBodyDeclaration(astRoot).getType().resolveBinding(); - } - - public boolean isField() { - return true; - } - - public boolean isPersistable(CompilationUnit astRoot) { - IVariableBinding binding = this.getBinding(astRoot); - return (binding == null) ? false : JPTTools.fieldIsPersistable(new JPTToolsAdapter(binding)); - } - - - // ********** internal ********** - - protected TypeDeclaration getDeclaringTypeDeclaration(CompilationUnit astRoot) { - // assume the declaring type is not an enum or annotation - // since they do not have field or method declarations - return this.getDeclaringType().getBodyDeclaration(astRoot); - } - - protected VariableDeclarationFragment getFragment(CompilationUnit astRoot) { - return this.getSelectedDeclaration(astRoot, VARIABLE_DECLARATION_FRAGMENT_SELECTOR); - } - - /** - * return either a FieldDeclaration or a VariableDeclarationFragment, - * depending on the specified selector; - * - * handle multiple fields declared in a single statement: - * private int foo, bar; - */ - protected T getSelectedDeclaration(CompilationUnit astRoot, Selector selector) { - String name = this.getName(); - int occurrence = this.getOccurrence(); - int count = 0; - for (FieldDeclaration fieldDeclaration : this.getDeclaringTypeFieldDeclarations(astRoot)) { - for (VariableDeclarationFragment fragment : fragments(fieldDeclaration)) { - if (fragment.getName().getFullyQualifiedName().equals(name)) { - count++; - if (count == occurrence) { - return selector.select(fieldDeclaration, fragment); - } - } - } - } - // return null if the field is no longer in the source code; - // this can happen when the context model has not yet - // been synchronized with the resource model but is still - // asking for an ASTNode (e.g. during a selection event) - return null; - } - - protected FieldDeclaration[] getDeclaringTypeFieldDeclarations(CompilationUnit astRoot) { - return this.getDeclaringTypeDeclaration(astRoot).getFields(); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected static List fragments(FieldDeclaration fd) { - return fd.fragments(); - } - - - // ********** Selector ********** - - // I'm not quite sure this interface is worth the resulting obfuscation, - // but, then, I kept changing both methods, so... ~bjv - protected interface Selector { - T select(FieldDeclaration fieldDeclaration, VariableDeclarationFragment variableDeclarationFragment); - String getDescription(); - } - - protected static final Selector FIELD_DECLARATION_SELECTOR = - new Selector() { - public FieldDeclaration select(FieldDeclaration fieldDeclaration, VariableDeclarationFragment variableDeclarationFragment) { - return fieldDeclaration; - } - public String getDescription() { - return "field declaration"; //$NON-NLS-1$ - } - @Override - public String toString() { - return "FIELD_DECLARATION_SELECTOR"; //$NON-NLS-1$ - } - }; - - protected static final Selector VARIABLE_DECLARATION_FRAGMENT_SELECTOR = - new Selector() { - public VariableDeclarationFragment select(FieldDeclaration fieldDeclaration, VariableDeclarationFragment variableDeclarationFragment) { - return variableDeclarationFragment; - } - public String getDescription() { - return "variable declaration fragment"; //$NON-NLS-1$ - } - @Override - public String toString() { - return "VARIABLE_DECLARATION_FRAGMENT_SELECTOR"; //$NON-NLS-1$ - } - }; - - - // ********** JPTTools adapter ********** - - /** - * JPTTools needs an adapter so it can work with either an IField - * or an IVariableBinding etc. - */ - protected static class JPTToolsAdapter implements JPTTools.FieldAdapter { - private final IVariableBinding fieldBinding; - - protected JPTToolsAdapter(IVariableBinding fieldBinding) { - super(); - if (fieldBinding == null) { - throw new NullPointerException(); - } - this.fieldBinding = fieldBinding; - } - - public int getModifiers() { - return this.fieldBinding.getModifiers(); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTMember.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTMember.java deleted file mode 100644 index 35638f0503..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTMember.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.BodyDeclaration; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.jdt.AbstractType; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.common.core.utility.jdt.Member; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.CommandExecutor; - -/** - * Adapt and extend a JDT member with simplified annotation handling. - */ -public abstract class JDTMember extends JDTAnnotatedElement - implements Member -{ - - /** this will be null for the primary type */ - private final AbstractType declaringType; - - /** - * members can occur more than once in non-compiling source; - * count starts at 1; the primary type will have occurrence 1 - */ - private final int occurrence; - - - // ********** constructors ********** - - protected JDTMember( - AbstractType declaringType, - String name, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(declaringType, name, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - protected JDTMember( - AbstractType declaringType, - String name, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(name, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - this.declaringType = declaringType; - this.occurrence = occurrence; - } - - //covariant override - public abstract BodyDeclaration getBodyDeclaration(CompilationUnit astRoot); - - - // ********** Member implementation ********** - - @Override - public ModifiedDeclaration getModifiedDeclaration(CompilationUnit astRoot) { - return new JDTModifiedDeclaration(this.getBodyDeclaration(astRoot)); - } - - public boolean matches(String memberName, int occur) { - return memberName.equals(this.getName()) && (occur == this.occurrence); - } - - - // ********** internal ********** - - protected int getOccurrence() { - return this.occurrence; - } - - /** - * this will return null for a top-level type - */ - protected AbstractType getDeclaringType() { - return this.declaringType; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTMethodAttribute.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTMethodAttribute.java deleted file mode 100644 index cedc01f454..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTMethodAttribute.java +++ /dev/null @@ -1,263 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.Arrays; -import java.util.List; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.IMethodBinding; -import org.eclipse.jdt.core.dom.ITypeBinding; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jdt.core.dom.SingleVariableDeclaration; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.common.core.utility.jdt.MethodAttribute; -import org.eclipse.jpt.common.core.utility.jdt.Type; -import org.eclipse.jpt.common.utility.CommandExecutor; -import org.eclipse.jpt.common.utility.JavaType; -import org.eclipse.jpt.common.utility.MethodSignature; -import org.eclipse.jpt.common.utility.internal.NameTools; -import org.eclipse.jpt.common.utility.internal.SimpleMethodSignature; - -/** - * Adapt and extend a JDT method. - * Attribute based on a Java property, e.g. - * private int getFoo() { - * return foo; - * } - * private void setFoo(int foo) { - * this.foo = foo; - * } - */ -public class JDTMethodAttribute - extends JDTMember - implements MethodAttribute -{ - /** we need the parameter types to build the method signature */ - private final JavaType[] parameterTypes; - - - // ********** constructors ********** - - public static JDTMethodAttribute newInstance( - Type declaringType, - MethodSignature signature, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - return newInstance(declaringType, signature, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - public static JDTMethodAttribute newInstance( - Type declaringType, - MethodSignature signature, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - return new JDTMethodAttribute(declaringType, signature, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - private JDTMethodAttribute( - Type declaringType, - MethodSignature methodSignature, - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(declaringType, methodSignature.getName(), occurrence, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - this.parameterTypes = methodSignature.getParameterTypes(); - } - - /** - * constructor for testing - */ - public JDTMethodAttribute(Type declaringType, String name, String[] parameterTypeNames, int occurrence, ICompilationUnit compilationUnit) { - this(declaringType, new SimpleMethodSignature(name, parameterTypeNames), occurrence, compilationUnit, CommandExecutor.Default.instance(), DefaultAnnotationEditFormatter.instance()); - } - - - // ********** Member/Attribute/MethodAttribute implementation ********** - - @Override - protected Type getDeclaringType() { - return (Type) super.getDeclaringType(); - } - - public boolean isField() { - return false; - } - - public IMethodBinding getBinding(CompilationUnit astRoot) { - return this.getBodyDeclaration(astRoot).resolveBinding(); - } - - @Override - public MethodDeclaration getBodyDeclaration(CompilationUnit astRoot) { - int count = 0; - for (MethodDeclaration methodDeclaration : this.getDeclaringTypeMethodDeclarations(astRoot)) { - if (this.matches(methodDeclaration)) { - count++; - if (count == this.getOccurrence()) { - return methodDeclaration; - } - } - } - // return null if the method is no longer in the source code; - // this can happen when the context model has not yet - // been synchronized with the resource model but is still - // asking for an ASTNode (e.g. during a selection event) - return null; - } - - public boolean matches(MethodSignature signature, int occurrence) { - return this.matches(signature) && (occurrence == this.getOccurrence()); - } - - protected boolean matches(MethodSignature signature) { - return signature.getName().equals(this.getName()) - && Arrays.equals(this.parameterTypes, signature.getParameterTypes()); - } - - protected boolean matches(MethodDeclaration methodDeclaration) { - return this.matches(ASTTools.buildMethodSignature(methodDeclaration)); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected static List parameters(MethodDeclaration methodDeclaration) { - return methodDeclaration.parameters(); - } - - @Override - public boolean matches(String memberName, int occurrence) { - throw new UnsupportedOperationException("Use #matches(MethodSignature, int)."); //$NON-NLS-1$ - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return new ASTNodeTextRange(this.getBodyDeclaration(astRoot).getName()); - } - - /** - * return "foo" for a method named "getFoo", "isFoo", "setFoo" - */ - public String getAttributeName() { - return NameTools.convertGetterSetterMethodNameToPropertyName(this.getName()); - } - - public ITypeBinding getTypeBinding(CompilationUnit astRoot) { - IMethodBinding methodBinding = getBodyDeclaration(astRoot).resolveBinding(); - return (methodBinding == null) ? null : methodBinding.getReturnType(); - } - - public boolean isPersistable(CompilationUnit astRoot) { - IMethodBinding binding = this.getBinding(astRoot); - return (binding == null) ? false : JPTTools.methodIsPersistablePropertyGetter(new JPTToolsAdapter(binding)); - } - - - // ********** internal ********** - - protected TypeDeclaration getDeclaringTypeDeclaration(CompilationUnit astRoot) { - // assume the declaring type is not an enum or annotation - // since they do not have field or method declarations - return this.getDeclaringType().getBodyDeclaration(astRoot); - } - - protected MethodDeclaration[] getDeclaringTypeMethodDeclarations(CompilationUnit astRoot) { - return this.getDeclaringTypeDeclaration(astRoot).getMethods(); - } - - - // ********** JPTTools adapter ********** - - /** - * JPTTools needs an adapter so it can work with either an IMethod - * or an IMethodBinding etc. - */ - protected static class SimpleJPTToolsAdapter - implements JPTTools.SimpleMethodAdapter - { - protected final IMethodBinding methodBinding; - - protected SimpleJPTToolsAdapter(IMethodBinding methodBinding) { - super(); - if (methodBinding == null) { - throw new NullPointerException(); - } - this.methodBinding = methodBinding; - } - - public int getModifiers() { - return this.methodBinding.getModifiers(); - } - - public String getReturnTypeErasureName() { - ITypeBinding returnType = this.methodBinding.getReturnType(); - return (returnType == null) ? null : returnType.getTypeDeclaration().getErasure().getQualifiedName(); - } - - public boolean isConstructor() { - return this.methodBinding.isConstructor(); - } - - } - - protected static class JPTToolsAdapter - extends SimpleJPTToolsAdapter - implements JPTTools.MethodAdapter - { - protected JPTToolsAdapter(IMethodBinding methodBinding) { - super(methodBinding); - } - - public String getName() { - return this.methodBinding.getName(); - } - - public int getParametersLength() { - return this.methodBinding.getParameterTypes().length; - } - - public JPTTools.SimpleMethodAdapter getSibling(String name) { - ITypeBinding typeBinding = this.methodBinding.getDeclaringClass(); - if (typeBinding == null) { - return null; - } - for (IMethodBinding sibling : typeBinding.getDeclaredMethods()) { - if ((sibling.getParameterTypes().length == 0) - && sibling.getName().equals(name)) { - return new SimpleJPTToolsAdapter(sibling); - } - } - return null; - } - - public JPTTools.SimpleMethodAdapter getSibling(String name, String parameterTypeErasureName) { - ITypeBinding typeBinding = this.methodBinding.getDeclaringClass(); - if (typeBinding == null) { - return null; - } - for (IMethodBinding sibling : typeBinding.getDeclaredMethods()) { - ITypeBinding[] siblingParmTypes = sibling.getParameterTypes(); - if ((siblingParmTypes.length == 1) - && sibling.getName().equals(name) - && siblingParmTypes[0].getTypeDeclaration().getErasure().getQualifiedName().equals(parameterTypeErasureName)) { - return new SimpleJPTToolsAdapter(sibling); - } - } - return null; - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTModifiedDeclaration.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTModifiedDeclaration.java deleted file mode 100644 index 6e67e46fbc..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTModifiedDeclaration.java +++ /dev/null @@ -1,584 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.IField; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.BodyDeclaration; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.IExtendedModifier; -import org.eclipse.jdt.core.dom.ITypeBinding; -import org.eclipse.jdt.core.dom.ImportDeclaration; -import org.eclipse.jdt.core.dom.PackageDeclaration; -import org.eclipse.jdt.core.dom.SingleVariableDeclaration; -import org.eclipse.jdt.core.dom.VariableDeclarationExpression; -import org.eclipse.jdt.core.dom.VariableDeclarationStatement; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator; -import org.eclipse.jpt.common.utility.internal.iterators.SubIteratorWrapper; - -/** - * Wrap any of the AST nodes that have modifiers (specifically, annotations); - * i.e. BodyDeclaration, SingleVariableDeclaration, VariableDeclarationExpression, - * and VariableDeclarationStatement. - */ -public class JDTModifiedDeclaration - implements ModifiedDeclaration -{ - private final Adapter adapter; - - - // ********** constructors ********** - - public JDTModifiedDeclaration(Adapter adapter) { - super(); - this.adapter = adapter; - } - - public JDTModifiedDeclaration(BodyDeclaration declaration) { - this(new BodyDeclarationAdapter(declaration)); - } - - public JDTModifiedDeclaration(PackageDeclaration declaration) { - this(new PackageDeclarationAdapter(declaration)); - } - - public JDTModifiedDeclaration(SingleVariableDeclaration declaration) { - this(new SingleVariableDeclarationAdapter(declaration)); - } - - public JDTModifiedDeclaration(VariableDeclarationExpression declaration) { - this(new VariableDeclarationExpressionAdapter(declaration)); - } - - public JDTModifiedDeclaration(VariableDeclarationStatement declaration) { - this(new VariableDeclarationStatementAdapter(declaration)); - } - - - // ********** annotations ********** - - public Annotation getAnnotationNamed(String annotationName) { - for (Iterator stream = this.annotations(); stream.hasNext(); ) { - Annotation annotation = stream.next(); - if (this.annotationIsNamed(annotation, annotationName)) { - return annotation; - } - } - return null; - } - - public void removeAnnotationNamed(String annotationName) { - for (Iterator stream = this.getModifiers().iterator(); stream.hasNext(); ) { - IExtendedModifier modifier = stream.next(); - if (modifier.isAnnotation()) { - if (this.annotationIsNamed((Annotation) modifier, annotationName)) { - stream.remove(); - break; - } - } - } - } - - public void replaceAnnotationNamed(String oldAnnotationName, Annotation newAnnotation) { - List modifiers = this.getModifiers(); - for (ListIterator stream = modifiers.listIterator(); stream.hasNext(); ) { - IExtendedModifier modifier = stream.next(); - if (modifier.isAnnotation()) { - if (this.annotationIsNamed((Annotation) modifier, oldAnnotationName)) { - stream.set(newAnnotation); - return; - } - } - } - this.addAnnotation(newAnnotation); - } - - /** - * Add the specified annotation to the declaration. - * By convention annotations precede the "standard" (JLS2) modifiers; - * though, technically, they can be interspersed. - */ - protected void addAnnotation(Annotation annotation) { - List modifiers = this.getModifiers(); - for (ListIterator stream = modifiers.listIterator(); stream.hasNext(); ) { - if (stream.next().isModifier()) { - stream.previous(); // put the annotation *before* the first "standard" (JLS2) modifier - stream.add(annotation); - return; - } - } - modifiers.add(annotation); // just tack it on to the end - } - - /** - * Return the declaration's annotations. - */ - protected Iterator annotations() { - return new SubIteratorWrapper(this.annotations_()); - } - - protected Iterator annotations_() { - return new FilteringIterator(this.getModifiers().iterator()) { - @Override - protected boolean accept(IExtendedModifier next) { - return next.isAnnotation(); - } - }; - } - - - // ********** add import ********** - - public boolean addImport(String className) { - if (className.indexOf('.') == -1) { - return true; // the class is in the default package - no need for import - } - return this.addImport(className, false); - } - - public boolean addStaticImport(String enumConstantName) { - int index1 = enumConstantName.indexOf('.'); - if (index1 == -1) { - throw new IllegalArgumentException(enumConstantName); // shouldn't happen? - } - int index2 = enumConstantName.indexOf('.', index1 + 1); - if (index2 == -1) { - return true; // the enum is in the default package - no need for import - } - return this.addImport(enumConstantName, true); - } - - public boolean addImport(String importName, boolean staticImport) { - Boolean include = this.importsInclude(importName, staticImport); - if (include != null) { - return include.booleanValue(); - } - - ImportDeclaration importDeclaration = this.getAst().newImportDeclaration(); - importDeclaration.setName(this.getAst().newName(importName)); - importDeclaration.setStatic(staticImport); - this.getImports().add(importDeclaration); - return true; - } - - /** - * Just a bit hacky: - * Return Boolean.TRUE if the import is already present. - * Return Boolean.FALSE if a colliding import is already present. - * Return null if a new import may be added. - * This hackery allows us to loop through the imports only once - * (and compose our methods). - * Pre-condition: 'importName' is not in the "default" package (i.e. it *is* qualified) - */ - protected Boolean importsInclude(String importName, boolean staticImport) { - int period = importName.lastIndexOf('.'); // should not be -1 - String importNameQualifier = importName.substring(0, period); - String shortImportName = importName.substring(period + 1); - return this.importsInclude(importName, importNameQualifier, shortImportName, staticImport); - } - - /** - * pre-calculate the qualifier and short name - */ - protected Boolean importsInclude(String importName, String importNameQualifier, String shortImportName, boolean staticImport) { - for (ImportDeclaration importDeclaration : this.getImports()) { - if (importDeclaration.isStatic() == staticImport) { - Boolean match = this.importMatches(importDeclaration, importName, importNameQualifier, shortImportName); - if (match != null) { - return match; - } - } - } - return null; - } - - /** - * we should be able to rely on the JDT model here, since we are looking - * at objects that should not be changing underneath us... - */ - protected Boolean importMatches(ImportDeclaration importDeclaration, String importName, String importNameQualifier, String shortImportName) { - // examples: - // 'importName' is "java.util.Date" - // or - // 'importName' is "java.lang.annotation.ElementType.TYPE" - String idn = importDeclaration.getName().getFullyQualifiedName(); - if (importName.equals(idn)) { - // import java.util.Date; => "Date" will resolve to "java.util.Date" - // import static java.lang.annotation.ElementType.TYPE; => "TYPE" will resolve to "java.lang.annotation.ElementType.TYPE" - return Boolean.TRUE; - } - - String shortIDN = idn.substring(idn.lastIndexOf('.') + 1); - if (shortImportName.equals(shortIDN)) { - // import java.sql.Date; => ambiguous resolution of "Date" - // import static org.foo.Bar.TYPE; => ambiguous resolution of "TYPE" - return Boolean.FALSE; - } - - if (importDeclaration.isOnDemand()) { - if (importNameQualifier.equals(idn)) { - // import java.util.*; => "Date" will resolve to "java.util.Date" - // import static java.lang.annotation.ElementType.*; => "TYPE" will resolve to "java.lang.annotation.ElementType.TYPE" - return Boolean.TRUE; - } - if (importDeclaration.isStatic()) { - if (this.enumResolves(idn, shortImportName)) { - // import static org.foo.Bar.*; => ambiguous resolution of "TYPE" - return Boolean.FALSE; - } - } else { - if (this.typeResolves(idn + '.' + shortImportName)) { - // import java.sql.*; => ambiguous resolution of "Date" - return Boolean.FALSE; - } - } - } - // no matches - OK to add explicit import - return null; - } - - protected boolean enumResolves(String enumTypeName, String enumConstantName) { - try { - return this.enumResolves_(enumTypeName, enumConstantName); - } catch (JavaModelException ex) { - throw new RuntimeException(ex); - } - } - - protected boolean enumResolves_(String enumTypeName, String enumConstantName) throws JavaModelException { - IType jdtType = this.findType_(enumTypeName); - if (jdtType == null) { - return false; - } - if ( ! jdtType.isEnum()) { - return false; - } - for (IField jdtField : jdtType.getFields()) { - if (jdtField.isEnumConstant() && jdtField.getElementName().equals(enumConstantName)) { - return true; - } - } - return false; - } - - protected boolean typeResolves(String name) { - return this.findType(name) != null; - } - - protected IType findType(String name) { - try { - return this.findType_(name); - } catch (JavaModelException ex) { - throw new RuntimeException(ex); - } - } - - protected IType findType_(String name) throws JavaModelException { - return this.getCompilationUnit().getJavaElement().getJavaProject().findType(name); - } - - protected List getImports() { - return this.imports(this.getCompilationUnit()); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected List imports(CompilationUnit astRoot) { - return astRoot.imports(); - } - - - // ********** annotation name resolution ********** - - public boolean annotationIsNamed(Annotation annotation, String name) { - return this.getQualifiedName(annotation).equals(name); - } - - /** - * Simply return the annotation's unqualified name if we can't "resolve" it. - */ - protected String getQualifiedName(Annotation annotation) { - ITypeBinding typeBinding = annotation.resolveTypeBinding(); - if (typeBinding != null) { - String resolvedName = typeBinding.getQualifiedName(); - if (resolvedName != null) { - return resolvedName; - } - } - // hack(?): check for a matching import because when moving a stand-alone - // annotation to its container in CombinationIndexedDeclarationAnnotationAdapter - // the container's import is added but then it won't "resolve" upon - // subsequent lookups (because the parser hasn't had time to run?)... :-( - return this.convertToFullClassName(annotation.getTypeName().getFullyQualifiedName()); - } - - /** - * If necessary, use the declaration's imports to calculate a guess as to - * the specified name's fully-qualified form. - * Simply return the unqualified name if we can't "resolve" it. - */ - protected String convertToFullClassName(String name) { - // check for fully-qualified name - return (name.lastIndexOf('.') != -1) ? name : this.resolveAgainstImports(name, false); - } - - /** - * If necessary, use the declaration's imports to calculate a guess as to - * the specified name's fully-qualified form. - * Simply return the unqualified name if we can't "resolve" it. - */ - protected String convertToFullEnumConstantName(String name) { - int index1 = name.indexOf('.'); - if (index1 == -1) { - // short name, e.g. "TYPE" - // true = look for static import of enum constant - return this.resolveAgainstImports(name, true); - } - - int index2 = name.indexOf('.', index1 + 1); - if (index2 == -1) { - // partially-qualified name, e.g. "ElementType.TYPE" - // false = look regular import of enum class, not static import of enum constant - return this.resolveAgainstImports(name, false); - } - - // fully-qualified name, e.g. "java.lang.annotation.ElementType.TYPE" - return name; - } - - /** - * Attempt to resolve the specified "short" name against the declaration's - * imports. Return the name unchanged if we can't resolve it (perhaps it is - * in the "default" package). - */ - protected String resolveAgainstImports(String shortName, boolean static_) { - for (ImportDeclaration importDeclaration : this.getImports()) { - if (importDeclaration.isStatic() == static_) { - String resolvedName = this.resolveAgainstImport(importDeclaration, shortName); - if (resolvedName != null) { - return resolvedName; - } - } - } - return shortName; // "default" package or unknown - } - - /** - * Attempt to resolve the specified "short" name against the specified - * import. Return the resolved name if the import resolves it; otherwise - * return null. - */ - protected String resolveAgainstImport(ImportDeclaration importDeclaration, String shortName) { - String idn = importDeclaration.getName().getFullyQualifiedName(); - if (importDeclaration.isOnDemand()) { - String candidate = idn + '.' + shortName; - if (importDeclaration.isStatic()) { - if (this.enumResolves(idn, shortName)) { - return candidate; - } - } else { - if (this.typeResolves(candidate)) { - return candidate; - } - } - // no match - return null; - } - - // explicit import - see whether its end matches 'shortName' - int period = idn.length() - shortName.length() - 1; - if (period < 1) { - // something must precede period - return null; - } - if ((idn.charAt(period) == '.') && idn.endsWith(shortName)) { - return idn; // probable exact match - } - return null; - } - - - // ********** miscellaneous methods ********** - - public ASTNode getDeclaration() { - return this.adapter.getDeclaration(); - } - - /** - * Return the declaration's list of modifiers. - * Element type: org.eclipse.jdt.core.dom.IExtendedModifier - */ - protected List getModifiers() { - return this.adapter.getModifiers(); - } - - public AST getAst() { - return this.getDeclaration().getAST(); - } - - protected CompilationUnit getCompilationUnit() { - return (CompilationUnit) this.getDeclaration().getRoot(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.adapter.toString()); - } - - - // ********** declaration adapter interface and implementations ********** - - /** - * Define common protocol among the various "declarations". - */ - public interface Adapter { - - /** - * Return the adapted "declaration". - */ - ASTNode getDeclaration(); - - /** - * Return the "declaration"'s list of modifiers. - * Element type: org.eclipse.jdt.core.dom.IExtendedModifier - */ - List getModifiers(); - - } - - public static class BodyDeclarationAdapter implements Adapter { - private final BodyDeclaration declaration; - public BodyDeclarationAdapter(BodyDeclaration declaration) { - super(); - this.declaration = declaration; - } - public ASTNode getDeclaration() { - return this.declaration; - } - @SuppressWarnings("unchecked") - public List getModifiers() { - return this.declaration.modifiers(); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.declaration.toString()); - } - } - - public static class PackageDeclarationAdapter implements Adapter { - private final PackageDeclaration declaration; - public PackageDeclarationAdapter(PackageDeclaration declaration) { - super(); - this.declaration = declaration; - } - public ASTNode getDeclaration() { - return this.declaration; - } - @SuppressWarnings("unchecked") - public List getModifiers() { - return this.declaration.annotations(); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.declaration.toString()); - } - } - - /*public static class ASTNodeAdapter implements Adapter { - private final ASTNode declaration; - public ASTNodeAdapter(ASTNode declaration) { - super(); - this.declaration = declaration; - } - public ASTNode getDeclaration() { - return this.declaration; - } - @SuppressWarnings("unchecked") - public List getModifiers() { - if (declaration instanceof BodyDeclaration) { - return ((BodyDeclaration) declaration).modifiers(); - } else if (declaration instanceof PackageDeclaration) { - return ((PackageDeclaration) declaration).annotations(); - } - return Collections.emptyList(); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.declaration.toString()); - } - }*/ - - public static class SingleVariableDeclarationAdapter implements Adapter { - private final SingleVariableDeclaration declaration; - public SingleVariableDeclarationAdapter(SingleVariableDeclaration declaration) { - super(); - this.declaration = declaration; - } - public ASTNode getDeclaration() { - return this.declaration; - } - @SuppressWarnings("unchecked") - public List getModifiers() { - return this.declaration.modifiers(); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.declaration.toString()); - } - } - - public static class VariableDeclarationExpressionAdapter implements Adapter { - private final VariableDeclarationExpression declaration; - public VariableDeclarationExpressionAdapter(VariableDeclarationExpression declaration) { - super(); - this.declaration = declaration; - } - public ASTNode getDeclaration() { - return this.declaration; - } - @SuppressWarnings("unchecked") - public List getModifiers() { - return this.declaration.modifiers(); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.declaration.toString()); - } - } - - public static class VariableDeclarationStatementAdapter implements Adapter { - private final VariableDeclarationStatement declaration; - public VariableDeclarationStatementAdapter(VariableDeclarationStatement declaration) { - super(); - this.declaration = declaration; - } - public ASTNode getDeclaration() { - return this.declaration; - } - @SuppressWarnings("unchecked") - public List getModifiers() { - return this.declaration.modifiers(); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.declaration.toString()); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTPackage.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTPackage.java deleted file mode 100644 index dfdbd2c112..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTPackage.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Red Hat, Inc. - * Distributed under license by Red Hat, Inc. All rights reserved. - * This program is made available under the terms of the - * Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributor: - * Red Hat, Inc. - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.IPackageBinding; -import org.eclipse.jdt.core.dom.PackageDeclaration; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedPackage; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.utility.CommandExecutor; - -/** - * @author Dmitry Geraskov - * - */ - -public class JDTPackage extends JDTAnnotatedElement implements AnnotatedPackage { - - - protected JDTPackage(PackageDeclaration declaringPackage, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - super(declaringPackage.getName().getFullyQualifiedName(), - compilationUnit, - modifySharedDocumentCommandExecutor); - } - - public JDTPackage( - PackageDeclaration declaringPackage, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(declaringPackage.getName().getFullyQualifiedName(), - compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - @Override - public ModifiedDeclaration getModifiedDeclaration(CompilationUnit astRoot) { - return new JDTModifiedDeclaration(this.getBodyDeclaration(astRoot)); - } - - public IPackageBinding getBinding(CompilationUnit astRoot) { - PackageDeclaration pd = this.getBodyDeclaration(astRoot); - return (pd == null) ? null : pd.resolveBinding(); - } - - public PackageDeclaration getBodyDeclaration(CompilationUnit astRoot) { - return astRoot.getPackage(); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return new ASTNodeTextRange(this.getBodyDeclaration(astRoot).getName()); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTType.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTType.java deleted file mode 100644 index 55bef8862a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JDTType.java +++ /dev/null @@ -1,207 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.List; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.AbstractTypeDeclaration; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.EnumDeclaration; -import org.eclipse.jdt.core.dom.FieldDeclaration; -import org.eclipse.jdt.core.dom.ITypeBinding; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.common.core.utility.jdt.Type; -import org.eclipse.jpt.common.utility.CommandExecutor; - -/** - * Adapt and extend a JDT type. - */ -public class JDTType - extends AbstractJDTType - implements Type -{ - - /** - * constructor for the compilation unit's primary type - */ - public JDTType( - TypeDeclaration typeDeclaration, // exclude annotations and enums - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(typeDeclaration, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - /** - * constructor for the compilation unit's primary type - */ - public JDTType( - TypeDeclaration typeDeclaration, // exclude annotations and enums - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - this(null, typeDeclaration, 1, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - /** - * constructor for nested types - */ - public JDTType( - Type declaringType, - TypeDeclaration typeDeclaration, // exclude annotations and enums - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor) { - this(declaringType, typeDeclaration, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, DefaultAnnotationEditFormatter.instance()); - } - - /** - * constructor for nested types - */ - public JDTType( - Type declaringType, - TypeDeclaration typeDeclaration, // exclude annotations and enums - int occurrence, - ICompilationUnit compilationUnit, - CommandExecutor modifySharedDocumentCommandExecutor, - AnnotationEditFormatter annotationEditFormatter) { - super(declaringType, typeDeclaration, occurrence, compilationUnit, modifySharedDocumentCommandExecutor, annotationEditFormatter); - } - - /** - * constructor for testing - */ - public JDTType(Type declaringType, String name, int occurrence, ICompilationUnit compilationUnit) { - super(declaringType, name, occurrence, compilationUnit); - } - - - // ********** Member/Type implementation ********** - - /** - * find the type's body declaration in the specified AST - */ - @Override - public TypeDeclaration getBodyDeclaration(CompilationUnit astRoot) { - return (TypeDeclaration) super.getBodyDeclaration(astRoot); - } - - public boolean isPersistable(CompilationUnit astRoot) { - ITypeBinding binding = this.getBinding(astRoot); - return (binding == null) ? false : JPTTools.typeIsPersistable(new JPTToolsAdapter(binding)); - } - - public TypeDeclaration[] getTypes(CompilationUnit astRoot) { - return this.getBodyDeclaration(astRoot).getTypes(); - } - - public EnumDeclaration[] getEnums(CompilationUnit astRoot) { - return getEnums(this.getBodyDeclaration(astRoot)); - } - - public FieldDeclaration[] getFields(CompilationUnit astRoot) { - return this.getBodyDeclaration(astRoot).getFields(); - } - - public MethodDeclaration[] getMethods(CompilationUnit astRoot) { - return this.getBodyDeclaration(astRoot).getMethods(); - } - - - // ********** internal ********** - - /** - * return the first top-level type in the specified AST with a matching name - */ - @Override - protected TypeDeclaration getTopLevelTypeDeclaration(CompilationUnit astRoot) { - return (TypeDeclaration) super.getTopLevelTypeDeclaration(astRoot); - } - - @Override - protected TypeDeclaration getTypeDeclaration(List typeDeclarations) { - return (TypeDeclaration) super.getTypeDeclaration(typeDeclarations); - } - - /** - * return the nested type with a matching name and occurrence - */ - @Override - protected TypeDeclaration getNestedTypeDeclaration(TypeDeclaration declaringTypeDeclaration) { - return this.getTypeDeclaration(declaringTypeDeclaration.getTypes()); - } - - /** - * return the type declaration corresponding to the type from the specified - * set of type declarations (match name and occurrence) - */ - @Override - protected TypeDeclaration getTypeDeclaration(AbstractTypeDeclaration[] typeDeclarations) { - return (TypeDeclaration) super.getTypeDeclaration(typeDeclarations); - } - - @Override - protected int getASTNodeType() { - return ASTNode.TYPE_DECLARATION; - } - - - // ********** JPT tools adapter ********** - - protected static class JPTToolsAdapter implements JPTTools.TypeAdapter { - private final ITypeBinding typeBinding; - protected JPTToolsAdapter(ITypeBinding typeBinding) { - super(); - if (typeBinding == null) { - throw new NullPointerException(); - } - this.typeBinding = typeBinding; - } - - public int getModifiers() { - return this.typeBinding.getModifiers(); - } - - public boolean isAnnotation() { - return this.typeBinding.isAnnotation(); - } - - public boolean isAnonymous() { - return this.typeBinding.isAnonymous(); - } - - public boolean isArray() { - return this.typeBinding.isArray(); - } - - public boolean isEnum() { - return this.typeBinding.isEnum(); - } - - public boolean isInterface() { - return this.typeBinding.isInterface(); - } - - public boolean isLocal() { - return this.typeBinding.isLocal(); - } - - public boolean isMember() { - return this.typeBinding.isMember(); - } - - public boolean isPrimitive() { - return this.typeBinding.isPrimitive(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JPTTools.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JPTTools.java deleted file mode 100644 index f1930c829c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/JPTTools.java +++ /dev/null @@ -1,283 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.lang.reflect.Modifier; - -/** - * Convenience methods for JPA-related queries concerning JDT objects. - */ -//TODO this needs to move because it is only used for JPA -public class JPTTools { - - // ********** type ********** - - /** - * Return whether the specified type can be "persisted", i.e. marked as - * Entity, MappedSuperclass, Embeddable - */ - public static boolean typeIsPersistable(TypeAdapter typeAdapter) { - if (typeAdapter.isInterface()) { - return false; - } - if (typeAdapter.isAnnotation()) { - return false; - } - if (typeAdapter.isEnum()) { - return false; - } - if (typeAdapter.isLocal()) { - return false; - } - if (typeAdapter.isAnonymous()) { - return false; - } - if (typeAdapter.isPrimitive()) { - return false; // should never get here(?) - } - if (typeAdapter.isArray()) { - return false; // should never get here(?) - } - return true; - } - - /** - * Queries needed to calculate whether a type is "persistable". - * Adapted to ITypeBinding and IType. - */ - public interface TypeAdapter { - int getModifiers(); - boolean isAnnotation(); - boolean isAnonymous(); - boolean isArray(); - boolean isEnum(); - boolean isInterface(); - boolean isLocal(); - boolean isMember(); - boolean isPrimitive(); - } - - - // ********** field ********** - - /** - * Return whether the specified field may be "persisted". - * According to the spec, "All non-transient instance variables that are not - * annotated with the Transient annotation are persistent." - */ - public static boolean fieldIsPersistable(FieldAdapter fieldAdapter) { - int modifiers = fieldAdapter.getModifiers(); - if (Modifier.isStatic(modifiers)) { - return false; - } - if (Modifier.isTransient(modifiers)) { - return false; - } - return true; - } - - /** - * Queries needed to calculate whether a field is "persistable". - * Adapted to IVariableBinding and IField. - */ - public interface FieldAdapter { - /** - * Return the field's modifiers. We use these to check whether the - * field is static or transient. - */ - int getModifiers(); - } - - - // ********** method ********** - - /** - * Return whether the specified method is a "getter" method that - * represents a property that may be "persisted". - */ - public static boolean methodIsPersistablePropertyGetter(MethodAdapter methodAdapter) { - if (methodHasInvalidModifiers(methodAdapter)) { - return false; - } - if (methodAdapter.isConstructor()) { - return false; - } - - String returnTypeName = methodAdapter.getReturnTypeErasureName(); - if (returnTypeName == null) { - return false; // DOM method bindings can have a null name - } - if (returnTypeName.equals("void")) { //$NON-NLS-1$ - return false; - } - if (methodHasParameters(methodAdapter)) { - return false; - } - - String name = methodAdapter.getName(); - int beginIndex = 0; - boolean booleanGetter = false; - if (name.startsWith("is")) { //$NON-NLS-1$ - if (returnTypeName.equals("boolean")) { //$NON-NLS-1$ - beginIndex = 2; - } else { - return false; - } - } else if (name.startsWith("get")) { //$NON-NLS-1$ - beginIndex = 3; - if (returnTypeName.equals("boolean")) { //$NON-NLS-1$ - booleanGetter = true; - } - } else { - return false; - } - - String capitalizedAttributeName = name.substring(beginIndex); - // if the type has both methods: - // boolean isProperty() - // boolean getProperty() - // then #isProperty() takes precedence and we ignore #getProperty(); - // but only having #getProperty() is OK too - // (see the JavaBeans spec 1.01) - if (booleanGetter && methodHasValidSiblingIsMethod(methodAdapter, capitalizedAttributeName)) { - return false; // since the type also defines #isProperty(), ignore #getProperty() - } - return methodHasValidSiblingSetMethod(methodAdapter, capitalizedAttributeName, returnTypeName); - } - - /** - * Return whether the method's modifiers prevent it - * from being a getter or setter for a "persistent" property. - */ - private static boolean methodHasInvalidModifiers(SimpleMethodAdapter methodAdapter) { - int modifiers = methodAdapter.getModifiers(); - if (Modifier.isStatic(modifiers)) { - return true; - } - return false; - } - - private static boolean methodHasParameters(MethodAdapter methodAdapter) { - return methodAdapter.getParametersLength() != 0; - } - - /** - * Return whether the method has a sibling "is" method for the specified - * property and that method is valid for a "persistable" property. - * Pre-condition: the method is a "boolean getter" (e.g. 'public boolean getProperty()'); - * this prevents us from returning true when the method itself is an - * "is" method. - */ - private static boolean methodHasValidSiblingIsMethod(MethodAdapter methodAdapter, String capitalizedAttributeName) { - SimpleMethodAdapter isMethodAdapter = methodAdapter.getSibling("is" + capitalizedAttributeName); //$NON-NLS-1$ - return methodIsValidSibling(isMethodAdapter, "boolean"); //$NON-NLS-1$ - } - - /** - * Return whether the method has a sibling "set" method - * and that method is valid for a "persistable" property. - */ - private static boolean methodHasValidSiblingSetMethod(MethodAdapter methodAdapter, String capitalizedAttributeName, String parameterTypeErasureName) { - SimpleMethodAdapter setMethodAdapter = methodAdapter.getSibling("set" + capitalizedAttributeName, parameterTypeErasureName); //$NON-NLS-1$ - return methodIsValidSibling(setMethodAdapter, "void"); //$NON-NLS-1$ - } - - /** - * Return whether the specified method is a valid sibling with the - * specified return type. - */ - private static boolean methodIsValidSibling(SimpleMethodAdapter methodAdapter, String returnTypeName) { - if (methodAdapter == null) { - return false; - } - if (methodHasInvalidModifiers(methodAdapter)) { - return false; - } - if (methodAdapter.isConstructor()) { - return false; - } - String rtName = methodAdapter.getReturnTypeErasureName(); - if (rtName == null) { - return false; // DOM method bindings can have a null name - } - return rtName.equals(returnTypeName); - } - - /** - * Queries needed to calculate whether a method is "persistable". - * Adapted to IMethodBinding and IMethod. - */ - public interface SimpleMethodAdapter { - /** - * Return the method's modifiers. - * We use these to check whether the method is static, final, etc. - */ - int getModifiers(); - - /** - * Return the name of the method's return type erasure. - * We use this to check for - * - boolean getters - * - void return types - * - matching getters and setters - */ - String getReturnTypeErasureName(); - - /** - * Return whether the method is a constructor. - */ - boolean isConstructor(); - } - - /** - * Queries needed to calculate whether a method is "persistable". - * Adapted to IMethodBinding and IMethod. - */ - public interface MethodAdapter extends SimpleMethodAdapter { - /** - * Return the method's name. - * We use this to determine - * - whether the method is a "getter" - * - the property name implied by the getter's name - */ - String getName(); - - /** - * Return the number of paramters declared by the method. - * We use this to determine whether the method is a "getter". - */ - int getParametersLength(); - - /** - * Return the method's "sibling" with the specified name and no parameters. - * We use this to find an "is" boolean getter that would take precedence - * over a "get" boolean getter. - */ - SimpleMethodAdapter getSibling(String name); - - /** - * Return the method's "sibling" with the specified name and single parameter. - * We use this to find a matching "setter" for a possible "getter". - */ - SimpleMethodAdapter getSibling(String name, String parameterTypeErasureName); - } - - - // ********** suppressed constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private JPTTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NameStringExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NameStringExpressionConverter.java deleted file mode 100644 index 5c9bc46dde..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NameStringExpressionConverter.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.Name; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -/** - * Convert a name to/from a string representation of a name/identifier - * (e.g. "com.xxx.Foo.VALUE1" or "value"). - */ -public final class NameStringExpressionConverter - extends AbstractExpressionConverter -{ - private static final ExpressionConverter INSTANCE = new NameStringExpressionConverter(); - - /** - * Return the singleton. - */ - public static ExpressionConverter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private NameStringExpressionConverter() { - super(); - } - - @Override - protected Name convertObject(String string, AST ast) { - return ast.newName(string); - } - - @Override - protected String convertExpression(Expression expression) { - switch (expression.getNodeType()) { - case ASTNode.QUALIFIED_NAME: - case ASTNode.SIMPLE_NAME: - return ((Name) expression).getFullyQualifiedName(); - default: - return null; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NestedDeclarationAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NestedDeclarationAnnotationAdapter.java deleted file mode 100644 index 17eb956055..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NestedDeclarationAnnotationAdapter.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -/** - * Manipulate an annotation that is embedded as an element within - * another annotation, e.g. - *
- *     @Outer(foo=@Inner)
- *     private int id;
- *         outerAnnotationAdapter = AnnotationAdapter<@Outer>
- *         elementName = "foo"
- *         annotationName = "Inner"
- * 
- */ -public class NestedDeclarationAnnotationAdapter - extends AbstractNestedDeclarationAnnotationAdapter -{ - // ********** constructors ********** - - /** - * The default element name is value. - */ - public NestedDeclarationAnnotationAdapter(DeclarationAnnotationAdapter outerAnnotationAdapter, String annotationName) { - super(outerAnnotationAdapter, annotationName); - } - - /** - * default behavior is to remove the outer annotation when it is empty - */ - public NestedDeclarationAnnotationAdapter(DeclarationAnnotationAdapter outerAnnotationAdapter, String elementName, String annotationName) { - super(outerAnnotationAdapter, elementName, annotationName); - } - - - // ********** AbstractNestedDeclarationAnnotationAdapter implementation ********** - - @Override - protected Annotation getAnnotation(Expression value) { - return this.annotationValue(value); - } - - @Override - protected Expression buildNewInnerExpression(Annotation inner) { - return inner; - } - - /** - * the annotation is the expression itself, so the annotation cannot be - * "removed" from itself - return 'false' - */ - @Override - protected boolean removeAnnotation(ModifiedDeclaration declaration, Annotation outer, Expression value) { - return false; - } - - /** - *
-	 * @Outer("lorem ipsum") => @Outer(@Inner)
-	 * 
- */ - @Override - protected void modifyAnnotationValue(SingleMemberAnnotation outer, Annotation inner) { - // replace(?) the current element value - outer.setValue(inner); - } - - /** - * Simply set the pair's value. - */ - @Override - protected void modifyMemberValuePair(MemberValuePair pair, Annotation inner) { - pair.setValue(inner); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapter.java deleted file mode 100644 index acfd74372f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapter.java +++ /dev/null @@ -1,325 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.List; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.ArrayInitializer; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -/** - * Manipulate an annotation that is embedded in an element array within - * another annotation, e.g. - *
- *     @Outer(foo={@Inner("zero"), @Inner("one"), @Inner("two")})
- *     private int id;
- *         outerAnnotationAdapter = AnnotationAdapter<@Outer>
- *         elementName = "foo"
- *         index = 0-2
- *         annotationName = "Inner"
- * 
- */ -public class NestedIndexedDeclarationAnnotationAdapter - extends AbstractNestedDeclarationAnnotationAdapter - implements IndexedDeclarationAnnotationAdapter -{ - private int index; - - - // ********** constructors ********** - - /** - * The default element name is value. - */ - public NestedIndexedDeclarationAnnotationAdapter(DeclarationAnnotationAdapter annotationAdapter, int index, String annotationName) { - super(annotationAdapter, annotationName); - this.index = index; - } - - public NestedIndexedDeclarationAnnotationAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName, int index, String annotationName) { - super(annotationAdapter, elementName, annotationName); - this.index = index; - } - - - // ********** AbstractNestedDeclarationAnnotationAdapter implementation ********** - - @Override - protected Annotation getAnnotation(Expression value) { - if (value.getNodeType() == ASTNode.ARRAY_INITIALIZER) { - return this.annotation((ArrayInitializer) value); - } - return (this.index == 0) ? this.annotationValue(value) : null; - } - - @Override - protected Expression buildNewInnerExpression(Annotation inner) { - return (this.index == 0) ? inner : (Expression) this.buildNewInnerArrayInitializer(inner); - } - - @Override - protected boolean removeAnnotation(ModifiedDeclaration declaration, Annotation outer, Expression value) { - if (value.getNodeType() == ASTNode.ARRAY_INITIALIZER) { - this.removeAnnotation(declaration, outer, (ArrayInitializer) value); - return true; - } - // if our index is greater than zero, but we don't have an array, - // then the annotation must already be gone - return (this.index != 0); - } - - /** - *
-	 * @Outer({@Inner(0), @Inner(1)}) => @Outer({@Inner(0), @Inner(1), @Inner(2)})
-	 *     or
-	 * @Outer("lorem ipsum") => @Outer(@Inner(0))
-	 *     or
-	 * @Outer(@Inner(0)) => @Outer({@Inner(0), @Inner(1)})
-	 * 
- */ - @Override - protected void modifyAnnotationValue(SingleMemberAnnotation outer, Annotation inner) { - this.modifyExpression(outer, SINGLE_MEMBER_ANNOTATION_EXPRESSION_PROVIDER, inner); - } - - /** - *
-	 * @Outer(text="lorem ipsum") => @Outer(text="lorem ipsum", foo=@Inner(0))
-	 *     or
-	 * @Outer(foo={@Inner(0), @Inner(1)}) => @Outer(foo={@Inner(0), @Inner(1), @Inner(2)})
-	 *     or
-	 * @Outer(foo="lorem ipsum") => @Outer(foo=@Inner(0))
-	 *     or
-	 * @Outer(foo=@NotInner) => @Outer(foo=@Inner(0))
-	 *     or
-	 * @Outer(foo=@Inner(0)) => @Outer(foo={@Inner(0), @Inner(1)})
-	 * 
- */ - @Override - protected void modifyMemberValuePair(MemberValuePair pair, Annotation inner) { - this.modifyExpression(pair, MEMBER_VALUE_PAIR_EXPRESSION_PROVIDER, inner); - } - - - // ********** IndexedDeclarationAnnotationAdapter implementation ********** - - public int getIndex() { - return this.index; - } - - /** - * Move the annotation to the specified index, leaving its original - * position cleared out. - */ - public void moveAnnotation(int newIndex, ModifiedDeclaration declaration) { - int oldIndex = this.index; - if (newIndex == oldIndex) { - return; - } - - Annotation original = this.getAnnotation(declaration); - if (original == null) { - this.index = newIndex; - this.removeAnnotation(declaration); // clear out the new location (?) - } else { - Annotation copy = (Annotation) ASTNode.copySubtree(original.getAST(), original); - this.index = newIndex; - this.addAnnotation(declaration, copy); // install the copy in the new location - this.index = oldIndex; - this.removeAnnotation(declaration); // go back and clear out the original location (AFTER the move) - this.index = newIndex; - } - } - - - // ********** internal methods ********** - - /** - * Return the adapter's annotation from the specified array initializer. - */ - private Annotation annotation(ArrayInitializer value) { - List expressions = this.expressions(value); - return (this.index >= expressions.size()) ? null : this.annotationValue(expressions.get(this.index)); - } - - /** - * Build a new array initializer to hold the specified annotation, - * padding it with 'null' literals as necessary - */ - private ArrayInitializer buildNewInnerArrayInitializer(Annotation inner) { - ArrayInitializer ai = inner.getAST().newArrayInitializer(); - this.addInnerToExpressions(inner, this.expressions(ai)); - return ai; - } - - /** - * Add the specified annotation to the specified array initializer, - * padding it with 'null' literals as necessary - */ - private void addInnerToExpressions(Annotation inner, List expressions) { - if (expressions.size() > this.index) { - throw new IllegalStateException("expressions size is greater than index (size: " + expressions.size() + " index: " + this.index + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - while (expressions.size() < this.index) { - expressions.add(inner.getAST().newNullLiteral()); - } - expressions.add(inner); - } - - /** - * Remove the adapter's annotation from the specified array initializer. - */ - private void removeAnnotation(ModifiedDeclaration declaration, Annotation outer, ArrayInitializer value) { - List expressions = this.expressions(value); - if (this.index >= expressions.size()) { - return; // avoid IndexOutOfBoundsException(?) - } - Annotation inner = this.annotationValue(expressions.get(this.index)); - if (inner == null) { - return; - } - if ( ! this.nameMatches(declaration, inner)) { - return; - } - if (this.index == (expressions.size() - 1)) { - expressions.remove(this.index); - } else { - expressions.set(this.index, value.getAST().newNullLiteral()); - } - this.trimExpressions(declaration, outer, expressions); - } - - /** - * Strip all the null literals off the end of the specified list of expressions - * and normalize the specified outer annotation. - */ - private void trimExpressions(ModifiedDeclaration declaration, Annotation outer, List expressions) { - // start at the end of the list - for (int i = expressions.size(); i-- > 0; ) { - if (expressions.get(i).getNodeType() == ASTNode.NULL_LITERAL) { - expressions.remove(i); - } else { - break; // stop with the first non-null literal encountered - } - } - switch (expressions.size()) { - case 0: - this.removeElementAndNormalize(declaration, outer); - break; - case 1: - this.convertArrayToLastRemainingExpression(outer, expressions.get(0)); - break; - default: - break; - } - } - - /** - * When there is only a single element in an array initializer, convert the - * expression to be just the single element; e.g. - *
-	 *     @Foo(xxx={"abc"}) => @Foo(xxx="abc")
-	 * or
-	 *     @Foo({"abc"}) => @Foo("abc")
-	 * 
- */ - private void convertArrayToLastRemainingExpression(Annotation outer, Expression lastValue) { - lastValue = (Expression) ASTNode.copySubtree(lastValue.getAST(), lastValue); - if (outer.isNormalAnnotation()) { - this.memberValuePair((NormalAnnotation) outer).setValue(lastValue); - } else if (outer.isSingleMemberAnnotation()) { - ((SingleMemberAnnotation) outer).setValue(lastValue); - } else { - throw new IllegalArgumentException("unexpected annotation type: " + outer); //$NON-NLS-1$ - } - } - - /** - * Manipulate the specified expression appropriately. - * If it is an array initializer, add the specified annotation to it. - * If it is not, replace the expression or convert it into an array - * initializer. - */ - private void modifyExpression(ASTNode node, ExpressionProvider expProvider, Annotation inner) { - Expression value = expProvider.getExpression(node); - if (value.getNodeType() == ASTNode.ARRAY_INITIALIZER) { - // ignore the other entries in the array initializer(?) - they may not be matching Annotations... - List expressions = this.expressions((ArrayInitializer) value); - if (this.index >= expressions.size()) { - this.addInnerToExpressions(inner, expressions); - } else { - expressions.set(this.index, inner); - } - } else { - if (this.index == 0) { - // replace whatever was there before - expProvider.setExpression(node, inner); - } else { - // convert to an array - ArrayInitializer ai = inner.getAST().newArrayInitializer(); - List expressions = this.expressions(ai); - expressions.add((Expression) ASTNode.copySubtree(value.getAST(), value)); - this.addInnerToExpressions(inner, expressions); - expProvider.setExpression(node, ai); - } - } - } - - @SuppressWarnings("unchecked") - protected List expressions(ArrayInitializer ai) { - return ai.expressions(); - } - - - // ********** expression providers ********** - - /** - * define interface that allows us to "re-use" the code in - * #modifyExpression(ASTNode, ExpressionProvider, Annotation) - */ - private interface ExpressionProvider { - Expression getExpression(ASTNode node); - void setExpression(ASTNode node, Expression expression); - } - - private static final ExpressionProvider MEMBER_VALUE_PAIR_EXPRESSION_PROVIDER = new ExpressionProvider() { - public Expression getExpression(ASTNode node) { - return ((MemberValuePair) node).getValue(); - } - public void setExpression(ASTNode node, Expression expression) { - ((MemberValuePair) node).setValue(expression); - } - @Override - public String toString() { - return "MemberValuePairExpressionProvider"; //$NON-NLS-1$ - } - }; - - private static final ExpressionProvider SINGLE_MEMBER_ANNOTATION_EXPRESSION_PROVIDER = new ExpressionProvider() { - public Expression getExpression(ASTNode node) { - return ((SingleMemberAnnotation) node).getValue(); - } - public void setExpression(ASTNode node, Expression expression) { - ((SingleMemberAnnotation) node).setValue(expression); - } - @Override - public String toString() { - return "SingleMemberAnnotationExpressionProvider"; //$NON-NLS-1$ - } - }; - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullAnnotationEditFormatter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullAnnotationEditFormatter.java deleted file mode 100644 index 284e9379b4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullAnnotationEditFormatter.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.text.edits.MalformedTreeException; -import org.eclipse.text.edits.TextEdit; - -public final class NullAnnotationEditFormatter - implements AnnotationEditFormatter -{ - - private static final NullAnnotationEditFormatter INSTANCE = new NullAnnotationEditFormatter(); - - /** - * Return the singleton. - */ - public static AnnotationEditFormatter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private NullAnnotationEditFormatter() { - super(); - } - - public void format(IDocument doc, TextEdit editTree) throws MalformedTreeException, BadLocationException { - // no formatting - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullDeclarationAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullDeclarationAnnotationAdapter.java deleted file mode 100644 index c9fe2d94e4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullDeclarationAnnotationAdapter.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.common.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -/** - * Behaviorless implementation. - */ -public final class NullDeclarationAnnotationAdapter - implements IndexedDeclarationAnnotationAdapter -{ - - // singleton - private static final NullDeclarationAnnotationAdapter INSTANCE = new NullDeclarationAnnotationAdapter(); - - /** - * Return the singleton. - */ - public static IndexedDeclarationAnnotationAdapter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private NullDeclarationAnnotationAdapter() { - super(); - } - - - // ********** DeclarationAnnotationAdapter implementation ********** - - public Annotation getAnnotation(ModifiedDeclaration declaration) { - return null; - } - - public MarkerAnnotation newMarkerAnnotation(ModifiedDeclaration declaration) { - return null; - } - - public SingleMemberAnnotation newSingleMemberAnnotation(ModifiedDeclaration declaration) { - return null; - } - - public NormalAnnotation newNormalAnnotation(ModifiedDeclaration declaration) { - return null; - } - - public void removeAnnotation(ModifiedDeclaration declaration) { - // do nothing - } - - public ASTNode getAstNode(ModifiedDeclaration declaration) { - return declaration.getDeclaration(); - } - - - // ********** IndexedDeclarationAnnotationAdapter implementation ********** - - public int getIndex() { - return -1; - } - - public void moveAnnotation(int newIndex, ModifiedDeclaration declaration) { - // do nothing - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullDeclarationAnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullDeclarationAnnotationElementAdapter.java deleted file mode 100644 index dd3e616a2d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullDeclarationAnnotationElementAdapter.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -/** - * Behaviorless implementation. - */ -public class NullDeclarationAnnotationElementAdapter - implements DeclarationAnnotationElementAdapter -{ - - // singleton - @SuppressWarnings("rawtypes") - private static final DeclarationAnnotationElementAdapter INSTANCE - = new NullDeclarationAnnotationElementAdapter(); - - /** - * Return the singleton. - */ - @SuppressWarnings("unchecked") - public static DeclarationAnnotationElementAdapter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private NullDeclarationAnnotationElementAdapter() { - super(); - } - - public T getValue(ModifiedDeclaration declaration) { - return null; - } - - public void setValue(T value, ModifiedDeclaration declaration) { - // do nothing - } - - public ASTNode getAstNode(ModifiedDeclaration declaration) { - return declaration.getDeclaration(); - } - - public Expression getExpression(ModifiedDeclaration declaration) { - return null; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullExpressionConverter.java deleted file mode 100644 index 8245a74a34..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NullExpressionConverter.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * No conversion. - */ -public final class NullExpressionConverter - implements ExpressionConverter -{ - - // singleton - private static final ExpressionConverter INSTANCE = new NullExpressionConverter(); - - /** - * Return the singleton. - */ - public static ExpressionConverter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private NullExpressionConverter() { - super(); - } - - public Expression convert(Expression expression, AST ast) { - return expression; - } - - public Expression convert(Expression expression) { - return expression; - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NumberIntegerExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NumberIntegerExpressionConverter.java deleted file mode 100644 index 775d2d705a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/NumberIntegerExpressionConverter.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.NumberLiteral; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -/** - * Convert a number literal to/from an Integer - * (e.g. 5). - */ -public final class NumberIntegerExpressionConverter - extends AbstractExpressionConverter -{ - private static final ExpressionConverter INSTANCE = new NumberIntegerExpressionConverter(); - - /** - * Return the singleton. - */ - public static ExpressionConverter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private NumberIntegerExpressionConverter() { - super(); - } - - @Override - protected NumberLiteral convertObject(Integer integer, AST ast) { - return ast.newNumberLiteral(integer.toString()); - } - - @Override - protected Integer convertExpression(Expression expression) { - Object value = expression.resolveConstantExpressionValue(); - return (value instanceof Integer) ? ((Integer) value) : null; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/PrimitiveTypeStringExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/PrimitiveTypeStringExpressionConverter.java deleted file mode 100644 index 7b17501e51..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/PrimitiveTypeStringExpressionConverter.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.PrimitiveType; -import org.eclipse.jdt.core.dom.TypeLiteral; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -/** - * Convert a type literal to/from a string representation of a primitive type - * (e.g. "int"). - */ -public final class PrimitiveTypeStringExpressionConverter - extends AbstractExpressionConverter -{ - private static final ExpressionConverter INSTANCE = new PrimitiveTypeStringExpressionConverter(); - - /** - * Return the singleton. - */ - public static ExpressionConverter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private PrimitiveTypeStringExpressionConverter() { - super(); - } - - @Override - protected TypeLiteral convertObject(String string, AST ast) { - org.eclipse.jdt.core.dom.Type type = ast.newPrimitiveType(PrimitiveType.toCode(string)); - TypeLiteral typeLiteral = ast.newTypeLiteral(); - typeLiteral.setType(type); - return typeLiteral; - } - - @Override - protected String convertExpression(Expression expression) { - if (expression.getNodeType() == ASTNode.TYPE_LITERAL) { - org.eclipse.jdt.core.dom.Type type = ((TypeLiteral) expression).getType(); - if (type.getNodeType() == ASTNode.PRIMITIVE_TYPE) { - return ((PrimitiveType) type).getPrimitiveTypeCode().toString(); - } - } - return null; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ShortCircuitAnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ShortCircuitAnnotationElementAdapter.java deleted file mode 100644 index c9ee5748c8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ShortCircuitAnnotationElementAdapter.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Wrap another annotation element adapter and short-circuit the - * #setValue method if the value has not changed. - */ -public class ShortCircuitAnnotationElementAdapter - implements AnnotationElementAdapter -{ - /** the wrapped adapter */ - private final AnnotationElementAdapter adapter; - - - // ********** constructor ********** - - public ShortCircuitAnnotationElementAdapter(AnnotatedElement annotatedElement, DeclarationAnnotationElementAdapter daea) { - this(new AnnotatedElementAnnotationElementAdapter(annotatedElement, daea)); - } - - public ShortCircuitAnnotationElementAdapter(AnnotationElementAdapter adapter) { - super(); - this.adapter = adapter; - } - - - // ********** AnnotationElementAdapter implementation ********** - - public T getValue() { - return this.adapter.getValue(); - } - - public T getValue(CompilationUnit astRoot) { - return this.adapter.getValue(astRoot); - } - - public void setValue(T value) { - this.setValue(this.adapter.getValue(), value); - } - - public Expression getExpression(CompilationUnit astRoot) { - return this.adapter.getExpression(astRoot); - } - - public ASTNode getAstNode(CompilationUnit astRoot) { - return this.adapter.getAstNode(astRoot); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.adapter); - } - - - // ********** internal methods ********** - - /** - * set the adapter's value to the specified new value if it - * is different from the specified old value - */ - protected void setValue(T oldValue, T newValue) { - if (oldValue == null) { - if (newValue == null) { // null => null - // do nothing - } else { // null => object - this.adapter.setValue(newValue); - } - } else { - if (newValue == null) { // object => null - this.adapter.setValue(null); - } else { // object => object - if (this.valuesAreEqual(oldValue, newValue)) { - // do nothing - } else { - this.adapter.setValue(newValue); - } - } - } - } - - /** - * both values are non-null when this method is called - */ - protected boolean valuesAreEqual(T oldValue, T newValue) { - return newValue.equals(oldValue); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ShortCircuitArrayAnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ShortCircuitArrayAnnotationElementAdapter.java deleted file mode 100644 index 0676bc2840..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/ShortCircuitArrayAnnotationElementAdapter.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.Arrays; -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; - -/** - * Wrap another annotation element adapter and short-circuit the - * #setValue method if the value has not changed. Overrides #valuesAreEqual() - * to check equality on arrays - */ -public class ShortCircuitArrayAnnotationElementAdapter - extends ShortCircuitAnnotationElementAdapter -{ - // ********** constructor ********** - - public ShortCircuitArrayAnnotationElementAdapter(AnnotatedElement annotatedElement, DeclarationAnnotationElementAdapter daea) { - super(annotatedElement, daea); - } - - public ShortCircuitArrayAnnotationElementAdapter(AnnotationElementAdapter adapter) { - super(adapter); - } - - - // ********** AnnotationElementAdapter implementation ********** - - @Override - protected boolean valuesAreEqual(T[] oldValue, T[] newValue) { - return Arrays.equals(newValue, oldValue); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/SimpleDeclarationAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/SimpleDeclarationAnnotationAdapter.java deleted file mode 100644 index 195dc197ec..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/SimpleDeclarationAnnotationAdapter.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -/** - * Manipulate an annotation with a specific name, e.g. - *
- *     @Foo
- *     private int id;
- * 
- * - * NB: - * If the declaration contains more than one annotation with the same - * name, the adapter will correspond to the first annotation with the specified - * name. (Also note that the compiler will not allow a declaration to be - * modified by multiple annotations with the same name, i.e. of the same type; - * so if there *are* multiple annotations of the same type, there are bigger - * problems to worry about than which annotation the adapter manipulates.) - */ -public class SimpleDeclarationAnnotationAdapter extends AbstractDeclarationAnnotationAdapter { - - - // ********** constructors ********** - - public SimpleDeclarationAnnotationAdapter(String annotationName) { - super(annotationName); - } - - - // ********** DeclarationAnnotationAdapter implementation ********** - - public Annotation getAnnotation(ModifiedDeclaration declaration) { - return declaration.getAnnotationNamed(this.getAnnotationName()); - } - - public void removeAnnotation(ModifiedDeclaration declaration) { - declaration.removeAnnotationNamed(this.getAnnotationName()); - } - - @Override - protected void addAnnotation(ModifiedDeclaration declaration, Annotation annotation) { - declaration.replaceAnnotationNamed(this.getAnnotationName(), annotation); - } - - public ASTNode getAstNode(ModifiedDeclaration declaration) { - // if the annotation is missing, return the declaration - Annotation annotation = this.getAnnotation(declaration); - return (annotation != null) ? annotation : declaration.getDeclaration(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/SimpleTypeStringExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/SimpleTypeStringExpressionConverter.java deleted file mode 100644 index 156dc5fa73..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/SimpleTypeStringExpressionConverter.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.Name; -import org.eclipse.jdt.core.dom.SimpleType; -import org.eclipse.jdt.core.dom.TypeLiteral; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -/** - * Convert a type literal to/from a string representation of a simple type - * (e.g. "java.lang.Object"). - */ -public final class SimpleTypeStringExpressionConverter - extends AbstractExpressionConverter -{ - private static final ExpressionConverter INSTANCE = new SimpleTypeStringExpressionConverter(); - - /** - * Return the singleton. - */ - public static ExpressionConverter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private SimpleTypeStringExpressionConverter() { - super(); - } - - @Override - protected TypeLiteral convertObject(String string, AST ast) { - Name name = ast.newName(string); - org.eclipse.jdt.core.dom.Type type = ast.newSimpleType(name); - TypeLiteral typeLiteral = ast.newTypeLiteral(); - typeLiteral.setType(type); - return typeLiteral; - } - - @Override - protected String convertExpression(Expression expression) { - if (expression.getNodeType() == ASTNode.TYPE_LITERAL) { - org.eclipse.jdt.core.dom.Type type = ((TypeLiteral) expression).getType(); - if (type.getNodeType() == ASTNode.SIMPLE_TYPE) { - return ((SimpleType) type).getName().getFullyQualifiedName(); - } - } - return null; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/StringArrayExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/StringArrayExpressionConverter.java deleted file mode 100644 index 9ee7e60872..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/StringArrayExpressionConverter.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import java.util.List; -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.ArrayInitializer; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Convert an array initializer to/from an array of strings (e.g. {"text0", "text1"}). - * - * Do NOT use this class for converting array initializers in annotation elements. - * Java5 has a bit of syntactic sugar that allows a single-element array - * initializer to not have curly braces. This converter will return null if it encounters - * anything other than an array initializer. - * - * Invalid entries in the array initializer will result in null elements in the - * resulting string array. This allows clients to manipulate elements at - * the appropriate index. - */ -public class StringArrayExpressionConverter - extends AbstractExpressionConverter -{ - private final ExpressionConverter elementConverter; - private final boolean removeArrayInitializerWhenEmpty; - - - /** - * The default behavior is to remove the array initializer if it is empty. - */ - public StringArrayExpressionConverter(ExpressionConverter elementConverter) { - this(elementConverter, true); - } - - public StringArrayExpressionConverter(ExpressionConverter elementConverter, boolean removeArrayInitializerWhenEmpty) { - super(); - this.elementConverter = elementConverter; - this.removeArrayInitializerWhenEmpty = removeArrayInitializerWhenEmpty; - } - - /* - * this method is 'public' so it can be called by - * AnnotationStringArrayExpressionConverter - */ - @Override - public ArrayInitializer convertObject(String[] strings, AST ast) { - if ((strings.length == 0) && this.removeArrayInitializerWhenEmpty) { - return null; - } - ArrayInitializer arrayInitializer = ast.newArrayInitializer(); - List expressions = this.expressions(arrayInitializer); - for (String string : strings) { - expressions.add(this.elementConverter.convert(string, ast)); - } - return arrayInitializer; - } - - @SuppressWarnings("unchecked") - private List expressions(ArrayInitializer arrayInitializer) { - return arrayInitializer.expressions(); - } - - /* - * this method is 'public' so it can be called by - * AnnotationStringArrayExpressionConverter - */ - @Override - public String[] convertNull() { - return StringTools.EMPTY_STRING_ARRAY; - } - - @Override - protected String[] convertExpression(Expression expression) { - return (expression.getNodeType() == ASTNode.ARRAY_INITIALIZER) ? - this.convertArrayInitializer((ArrayInitializer) expression) : - StringTools.EMPTY_STRING_ARRAY; - } - - /* - * this method is 'public' so it can be called by - * AnnotationStringArrayExpressionConverter - */ - public String[] convertArrayInitializer(ArrayInitializer arrayInitializer) { - List expressions = this.expressions(arrayInitializer); - int len = expressions.size(); - String[] strings = new String[len]; - for (int i = len; i-- > 0; ) { - strings[i] = this.elementConverter.convert(expressions.get(i)); - } - return strings; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/StringExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/StringExpressionConverter.java deleted file mode 100644 index f0e88b5331..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/StringExpressionConverter.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.StringLiteral; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -/** - * Convert a string literal to/from a string (e.g. "text"). - */ -public final class StringExpressionConverter - extends AbstractExpressionConverter -{ - private static final ExpressionConverter INSTANCE = new StringExpressionConverter(); - - /** - * Return the singleton. - */ - public static ExpressionConverter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private StringExpressionConverter() { - super(); - } - - @Override - protected StringLiteral convertObject(String string, AST ast) { - StringLiteral stringLiteral = ast.newStringLiteral(); - stringLiteral.setLiteralValue(string); - return stringLiteral; - } - - @Override - protected String convertExpression(Expression expression) { - Object value = expression.resolveConstantExpressionValue(); - return (value instanceof String) ? (String) value : null; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/TypeStringExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/TypeStringExpressionConverter.java deleted file mode 100644 index 3ed1b74189..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/jdt/TypeStringExpressionConverter.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.PrimitiveType; -import org.eclipse.jdt.core.dom.TypeLiteral; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -/** - * Convert a type literal to/from a string representation of a - * simple type (e.g. "java.lang.Object") or primitive type (e.g. "int"). - */ -public final class TypeStringExpressionConverter - extends AbstractExpressionConverter -{ - private static final ExpressionConverter INSTANCE = new TypeStringExpressionConverter(); - - /** - * Return the singleton. - */ - public static ExpressionConverter instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private TypeStringExpressionConverter() { - super(); - } - - @Override - protected TypeLiteral convertObject(String string, AST ast) { - if (PrimitiveType.toCode(string) != null) { - return (TypeLiteral) PrimitiveTypeStringExpressionConverter.instance().convert(string, ast); - } - return (TypeLiteral) SimpleTypeStringExpressionConverter.instance().convert(string, ast); - } - - @Override - protected String convertExpression(Expression expression) { - String name = SimpleTypeStringExpressionConverter.instance().convert(expression); - return name != null ? name : PrimitiveTypeStringExpressionConverter.instance().convert(expression); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/BooleanTranslator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/BooleanTranslator.java deleted file mode 100644 index 7f2825c1a3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/BooleanTranslator.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.translators; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.wst.common.internal.emf.resource.Translator; - -public class BooleanTranslator - extends Translator -{ - public BooleanTranslator(String domPathAndNames, EStructuralFeature structuralFeature) { - super(domPathAndNames, structuralFeature, BOOLEAN_FEATURE | BOOLEAN_LOWERCASE); - } - - public BooleanTranslator(String domPathAndNames, EStructuralFeature structuralFeature, int style) { - super(domPathAndNames, structuralFeature, BOOLEAN_FEATURE | BOOLEAN_LOWERCASE | style); - } - - @Override - public Object convertStringToValue(String string, EObject owner) { - return Boolean.valueOf(string); - } - - @Override - public String convertValueToString(Object value, EObject owner) { - return ((Boolean) value).toString(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/EmptyTagBooleanTranslator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/EmptyTagBooleanTranslator.java deleted file mode 100644 index 1d94705cca..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/EmptyTagBooleanTranslator.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.translators; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.wst.common.internal.emf.resource.Translator; - -/** - * This translator is to be used for empty xml tags that correspond - * to a boolean attribute in the emf model. - * cascade-persist is an example from the orm.xsd: - * - * - * - * ==> cascadePersist == true - * - * vs. - * - * - * ==> cascadePersist == false - * - */ -public class EmptyTagBooleanTranslator - extends Translator -{ - public EmptyTagBooleanTranslator(String domPathAndNames, EStructuralFeature structuralFeature) { - this(domPathAndNames, structuralFeature, NO_STYLE); - } - - public EmptyTagBooleanTranslator(String domPathAndNames, EStructuralFeature structuralFeature, int style) { - super(domPathAndNames, structuralFeature, style | EMPTY_TAG | BOOLEAN_FEATURE); - } - - @Override - public Object getMOFValue(EObject mofObject) { - // I am overriding this method. This is so the tag will be removed when - // the value is false. - // I'm not sure if this is a bug in the ecore or maybe in the translators, - // but I really don't think that we should have to depend on the boolean - // being "unset" to remove the tag. - Boolean value = (Boolean) super.getMOFValue(mofObject); - return (value == null) ? null : value.booleanValue() ? value : null; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/EnumeratedValueTranslator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/EnumeratedValueTranslator.java deleted file mode 100644 index fc74b4a730..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/EnumeratedValueTranslator.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2011 Oracle. - * All rights reserved. This program and the accompanying materials are - * made available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.translators; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.wst.common.internal.emf.resource.Translator; - -public abstract class EnumeratedValueTranslator - extends Translator -{ - public EnumeratedValueTranslator(String domPathAndNames, EStructuralFeature structuralFeature) { - super(domPathAndNames, structuralFeature); - } - - public EnumeratedValueTranslator(String domPathAndNames, EStructuralFeature structuralFeature, int style) { - super(domPathAndNames, structuralFeature, style); - } - - - protected abstract Iterable getEnumeratedObjectValues(); - - @Override - public Object convertStringToValue(String string, EObject owner) { - for (Object each : getEnumeratedObjectValues()) { - if (each.toString().equals(string)) { - return each; - } - } - return null; - } - - @Override - public String convertValueToString(Object value, EObject owner) { - return value.toString(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/SimpleRootTranslator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/SimpleRootTranslator.java deleted file mode 100644 index 08c20d3b1d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/SimpleRootTranslator.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.translators; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.wst.common.internal.emf.resource.RootTranslator; -import org.eclipse.wst.common.internal.emf.resource.Translator; - -/** - * Root translator that contains a list of child translators and no special - * behavior. - */ -public class SimpleRootTranslator - extends RootTranslator -{ - protected Translator[] children; - - public SimpleRootTranslator(String domPathAndNames, EClass eClass) { - super(domPathAndNames, eClass); - } - - public SimpleRootTranslator(String domPathAndNames, EClass eClass, Translator[] children) { - super(domPathAndNames, eClass); - this.children = children; - } - - /** - * Widen method access to 'public'. - */ - @Override - public Translator[] getChildren() { - return this.children; - } - - protected Translator[] getChildren_() { - return (this.children == null) ? EMPTY_TRANSLATOR_ARRAY : this.children; - } - protected static final Translator[] EMPTY_TRANSLATOR_ARRAY = new Translator[0]; - - /** - * Set the translator's children. - * Return the translator. - */ - public void setChildren(Translator[] children) { - this.children = children; - } - - /** - * Add the specified translator to the translator's list of children. - * Return the translator for method chaining. - */ - public SimpleRootTranslator addChild(Translator translator) { - this.children = ArrayTools.add(this.getChildren_(), translator); - return this; - } - - /** - * Add the specified translators to the translator's list of children. - * Return the translator for method chaining. - */ - public SimpleRootTranslator addChildren(Translator[] translators) { - this.children = ArrayTools.addAll(this.getChildren_(), translators); - return this; - } - - /** - * Remove the specified translator from the translator's list of children. - * Return the translator for method chaining. - */ - public SimpleRootTranslator removeChild(Translator translator) { - this.children = ArrayTools.remove(this.children, translator); - return this; - } - - /** - * Remove the specified translators from the translator's list of children. - * Return the translator for method chaining. - */ - public SimpleRootTranslator removeChildren(Translator[] translators) { - this.children = ArrayTools.removeAll(this.children, (Object[]) translators); - return this; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/SimpleTranslator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/SimpleTranslator.java deleted file mode 100644 index 20db025e8a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/utility/translators/SimpleTranslator.java +++ /dev/null @@ -1,135 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.internal.utility.translators; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.wst.common.internal.emf.resource.Translator; -import org.eclipse.wst.common.internal.emf.resource.TranslatorPath; - -/** - * Translator that contains a list of child translators and no special - * behavior. - */ -public class SimpleTranslator - extends Translator -{ - protected Translator[] children; - - - // ********** constructors ********** - - public SimpleTranslator(String domPathAndNames, EClass eClass) { - super(domPathAndNames, eClass); - } - - public SimpleTranslator(String domPathAndNames, EStructuralFeature eStructuralFeature) { - super(domPathAndNames, eStructuralFeature); - } - - public SimpleTranslator(String domPathAndNames, EStructuralFeature eStructuralFeature, Translator[] children) { - super(domPathAndNames, eStructuralFeature); - this.children = children; - } - - public SimpleTranslator(String domPathAndNames, EStructuralFeature eStructuralFeature, EClass eClass) { - super(domPathAndNames, eStructuralFeature, eClass); - } - - public SimpleTranslator(String domPathAndNames, EStructuralFeature eStructuralFeature, EClass eClass, Translator[] children) { - super(domPathAndNames, eStructuralFeature, eClass); - this.children = children; - } - - public SimpleTranslator(String domPathAndNames, EStructuralFeature eStructuralFeature, TranslatorPath translatorPath) { - super(domPathAndNames, eStructuralFeature, translatorPath); - } - - public SimpleTranslator(String domPathAndNames, EStructuralFeature eStructuralFeature, TranslatorPath[] translatorPaths) { - super(domPathAndNames, eStructuralFeature, translatorPaths); - } - - public SimpleTranslator(String domPathAndNames, EStructuralFeature eStructuralFeature, int style) { - super(domPathAndNames, eStructuralFeature, style); - } - - public SimpleTranslator(String domPathAndNames, EStructuralFeature aFeature, int style, EClass eClass, Translator[] children) { - this(domPathAndNames, aFeature, style); - setEMFClass(eClass); - this.children = children; - } - - public SimpleTranslator(String domPathAndNames, EStructuralFeature eStructuralFeature, int style, Translator[] children) { - super(domPathAndNames, eStructuralFeature, style); - this.children = children; - } - - - // ********** children ********** - - /** - * Widen method access to 'public'. - */ - @Override - public Translator[] getChildren() { - return this.children; - } - - protected Translator[] getChildren_() { - return (this.children == null) ? EMPTY_TRANSLATOR_ARRAY : this.children; - } - protected static final Translator[] EMPTY_TRANSLATOR_ARRAY = new Translator[0]; - - /** - * Set the translator's children. - * Return the translator. - */ - public void setChildren(Translator[] children) { - this.children = children; - } - - /** - * Add the specified translator to the translator's list of children. - * Return the translator for method chaining. - */ - public SimpleTranslator addChild(Translator translator) { - this.children = ArrayTools.add(this.getChildren_(), translator); - return this; - } - - /** - * Add the specified translators to the translator's list of children. - * Return the translator for method chaining. - */ - public SimpleTranslator addChildren(Translator[] translators) { - this.children = ArrayTools.addAll(this.getChildren_(), translators); - return this; - } - - /** - * Remove the specified translator from the translator's list of children. - * Return the translator for method chaining. - */ - public SimpleTranslator removeChild(Translator translator) { - this.children = ArrayTools.remove(this.children, translator); - return this; - } - - /** - * Remove the specified translators from the translator's list of children. - * Return the translator for method chaining. - */ - public SimpleTranslator removeChildren(Translator[] translators) { - this.children = ArrayTools.removeAll(this.children, (Object[]) translators); - return this; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/libprov/JptLibraryProviderInstallOperationConfig.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/libprov/JptLibraryProviderInstallOperationConfig.java deleted file mode 100644 index 3e524487f7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/libprov/JptLibraryProviderInstallOperationConfig.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.libprov; - -import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider; -import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase; -import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; - -/** - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JptLibraryProviderInstallOperationConfig { - - IFacetedProjectBase getFacetedProject(); - - ILibraryProvider getLibraryProvider(); - - IProjectFacetVersion getProjectFacetVersion(); -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/libval/LibraryValidator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/libval/LibraryValidator.java deleted file mode 100644 index af15c438ce..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/libval/LibraryValidator.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.libval; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.jpt.common.core.libprov.JptLibraryProviderInstallOperationConfig; - -/** - * Interface for extender-supplied library validators. - * Each library validator must have a zero-arg constructor. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface LibraryValidator { - - IStatus validate(JptLibraryProviderInstallOperationConfig config); -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/resource/ResourceLocator.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/resource/ResourceLocator.java deleted file mode 100644 index 491608c147..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/resource/ResourceLocator.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.core.resource; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; - -/** - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface ResourceLocator { - - /** - * Return whether the given container is an acceptable (non-java) resource - * location for the given project - */ - boolean acceptResourceLocation(IProject project, IContainer container); - - /** - * Return the default location in which to create new (non-java) resources - */ - IContainer getDefaultResourceLocation(IProject project); - - /** - * Return the workspace relative absolute resource path best represented by the given - * runtime path for the given project - */ - IPath getResourcePath(IProject project, IPath runtimePath); - - /** - * Return the runtime path best represented by the given workspace relative absolute - * resource path for the given project - */ - IPath getRuntimePath(IProject project, IPath resourcePath); -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/AbstractTextRange.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/AbstractTextRange.java deleted file mode 100644 index 3fc13147fa..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/AbstractTextRange.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility; - -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Partial implementation of text range. - * - * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 2.0 - * @since 2.0 - */ -public abstract class AbstractTextRange - implements TextRange -{ - - public boolean includes(int index) { - return (this.getOffset() <= index) && (index < this.end()); - } - - public boolean touches(int index) { - return this.includes(index) || (index == this.end()); - } - - /** - * The end offset is "exclusive", i.e. the element at the end offset - * is not included in the range. - */ - protected int end() { - return this.getOffset() + this.getLength(); - } - - @Override - public boolean equals(Object o) { - if (o == this) { - return true; - } - if ( ! (o instanceof TextRange)) { - return false; - } - TextRange r = (TextRange) o; - return (r.getOffset() == this.getOffset()) - && (r.getLength() == this.getLength()); - } - - @Override - public int hashCode() { - return this.getOffset() ^ this.getLength(); - } - - @Override - public String toString() { - String start = String.valueOf(this.getOffset()); - String end = String.valueOf(this.end()); - return StringTools.buildToStringFor(this, start + ", " + end); //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/BodySourceWriter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/BodySourceWriter.java deleted file mode 100644 index 9aabeebdd5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/BodySourceWriter.java +++ /dev/null @@ -1,303 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility; - -import java.io.Serializable; -import java.io.StringWriter; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TreeSet; - -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.IndentingPrintWriter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; - -import com.ibm.icu.text.Collator; - -/** - * Extend {@link IndentingPrintWriter} with some methods that facilitate - * building class source code. - */ -@SuppressWarnings("nls") -public class BodySourceWriter - extends IndentingPrintWriter -{ - protected final String packageName; - protected final String className; - // key = short class name; value = import package - protected final HashMap imports = new HashMap(); - - public BodySourceWriter(String packageName, String className) { - super(new StringWriter(2000)); - this.packageName = packageName; - this.className = className; - } - - public String getSource() { - return this.out.toString(); - } - - public int getLength() { - return ((StringWriter) this.out).getBuffer().length(); - } - - protected void printVisibility(String visibilityModifier) { - if (visibilityModifier.length() != 0) { - this.print(visibilityModifier); - this.print(' '); - } - } - - public void printAnnotation(String annotationName) { - this.print('@'); - this.printTypeDeclaration(annotationName); - } - - public void printTypeDeclaration(String typeDeclaration) { - this.print(this.buildImportedTypeDeclaration(typeDeclaration)); - } - - protected void printField(String fieldName, String typeDeclaration, String visibility) { - this.printVisibility(visibility); - this.printTypeDeclaration(typeDeclaration); - this.print(' '); - this.print(fieldName); - this.print(';'); - this.println(); - this.println(); - } - - protected void printParameterizedField(String fieldName, String typeDeclaration, String parameterTypeDeclaration, String visibility) { - this.printVisibility(visibility); - this.printTypeDeclaration(typeDeclaration); - this.print('<'); - this.printTypeDeclaration(parameterTypeDeclaration); - this.print('>'); - this.print(' '); - this.print(fieldName); - this.print(';'); - this.println(); - this.println(); - } - - /** - * Convert the specified string to a String Literal and print it, - * adding the surrounding double-quotes and escaping characters - * as necessary. - */ - public void printStringLiteral(String string) { - StringTools.convertToJavaStringLiteralOn(string, this); - } - - - // ********** imports ********** - - // ***** writing - /** - * Return the specified class's "imported" name. - * The class declaration must be of the form: - * "int" - * "int[]" (not "[I") - * "java.lang.Object" - * "java.lang.Object[]" (not "[Ljava.lang.Object;") - * "java.util.Map.Entry" (not "java.util.Map$Entry") - * "java.util.Map.Entry[][]" (not "[[Ljava.util.Map$Entry;") - * - * To really do this right, we would need to gather all the types from - * the "unamed" (default) package that were referenced in the - * compilation unit beforehand. *Any* collisions with one of these - * types would have to be fully qualified (whether it was from - * 'java.lang' or the same package as the current compilation unit). - * In other words, if we have any types from the "unnamed" package, - * results are unpredictable.... - */ - protected String buildImportedTypeDeclaration(String typeDeclaration) { - if (this.typeDeclarationIsMemberClass(typeDeclaration)) { - // no need for an import, just return the partially-qualified name - return this.buildMemberClassTypeDeclaration(typeDeclaration); - } - int last = typeDeclaration.lastIndexOf('.'); - String currentPackageName = (last == -1) ? "" : typeDeclaration.substring(0, last); - String shortTypeDeclaration = typeDeclaration.substring(last + 1); - String shortElementTypeName = shortTypeDeclaration; - while (shortElementTypeName.endsWith("[]")) { - shortElementTypeName = shortElementTypeName.substring(0, shortElementTypeName.length() - 2); - } - ImportPackage prev = this.imports.get(shortElementTypeName); - if (prev == null) { - // this is the first class with this short element type name - this.imports.put(shortElementTypeName, new ImportPackage(currentPackageName)); - return shortTypeDeclaration; - } - if (prev.packageName.equals(currentPackageName)) { - // this element type has already been imported - return shortTypeDeclaration; - } - if (currentPackageName.equals(this.packageName) && - prev.packageName.equals("java.lang")) { - // we force the 'java.lang' class to be explicitly imported - prev.collision = true; - } - // another class with the same short element type name has been - // previously imported, so this one must be used fully-qualified - return typeDeclaration; - } - - /** - * e.g. "foo.bar.Employee.PK" will return true - */ - protected boolean typeDeclarationIsMemberClass(String typeDeclaration) { - return (typeDeclaration.length() > this.className.length()) - && typeDeclaration.startsWith(this.className) - && (typeDeclaration.charAt(this.className.length()) == '.'); - } - - /** - * e.g. "foo.bar.Employee.PK" will return "Employee.PK" - * this prevents collisions with other imported classes (e.g. "joo.jar.PK") - */ - protected String buildMemberClassTypeDeclaration(String typeDeclaration) { - int index = this.packageName.length(); - if (index != 0) { - index++; // bump past the '.' - } - return typeDeclaration.substring(index); - } - - // ***** reading - public Iterable getImports() { - return this.getSortedRequiredImports(); - } - - /** - * transform our map entries to class names - */ - protected Iterable getSortedRequiredImports() { - return new TransformationIterable, String>(this.getSortedRequiredImportEntries(), this.buildImportEntriesTransformer()); - } - - protected Transformer, String> buildImportEntriesTransformer() { - return IMPORT_ENTRIES_TRANSFORMER; - } - - protected static final Transformer, String> IMPORT_ENTRIES_TRANSFORMER = new ImportEntriesTransformer(); - - protected static class ImportEntriesTransformer - implements Transformer, String> - { - public String transform(Entry importEntry) { - String pkg = importEntry.getValue().packageName; - String type = importEntry.getKey(); - StringBuilder sb = new StringBuilder(pkg.length() + 1 + type.length()); - sb.append(pkg); - sb.append('.'); - sb.append(type); - return sb.toString(); - } - } - - /** - * sort by package first, then class (*not* by fully-qualified class name) - */ - protected Iterable> getSortedRequiredImportEntries() { - TreeSet> sortedEntries = new TreeSet>(this.buildImportEntriesComparator()); - CollectionTools.addAll(sortedEntries, this.getRequiredImportEntries()); - return sortedEntries; - } - - protected Comparator> buildImportEntriesComparator() { - return IMPORT_ENTRIES_COMPARATOR; - } - - protected static final Comparator> IMPORT_ENTRIES_COMPARATOR = new ImportEntriesComparator(); - - protected static class ImportEntriesComparator - implements Comparator>, Serializable - { - public int compare(Map.Entry e1, Map.Entry e2) { - Collator collator = Collator.getInstance(); - int pkg = collator.compare(e1.getValue().packageName, e2.getValue().packageName); - return (pkg == 0) ? collator.compare(e1.getKey(), e2.getKey()) : pkg; - } - } - - /** - * strip off any non-required imports (e.g. "java.lang.Object') - */ - protected Iterable> getRequiredImportEntries() { - return new FilteringIterable>(this.imports.entrySet(), this.buildRequiredImportEntriesFilter()); - } - - protected Filter> buildRequiredImportEntriesFilter() { - return new RequiredImportEntriesFilter(); - } - - protected class RequiredImportEntriesFilter - implements Filter> - { - public boolean accept(Map.Entry importEntry) { - return this.packageMustBeImported(importEntry.getValue()); - } - - protected boolean packageMustBeImported(ImportPackage importPackage) { - String pkg = importPackage.packageName; - if (pkg.equals("")) { - // cannot import a type from the "unnamed" package - return false; - } - if (pkg.equals("java.lang")) { - // we must import from 'java.lang' if we also have a class in the same package - return importPackage.collision; - } - if (pkg.equals(BodySourceWriter.this.packageName)) { - // we never need to import a class from the same package - return false; - } - return true; - } - } - - /** - * We need a 'collision' flag for when we encounter a class from - * 'java.lang' followed by a class from the current compilation unit's - * package. We will need to include the explicit import of the - * 'java.lang' class and all the references to the other class will - * have to be fully-qualified. - * - * If the classes are encountered in the opposite order (i.e. the class - * from the current compilation unit's package followed by the class - * from 'java.lang'), we do *not* need to import the first class while - * all the references to the 'java.lang' class will be fully-qualified. - * - * Unfortunately, we still have a problem: if we reference a class from - * 'java.lang' and there is a conflicting class from the current - * compilation unit's package (but that class is *not* revealed to us - * here), the simple name will be resolved to the non-'java.lang' class. - * Unless we simply force an import of *all* 'java.lang' classes.... :-( - * - * This shouldn't happen very often. :-) - */ - protected static class ImportPackage { - protected final String packageName; - protected boolean collision = false; - - protected ImportPackage(String packageName) { - super(); - this.packageName = packageName; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/TextRange.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/TextRange.java deleted file mode 100644 index 419c98d0c6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/TextRange.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility; - -import org.eclipse.wst.validation.internal.provisional.core.IMessage; - -/** - * A text range defines the offset into, length of, and line of a piece - * of text. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - * - * @version 2.0 - * @since 2.0 - */ -public interface TextRange { - - /** - * Returns the offset of the text. - * - * @return the offset of the text - */ - int getOffset(); - - /** - * Return the length of the text. - */ - int getLength(); - - /** - * Return whether the range includes the character at the specified index. - */ - boolean includes(int index); - - /** - * Return whether the range touches an insertion cursor at the - * specified index. - */ - boolean touches(int index); - - /** - * Return the line number of the text. - */ - int getLineNumber(); - - /** - * Return true if the offsets and lengths are the same. - */ - boolean equals(Object obj); - - /** - * Return a hash code that corresponds to the #equals() contract. - */ - int hashCode(); - - - /** - * Empty implementation of text range. - */ - final class Empty implements TextRange { - public static final TextRange INSTANCE = new Empty(); - public static TextRange instance() { - return INSTANCE; - } - // ensure single instance - private Empty() { - super(); - } - public int getLineNumber() { - return IMessage.LINENO_UNSET; - } - public int getOffset() { - return IMessage.OFFSET_UNSET; - } - public int getLength() { - return IMessage.OFFSET_UNSET; - } - public boolean includes(int index) { - return false; - } - public boolean touches(int index) { - return index == 0; // ??? - } - @Override - public boolean equals(Object o) { - if (o == this) { - return true; - } - if ( ! (o instanceof TextRange)) { - return false; - } - TextRange r = (TextRange) o; - return (r.getOffset() == 0) - && (r.getLength() == 0); - } - @Override - public int hashCode() { - return 0; - } - @Override - public String toString() { - return "TextRange.Empty"; //$NON-NLS-1$ - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AbstractType.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AbstractType.java deleted file mode 100644 index 8be7a07d97..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AbstractType.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.AbstractTypeDeclaration; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.ITypeBinding; - -/** - * AbstractType: just some covariant overrides. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface AbstractType extends Member { - - /** - * Covariant override. - */ - ITypeBinding getBinding(CompilationUnit astRoot); - - /** - * Covariant override. - */ - AbstractTypeDeclaration getBodyDeclaration(CompilationUnit astRoot); -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotatedElement.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotatedElement.java deleted file mode 100644 index 8ce99cf49c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotatedElement.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.IBinding; -import org.eclipse.jpt.common.core.utility.TextRange; - -/** - * Dali manipulates annotations on elements (packages, types, fields, and methods). - * This interface simplifies those manipulations. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface AnnotatedElement { - - String getName(); - - /** - * Return the annotated element's body declaration from the specified AST. - * This can be null if the annotated element is no longer present in the AST - * because the source has been changed in another thread. - */ - ASTNode getBodyDeclaration(CompilationUnit astRoot); - - /** - * Return the annotated element's binding from the specified AST. - */ - IBinding getBinding(CompilationUnit astRoot); - - /** - * Return the annotated element's "modified" declaration from the specified AST. - */ - ModifiedDeclaration getModifiedDeclaration(CompilationUnit astRoot); - - /** - * Return the annotated element's "modified" declaration from a newly-generated AST. - */ - ModifiedDeclaration getModifiedDeclaration(); - - /** - * Return the annotated element's name text range from the specified AST. - */ - TextRange getNameTextRange(CompilationUnit astRoot); - - /** - * Edit the annotated element's declaration using the specified editor. - */ - void edit(Editor editor); - - - // ********** "editor" interface ********** - - /** - * This interface defines a callback that is invoked when the annotated element's - * compilation unit/AST is in a state to be manipulated. - */ - public interface Editor { - - /** - * Edit the specified declaration. Any changes made to the declaration - * will be captured and applied to the annotated element's compilation unit. - */ - void edit(ModifiedDeclaration declaration); - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotatedPackage.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotatedPackage.java deleted file mode 100644 index c0a3ccc098..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotatedPackage.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Red Hat, Inc. - * Distributed under license by Red Hat, Inc. All rights reserved. - * This program is made available under the terms of the - * Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributor: - * Red Hat, Inc. - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.IPackageBinding; -import org.eclipse.jdt.core.dom.PackageDeclaration; - -/** - * @author Dmitry Geraskov - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface AnnotatedPackage extends AnnotatedElement { - - /** - * Covariant override. - */ - IPackageBinding getBinding(CompilationUnit astRoot); - - /** - * Covariant override. - */ - PackageDeclaration getBodyDeclaration(CompilationUnit astRoot); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationAdapter.java deleted file mode 100644 index b0b04c4938..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationAdapter.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; - -/** - * Adapt a Java annotation with a simple-to-use interface. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface AnnotationAdapter { - - /** - * Given the specified compilation unit, return the value of the - * adapter's annotation. - * @see #getAnnotation() - */ - Annotation getAnnotation(CompilationUnit astRoot); - - /** - * Build a new marker annotation, replacing the original annotation if present. - */ - void newMarkerAnnotation(); - - /** - * Build a new single member annotation, replacing the original annotation if present. - */ - void newSingleMemberAnnotation(); - - /** - * Build a new normal annotation, replacing the original annotation if present. - */ - void newNormalAnnotation(); - - /** - * Remove the annotation. - */ - void removeAnnotation(); - - /** - * Return the AST node corresponding to the annotation. - * If the annotation is missing, return the annotation's parent node. - * @see #getAstNode() - */ - ASTNode getAstNode(CompilationUnit astRoot); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationEditFormatter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationEditFormatter.java deleted file mode 100644 index 77b3ac0682..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationEditFormatter.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.text.edits.MalformedTreeException; -import org.eclipse.text.edits.TextEdit; - -/** - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface AnnotationEditFormatter { - - /** - * Review the specified edits and format the specified document as needed. - */ - void format(IDocument doc, TextEdit editTree) throws MalformedTreeException, BadLocationException; - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationElementAdapter.java deleted file mode 100644 index 3fc6e95434..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/AnnotationElementAdapter.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.Expression; - -/** - * Adapt a Java annotation element with a simple-to-use interface. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface AnnotationElementAdapter { - - /** - * Return the value of the adapter's annotation element. - * Return null if the element is not present. - * If the compilation unit is available, #value(CompilationUnit) - * might be more performant. - * @see #getValue(org.eclipse.jdt.core.dom.CompilationUnit) - */ - T getValue(); - - /** - * Given the specified compilation unit, return the value of the - * adapter's annotation element. - * Return null if the element is not present. - * @see #getValue() - */ - T getValue(CompilationUnit astRoot); - - /** - * Set the value of the adapter's annotation element. - * Setting the value of the element to null will cause - * the element to be removed from its annotation. - */ - void setValue(T value); - - /** - * Given the specified compilation unit, return the expression value of the - * adapter's annotation element. - * Return null if the element is not present. - * @see #getExpression() - */ - Expression getExpression(CompilationUnit astRoot); - - /** - * Return the AST node corresponding to the element. - * If the element is missing, return the annotation's node. - * @see #getAstNode() - */ - ASTNode getAstNode(CompilationUnit astRoot); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Attribute.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Attribute.java deleted file mode 100644 index cce19d5abc..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Attribute.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.ITypeBinding; - -/** - * Attributes are either represented by fields ('foo') or properties/method - * pairs ('getFoo()'/'setFoo()'). - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface Attribute extends Member { - - /** - * Return the attribute's name, as opposed to the member's name - * (e.g. "getFoo()" returns "foo"). - */ - String getAttributeName(); - - /** - * Return the type binding for the attribute's declared type, - * as opposed to its declaring type. - */ - ITypeBinding getTypeBinding(CompilationUnit astRoot); - - /** - * Return whether the attribute is a field. - */ - boolean isField(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/DeclarationAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/DeclarationAnnotationAdapter.java deleted file mode 100644 index 9f93a16ffd..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/DeclarationAnnotationAdapter.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; - -/** - * Provide clients with a pluggable way to manipulate an - * annotation modifying a "declaration". - * - * TODO specify how multiple annotations with the same name are to be handled - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface DeclarationAnnotationAdapter { - - /** - * Given the specified declaration, return the annotation. - */ - Annotation getAnnotation(ModifiedDeclaration declaration); - - /** - * Given the specified declaration, modify it with - * a new marker annotation, replacing the original annotation if present. - * Return the new annotation. - */ - MarkerAnnotation newMarkerAnnotation(ModifiedDeclaration declaration); - - /** - * Given the specified declaration, modify it with - * a new single member annotation, replacing the original annotation if present. - * Return the new annotation. - */ - SingleMemberAnnotation newSingleMemberAnnotation(ModifiedDeclaration declaration); - - /** - * Given the specified declaration, modify it with - * a new normal annotation, replacing the original annotation if present. - * Return the new annotation. - */ - NormalAnnotation newNormalAnnotation(ModifiedDeclaration declaration); - - /** - * Remove the annotation from the specified declaration. - */ - void removeAnnotation(ModifiedDeclaration declaration); - - /** - * Given the specified declaration, return the AST node - * corresponding to the annotation. - * If the annotation is missing, return its parent node. - */ - ASTNode getAstNode(ModifiedDeclaration declaration); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/DeclarationAnnotationElementAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/DeclarationAnnotationElementAdapter.java deleted file mode 100644 index 1d5e4ff250..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/DeclarationAnnotationElementAdapter.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Expression; - -/** - * Provide clients with a pluggable way to manipulate an - * annotation element modifying a "declaration". - * T is the type of the object to be passed to and returned by the adapter. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface DeclarationAnnotationElementAdapter { - - /** - * Reduce the number of NLS warnings. - */ - String VALUE = "value"; //$NON-NLS-1$ - - /** - * Given the specified declaration, return the value of the - * annotation element. Return null or an empty array - * if the element is not present. - */ - T getValue(ModifiedDeclaration declaration); - - /** - * Given the specified declaration, set the value of the - * annotation element. Setting the value of the element - * to null will cause the element to be removed from its - * annotation. - */ - void setValue(T value, ModifiedDeclaration declaration); - - /** - * Given the specified declaration, return the element's value expression. - * Return null if the element is not present. - */ - Expression getExpression(ModifiedDeclaration declaration); - - /** - * Given the specified declaration, return the AST node - * corresponding to the element's value. - * If the element is missing, return the annotation's node. - */ - ASTNode getAstNode(ModifiedDeclaration declaration); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Enum.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Enum.java deleted file mode 100644 index da690b148b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Enum.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.EnumConstantDeclaration; -import org.eclipse.jdt.core.dom.EnumDeclaration; - -/** - * Enum: some covariant overrides plus enumConstants - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface Enum extends AbstractType { - - /** - * Covariant override. - */ - EnumDeclaration getBodyDeclaration(CompilationUnit astRoot); - - /** - * Return the enum's constants - */ - EnumConstantDeclaration[] getEnumConstants(CompilationUnit astRoot); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/EnumConstant.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/EnumConstant.java deleted file mode 100644 index 88693d415a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/EnumConstant.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.EnumConstantDeclaration; -import org.eclipse.jdt.core.dom.IVariableBinding; - -/** - * Enum constants are part of Enums - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface EnumConstant extends Member { - - String getName(); - - /** - * Covariant override. - */ - IVariableBinding getBinding(CompilationUnit astRoot); - - /** - * Covariant override. - */ - EnumConstantDeclaration getBodyDeclaration(CompilationUnit astRoot); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/ExpressionConverter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/ExpressionConverter.java deleted file mode 100644 index c5d7ed10e2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/ExpressionConverter.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.Expression; - -/** - * Define the protocol for converting an AST expression back and forth - * from an arbitrary type (e.g. StringLiteral <=> String). - * T is the type of the object to be converted to and from an expression. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface ExpressionConverter { - - /** - * Convert the specified object to an - * expression that is owned by the specified AST. - * The type of the object is determined by the - * contract specified by the client. - */ - Expression convert(T object, AST ast); - - /** - * Convert the specified expression to an object of some - * pre-determined type. - */ - T convert(Expression expression); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/FieldAttribute.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/FieldAttribute.java deleted file mode 100644 index 4e014ac72b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/FieldAttribute.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.FieldDeclaration; -import org.eclipse.jdt.core.dom.IVariableBinding; - -/** - * Field attribute: just some covariant overrides. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface FieldAttribute extends Attribute { - - /** - * Covariant override. - */ - IVariableBinding getBinding(CompilationUnit astRoot); - - /** - * Covariant override. - */ - FieldDeclaration getBodyDeclaration(CompilationUnit astRoot); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/IndexedAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/IndexedAnnotationAdapter.java deleted file mode 100644 index a55e9cbc77..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/IndexedAnnotationAdapter.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - - -/** - * Adapt an indexed Java annotation with a simple-to-use interface. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface IndexedAnnotationAdapter extends AnnotationAdapter { - - /** - * Return the the index at which the annotation is situated. - */ - int getIndex(); - - /** - * Move the annotation to the specified index, leaving its original - * position cleared out. - */ - void moveAnnotation(int newIndex); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/IndexedDeclarationAnnotationAdapter.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/IndexedDeclarationAnnotationAdapter.java deleted file mode 100644 index 438f21e1e6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/IndexedDeclarationAnnotationAdapter.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - - -/** - * Allow clients to manipulate an annotation within an array of annotations. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface IndexedDeclarationAnnotationAdapter extends DeclarationAnnotationAdapter { - - /** - * Return the the index at which the annotation is situated. - */ - int getIndex(); - - /** - * Move the annotation to the specified index, leaving its original - * position cleared out. - */ - void moveAnnotation(int newIndex, ModifiedDeclaration declaration); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Member.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Member.java deleted file mode 100644 index 8b9f398ea0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Member.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.CompilationUnit; - -/** - * Dali manipulates annotations on members (types, fields, and methods). - * This interface simplifies those manipulations. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface Member extends AnnotatedElement { - - /** - * Return whether the member is persistable. - */ - boolean isPersistable(CompilationUnit astRoot); - - /** - * Return whether the member matches the specified member - * and occurrence. - */ - boolean matches(String memberName, int occurrence); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/MethodAttribute.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/MethodAttribute.java deleted file mode 100644 index 2eca93d773..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/MethodAttribute.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.IMethodBinding; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jpt.common.utility.MethodSignature; - -/** - * Method attribute: just some covariant overrides. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface MethodAttribute extends Attribute { - - /** - * Covariant override. - */ - IMethodBinding getBinding(CompilationUnit astRoot); - - /** - * Covariant override. - */ - MethodDeclaration getBodyDeclaration(CompilationUnit astRoot); - - /** - * This method must be used instead of Member#matches(String, int). - */ - boolean matches(MethodSignature signature, int occurrence); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/ModifiedDeclaration.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/ModifiedDeclaration.java deleted file mode 100644 index 331e5391a0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/ModifiedDeclaration.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; - -/** - * Define a wrapper that provides a common protocol for all the various AST - * declarations that have modifiers (i.e. there are a number of AST node - * classes that implement the method #modifiers(), but they do not implement - * a common interface): - * BodyDeclaration - * SingleVariableDeclaration - * VariableDeclarationExpression - * VariableDeclarationStatement - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface ModifiedDeclaration { - - /** - * Return the "declaration" AST node. - */ - ASTNode getDeclaration(); - - /** - * Return the "declaration" AST. - */ - AST getAst(); - - /** - * Return the *first* annotation with the specified name. - * Return null if the declaration has no such annotation. - */ - Annotation getAnnotationNamed(String annotationName); - - /** - * Remove the *first* annotation with the specified name from the declaration. - */ - void removeAnnotationNamed(String annotationName); - - /** - * Replace the specified old annotation with the specified new annotation. - * If there is no annotation with the specified name, simply add the new - * annotation to the declaration's modifiers. - */ - void replaceAnnotationNamed(String oldAnnotationName, Annotation newAnnotation); - - /** - * Add the specified import to the declaration's compilation unit. - * Return whether the appropriate import was added to or already present in - * the declaration's compilation unit (i.e. the specified class can be - * subsequently referenced using a "short" name). - * Also return true if an import was unnecessary (i.e. the specified class - * is part of the "default" package). - * This does not support adding a "wildcard" import (e.g. "java.util.*"). - */ - boolean addImport(String className); - - /** - * Add the specified static import to the declaration's compilation unit. - * Return whether the appropriate import was added to or already present in - * the declaration's compilation unit (i.e. the specified constant can be - * subsequently referenced using a "short" name). - * Also return true if an import was unnecessary (i.e. the specified enum - * is part of the "default" package). - * This does not support adding a "wildcard" import (e.g. "java.lang.annotation.ElementType.*"). - */ - boolean addStaticImport(String enumConstantName); - - /** - * Add the specified import to the declaration's compilation unit. - * Return whether the appropriate import was added to or already present in - * the declaration's compilation unit (i.e. the specified name can be - * subsequently referenced using a "short" name). - * Also return true if an import was unnecessary (i.e. the specified class - * or enum is part of the "default" package). - * This does not support adding a "wildcard" import (e.g. "java.util.*"). - */ - boolean addImport(String importName, boolean static_); - - /** - * Return whether the specified annotation has the specified - * (fully-qualified) name within the declaration's context; i.e. attempt - * to resolve the annotation's name (using imports etc.) and return - * whether it matches the specified name. - */ - boolean annotationIsNamed(Annotation annotation, String name); - -} diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Type.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Type.java deleted file mode 100644 index 5a3a6a5a98..0000000000 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/utility/jdt/Type.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.utility.jdt; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.EnumDeclaration; -import org.eclipse.jdt.core.dom.FieldDeclaration; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jdt.core.dom.TypeDeclaration; - -/** - * Type: nestedTypes, nestedEnums, fields, and methods. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * This interface is not intended to be implemented by clients. - */ -public interface Type extends AbstractType { - - /** - * Covariant override. - */ - TypeDeclaration getBodyDeclaration(CompilationUnit astRoot); - - /** - * Return the type's nested types (does not include annotations or enums). - */ - TypeDeclaration[] getTypes(CompilationUnit astRoot); - - /** - * Return the type's nested enums. - */ - EnumDeclaration[] getEnums(CompilationUnit astRoot); - - /** - * Return the type's fields. - */ - FieldDeclaration[] getFields(CompilationUnit astRoot); - - /** - * Return the type's methods. - */ - MethodDeclaration[] getMethods(CompilationUnit astRoot); - -} diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/.classpath b/common/plugins/org.eclipse.jpt.common.eclipselink.core/.classpath deleted file mode 100644 index 8f257414e6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/.classpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/.cvsignore b/common/plugins/org.eclipse.jpt.common.eclipselink.core/.cvsignore deleted file mode 100644 index 31362a7d19..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -bin -@dot -temp.folder -build.xml -javaCompiler...args -javaCompiler...args.* diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/.project b/common/plugins/org.eclipse.jpt.common.eclipselink.core/.project deleted file mode 100644 index 4179bd967e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.common.eclipselink.core - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/META-INF/MANIFEST.MF b/common/plugins/org.eclipse.jpt.common.eclipselink.core/META-INF/MANIFEST.MF deleted file mode 100644 index 3310d95d93..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,18 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.common.eclipselink.core;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Activator: org.eclipse.jpt.common.eclipselink.core.JptCommonEclipseLinkCorePlugin -Bundle-ActivationPolicy: lazy -Bundle-ClassPath: . -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)", - org.eclipse.jdt.core;bundle-version="[3.7.0,4.0.0)", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jst.common.project.facet.core;bundle-version="[1.4.200,2.0.0)" -Export-Package: org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.common.eclipselink.core.internal;x-friends:="org.eclipse.jpt.jpa.eclipselink.core", - org.eclipse.jpt.common.eclipselink.core.internal.libval;x-friends:="org.eclipse.jpt.jpa.eclipselink.core" diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/about.html b/common/plugins/org.eclipse.jpt.common.eclipselink.core/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/common/plugins/org.eclipse.jpt.common.eclipselink.core/build.properties b/common/plugins/org.eclipse.jpt.common.eclipselink.core/build.properties deleted file mode 100644 index 62bcd6e215..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -javacSource=1.5 -javacTarget=1.5 -source.. = src/,\ - property_files/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - about.html,\ - plugin.xml,\ - plugin.properties diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/plugin.properties b/common/plugins/org.eclipse.jpt.common.eclipselink.core/plugin.properties deleted file mode 100644 index c3865d8607..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/plugin.properties +++ /dev/null @@ -1,23 +0,0 @@ -############################################################################### -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName = Dali Java Persistence Tools - Common EclipseLink Core -providerName = Eclipse Web Tools Platform diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/plugin.xml b/common/plugins/org.eclipse.jpt.common.eclipselink.core/plugin.xml deleted file mode 100644 index ccffee1ecb..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/plugin.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/property_files/jpt_common_eclipselink_core.properties b/common/plugins/org.eclipse.jpt.common.eclipselink.core/property_files/jpt_common_eclipselink_core.properties deleted file mode 100644 index a0173b3f3b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/property_files/jpt_common_eclipselink_core.properties +++ /dev/null @@ -1,13 +0,0 @@ -################################################################################ -# Copyright (c) 2010 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ - -EclipseLinkLibraryValidator_noEclipseLinkVersion=Selected libraries do not include required EclipseLink annotation classes. -EclipseLinkLibraryValidator_multipleEclipseLinkVersions=There are multiple versions of EclipseLink in selected libraries. -EclipseLinkLibraryValidator_improperEclipseLinkVersion=EclipseLink version does not meet platform requirements. diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/JptCommonEclipseLinkCorePlugin.java b/common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/JptCommonEclipseLinkCorePlugin.java deleted file mode 100644 index 60cb45646a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/JptCommonEclipseLinkCorePlugin.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.eclipselink.core; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Status; -import org.osgi.framework.BundleContext; - - -public class JptCommonEclipseLinkCorePlugin - extends Plugin { - - // ********** public constants ********** - - /** - * The plug-in identifier of the jpt common core support - * (value "org.eclipse.jpt.common.core"). - */ - public static final String PLUGIN_ID = "org.eclipse.jpt.common.eclipselink.core"; //$NON-NLS-1$ - public static final String PLUGIN_ID_ = PLUGIN_ID + '.'; - - - // ********** singleton ********** - - private static JptCommonEclipseLinkCorePlugin INSTANCE; - - /** - * Return the singleton jpt common eclipselink core plug-in. - */ - public static JptCommonEclipseLinkCorePlugin instance() { - return INSTANCE; - } - - - // ********** public static methods ********** - - /** - * Log the specified status. - */ - public static void log(IStatus status) { - INSTANCE.getLog().log(status); - } - - /** - * Log the specified message. - */ - public static void log(String msg) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null)); - } - - /** - * Log the specified exception or error. - */ - public static void log(Throwable throwable) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable)); - } - - - // ********** plug-in implementation ********** - - public JptCommonEclipseLinkCorePlugin() { - super(); - if (INSTANCE != null) { - throw new IllegalStateException(); - } - // this convention is *wack*... ~bjv - INSTANCE = this; - } - - - @Override - public void start(BundleContext context) throws Exception { - super.start(context); - // nothing yet... - } - - @Override - public void stop(BundleContext context) throws Exception { - super.stop(context); - // nothing yet... - } -} diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/internal/JptCommonEclipseLinkCoreMessages.java b/common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/internal/JptCommonEclipseLinkCoreMessages.java deleted file mode 100644 index 3489feb18f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/internal/JptCommonEclipseLinkCoreMessages.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.eclipselink.core.internal; - -import org.eclipse.osgi.util.NLS; - -public class JptCommonEclipseLinkCoreMessages { - - public static String EclipseLinkLibraryValidator_noEclipseLinkVersion; - public static String EclipseLinkLibraryValidator_multipleEclipseLinkVersions; - public static String EclipseLinkLibraryValidator_improperEclipseLinkVersion; - - - private static final String BUNDLE_NAME = "jpt_common_eclipselink_core"; //$NON-NLS-1$ - - private static final Class BUNDLE_CLASS = JptCommonEclipseLinkCoreMessages.class; - - static { - NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS); - } - - private JptCommonEclipseLinkCoreMessages() { - throw new UnsupportedOperationException(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/internal/libval/EclipseLinkLibValUtil.java b/common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/internal/libval/EclipseLinkLibValUtil.java deleted file mode 100644 index 1ad52aba44..0000000000 --- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/src/org/eclipse/jpt/common/eclipselink/core/internal/libval/EclipseLinkLibValUtil.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.eclipselink.core.internal.libval; - -import java.util.Set; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jdt.core.IClasspathEntry; -import org.eclipse.jdt.core.ToolFactory; -import org.eclipse.jdt.core.util.IClassFileReader; -import org.eclipse.jdt.core.util.IFieldInfo; -import org.eclipse.jpt.common.eclipselink.core.JptCommonEclipseLinkCorePlugin; -import org.eclipse.jpt.common.eclipselink.core.internal.JptCommonEclipseLinkCoreMessages; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.osgi.service.resolver.VersionRange; -import org.osgi.framework.Version; - - -public class EclipseLinkLibValUtil { - - private final static String VERSION_CLASS_PATH = "org/eclipse/persistence/Version.class"; //$NON-NLS-1$ - - private final static String VERSION_FIELD_NAME = "version"; //$NON-NLS-1$ - - - public static IStatus validate(Iterable libraryEntries, Set versionRanges) { - Version version = null; - for (IClasspathEntry entry : libraryEntries) { - String versionString = null; - if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) { - IClassFileReader classReader = - ToolFactory.createDefaultClassFileReader( - entry.getPath().toFile().getAbsolutePath(), VERSION_CLASS_PATH, IClassFileReader.FIELD_INFOS); - if (classReader != null) { - for (IFieldInfo field : classReader.getFieldInfos()) { - if (StringTools.stringsAreEqual(field.getName(), VERSION_FIELD_NAME.toCharArray())) { - try { - versionString = field.getConstantValueAttribute().getConstantValue().getStringValue(); - } - catch (Exception e) { - // potentially a bit could go wrong with that last line, but if any - // assumptions aren't met, there's no value - } - break; - } - } - } - if (versionString != null) { - if (version != null) { - return new Status( - IStatus.ERROR, JptCommonEclipseLinkCorePlugin.PLUGIN_ID, - JptCommonEclipseLinkCoreMessages.EclipseLinkLibraryValidator_multipleEclipseLinkVersions); - } - else { - version = new Version(versionString); - } - } - } - } - - if (version == null) { - return new Status( - IStatus.ERROR, JptCommonEclipseLinkCorePlugin.PLUGIN_ID, - JptCommonEclipseLinkCoreMessages.EclipseLinkLibraryValidator_noEclipseLinkVersion); - } - - for (VersionRange versionRange : versionRanges) { - if (! versionRange.isIncluded(version)) { - return new Status( - IStatus.ERROR, JptCommonEclipseLinkCorePlugin.PLUGIN_ID, - JptCommonEclipseLinkCoreMessages.EclipseLinkLibraryValidator_improperEclipseLinkVersion); - } - } - - return Status.OK_STATUS; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/.classpath b/common/plugins/org.eclipse.jpt.common.ui/.classpath deleted file mode 100644 index 934fb38085..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/.classpath +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/common/plugins/org.eclipse.jpt.common.ui/.project b/common/plugins/org.eclipse.jpt.common.ui/.project deleted file mode 100644 index 7fde966914..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.common.ui - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF b/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF deleted file mode 100644 index 094fd231a8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF +++ /dev/null @@ -1,38 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.common.ui;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Activator: org.eclipse.jpt.common.ui.JptCommonUiPlugin -Bundle-ActivationPolicy: lazy -Bundle-ClassPath: . -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)", - org.eclipse.draw2d;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jdt.ui;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jface;bundle-version="[3.7.0,4.0.0)", - org.eclipse.jface.text;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jpt.common.core;bundle-version="[1.0.0,2.0.0)", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jst.common.project.facet.core;bundle-version="[1.3.100,2.0.0)", - org.eclipse.jst.common.project.facet.ui;bundle-version="[1.3.100,2.0.0)", - org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)", - org.eclipse.ui.navigator;bundle-version="[3.3.100,4.0.0)", - org.eclipse.ui.views.properties.tabbed;bundle-version="[3.4.0,4.0.0)", - org.eclipse.wst.common.project.facet.ui;bundle-version="[1.3.0,2.0.0)" -Export-Package: org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.ui.internal;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.internal.jface;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.internal.listeners;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.internal.properties;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.internal.swt;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.internal.util;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.internal.utility;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.internal.utility.swt;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.internal.widgets;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.internal.wizards;x-friends:="org.eclipse.jpt.dbws.eclipselink.ui,org.eclipse.jpt.jaxb.ui,org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.ui.jface -Import-Package: com.ibm.icu.text;version="4.0.1" diff --git a/common/plugins/org.eclipse.jpt.common.ui/about.html b/common/plugins/org.eclipse.jpt.common.ui/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/common/plugins/org.eclipse.jpt.common.ui/build.properties b/common/plugins/org.eclipse.jpt.common.ui/build.properties deleted file mode 100644 index 87792f2ef5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -javacSource = 1.5 -javacTarget = 1.5 -source.. = src/,\ - property_files/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - about.html,\ - plugin.properties -jars.compile.order = . diff --git a/common/plugins/org.eclipse.jpt.common.ui/plugin.properties b/common/plugins/org.eclipse.jpt.common.ui/plugin.properties deleted file mode 100644 index 4caf90e773..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/plugin.properties +++ /dev/null @@ -1,23 +0,0 @@ -############################################################################### -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### - -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== -pluginName= Dali Java Persistence Tools - Common UI -providerName=Eclipse Web Tools Platform diff --git a/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties b/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties deleted file mode 100644 index aee4769cae..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/property_files/jpt_common_ui.properties +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ - -Boolean_True=True -Boolean_False=False - -NoneSelected= -DefaultEmpty=Default -DefaultWithOneParam=Default ({0}) - -AddRemovePane_AddButtonText=Add... -AddRemovePane_RemoveButtonText=Remove -ChooserPane_browseButton=Browse... -ClassChooserPane_dialogMessage=&Enter type name prefix or pattern (*, ?, or camel case): -ClassChooserPane_dialogTitle=Class Selection -PackageChooserPane_dialogTitle=Package Selection -PackageChooserPane_dialogMessage=&Enter package name prefix or pattern (* = any string, ? = any character): -EnumComboViewer_default=Default () -EnumComboViewer_defaultWithDefault=Default ({0}) -NewNameStateObject_nameMustBeSpecified=A name must be specified. -NewNameStateObject_nameAlreadyExists=A query with this name already exists. diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/JptCommonUiPlugin.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/JptCommonUiPlugin.java deleted file mode 100644 index c249775143..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/JptCommonUiPlugin.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.ui.plugin.AbstractUIPlugin; - -public class JptCommonUiPlugin - extends AbstractUIPlugin -{ - - // ********** constants ********** - - /** - * The plug-in identifier of JPT Common UI support (value {@value}). - */ - public static final String PLUGIN_ID = "org.eclipse.jpt.common.ui"; //$NON-NLS-1$ - public static final String PLUGIN_ID_ = PLUGIN_ID + '.'; - - // ********** singleton ********** - - private static JptCommonUiPlugin INSTANCE; - - /** - * Returns the singleton JPT UI plug-in. - */ - public static JptCommonUiPlugin instance() { - return INSTANCE; - } - - - // ********** logging ********** - - public static void log(IStatus status) { - INSTANCE.getLog().log(status); - } - - public static void log(String msg) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null)); - } - - public static void log(Throwable throwable) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable)); - } - - - // ********** construction ********** - - public JptCommonUiPlugin() { - super(); - if (INSTANCE != null) { - throw new IllegalStateException(); - } - INSTANCE = this; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/WidgetFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/WidgetFactory.java deleted file mode 100644 index 4a7154aeee..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/WidgetFactory.java +++ /dev/null @@ -1,240 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui; - -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.DateTime; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.List; -import org.eclipse.swt.widgets.Spinner; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.forms.widgets.FormText; -import org.eclipse.ui.forms.widgets.Hyperlink; -import org.eclipse.ui.forms.widgets.Section; - -/** - * A widget factory is responsible for creating an SWT widget based on the right - * style. Some style shows the widgets differently, for instance, the flat style - * shows the widgets with less borders. - *

- * Provisional API: This interface is part of an interim API that is still under - * development and expected to change significantly before reaching stability. - * It is available at this early stage to solicit feedback from pioneering - * adopters on the understanding that any code that uses this API will almost - * certainly be broken (repeatedly) as the API evolves. - * - * @version 2.0 - * @since 2.0 - */ -public interface WidgetFactory { - - /** - * Creates a new regular button. - * - * @param parent The parent container - * @param text The button's text - * @return A new Button - */ - Button createButton(Composite parent, String text); - - /** - * Creates a new non-editable custom Combo. - * - * @deprecated - * @param parent The parent container - * @return A new CCombo - */ - @Deprecated - CCombo createCCombo(Composite parent); - - /** - * Creates a new check box button. - * - * @param parent The parent container - * @param text The button's text - * @return A new Button - */ - Button createCheckBox(Composite parent, String text); - - /** - * Creates a new non-editable Combo. - * - * @param parent The parent container - * @return A new Combo - */ - Combo createCombo(Composite parent); - - /** - * Creates a new container. - * - * @param parent The parent container - * @return A new Composite - */ - Composite createComposite(Composite parent); - - /** - * Creates a new DateTime. - * - * @param container The parent container - * @param style The style is to tell the type of widget - * (SWT.DATE or SWT.TIME or SWT.CALENDAR) - * @return A new DateTime - */ - DateTime createDateTime(Composite parent, int style); - - /** - * Creates a new editable custom CCombo. - * - * @deprecated - * @param parent The parent container - * @return A new CCombo - */ - @Deprecated - CCombo createEditableCCombo(Composite parent); - - /** - * Creates a new editable Combo. - * - * @param parent The parent container - * @return A new Combo - */ - Combo createEditableCombo(Composite parent); - - /** - * Creates a new titled pane (group box). - * - * @param parent The parent container - * @param title The group pane's title - * @return A new Group - */ - Group createGroup(Composite parent, String title); - - /** - * Creates a new label that is shown as a hyperlink. - * - * @param parent The parent container - * @param text The label's text - * @return A new Hyperlink - */ - Hyperlink createHyperlink(Composite parent, String text); - - /** - * Creates a new label. - * - * @param container The parent container - * @param labelText The label's text - * @return A new Label - */ - Label createLabel(Composite container, String labelText); - - /** - * Creates a new list. - * - * @param container The parent container - * @param style The style is usually to tell what type of selection - * (SWT.MULTI or SWT.SINGLE) - * @return A new Label - */ - List createList(Composite container, int style); - - /** - * Creates a new label that can be wrapped on multiple lines. - * - * @param container The parent container - * @param labelText The label's text - * @return A new FormText - */ - FormText createMultiLineLabel(Composite container, String labelText); - - /** - * Creates a new editable text area. - * - * @param parent The parent container - * @param parent The number of lines the text area should display - * @return A new Text - */ - Text createMultiLineText(Composite parent); - - /** - * Creates a new editable text field that handles password. - * - * @param container The parent container - * @return A new Text - */ - Text createPasswordText(Composite container); - - /** - * Creates a new push button (toggle between selected and unselected). - * - * @param parent The parent container - * @param text The button's text - * @return A new Button - */ - Button createPushButton(Composite parent, String text); - - /** - * Creates a new radio button. - * - * @param parent The parent container - * @param text The button's text - * @return A new Button - */ - Button createRadioButton(Composite parent, String text); - - /** - * Creates a new section, which is a collapsable pane with a title bar. - * - * @param parent The parent container - * @param style The style of the title bar, which can be - * ExpandableComposite.TWISTIE and - * ExpandableComposite.TITLE_BAR - * @return A new Section - */ - Section createSection(Composite parent, int style); - - /** - * Creates a new spinner. - * - * @param parent The parent container - * @return A new Spinner - */ - Spinner createSpinner(Composite parent); - - /** - * Creates a new table. - * - * @param container The parent container - * @param style The style to apply to the table - * @return A new Table - */ - Table createTable(Composite parent, int style); - - /** - * Creates a new editable text field. - * - * @param container The parent container - * @return A new Text - */ - Text createText(Composite parent); - - /** - * Creates a new tri-state check box. - * - * @param parent The parent container - * @param text The button's text - * @return A new Button that has 3 selection states - */ - Button createTriStateCheckBox(Composite parent, String text); -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java deleted file mode 100644 index 31a1080af3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/JptCommonUiMessages.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal; - -import org.eclipse.osgi.util.NLS; - -/** - * Localized messages used by Dali UI. - * - * @version 3.0 - * @since 1.0 - */ -public class JptCommonUiMessages { - - - public static String Boolean_True; - public static String Boolean_False; - - public static String DefaultEmpty; - public static String DefaultWithOneParam; - public static String NoneSelected; - - public static String AddRemovePane_AddButtonText; - public static String AddRemovePane_RemoveButtonText; - - public static String ChooserPane_browseButton; - public static String ClassChooserPane_dialogMessage; - public static String ClassChooserPane_dialogTitle; - public static String PackageChooserPane_dialogMessage; - public static String PackageChooserPane_dialogTitle; - public static String EnumComboViewer_default; - public static String EnumComboViewer_defaultWithDefault; - public static String NewNameStateObject_nameAlreadyExists; - public static String NewNameStateObject_nameMustBeSpecified; - - private static final String BUNDLE_NAME = "jpt_common_ui"; //$NON-NLS-1$ - private static final Class BUNDLE_CLASS = JptCommonUiMessages.class; - static { - NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS); - } - - private JptCommonUiMessages() { - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/Tracing.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/Tracing.java deleted file mode 100644 index 7826015d18..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/Tracing.java +++ /dev/null @@ -1,161 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.jpt.common.ui.JptCommonUiPlugin; - -/** - * This tracing class manages to convert the string value into boolean values or - * integer values that are associated with the tracing debug flags. Those flags - * are specified in the .options file. The supported keys are defined here as - * constants for quick reference. - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public final class Tracing -{ - /** - * A constant used to retrieve the value associated with "/debug". - */ - public static final String DEBUG = "/debug"; - - /** - * A constant used to retrieve the value associated with "/debug/ui/db". - */ - public static final String UI_DB = "/debug/ui/db"; - - /** - * A constant used to retrieve the value associated with "/debug/ui/detailsView". - */ - public static final String UI_DETAILS_VIEW = "/debug/ui/detailsView"; - - /** - * A constant used to retrieve the value associated with "/debug/ui/layout". - */ - public static final String UI_LAYOUT = "/debug/ui/layout"; - - /** - * A constant used to retrieve the value associated with "/unit-tests". - */ - public static final String UNIT_TESTS = "/unit-tests"; - - /** - * Can't instantiate this Tracing class. - */ - private Tracing() - { - super(); - throw new UnsupportedOperationException("Tracing cannot be instantiated"); - } - - /** - * Retrieves the debug value associated with the given flag. The default - * value is false. - * - * @param flag The flag to retrieve the debug value, which should be - * contained in the .options file, the flag should start with "/" - * @return true if the given flag is active; false - * otherwise - */ - public static boolean booleanDebugOption(String flag) - { - return booleanDebugOption(flag, false); - } - - /** - * Retrieves the debug value associated with the given flag. - * - * @param flag The flag to retrieve the debug value, which should be - * contained in the .options file, the flag should start with "/" - * @param defaultValue The default value if the value associated with the - * given flag could not be found - * @return true if the given flag is active; false - * otherwise - */ - public static boolean booleanDebugOption(String flag, boolean defaultValue) - { - String string = Platform.getDebugOption(JptCommonUiPlugin.PLUGIN_ID + flag); - return (string == null) ? defaultValue : Boolean.parseBoolean(string.trim()); - } - - /** - * Retrieves the debug value associated with the given flag. The default value - * is 0. - * - * @param flag The flag to retrieve the debug value, which should be - * contained in the .options file, the flag should start with "/" - * @return The value associated with the given flag, or the given default - * value - */ - public static int intDebugOption(String flag) - { - return intDebugOption(flag, 0); - } - - /** - * Retrieves the debug value associated with the given flag. - * - * @param flag The flag to retrieve the debug value, which should be - * contained in the .options file, the flag should start with "/" - * @param defaultValue The default value if the value associated with the - * given flag could not be found - * @return The value associated with the given flag, or the given default - * value - */ - public static int intDebugOption(String flag, int defaultValue) - { - String string = Platform.getDebugOption(JptCommonUiPlugin.PLUGIN_ID + flag); - return (string == null) ? defaultValue : Integer.parseInt(string); - } - - /** - * Logs the given messages, appends it with this plug-in id. - * - * @param message The message to be logged - */ - public static void log(String message) - { - System.out.print("[" + JptCommonUiPlugin.PLUGIN_ID + "] "); - System.out.println(message); - } - - /** - * Retrieves the debug value associated with the given flag. The default value - * is an empty string. - * - * @param flag The flag to retrieve the debug value, which should be - * contained in the .options file, the flag should start with "/" - * @return The value associated with the given flag, or the given default - * value - */ - public static String stringDebugOption(String flag) - { - return stringDebugOption(flag, ""); - } - - /** - * Retrieves the debug value associated with the given flag. - * - * @param flag The flag to retrieve the debug value, which should be - * contained in the .options file, the flag should start with "/" - * @param defaultValue The default value if the value associated with the - * given flag could not be found - * @return The value associated with the given flag, or the given default - * value - */ - public static String stringDebugOption(String flag, String defaultValue) - { - String string = Platform.getDebugOption(JptCommonUiPlugin.PLUGIN_ID + flag); - return (string != null) ? string : defaultValue; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractItemLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractItemLabelProvider.java deleted file mode 100644 index c351dddcd8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractItemLabelProvider.java +++ /dev/null @@ -1,224 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.jface; - -import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.ItemLabelProvider; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.graphics.Image; - -/** - * Implementation of {@link ItemLabelProvider} that provides updating - * label information for a Model object. - * - * The typical subclass will override the following methods: - * #buildImageModel() - * return a {@link PropertyValueModel} that represents the image for the - * represented model object - * #buildTextModel() - * return a {@link PropertyValueModel} that represents the text for the - * represented model object. - * #buildDescriptionModel() - * return a {@link PropertyValueModel} that represents the description for - * the represented model object - * - * Other methods may be overridden, but take care to preserve the logic provided - * by this class. - */ -public abstract class AbstractItemLabelProvider implements ItemLabelProvider -{ - private DelegatingContentAndLabelProvider labelProvider; - - private Model model; - - private PropertyValueModel imageModel; - - private PropertyValueModel textModel; - - private PropertyValueModel descriptionModel; - - private PropertyChangeListener labelChangeListener; - - - protected AbstractItemLabelProvider( - Model model, DelegatingContentAndLabelProvider labelProvider) { - this.model = model; - this.labelProvider = labelProvider; - this.labelChangeListener = buildLabelChangeListener(); - } - - - /** - * Construct a listener to update the viewer (through the label provider) - * if the text or image changes - */ - protected PropertyChangeListener buildLabelChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - getLabelProvider().updateLabel(getModel()); - } - }; - } - - /** - * Return the image value model - * (lazy and just-in-time initialized) - */ - protected synchronized PropertyValueModel getImageModel() { - if (this.imageModel == null) { - this.imageModel = buildImageModel(); - engageImageModel(); - } - return this.imageModel; - } - - /** - * Construct an image model - */ - protected abstract PropertyValueModel buildImageModel(); - - /** - * Should only be overridden with a call to super.engageImageModel() before - * subclass logic - */ - protected void engageImageModel() { - this.imageModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener); - } - - /** - * Should only be overridden with a call to super.disengageImageModel() after - * subclass logic - */ - protected void disengageImageModel() { - this.imageModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener); - } - - /** - * Return the text value model - * (lazy and just-in-time initialized) - */ - protected synchronized PropertyValueModel getTextModel() { - if (this.textModel == null) { - this.textModel = buildTextModel(); - engageTextModel(); - } - return this.textModel; - } - - /** - * Construct a text value model - */ - protected abstract PropertyValueModel buildTextModel(); - - /** - * Should only be overridden with a call to super.engageTextModel() before - * subclass logic - */ - protected void engageTextModel() { - this.textModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener); - } - - /** - * Should only be overridden with a call to super.disengageTextModel() after - * subclass logic - */ - protected void disengageTextModel() { - this.textModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener); - } - - /** - * Return the description value model - * (lazy and just-in-time initialized) - */ - protected synchronized PropertyValueModel getDescriptionModel() { - if (this.descriptionModel == null) { - this.descriptionModel = buildDescriptionModel(); - engageDescriptionModel(); - } - return this.descriptionModel; - } - - /** - * Construct a description value model - */ - protected abstract PropertyValueModel buildDescriptionModel(); - - /** - * Should only be overridden with a call to super.engageDescriptionModel() before - * subclass logic - */ - protected void engageDescriptionModel() { - this.descriptionModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener); - } - - /** - * Should only be overridden with a call to super.disengageDescriptionModel() after - * subclass logic - */ - protected void disengageDescriptionModel() { - this.descriptionModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.labelChangeListener); - } - - /** - * Return the model object represented by this item - */ - public Model getModel() { - return this.model; - } - - /** - * Return the label provider that delegates to this item - */ - public DelegatingContentAndLabelProvider getLabelProvider() { - return this.labelProvider; - } - - public Image getImage() { - return getImageModel().getValue(); - } - - public String getText() { - return getTextModel().getValue(); - } - - public String getDescription() { - return getDescriptionModel().getValue(); - } - - public void dispose() { - disposeTextModel(); - disposeImageModel(); - disposeDescriptionModel(); - } - - protected synchronized void disposeTextModel() { - if (this.textModel != null) { - disengageTextModel(); - this.textModel = null; - } - } - - protected synchronized void disposeImageModel() { - if (this.imageModel != null) { - disengageImageModel(); - this.imageModel = null; - } - } - - protected synchronized void disposeDescriptionModel() { - if (this.descriptionModel != null) { - disengageDescriptionModel(); - this.descriptionModel = null; - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractTreeItemContentProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractTreeItemContentProvider.java deleted file mode 100644 index c5631b8d6a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/AbstractTreeItemContentProvider.java +++ /dev/null @@ -1,204 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.jface; - -import java.util.Iterator; - -import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.model.value.ListCollectionValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.NullCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyListValueModelAdapter; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * Implementation of {@link TreeItemContentProvider} that provides updating - * children information for a Model object. - * - * The typical subclass will override the following methods: - * #getParent() - * the default behavior for this method is to return null. there is no - * property value model for this as this should not be changing for a given - * node. all such changes will be provided by the parent side of the relationship. - * #buildChildrenModel() - * return a {@link ListValueModel} that represents the children for the represented - * model object. #buildChildrenModel(CollectionValueModel) and - * #buildChildrenModel(PropertyValueModel) are provided if the children are more - * easily represented as a collection or as a property (single child) - * the default behavior is to return a {@link NullListValueModel} - * - * Other methods may be overridden, but take care to preserve the logic provided - * by this class. - */ -public abstract class AbstractTreeItemContentProvider - implements TreeItemContentProvider -{ - private DelegatingTreeContentAndLabelProvider treeContentProvider; - - private Model model; - - private CollectionValueModel childrenModel; - - private CollectionChangeListener childrenListener; - - - protected AbstractTreeItemContentProvider( - Model model, DelegatingTreeContentAndLabelProvider treeContentProvider) { - this.model = model; - this.treeContentProvider = treeContentProvider; - this.childrenListener = buildChildrenListener(); - } - - /** - * Construct a listener to refresh the tree (through the tree content provider) - * if the children change - */ - protected CollectionChangeListener buildChildrenListener() { - return new CollectionChangeListener() { - - public void itemsAdded(CollectionAddEvent event) { - getTreeContentProvider().updateContent(getModel()); - } - - public void itemsRemoved(CollectionRemoveEvent event) { - getTreeContentProvider().updateContent(getModel()); - for (Object item : event.getItems()) { - getTreeContentProvider().dispose(item); - } - } - - public void collectionChanged(CollectionChangeEvent event) { - getTreeContentProvider().updateContent(getModel()); - // in the case of a list changed event, we don't have - // access to the removed objects, so we can't dispose them. - // keep a watch on this to see if this becomes a problem. - } - - public void collectionCleared(CollectionClearEvent event) { - getTreeContentProvider().updateContent(getModel()); - // in the case of a list cleared event, we don't have - // access to the removed objects, so we can't dispose them. - // keep a watch on this to see if this becomes a problem. - } - }; - } - - /** - * Return the children model - * (lazy and just-in-time initialized) - */ - protected synchronized Iterator childrenModel() { - if (this.childrenModel == null) { - this.childrenModel = buildChildrenModel(); - engageChildren(); - } - return this.childrenModel.iterator(); - } - - /** - * Construct a children model - */ - protected CollectionValueModel buildChildrenModel() { - return new NullCollectionValueModel(); - } - - /** - * Utility method that can be used if the children model is better represented - * as a collection. - * This wraps the children collection model and uses it internally as a list - * model. - */ - protected CollectionValueModel buildChildrenModel(ListValueModel lvm) { - return new ListCollectionValueModelAdapter(lvm); - } - - /** - * Utility method that can be used if the children model is better represented - * as a single value property. - * This wraps the children (child) property model and uses it internally as a list - * model. - */ - protected ListValueModel buildChildrenModel(PropertyValueModel lvm) { - return new PropertyListValueModelAdapter(lvm); - } - - /** - * Return the model object represented by this node - */ - public Model getModel() { - return this.model; - } - - /** - * Return the tree content provider that delegates to this node - */ - public DelegatingTreeContentAndLabelProvider getTreeContentProvider() { - return this.treeContentProvider; - } - - public Object getParent() { - return null; - } - - public Object[] getElements() { - return getChildren(); - } - - public Object[] getChildren() { - return ArrayTools.array(this.childrenModel()); - } - - /** - * Override with potentially more efficient logic - */ - public boolean hasChildren() { - return this.childrenModel().hasNext(); - } - - /** - * Should only be overridden with a call to super.dispose() - */ - public void dispose() { - for (Object child : getChildren()) { - getTreeContentProvider().dispose(child); - } - disposeChildrenModel(); - } - - /** - * Should only be overridden with a call to super.engageChildren() before - * subclass logic - */ - protected void engageChildren() { - this.childrenModel.addCollectionChangeListener(CollectionValueModel.VALUES, this.childrenListener); - } - - protected synchronized void disposeChildrenModel() { - if (this.childrenModel != null) { - this.disengageChildrenModel(); - this.childrenModel = null; - } - } - /** - * Should only be overridden with a call to super.disengageChildren() after - * subclass logic - */ - protected void disengageChildrenModel() { - this.childrenModel.removeCollectionChangeListener(CollectionValueModel.VALUES, this.childrenListener); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ArchiveFileViewerFilter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ArchiveFileViewerFilter.java deleted file mode 100644 index bbff5516fc..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ArchiveFileViewerFilter.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. - * All rights reserved. This program and the accompanying materials are - * made available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.jface; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.jpt.common.ui.JptCommonUiPlugin; - -/** - * This filter will deny showing any file that are not JAR files or folders - * that don't contain any JAR files in its sub-hierarchy. - */ -public class ArchiveFileViewerFilter - extends ViewerFilter -{ - private static final String[] archiveExtensions= { "jar", "zip" }; //$NON-NLS-1$ //$NON-NLS-2$ - - - public ArchiveFileViewerFilter() { - super(); - } - - - @Override - public boolean select( - Viewer viewer, Object parentElement, Object element) { - if (element instanceof IFile) { - return isArchivePath(((IFile)element).getFullPath()); - } - else if (element instanceof IFolder) { - IFolder folder = (IFolder) element; - try { - for (IResource each : folder.members()) { - if (select(viewer, folder, each)) { - return true; - } - } - } - catch (CoreException ce) { - // just skip this one, then - JptCommonUiPlugin.log(ce); - } - } - return false; - } - - public static boolean isArchivePath(IPath path) { - 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; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/DelegatingTreeContentAndLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/DelegatingTreeContentAndLabelProvider.java deleted file mode 100644 index d5df216b6e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/DelegatingTreeContentAndLabelProvider.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2011 Oracle. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.jface; - -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.ItemLabelProviderFactory; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProviderFactory; - -/** - * Extension of {@link DelegatingContentAndLabelProvider} that provides an extension - * to provide tree content - */ -public class DelegatingTreeContentAndLabelProvider - extends DelegatingContentAndLabelProvider - implements ITreeContentProvider -{ - public DelegatingTreeContentAndLabelProvider( - TreeItemContentProviderFactory treeItemContentProviderFactory) { - super(treeItemContentProviderFactory); - } - - public DelegatingTreeContentAndLabelProvider( - TreeItemContentProviderFactory treeItemContentProviderFactory, - ItemLabelProviderFactory itemLabelProviderFactory) { - super(treeItemContentProviderFactory, itemLabelProviderFactory); - } - - - @Override - protected TreeItemContentProvider itemContentProvider(Object item) { - return (TreeItemContentProvider) super.itemContentProvider(item); - } - - public Object[] getChildren(Object parentElement) { - TreeItemContentProvider provider = itemContentProvider(parentElement); - return (provider == null) ? new Object[0] : provider.getChildren(); - } - - public Object getParent(Object element) { - TreeItemContentProvider provider = itemContentProvider(element); - return (provider == null) ? null : provider.getParent(); - } - - public boolean hasChildren(Object element) { - TreeItemContentProvider provider = itemContentProvider(element); - return (provider == null) ? false : provider.hasChildren(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ImageImageDescriptor.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ImageImageDescriptor.java deleted file mode 100644 index e2079e0227..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/ImageImageDescriptor.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.jface; - -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.ImageData; - -/** - * Image descriptor for an image. - */ -public class ImageImageDescriptor extends ImageDescriptor -{ - - private Image fImage; - - /** - * Constructor for ImagImageDescriptor. - */ - public ImageImageDescriptor(Image image) { - super(); - this.fImage = image; - } - - @Override - public boolean equals(Object obj) { - return (obj != null) && getClass().equals(obj.getClass()) && this.fImage.equals(((ImageImageDescriptor) obj).fImage); - } - - @Override - public ImageData getImageData() { - return this.fImage.getImageData(); - } - - @Override - public int hashCode() { - return this.fImage.hashCode(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullLabelProvider.java deleted file mode 100644 index 1380b3dac6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullLabelProvider.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.jface; - -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.ILabelProviderListener; -import org.eclipse.swt.graphics.Image; - -/** - * Null implementation of the ILabelProvider interface. - * Implemented as a singleton. - */ -public final class NullLabelProvider - implements ILabelProvider -{ - public static final NullLabelProvider INSTANCE = new NullLabelProvider(); - - public static ILabelProvider instance() { - return INSTANCE; - } - - /** - * Ensure a single instance. - */ - private NullLabelProvider() { - super(); - } - - public Image getImage(Object element) { - return null; - } - - public String getText(Object element) { - return null; - } - - public void addListener(ILabelProviderListener listener) { - // do nothing - } - - public void dispose() { - // do nothing - } - - public boolean isLabelProperty(Object element, String property) { - return false; - } - - public void removeListener(ILabelProviderListener listener) { - // do nothing - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullTreeContentProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullTreeContentProvider.java deleted file mode 100644 index f050ffa226..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/NullTreeContentProvider.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.jface; - -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.Viewer; - -/** - * Null implementation of the ILabelProvider interface. - * Implemented as a singleton. - */ -public final class NullTreeContentProvider - implements ITreeContentProvider -{ - private static final Object[] EMPTY_ARRAY = new Object[0]; - public static final NullTreeContentProvider INSTANCE = new NullTreeContentProvider(); - - public static ITreeContentProvider instance() { - return INSTANCE; - } - - /** - * Ensure a single instance. - */ - private NullTreeContentProvider() { - super(); - } - - public Object[] getChildren(Object parentElement) { - return EMPTY_ARRAY; - } - - public Object getParent(Object element) { - return null; - } - - public boolean hasChildren(Object element) { - return false; - } - - public Object[] getElements(Object inputElement) { - return EMPTY_ARRAY; - } - - public void dispose() { - // do nothing - } - - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - // do nothing - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/StructuredContentProviderAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/StructuredContentProviderAdapter.java deleted file mode 100644 index ca953012ae..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/jface/StructuredContentProviderAdapter.java +++ /dev/null @@ -1,265 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.jface; - -import org.eclipse.jface.viewers.AbstractListViewer; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionListValueModelAdapter; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * This adapter can be used to keep an AbstractListViewer - * (e.g. a ListViewer or ComboViewer) in synch with a ListValueModel - * (or a CollectionValueModel). - */ -public class StructuredContentProviderAdapter - implements IStructuredContentProvider -{ - /** The underlying model list. */ - protected ListValueModel listHolder; - - /** The list viewer we keep in synch with the model list. */ - protected final AbstractListViewer listViewer; - - /** A listener that allows us to forward changes made to the underlying model list. */ - protected final ListChangeListener listChangeListener; - - - // ********** static ********** - - /** - * Adapt the specified list viewer to the specified list holder so they - * stay in synch. - */ - public static StructuredContentProviderAdapter adapt(AbstractListViewer listViewer, ListValueModel listHolder) { - // we need only construct the adapter and it will hook up to the list viewer etc. - return new StructuredContentProviderAdapter(listViewer, listHolder); - } - - /** - * Adapt the specified list viewer to the specified list holder so they - * stay in synch. - */ - public static StructuredContentProviderAdapter adapt(AbstractListViewer listViewer, CollectionValueModel collectionHolder) { - // we need only construct the adapter and it will hook up to the list viewer etc. - return new StructuredContentProviderAdapter(listViewer, collectionHolder); - } - - - // ********** constructors ********** - - /** - * Constructor. - */ - protected StructuredContentProviderAdapter(AbstractListViewer listViewer, ListValueModel listHolder) { - super(); - this.listChangeListener = this.buildListChangeListener(); - this.listViewer = listViewer; - this.listViewer.setContentProvider(this); - // the list viewer will call back to #inputChanged(Viewer, Object, Object) - this.listViewer.setInput(listHolder); - } - - /** - * Constructor. - */ - protected StructuredContentProviderAdapter(AbstractListViewer listViewer, CollectionValueModel collectionHolder) { - this(listViewer, new CollectionListValueModelAdapter(collectionHolder)); - } - - - // ********** initialization ********** - - protected ListChangeListener buildListChangeListener() { - return new SWTListChangeListenerWrapper(this.buildListChangeListener_()); - } - - protected ListChangeListener buildListChangeListener_() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent e) { - StructuredContentProviderAdapter.this.itemsAdded(e); - } - public void itemsRemoved(ListRemoveEvent e) { - StructuredContentProviderAdapter.this.itemsRemoved(e); - } - public void itemsReplaced(ListReplaceEvent e) { - StructuredContentProviderAdapter.this.itemsReplaced(e); - } - public void itemsMoved(ListMoveEvent e) { - StructuredContentProviderAdapter.this.itemsMoved(e); - } - public void listCleared(ListClearEvent e) { - StructuredContentProviderAdapter.this.listCleared(); - } - public void listChanged(ListChangeEvent e) { - StructuredContentProviderAdapter.this.listChanged(); - } - @Override - public String toString() { - return "list listener"; - } - }; - } - - - // ********** IStructuredContentProvider implementation ********** - - public Object[] getElements(Object inputElement) { - if (inputElement != this.listHolder) { - throw new IllegalArgumentException("invalid input element: " + inputElement); - } - return this.listHolder.toArray(); - } - - /** - * This is called by the list viewer, so don't update the list viewer here. - */ - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - if (viewer != this.listViewer) { - throw new IllegalArgumentException("invalid viewer: " + viewer); - } - if (oldInput != this.listHolder) { - throw new IllegalArgumentException("invalid old input: " + oldInput); - } - this.modelChanged((ListValueModel) oldInput, (ListValueModel) newInput); - } - - public void dispose() { - // do nothing - listeners should've already been removed in #inputChanged(Viewer, Object, Object) - } - - - // ********** internal methods ********** - - protected void modelChanged(ListValueModel oldModel, ListValueModel newModel) { - if (oldModel != null) { - this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - this.listHolder = newModel; - if (newModel != null) { - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - } - - - // ********** public API ********** - - /** - * Return the underlying list model. - */ - public ListValueModel model() { - return this.listHolder; - } - - /** - * Set the underlying list model. - */ - public void setModel(ListValueModel listHolder) { - // the list viewer will call back to #inputChanged(Viewer, Object, Object) - this.listViewer.setInput(listHolder); - } - - /** - * Set the underlying collection model. - */ - public void setModel(CollectionValueModel collectionHolder) { - this.setModel(new CollectionListValueModelAdapter(collectionHolder)); - } - - - // ********** list change support ********** - - /** - * Items were added to the underlying model list. - * Synchronize the list viewer. - */ - protected void itemsAdded(ListAddEvent e) { - int i = e.getIndex(); - for (Object item : e.getItems()) { - this.listViewer.insert(item, i++); - } - } - - /** - * Items were removed from the underlying model list. - * Synchronize the list viewer. - */ - protected void itemsRemoved(ListRemoveEvent e) { - this.listViewer.remove(ArrayTools.array(e.getItems(), e.getItemsSize())); - } - - /** - * Items were replaced in the underlying model list. - * Synchronize the list viewer. - */ - protected void itemsReplaced(ListReplaceEvent e) { - this.listViewer.remove(ArrayTools.array(e.getOldItems(), e.getItemsSize())); - int i = e.getIndex(); - for (Object item : e.getNewItems()) { - this.listViewer.insert(item, i++); - } - } - - /** - * Items were moved in the underlying model list. - * Synchronize the list viewer. - */ - protected void itemsMoved(ListMoveEvent e) { - int len = e.getLength(); - Object[] items = new Object[len]; - int offset = e.getSourceIndex(); - for (int i = 0; i < len; i++) { - items[i] = this.listHolder.get(offset + i); - } - this.listViewer.remove(items); - - offset = e.getTargetIndex(); - for (int i = 0; i < len; i++) { - this.listViewer.insert(items[i], offset + i); - } - } - - /** - * The underlying model list was cleared. - * Synchronize the list viewer. - */ - protected void listCleared() { - this.listViewer.refresh(); - } - - /** - * The underlying model list has changed "dramatically". - * Synchronize the list viewer. - */ - protected void listChanged() { - this.listViewer.refresh(); - } - - - // ********** Object overrides ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listHolder); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java deleted file mode 100644 index 8918708bbf..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.listeners; - -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.swt.widgets.Display; - -/** - * Wrap another collection change listener and forward events to it on the SWT - * UI thread, asynchronously if necessary. - */ -public class SWTCollectionChangeListenerWrapper - implements CollectionChangeListener -{ - private final CollectionChangeListener listener; - - public SWTCollectionChangeListenerWrapper(CollectionChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void itemsAdded(CollectionAddEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsAdded_(event); - } else { - this.executeOnUIThread(this.buildItemsAddedRunnable(event)); - } - } - - public void itemsRemoved(CollectionRemoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsRemoved_(event); - } else { - this.executeOnUIThread(this.buildItemsRemovedRunnable(event)); - } - } - - public void collectionCleared(CollectionClearEvent event) { - if (this.isExecutingOnUIThread()) { - this.collectionCleared_(event); - } else { - this.executeOnUIThread(this.buildCollectionClearedRunnable(event)); - } - } - - public void collectionChanged(CollectionChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.collectionChanged_(event); - } else { - this.executeOnUIThread(this.buildCollectionChangedRunnable(event)); - } - } - - private Runnable buildItemsAddedRunnable(final CollectionAddEvent event) { - return new Runnable() { - public void run() { - SWTCollectionChangeListenerWrapper.this.itemsAdded_(event); - } - @Override - public String toString() { - return "items added runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsRemovedRunnable(final CollectionRemoveEvent event) { - return new Runnable() { - public void run() { - SWTCollectionChangeListenerWrapper.this.itemsRemoved_(event); - } - @Override - public String toString() { - return "items removed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildCollectionClearedRunnable(final CollectionClearEvent event) { - return new Runnable() { - public void run() { - SWTCollectionChangeListenerWrapper.this.collectionCleared_(event); - } - @Override - public String toString() { - return "collection cleared runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildCollectionChangedRunnable(final CollectionChangeEvent event) { - return new Runnable() { - public void run() { - SWTCollectionChangeListenerWrapper.this.collectionChanged_(event); - } - @Override - public String toString() { - return "collection changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return Display.getCurrent() != null; - } - - /** - * {@link Display#asyncExec(Runnable)} seems to work OK; - * but using {@link Display#syncExec(Runnable)} can somtimes make things - * more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnUIThread(Runnable r) { - Display.getDefault().asyncExec(r); -// Display.getDefault().syncExec(r); - } - - void itemsAdded_(CollectionAddEvent event) { - this.listener.itemsAdded(event); - } - - void itemsRemoved_(CollectionRemoveEvent event) { - this.listener.itemsRemoved(event); - } - - void collectionCleared_(CollectionClearEvent event) { - this.listener.collectionCleared(event); - } - - void collectionChanged_(CollectionChangeEvent event) { - this.listener.collectionChanged(event); - } - - @Override - public String toString() { - return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java deleted file mode 100644 index 321080dfc5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java +++ /dev/null @@ -1,201 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.listeners; - -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.swt.widgets.Display; - -/** - * Wrap another list change listener and forward events to it on the SWT - * UI thread, asynchronously if necessary. - */ -public class SWTListChangeListenerWrapper - implements ListChangeListener -{ - private final ListChangeListener listener; - - public SWTListChangeListenerWrapper(ListChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void itemsAdded(ListAddEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsAdded_(event); - } else { - this.executeOnUIThread(this.buildItemsAddedRunnable(event)); - } - } - - public void itemsRemoved(ListRemoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsRemoved_(event); - } else { - this.executeOnUIThread(this.buildItemsRemovedRunnable(event)); - } - } - - public void itemsMoved(ListMoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsMoved_(event); - } else { - this.executeOnUIThread(this.buildItemsMovedRunnable(event)); - } - } - - public void itemsReplaced(ListReplaceEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsReplaced_(event); - } else { - this.executeOnUIThread(this.buildItemsReplacedRunnable(event)); - } - } - - public void listCleared(ListClearEvent event) { - if (this.isExecutingOnUIThread()) { - this.listCleared_(event); - } else { - this.executeOnUIThread(this.buildListClearedRunnable(event)); - } - } - - public void listChanged(ListChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.listChanged_(event); - } else { - this.executeOnUIThread(this.buildListChangedRunnable(event)); - } - } - - private Runnable buildItemsAddedRunnable(final ListAddEvent event) { - return new Runnable() { - public void run() { - SWTListChangeListenerWrapper.this.itemsAdded_(event); - } - @Override - public String toString() { - return "items added runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsRemovedRunnable(final ListRemoveEvent event) { - return new Runnable() { - public void run() { - SWTListChangeListenerWrapper.this.itemsRemoved_(event); - } - @Override - public String toString() { - return "items removed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsMovedRunnable(final ListMoveEvent event) { - return new Runnable() { - public void run() { - SWTListChangeListenerWrapper.this.itemsMoved_(event); - } - @Override - public String toString() { - return "items moved runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsReplacedRunnable(final ListReplaceEvent event) { - return new Runnable() { - public void run() { - SWTListChangeListenerWrapper.this.itemsReplaced_(event); - } - @Override - public String toString() { - return "items replaced runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildListClearedRunnable(final ListClearEvent event) { - return new Runnable() { - public void run() { - SWTListChangeListenerWrapper.this.listCleared_(event); - } - @Override - public String toString() { - return "list cleared runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildListChangedRunnable(final ListChangeEvent event) { - return new Runnable() { - public void run() { - SWTListChangeListenerWrapper.this.listChanged_(event); - } - @Override - public String toString() { - return "list changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return Display.getCurrent() != null; - } - - /** - * {@link Display#asyncExec(Runnable)} seems to work OK; - * but using {@link Display#syncExec(Runnable)} can somtimes make things - * more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnUIThread(Runnable r) { - Display.getDefault().asyncExec(r); -// Display.getDefault().syncExec(r); - } - - void itemsAdded_(ListAddEvent event) { - this.listener.itemsAdded(event); - } - - void itemsRemoved_(ListRemoveEvent event) { - this.listener.itemsRemoved(event); - } - - void itemsMoved_(ListMoveEvent event) { - this.listener.itemsMoved(event); - } - - void itemsReplaced_(ListReplaceEvent event) { - this.listener.itemsReplaced(event); - } - - void listCleared_(ListClearEvent event) { - this.listener.listCleared(event); - } - - void listChanged_(ListChangeEvent event) { - this.listener.listChanged(event); - } - - @Override - public String toString() { - return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java deleted file mode 100644 index f95fbe6005..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.listeners; - -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.swt.widgets.Display; - -/** - * Wrap another property change listener and forward events to it on the SWT - * UI thread, asynchronously if necessary. If the event arrived on the UI - * thread that is probably because it was initiated by a UI widget; as a - * result, we want to loop back synchronously so the events can be - * short-circuited. (Typically, the adapter(s) between a property and - * its corresponding UI widget are read-write; as opposed to the adapter(s) - * between a collection (or list) and its UI widget, which - * is read-only.) - */ -public class SWTPropertyChangeListenerWrapper - implements PropertyChangeListener -{ - private final PropertyChangeListener listener; - - public SWTPropertyChangeListenerWrapper(PropertyChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void propertyChanged(PropertyChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.propertyChanged_(event); - } else { - this.executeOnUIThread(this.buildPropertyChangedRunnable(event)); - } - } - - private Runnable buildPropertyChangedRunnable(final PropertyChangeEvent event) { - return new Runnable() { - public void run() { - SWTPropertyChangeListenerWrapper.this.propertyChanged_(event); - } - @Override - public String toString() { - return "property changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return Display.getCurrent() != null; - } - - /** - * {@link Display#asyncExec(Runnable)} seems to work OK; - * but using {@link Display#syncExec(Runnable)} can somtimes make things - * more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnUIThread(Runnable r) { - Display.getDefault().asyncExec(r); -// Display.getDefault().syncExec(r); - } - - void propertyChanged_(PropertyChangeEvent event) { - this.listener.propertyChanged(event); - } - - @Override - public String toString() { - return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java deleted file mode 100644 index 16bf1194db..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.listeners; - -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.swt.widgets.Display; - -/** - * Wrap another state change listener and forward events to it on the SWT - * UI thread, asynchronously if necessary. If the event arrived on the UI - * thread that is probably because it was initiated by a UI widget; as a - * result, we want to loop back synchronously so the events can be - * short-circuited. - */ -public class SWTStateChangeListenerWrapper - implements StateChangeListener -{ - private final StateChangeListener listener; - - public SWTStateChangeListenerWrapper(StateChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void stateChanged(StateChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.stateChanged_(event); - } else { - this.executeOnUIThread(this.buildStateChangedRunnable(event)); - } - } - - private Runnable buildStateChangedRunnable(final StateChangeEvent event) { - return new Runnable() { - public void run() { - SWTStateChangeListenerWrapper.this.stateChanged_(event); - } - @Override - public String toString() { - return "state changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return Display.getCurrent() != null; - } - - /** - * {@link Display#asyncExec(Runnable)} seems to work OK; - * but using {@link Display#syncExec(Runnable)} can somtimes make things - * more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnUIThread(Runnable r) { - Display.getDefault().asyncExec(r); -// Display.getDefault().syncExec(r); - } - - void stateChanged_(StateChangeEvent event) { - this.listener.stateChanged(event); - } - - @Override - public String toString() { - return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTTreeChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTTreeChangeListenerWrapper.java deleted file mode 100644 index 84255e6fd9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTTreeChangeListenerWrapper.java +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.listeners; - -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; -import org.eclipse.swt.widgets.Display; - -/** - * Wrap another tree change listener and forward events to it on the SWT - * UI thread, asynchronously if necessary. - */ -public class SWTTreeChangeListenerWrapper - implements TreeChangeListener -{ - private final TreeChangeListener listener; - - public SWTTreeChangeListenerWrapper(TreeChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void nodeAdded(TreeAddEvent event) { - if (this.isExecutingOnUIThread()) { - this.nodeAdded_(event); - } else { - this.executeOnUIThread(this.buildNodeAddedRunnable(event)); - } - } - - public void nodeRemoved(TreeRemoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.nodeRemoved_(event); - } else { - this.executeOnUIThread(this.buildNodeRemovedRunnable(event)); - } - } - - public void treeCleared(TreeClearEvent event) { - if (this.isExecutingOnUIThread()) { - this.treeCleared_(event); - } else { - this.executeOnUIThread(this.buildTreeClearedRunnable(event)); - } - } - - public void treeChanged(TreeChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.treeChanged_(event); - } else { - this.executeOnUIThread(this.buildTreeChangedRunnable(event)); - } - } - - private Runnable buildNodeAddedRunnable(final TreeAddEvent event) { - return new Runnable() { - public void run() { - SWTTreeChangeListenerWrapper.this.nodeAdded_(event); - } - @Override - public String toString() { - return "node added runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildNodeRemovedRunnable(final TreeRemoveEvent event) { - return new Runnable() { - public void run() { - SWTTreeChangeListenerWrapper.this.nodeRemoved_(event); - } - @Override - public String toString() { - return "node removed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildTreeClearedRunnable(final TreeClearEvent event) { - return new Runnable() { - public void run() { - SWTTreeChangeListenerWrapper.this.treeCleared_(event); - } - @Override - public String toString() { - return "tree cleared runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildTreeChangedRunnable(final TreeChangeEvent event) { - return new Runnable() { - public void run() { - SWTTreeChangeListenerWrapper.this.treeChanged_(event); - } - @Override - public String toString() { - return "tree changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return Display.getCurrent() != null; - } - - /** - * {@link Display#asyncExec(Runnable)} seems to work OK; - * but using {@link Display#syncExec(Runnable)} can somtimes make things - * more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnUIThread(Runnable r) { - Display.getDefault().asyncExec(r); -// Display.getDefault().syncExec(r); - } - - void nodeAdded_(TreeAddEvent event) { - this.listener.nodeAdded(event); - } - - void nodeRemoved_(TreeRemoveEvent event) { - this.listener.nodeRemoved(event); - } - - void treeCleared_(TreeClearEvent event) { - this.listener.treeCleared(event); - } - - void treeChanged_(TreeChangeEvent event) { - this.listener.treeChanged(event); - } - - @Override - public String toString() { - return "SWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/properties/JptProjectPropertiesPage.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/properties/JptProjectPropertiesPage.java deleted file mode 100644 index 421e4987a8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/properties/JptProjectPropertiesPage.java +++ /dev/null @@ -1,432 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.properties; - -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.IWorkspaceRunnable; -import org.eclipse.core.resources.IncrementalProjectBuilder; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.ProgressMonitorDialog; -import org.eclipse.jface.operation.IRunnableContext; -import org.eclipse.jface.operation.IRunnableWithProgress; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.BufferedWritablePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.SimpleChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jst.common.project.facet.core.libprov.IPropertyChangeListener; -import org.eclipse.jst.common.project.facet.core.libprov.LibraryInstallDelegate; -import org.eclipse.jst.common.project.facet.ui.libprov.LibraryFacetPropertyPage; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Link; -import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer; -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.ui.internal.FacetsPropertyPage; - - -public abstract class JptProjectPropertiesPage - extends LibraryFacetPropertyPage { - - protected final WritablePropertyValueModel projectModel; - protected final BufferedWritablePropertyValueModel.Trigger trigger; - - protected final ChangeListener validationListener; - - - public JptProjectPropertiesPage() { - super(); - - this.projectModel = new SimplePropertyValueModel(); - this.trigger = new BufferedWritablePropertyValueModel.Trigger(); - - buildModels(); - - this.validationListener = this.buildValidationListener(); - } - - - /** - * Build any additional models needed by this page. The project model has been created at this - * point. - */ - protected abstract void buildModels(); - - - // ********** convenience methods ********** - - protected static boolean flagIsSet(PropertyValueModel flagModel) { - Boolean flag = flagModel.getValue(); - return (flag != null) && flag.booleanValue(); - } - - - // ********** LibraryFacetPropertyPage implementation ********** - - @Override - protected LibraryInstallDelegate createLibraryInstallDelegate(IFacetedProject project, IProjectFacetVersion fv) { - LibraryInstallDelegate lid = new LibraryInstallDelegate(project, fv, null); - lid.addListener(buildLibraryProviderListener()); - return lid; - } - - protected IPropertyChangeListener buildLibraryProviderListener() { - return new IPropertyChangeListener() { - public void propertyChanged(String property, Object oldValue, Object newValue ) { - if (LibraryInstallDelegate.PROP_AVAILABLE_PROVIDERS.equals(property)) { - adjustLibraryProviders(); - } - } - }; - } - - protected abstract void adjustLibraryProviders(); - - - // ********** page ********** - - @Override - protected Control createPageContents(Composite parent) { - if (this.projectModel.getValue() != null) { - disengageListeners(); - } - - this.projectModel.setValue(getProject()); - - Composite composite = new Composite(parent, SWT.NONE); - GridLayout layout = new GridLayout(); - layout.marginWidth = 0; - layout.marginHeight = 0; - composite.setLayout(layout); - - createWidgets(composite); - - Dialog.applyDialogFont(composite); - - adjustLibraryProviders(); - - engageListeners(); - updateValidation(); - - return composite; - } - - /** - * Build specific widgets. Layout and validation will be taken care of. - */ - protected abstract void createWidgets(Composite parent); - - protected void engageListeners() { - engageValidationListener(); - } - - protected void disengageListeners() { - disengageValidationListener(); - } - - protected Link buildFacetsPageLink(Composite parent, String text) { - Link facetsPageLink = buildLink(parent, text); - facetsPageLink.addSelectionListener(buildFacetsPageLinkListener()); // the link will be GCed - return facetsPageLink; - } - - private SelectionListener buildFacetsPageLinkListener() { - return new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - openProjectFacetsPage(); - } - @Override - public String toString() { - return "facets page link listener"; //$NON-NLS-1$ - } - }; - } - - protected void openProjectFacetsPage() { - ((IWorkbenchPreferenceContainer)getContainer()).openPage(FacetsPropertyPage.ID, null); - } - - /** - * Don't allow {@link org.eclipse.jface.preference.PreferencePage#computeSize()} - * to cache the page's size, since the size of the "Library" panel can - * change depending on the user's selection from the drop-down list. - */ - @Override - public Point computeSize() { - return this.doComputeSize(); - } - - - // ********** widgets ********** - - protected Button buildCheckBox(Composite parent, int horizontalSpan, String text) { - return buildButton(parent, horizontalSpan, text, SWT.CHECK); - } - - protected Button buildRadioButton(Composite parent, int horizontalSpan, String text) { - return buildButton(parent, horizontalSpan, text, SWT.RADIO); - } - - protected Button buildButton(Composite parent, int horizontalSpan, String text, int style) { - Button button = new Button(parent, SWT.NONE | style); - button.setText(text); - GridData gd = new GridData(); - gd.horizontalSpan = horizontalSpan; - button.setLayoutData(gd); - return button; - } - - protected Combo buildDropDown(Composite parent) { - return buildDropDown(parent, 1); - } - - protected Combo buildDropDown(Composite parent, int horizontalSpan) { - Combo combo = new Combo(parent, SWT.READ_ONLY); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.horizontalSpan = horizontalSpan; - combo.setLayoutData(gd); - return combo; - } - - protected Label buildLabel(Composite parent, String text) { - Label label = new Label(parent, SWT.LEFT); - label.setText(text); - GridData gd = new GridData(); - gd.horizontalSpan = 1; - label.setLayoutData(gd); - return label; - } - - protected Link buildLink(Composite parent, String text) { - Link link = new Link(parent, SWT.NONE); - GridData data = new GridData(GridData.END, GridData.CENTER, false, false); - data.horizontalSpan = 2; - link.setLayoutData(data); - link.setText(text); - return link; - } - - - // ********** OK/Revert/Apply behavior ********** - - @Override - public boolean performOk() { - super.performOk(); - - try { - // true=fork; false=uncancellable - this.buildOkProgressMonitorDialog().run(true, false, this.buildOkRunnableWithProgress()); - } - catch (InterruptedException ex) { - return false; - } - catch (InvocationTargetException ex) { - throw new RuntimeException(ex.getTargetException()); - } - - return true; - } - - private IRunnableContext buildOkProgressMonitorDialog() { - return new ProgressMonitorDialog(this.getShell()); - } - - private IRunnableWithProgress buildOkRunnableWithProgress() { - return new IRunnableWithProgress() { - public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { - IWorkspace ws = ResourcesPlugin.getWorkspace(); - try { - // the build we execute in #performOk_() locks the workspace root, - // so we need to use the workspace root as our scheduling rule here - ws.run( - buildOkWorkspaceRunnable(), - ws.getRoot(), - IWorkspace.AVOID_UPDATE, - monitor); - } - catch (CoreException ex) { - throw new InvocationTargetException(ex); - } - } - }; - } - - /* private */ IWorkspaceRunnable buildOkWorkspaceRunnable() { - return new IWorkspaceRunnable() { - public void run(IProgressMonitor monitor) throws CoreException { - performOk_(monitor); - } - }; - } - - // ********** OK/Revert/Apply behavior ********** - - void performOk_(IProgressMonitor monitor) throws CoreException { - if (isBuffering()) { - boolean rebuild = projectRebuildRequired(); - this.trigger.accept(); - if (rebuild) { - rebuildProject(); - } - this.getProject().build(IncrementalProjectBuilder.FULL_BUILD, monitor); - } - } - - protected abstract boolean projectRebuildRequired(); - - protected abstract void rebuildProject(); - - /** - * Return whether any of the models are buffering a change. - */ - private boolean isBuffering() { - for (BufferedWritablePropertyValueModel model : buildBufferedModels()) { - if (model.isBuffering()) { - return true; - } - } - return false; - } - - protected abstract BufferedWritablePropertyValueModel[] buildBufferedModels(); - - @Override - protected void performDefaults() { - super.performDefaults(); - this.trigger.reset(); - } - - - // ********** dispose ********** - - @Override - public void dispose() { - disengageListeners(); - super.dispose(); - } - - - // ********** validation ********** - - private ChangeListener buildValidationListener() { - return new SimpleChangeListener() { - @Override - protected void modelChanged() { - validate(); - } - @Override - public String toString() { - return "validation listener"; //$NON-NLS-1$ - } - }; - } - - protected void validate() { - if ( ! getControl().isDisposed()) { - updateValidation(); - } - } - - private void engageValidationListener() { - for (Model model : buildValidationModels()) { - model.addChangeListener(this.validationListener); - } - } - - protected abstract Model[] buildValidationModels(); - - private void disengageValidationListener() { - for (Model model : buildReverseValidationModels()) { - model.removeChangeListener(this.validationListener); - } - } - - protected Model[] buildReverseValidationModels() { - return ArrayTools.reverse(buildValidationModels()); - } - - protected static final Integer ERROR_STATUS = Integer.valueOf(IStatus.ERROR); - protected static final Integer WARNING_STATUS = Integer.valueOf(IStatus.WARNING); - protected static final Integer INFO_STATUS = Integer.valueOf(IStatus.INFO); - protected static final Integer OK_STATUS = Integer.valueOf(IStatus.OK); - - protected IStatus buildInfoStatus(String message) { - return this.buildStatus(IStatus.INFO, message); - } - - protected IStatus buildWarningStatus(String message) { - return this.buildStatus(IStatus.WARNING, message); - } - - protected IStatus buildErrorStatus(String message) { - return this.buildStatus(IStatus.ERROR, message); - } - - protected IStatus buildStatus(int severity, String message) { - return new Status(severity, JptCommonCorePlugin.PLUGIN_ID, message); - } - - @Override - protected IStatus performValidation() { - HashMap> statuses = new HashMap>(); - statuses.put(ERROR_STATUS, new ArrayList()); - statuses.put(WARNING_STATUS, new ArrayList()); - statuses.put(INFO_STATUS, new ArrayList()); - statuses.put(OK_STATUS, CollectionTools.list(Status.OK_STATUS)); - - performValidation(statuses); - - if ( ! statuses.get(ERROR_STATUS).isEmpty()) { - return statuses.get(ERROR_STATUS).get(0); - } - else if ( ! statuses.get(WARNING_STATUS).isEmpty()) { - return statuses.get(WARNING_STATUS).get(0); - } - else if ( ! statuses.get(INFO_STATUS).isEmpty()) { - return statuses.get(INFO_STATUS).get(0); - } - else { - return statuses.get(OK_STATUS).get(0); - } - } - - protected void performValidation(Map> statuses) { - /* library provider */ - IStatus lpStatus = super.performValidation(); - statuses.get(Integer.valueOf(lpStatus.getSeverity())).add(lpStatus); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java deleted file mode 100644 index c6d11feed7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java +++ /dev/null @@ -1,699 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.swt; - -import java.util.EventListener; -import java.util.EventObject; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; - -/** - * This adapter provides a more object-oriented interface to the items and - * selected item in a combo. - *

- * listHolder contains the items in the combo.
- * selectedItemHolder contains the items in 'listHolder' that are - * selected in the combo. - * - * @param The type of the items in listHolder - * @see ComboModelAdapter - * @see CComboModelAdapter - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public abstract class AbstractComboModelAdapter { - - // ********** model ********** - /** - * A value model on the underlying model list. - */ - protected final ListValueModel listHolder; - - /** - * A listener that allows us to synchronize the combo's contents with - * the model list. - */ - protected final ListChangeListener listChangeListener; - - /** - * A value model on the underlying model selection. - */ - protected final WritablePropertyValueModel selectedItemHolder; - - /** - * A listener that allows us to synchronize the combo's selection with the - * model selection. - */ - protected final PropertyChangeListener selectedItemChangeListener; - - /** - * A converter that converts items in the model list - * to strings that can be put in the combo. - */ - protected StringConverter stringConverter; - - // ********** UI ********** - /** - * The combo we keep synchronized with the model list. - */ - protected final ComboHolder comboHolder; - - /** - * A listener that allows us to synchronize our selection list holder - * with the combo's text. - */ - protected ModifyListener comboModifyListener; - - /** - * A listener that allows us to synchronize our selection list holder - * with the combo's selection. - */ - protected SelectionListener comboSelectionListener; - - /** - * Clients that are interested in selection change events. - */ - @SuppressWarnings("unchecked") - protected final ListenerList selectionChangeListenerList; - - /** - * Clients that are interested in double click events. - */ - @SuppressWarnings("unchecked") - protected final ListenerList doubleClickListenerList; - - /** - * A listener that allows us to stop listening to stuff when the combo - * is disposed. - */ - protected final DisposeListener comboDisposeListener; - - - // ********** constructors ********** - - /** - * Constructor - the list holder, selections holder, combo, and - * string converter are required. - */ - protected AbstractComboModelAdapter( - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ComboHolder comboHolder, - StringConverter stringConverter) - { - super(); - - Assert.isNotNull(listHolder, "The holder of the items"); - Assert.isNotNull(selectedItemHolder, "The holder of the selected item cannot be null"); - Assert.isNotNull(comboHolder, "The holder of the combo widget cannot be null"); - Assert.isNotNull(stringConverter, "The string converter cannot be null"); - - this.listHolder = listHolder; - this.selectedItemHolder = selectedItemHolder; - this.comboHolder = comboHolder; - this.stringConverter = stringConverter; - - this.listChangeListener = this.buildListChangeListener(); - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - - this.selectedItemChangeListener = this.buildSelectedItemChangeListener(); - this.selectedItemHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.selectedItemChangeListener); - - if (this.comboHolder.isEditable()) { - this.comboModifyListener = this.buildComboModifyListener(); - this.comboHolder.addModifyListener(this.comboModifyListener); - } - else { - this.comboSelectionListener = this.buildComboSelectionListener(); - this.comboHolder.addSelectionListener(this.comboSelectionListener); - } - - this.selectionChangeListenerList = this.buildSelectionChangeListenerList(); - this.doubleClickListenerList = this.buildDoubleClickListenerList(); - - this.comboDisposeListener = this.buildComboDisposeListener(); - this.comboHolder.addDisposeListener(this.comboDisposeListener); - - this.synchronizeCombo(); - } - - - // ********** initialization ********** - - protected ListChangeListener buildListChangeListener() { - return new SWTListChangeListenerWrapper(this.buildListChangeListener_()); - } - - protected ListChangeListener buildListChangeListener_() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - AbstractComboModelAdapter.this.listItemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - AbstractComboModelAdapter.this.listItemsRemoved(event); - } - public void itemsMoved(ListMoveEvent event) { - AbstractComboModelAdapter.this.listItemsMoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - AbstractComboModelAdapter.this.listItemsReplaced(event); - } - public void listCleared(ListClearEvent event) { - AbstractComboModelAdapter.this.listCleared(event); - } - public void listChanged(ListChangeEvent event) { - AbstractComboModelAdapter.this.listChanged(event); - } - @Override - public String toString() { - return "list listener"; - } - }; - } - - protected PropertyChangeListener buildSelectedItemChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildSelectedItemChangeListener_()); - } - - protected PropertyChangeListener buildSelectedItemChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - AbstractComboModelAdapter.this.selectedItemChanged(e); - } - }; - } - - protected ModifyListener buildComboModifyListener() { - return new ModifyListener() { - public void modifyText(ModifyEvent event) { - AbstractComboModelAdapter.this.comboSelectionChanged(event); - } - - @Override - public String toString() { - return "combo modify listener"; - } - }; - } - - protected SelectionListener buildComboSelectionListener() { - return new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - AbstractComboModelAdapter.this.comboSelectionChanged(event); - } - - @Override - public String toString() { - return "combo modify listener"; - } - }; - } - - @SuppressWarnings("unchecked") - protected ListenerList buildDoubleClickListenerList() { - return new ListenerList(DoubleClickListener.class); - } - - @SuppressWarnings("unchecked") - protected ListenerList buildSelectionChangeListenerList() { - return new ListenerList(SelectionChangeListener.class); - } - - protected DisposeListener buildComboDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - AbstractComboModelAdapter.this.comboDisposed(event); - } - - @Override - public String toString() { - return "combo dispose listener"; - } - }; - } - - protected void synchronizeCombo() { - this.synchronizeComboItems(); - this.synchronizeComboSelection(); - } - - - // ********** string converter ********** - - public void setStringConverter(StringConverter stringConverter) { - Assert.isNotNull(stringConverter, "The StringConverter cannot be null"); - this.stringConverter = stringConverter; - this.synchronizeCombo(); - } - - - // ********** list ********** - - /** - * Use the string converter to convert the specified item to a - * string that can be added to the combo. - */ - protected String convert(E item) { - return this.stringConverter.convertToString(item); - } - - /** - * Brute force synchronization of combo with the model list. - */ - protected void synchronizeComboItems() { - if (this.comboHolder.isDisposed()) { - return; - } - int len = this.listHolder.size(); - String[] items = new String[len]; - for (int index = 0; index < len; index++) { - items[index] = this.convert(this.listHolder.get(index)); - } - try { - this.comboHolder.setPopulating(true); - this.comboHolder.setItems(items); - } - finally { - this.comboHolder.setPopulating(false); - } - } - - /** - * The model has changed - synchronize the combo. - */ - protected void listItemsAdded(ListAddEvent event) { - if (this.comboHolder.isDisposed()) { - return; - } - - int count = this.comboHolder.getItemCount(); - int index = event.getIndex(); - - for (E item : this.getItems(event)) { - this.comboHolder.add(this.convert(item), index++); - } - - // When the combo is populated, it's possible the selection was already - // set but no items was found, resync the selected item - synchronizeComboSelection(); - } - - /** - * The model has changed - synchronize the combo. - */ - protected void listItemsRemoved(ListRemoveEvent event) { - if (this.comboHolder.isDisposed()) { - return; - } - this.comboHolder.remove(event.getIndex(), event.getIndex() + event.getItemsSize() - 1); - this.synchronizeComboSelection(); - } - - /** - * The model has changed - synchronize the combo. - */ - protected void listItemsMoved(ListMoveEvent event) { - if (this.comboHolder.isDisposed()) { - return; - } - int target = event.getTargetIndex(); - int source = event.getSourceIndex(); - int len = event.getLength(); - int loStart = Math.min(target, source); - int hiStart = Math.max(target, source); - // make a copy of the affected items... - String[] subArray = ArrayTools.subArray(this.comboHolder.getItems(), loStart, hiStart + len - loStart); - // ...move them around... - subArray = ArrayTools.move(subArray, target - loStart, source - loStart, len); - // ...and then put them back - for (int index = 0; index < subArray.length; index++) { - this.comboHolder.setItem(loStart + index, subArray[index]); - } - } - - /** - * The model has changed - synchronize the combo. - */ - protected void listItemsReplaced(ListReplaceEvent event) { - if (this.comboHolder.isDisposed()) { - return; - } - int index = event.getIndex(); - int selectionIndex = this.comboHolder.getSelectionIndex(); - //fixing bug 269100 by setting the populating flag to true - this.comboHolder.setPopulating(true); - try { - for (E item : this.getNewItems(event)) { - this.comboHolder.setItem(index++, this.convert(item)); - } - if (selectionIndex == 0) { - this.comboHolder.setText(this.comboHolder.getItems()[0]); - } - } - finally { - this.comboHolder.setPopulating(false); - } - } - - /** - * The model has changed - synchronize the combo. - */ - protected void listCleared(ListClearEvent event) { - if (this.comboHolder.isDisposed()) { - return; - } - this.comboHolder.setPopulating(true); - try { - this.comboHolder.removeAll(); - } - finally { - this.comboHolder.setPopulating(false); - } - } - - /** - * The model has changed - synchronize the combo. - */ - protected void listChanged(ListChangeEvent event) { - this.synchronizeCombo(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(ListAddEvent event) { - return (Iterable) event.getItems(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getNewItems(ListReplaceEvent event) { - return (Iterable) event.getNewItems(); - } - - - // ********** selected items ********** - - protected int indexOf(E item) { - int length = this.listHolder.size(); - for (int index = 0; index < length; index++) { - if (valuesAreEqual(this.listHolder.get(index), item)) { - return index; - } - } - return -1; - } - - protected void synchronizeComboSelection() { - if (this.comboHolder.isDisposed() || this.comboHolder.isPopulating()) { - return; - } - - E selectedValue = this.selectedItemHolder.getValue(); - if (this.comboHolder.getText().equals(selectedValue)) { - //if the selection is still the same, don't reset it - return; - } - this.comboHolder.setPopulating(true); - try { - this.comboHolder.deselectAll(); - String selectedItem = this.convert(selectedValue); - if (selectedItem == null) { - selectedItem = ""; - } - this.comboHolder.setText(selectedItem); - this.notifyListeners(selectedValue); - } - finally { - this.comboHolder.setPopulating(false); - } - } - - protected void selectedItemChanged(PropertyChangeEvent event) { - this.synchronizeComboSelection(); - } - - /** - * Return whether the values are equal, with the appropriate null checks. - * Convenience method for checking whether an attribute value has changed. - */ - protected final boolean valuesAreEqual(Object value1, Object value2) { - if ((value1 == null) && (value2 == null)) { - return true; // both are null - } - if ((value1 == null) || (value2 == null)) { - return false; // one is null but the other is not - } - return value1.equals(value2); - } - - // ********** combo events ********** - - protected void comboSelectionChanged(SelectionEvent event) { - this.selectionChanged(); - } - - protected void comboSelectionChanged(ModifyEvent event) { - this.selectionChanged(); - } - - protected void selectionChanged() { - if (!this.comboHolder.isPopulating()) { - E selectedItem = this.selectedItem(); - this.comboHolder.setPopulating(true); - try { - this.selectedItemHolder.setValue(selectedItem); - this.notifyListeners(selectedItem); - } - finally { - this.comboHolder.setPopulating(false); - } - } - } - - private void notifyListeners(E selectedItem) { - if (this.selectionChangeListenerList.size() > 0) { - SelectionChangeEvent scEvent = new SelectionChangeEvent(this, selectedItem); - for (SelectionChangeListener selectionChangeListener : this.selectionChangeListenerList.getListeners()) { - selectionChangeListener.selectionChanged(scEvent); - } - } - } - - @SuppressWarnings("unchecked") - protected E selectedItem() { - if (this.comboHolder.isDisposed()) { - return null; - } - - if (this.comboHolder.isEditable()) { - String text = this.comboHolder.getText(); - - if (text.length() == 0) { - return null; - } - - for (int index = this.listHolder.size(); --index >= 0; ) { - E item = this.listHolder.get(index); - String value = this.convert(item); - if (valuesAreEqual(text, value)) { - return item; - } - } - - // TODO: Find a way to prevent this type cast (it'll work if E is - // String but it won't work if E is something else), maybe use a - // BidiStringConverter instead of StringConverter - try { - return (E) text; - } - catch (ClassCastException e) { - return null; - } - } - - int index = this.comboHolder.getSelectionIndex(); - - if (index == -1) { - return null; - } - - return this.listHolder.get(index); - } - - protected void comboDoubleClicked(SelectionEvent event) { - if (this.comboHolder.isDisposed()) { - return; - } - if (this.doubleClickListenerList.size() > 0) { - // there should be only a single item selected during a double-click(?) - E selection = this.listHolder.get(this.comboHolder.getSelectionIndex()); - DoubleClickEvent dcEvent = new DoubleClickEvent(this, selection); - for (DoubleClickListener doubleClickListener : this.doubleClickListenerList.getListeners()) { - doubleClickListener.doubleClick(dcEvent); - } - } - } - - - // ********** dispose ********** - - protected void comboDisposed(DisposeEvent event) { - // the combo is not yet "disposed" when we receive this event - // so we can still remove our listeners - this.comboHolder.removeDisposeListener(this.comboDisposeListener); - if (this.comboHolder.isEditable()) { - this.comboHolder.removeModifyListener(this.comboModifyListener); - } - else { - this.comboHolder.removeSelectionListener(this.comboSelectionListener); - } - this.selectedItemHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.selectedItemChangeListener); - this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listHolder); - } - - - // ********** double click support ********** - - public void addDoubleClickListener(DoubleClickListener listener) { - this.doubleClickListenerList.add(listener); - } - - public void removeDoubleClickListener(DoubleClickListener listener) { - this.doubleClickListenerList.remove(listener); - } - - public interface DoubleClickListener extends EventListener { - void doubleClick(DoubleClickEvent event); - } - - public static class DoubleClickEvent extends EventObject { - private final E selection; - private static final long serialVersionUID = 1L; - - protected DoubleClickEvent(AbstractComboModelAdapter source, E selection) { - super(source); - if (selection == null) { - throw new NullPointerException(); - } - this.selection = selection; - } - - @Override - @SuppressWarnings("unchecked") - public AbstractComboModelAdapter getSource() { - return (AbstractComboModelAdapter) super.getSource(); - } - - public E selection() { - return this.selection; - } - } - - - // ********** selection support ********** - - public void addSelectionChangeListener(SelectionChangeListener listener) { - this.selectionChangeListenerList.add(listener); - } - - public void removeSelectionChangeListener(SelectionChangeListener listener) { - this.selectionChangeListenerList.remove(listener); - } - - public interface SelectionChangeListener extends EventListener { - void selectionChanged(SelectionChangeEvent event); - } - - public static class SelectionChangeEvent extends EventObject { - private final E selectedItem; - private static final long serialVersionUID = 1L; - - protected SelectionChangeEvent(AbstractComboModelAdapter source, E selectedItem) { - super(source); - this.selectedItem = selectedItem; - } - - @Override - @SuppressWarnings("unchecked") - public AbstractComboModelAdapter getSource() { - return (AbstractComboModelAdapter) super.getSource(); - } - - public E selectedItem() { - return this.selectedItem; - } - } - - // ********** Internal member ********** - - /** - * This holder is required for supporting Combo and - * CCombo transparently. - */ - protected static interface ComboHolder { - void add(String item, int index); - void addDisposeListener(DisposeListener disposeListener); - void addModifyListener(ModifyListener modifyListener); - void addSelectionListener(SelectionListener selectionListener); - void deselectAll(); - int getItemCount(); - String[] getItems(); - int getSelectionIndex(); - String getText(); - boolean isDisposed(); - boolean isEditable(); - boolean isPopulating(); - void removeDisposeListener(DisposeListener disposeListener); - void removeModifyListener(ModifyListener modifyListener); - void removeSelectionListener(SelectionListener selectionListener); - void setItem(int index, String item); - void setItems(String[] items); - void setPopulating(boolean populating); - void setText(String item); - void remove(int start, int end); - void removeAll(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ColumnAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ColumnAdapter.java deleted file mode 100644 index 775bf91e4c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ColumnAdapter.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.swt; - -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This adapter is used by the table model adapter to convert a model object - * into the models used for each of the cells for the object's corresponding row - * in the table. - * - * @version 2.0 - * @since 2.0 - */ -public interface ColumnAdapter { - - /** - * Return the cell models for the specified subject - * that corresponds to a single row in the table. - */ - WritablePropertyValueModel[] cellModels(V subject); - - /** - * Returns the number of columns in the table. Typically this is static. - * - * @return The number of columns - */ - int columnCount(); - - /** - * Returns the name of the column at the specified index. - * - * @param columnIndex The index of the column to retrieve its display text - * @return The display text of the column - */ - String columnName(int columnIndex); - - /** - * Returns whether the specified column is editable. Typically this is the - * same for every row. - * - * @param columnIndex The index of the column for which we determine if - * the content can be modified - * @return true to allow editing of the cell at the given - * column index; false to keep it not editable - */ -// boolean columnIsEditable(int columnIndex); -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java deleted file mode 100644 index 39794a9cc7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.swt; - -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.widgets.Combo; - -/** - * This adapter provides a more object-oriented interface to the items and - * selected item in a Combo. - *

- * listHolder contains the items in the Combo.
- * selectedItemHolder contains the items in 'listHolder' that are - * selected in the Combo. - * - * @param The type of the items in listHolder - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public class ComboModelAdapter extends AbstractComboModelAdapter { - - // ********** static methods ********** - - /** - * Adapt the specified model list and selection to the specified combo. - * Use the default string converter to convert the model items to strings - * to be displayed in the combo, which calls #toString() on the - * items in the model list. - */ - public static ComboModelAdapter adapt( - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - Combo combo) - { - return adapt( - listHolder, - selectedItemHolder, - combo, - StringConverter.Default.instance() - ); - } - - /** - * Adapt the specified model list and selection to the specified combo. - * Use the specified string converter to convert the model items to strings - * to be displayed in the combo. - */ - public static ComboModelAdapter adapt( - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - Combo combo, - StringConverter stringConverter) - { - return new ComboModelAdapter( - listHolder, - selectedItemHolder, - combo, - stringConverter - ); - } - - - // ********** constructors ********** - - /** - * Constructor - the list holder, selections holder, combo, and - * string converter are required. - */ - protected ComboModelAdapter( - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - Combo combo, - StringConverter stringConverter) - { - super(listHolder, - selectedItemHolder, - new SWTComboHolder(combo), - stringConverter); - } - - - // ********** Internal member ********** - - private static class SWTComboHolder implements ComboHolder { - private final Combo combo; - private final boolean editable; - private String selectedItem; - - SWTComboHolder(Combo combo) { - super(); - this.combo = combo; - this.editable = (combo.getStyle() & SWT.READ_ONLY) == 0; - } - - public void add(String item, int index) { - this.combo.add(item, index); - - // It is possible the selected item was set before the combo is being - // populated, update the selected item if it's matches the item being - // added - if ((this.selectedItem != null) && this.selectedItem.equals(item)) { - this.setText(this.selectedItem); - this.selectedItem = null; - } - } - - public void addDisposeListener(DisposeListener disposeListener) { - this.combo.addDisposeListener(disposeListener); - } - - public void addModifyListener(ModifyListener modifyListener) { - this.combo.addModifyListener(modifyListener); - } - - public void addSelectionListener(SelectionListener selectionListener) { - this.combo.addSelectionListener(selectionListener); - } - - public void deselectAll() { - this.combo.deselectAll(); - } - - public int getItemCount() { - return this.combo.getItemCount(); - } - - public String[] getItems() { - return this.combo.getItems(); - } - - public int getSelectionIndex() { - return this.combo.getSelectionIndex(); - } - - public String getText() { - return this.combo.getText(); - } - - public boolean isDisposed() { - return this.combo.isDisposed(); - } - - public boolean isEditable() { - return this.editable; - } - - public boolean isPopulating() { - return this.combo.getData("populating") == Boolean.TRUE; - } - - public void remove(int start, int end) { - this.combo.remove(start, end); - } - - public void removeAll() { - this.combo.removeAll(); - } - - public void removeDisposeListener(DisposeListener disposeListener) { - this.combo.removeDisposeListener(disposeListener); - } - - public void removeModifyListener(ModifyListener modifyListener) { - this.combo.removeModifyListener(modifyListener); - } - - public void removeSelectionListener(SelectionListener selectionListener) { - this.combo.removeSelectionListener(selectionListener); - } - - public void setItem(int index, String item) { - this.combo.setItem(index, item); - } - - public void setItems(String[] items) { - this.combo.setItems(items); - } - - public void setPopulating(boolean populating) { - this.combo.setData("populating", Boolean.valueOf(populating)); - } - - public void setText(String item) { - - // Keep track of the selected item since it's possible the selected - // item is before the combo is populated - if (this.combo.getItemCount() == 0) { - this.selectedItem = item; - } - else { - this.selectedItem = null; - } - this.combo.setText(item); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java deleted file mode 100644 index 7347f3e70b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java +++ /dev/null @@ -1,352 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.swt; - -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -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.widgets.DateTime; - -/** - * This adapter can be used to keep a DateTime widget in synch with - * model integers hours, minutes, and seconds. Has default hours, - * minutes and seconds of 0 which corresponds to 12:00:00 AM. This model - * adapter can only be used for a DateTime widget with the style SWT.TIME - */ -@SuppressWarnings("nls") -public class DateTimeModelAdapter { - - /** - * A value model on the underlying model hours integer. - */ - protected final WritablePropertyValueModel hoursHolder; - - /** - * A value model on the underlying model minutes integer. - */ - protected final WritablePropertyValueModel minutesHolder; - - /** - * A value model on the underlying model seconds integer. - */ - protected final WritablePropertyValueModel secondsHolder; - - /** - * A listener that allows us to synchronize the dateTime's selection state with - * the model hours integer. - */ - protected final PropertyChangeListener hoursPropertyChangeListener; - - /** - * A listener that allows us to synchronize the dateTime's selection state with - * the model minutes integer. - */ - protected final PropertyChangeListener minutesPropertyChangeListener; - - /** - * A listener that allows us to synchronize the dateTime's selection state with - * the model seconds integer. - */ - protected final PropertyChangeListener secondsPropertyChangeListener; - - /** - * The dateTime we keep synchronized with the model integers. - */ - protected final DateTime dateTime; - - /** - * A listener that allows us to synchronize our selection number holder - * with the spinner's value. - */ - protected final SelectionListener dateTimeSelectionListener; - - /** - * A listener that allows us to stop listening to stuff when the dateTime - * is disposed. - */ - protected final DisposeListener dateTimeDisposeListener; - - /** - * This lock is used to prevent the listeners to be notified when the value - * changes from the spinner or from the holder. - */ - private boolean locked; - - // ********** static methods ********** - - /** - * Adapt the specified model integer holders to the specified dateTime. - */ - public static DateTimeModelAdapter adapt( - WritablePropertyValueModel hoursHolder, - WritablePropertyValueModel minutesHolder, - WritablePropertyValueModel secondsHolder, - DateTime dateTime) - { - return new DateTimeModelAdapter(hoursHolder, minutesHolder, secondsHolder, dateTime); - } - - - // ********** constructors ********** - - /** - * Constructor - the hoursHolder, minutesHolder, secondsHolder, and dateTime are required - */ - protected DateTimeModelAdapter(WritablePropertyValueModel hoursHolder, - WritablePropertyValueModel minutesHolder, - WritablePropertyValueModel secondsHolder, - DateTime dateTime) { - super(); - if ((hoursHolder == null) - || (minutesHolder == null) - || (secondsHolder == null) - || (dateTime == null)) { - throw new NullPointerException(); - } - this.hoursHolder = hoursHolder; - this.minutesHolder = minutesHolder; - this.secondsHolder = secondsHolder; - this.dateTime = dateTime; - - this.hoursPropertyChangeListener = this.buildHoursPropertyChangeListener(); - this.hoursHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.hoursPropertyChangeListener); - - this.minutesPropertyChangeListener = this.buildMinutesPropertyChangeListener(); - this.minutesHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.minutesPropertyChangeListener); - - this.secondsPropertyChangeListener = this.buildSecondsPropertyChangeListener(); - this.secondsHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.secondsPropertyChangeListener); - - this.dateTimeSelectionListener = this.buildDateTimeSelectionListener(); - this.dateTime.addSelectionListener(this.dateTimeSelectionListener); - - this.dateTimeDisposeListener = this.buildDateTimeDisposeListener(); - this.dateTime.addDisposeListener(this.dateTimeDisposeListener); - - this.updateDateTimeHours(hoursHolder.getValue()); - this.updateDateTimeMinutes(minutesHolder.getValue()); - this.updateDateTimeSeconds(secondsHolder.getValue()); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildHoursPropertyChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildHoursPropertyChangeListener_()); - } - - protected PropertyChangeListener buildHoursPropertyChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - DateTimeModelAdapter.this.hoursChanged(event); - } - @Override - public String toString() { - return "dateTime hours listener"; - } - }; - } - - protected PropertyChangeListener buildMinutesPropertyChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildMinutesPropertyChangeListener_()); - } - - protected PropertyChangeListener buildMinutesPropertyChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - DateTimeModelAdapter.this.minutesChanged(event); - } - @Override - public String toString() { - return "dateTime minutes listener"; - } - }; - } - - protected PropertyChangeListener buildSecondsPropertyChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildSecondsPropertyChangeListener_()); - } - - protected PropertyChangeListener buildSecondsPropertyChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - DateTimeModelAdapter.this.secondsChanged(event); - } - @Override - public String toString() { - return "dateTime seconds listener"; - } - }; - } - - protected SelectionListener buildDateTimeSelectionListener() { - return new SelectionListener() { - public void widgetSelected(SelectionEvent e) { - DateTimeModelAdapter.this.dateTimeSelected(e); - } - - public void widgetDefaultSelected(SelectionEvent e) { - } - - @Override - public String toString() { - return "dateTime selection listener"; - } - }; - } - - protected DisposeListener buildDateTimeDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - DateTimeModelAdapter.this.dateTimeDisposed(event); - } - @Override - public String toString() { - return "dateTime dispose listener"; - } - }; - } - - - // ********** model events ********** - - protected void hoursChanged(PropertyChangeEvent event) { - if (!this.locked) { - this.updateDateTimeHours((Integer) event.getNewValue()); - } - } - - protected void minutesChanged(PropertyChangeEvent event) { - if (!this.locked) { - this.updateDateTimeMinutes((Integer) event.getNewValue()); - } - } - - protected void secondsChanged(PropertyChangeEvent event) { - if (!this.locked) { - this.updateDateTimeSeconds((Integer) event.getNewValue()); - } - } - - // ********** dateTime events ********** - - protected void dateTimeSelected(SelectionEvent event) { - if (!this.locked) { - this.locked = true; - try { - //too bad they didn't split the event up - hoursSelected(); - minutesSelected(); - secondsSelected(); - } - finally { - this.locked = false; - } - } - } - - protected void hoursSelected() { - Integer hours = null; - if (this.dateTime.getHours() != 0) { - hours = Integer.valueOf(this.dateTime.getHours()); - } - this.hoursHolder.setValue(hours); - } - - protected void minutesSelected() { - Integer minutes = null; - if (this.dateTime.getMinutes() != 0) { - minutes = Integer.valueOf(this.dateTime.getMinutes()); - } - this.minutesHolder.setValue(minutes); - } - - protected void secondsSelected() { - Integer seconds = null; - if (this.dateTime.getSeconds() != 0) { - seconds = Integer.valueOf(this.dateTime.getSeconds()); - } - this.secondsHolder.setValue(seconds); - } - - protected void dateTimeDisposed(DisposeEvent event) { - // the dateTime is not yet "disposed" when we receive this event - // so we can still remove our listeners - this.dateTime.removeDisposeListener(this.dateTimeDisposeListener); - this.dateTime.removeSelectionListener(this.dateTimeSelectionListener); - this.hoursHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.hoursPropertyChangeListener); - this.minutesHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.minutesPropertyChangeListener); - this.secondsHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.secondsPropertyChangeListener); - } - - // ********** update ********** - - protected void updateDateTimeHours(Integer hours) { - if (this.dateTime.isDisposed()) { - return; - } - if (hours == null) { - hours = Integer.valueOf(0);//TODO defaultHours - } - this.locked = true; - try { - this.dateTime.setHours(hours.intValue()); - } - finally { - this.locked = false; - } - } - - protected void updateDateTimeMinutes(Integer minutes) { - if (this.dateTime.isDisposed()) { - return; - } - if (minutes == null) { - minutes = Integer.valueOf(0);//TODO defaultMinutes - } - this.locked = true; - try { - this.dateTime.setMinutes(minutes.intValue()); - } - finally { - this.locked = false; - } - } - - protected void updateDateTimeSeconds(Integer seconds) { - if (this.dateTime.isDisposed()) { - return; - } - if (seconds == null) { - seconds = Integer.valueOf(0);//TODO defaultSeconds - } - this.locked = true; - try { - this.dateTime.setSeconds(seconds.intValue()); - } - finally { - this.locked = false; - } - } - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.hoursHolder); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java deleted file mode 100644 index dabb63eb3a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.swt; - -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.widgets.Spinner; - -/** - * - */ -@SuppressWarnings("nls") -public class SpinnerModelAdapter { - - /** - * A value model on the underlying model list. - */ - protected final WritablePropertyValueModel numberHolder; - - /** - * A listener that allows us to synchronize the spinner's contents with - * the model list. - */ - protected final PropertyChangeListener propertyChangeListener; - - /** - * The spinner we keep synchronized with the model string. - */ - protected final Spinner spinner; - - /** - * A listener that allows us to synchronize our selection number holder - * with the spinner's value. - */ - protected final ModifyListener spinnerModifyListener; - - /** - * A listener that allows us to stop listening to stuff when the spinner - * is disposed. - */ - protected final DisposeListener spinnerDisposeListener; - - /** - * The value shown when the number holder's value is null. - */ - protected final int defaultValue; - - /** - * This lock is used to prevent the listeners to be notified when the value - * changes from the spinner or from the holder. - */ - private boolean locked; - - // ********** static methods ********** - - /** - * Adapt the specified model list and selections to the specified spinner. - * Use the specified string converter to convert the model items to strings - * to be displayed in the spinner. - */ - public static SpinnerModelAdapter adapt( - WritablePropertyValueModel numberHolder, - Spinner spinner, - int defaultValue) - { - return new SpinnerModelAdapter(numberHolder, spinner, defaultValue); - } - - - // ********** constructors ********** - - /** - * Constructor - the list holder, selections holder, list box, and - * string converter are required. - */ - protected SpinnerModelAdapter(WritablePropertyValueModel numberHolder, - Spinner spinner, - int defaultValue) { - super(); - if ((numberHolder == null) || (spinner == null)) { - throw new NullPointerException(); - } - this.numberHolder = numberHolder; - this.spinner = spinner; - this.defaultValue = defaultValue; - - this.propertyChangeListener = this.buildPropertyChangeListener(); - this.numberHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener); - - this.spinnerModifyListener = this.buildSpinnerModifyListener(); - this.spinner.addModifyListener(this.spinnerModifyListener); - - this.spinnerDisposeListener = this.buildSpinnerDisposeListener(); - this.spinner.addDisposeListener(this.spinnerDisposeListener); - - this.updateSpinner(numberHolder.getValue()); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildPropertyChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildPropertyChangeListener_()); - } - - protected PropertyChangeListener buildPropertyChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - SpinnerModelAdapter.this.valueChanged(event); - } - @Override - public String toString() { - return "spinner listener"; - } - }; - } - - protected ModifyListener buildSpinnerModifyListener() { - return new ModifyListener() { - public void modifyText(ModifyEvent e) { - SpinnerModelAdapter.this.spinnerModified(e); - } - @Override - public String toString() { - return "spinner selection listener"; - } - }; - } - - protected DisposeListener buildSpinnerDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - SpinnerModelAdapter.this.spinnerDisposed(event); - } - @Override - public String toString() { - return "spinner dispose listener"; - } - }; - } - - - // ********** model events ********** - - protected void valueChanged(PropertyChangeEvent event) { - if (!this.locked) { - this.updateSpinner((Integer) event.getNewValue()); - } - } - - - // ********** spinner events ********** - - protected void spinnerModified(ModifyEvent event) { - if (!this.locked) { - this.locked = true; - try { - this.numberHolder.setValue(this.spinner.getSelection()); - } - finally { - this.locked = false; - } - } - } - - protected void spinnerDisposed(DisposeEvent event) { - // the spinner is not yet "disposed" when we receive this event - // so we can still remove our listeners - this.spinner.removeDisposeListener(this.spinnerDisposeListener); - this.spinner.removeModifyListener(this.spinnerModifyListener); - this.numberHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener); - } - - // ********** update ********** - - protected void updateSpinner(Integer value) { - if (this.spinner.isDisposed()) { - return; - } - // the model can be null, but the spinner cannot - if (value == null) { - value = defaultValue; - } - this.locked = true; - try { - this.spinner.setSelection(value); - } - finally { - this.locked = false; - } - } - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.numberHolder); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java deleted file mode 100644 index cc1a67ec4c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java +++ /dev/null @@ -1,209 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.swt; - -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableItem; - -/** - * This adapter can be used to keep a table item in synch with the properties of - * a model. - */ -@SuppressWarnings("nls") -public class TableItemModelAdapter { - - /** The table item we synchronize with the model. */ - protected final TableItem tableItem; - - /** - * A listener that allows us to stop listening to stuff when the button - * is disposed. - */ - protected final DisposeListener tableItemDisposeListener; - - /** - * Client-supplied adapter that provides with the various column settings and - * converts the objects in the LVM into an array of cell models. - */ - private ColumnAdapter columnAdapter; - - /** - * The value models used to listen to each property that are display by the - * table item. - */ - private WritablePropertyValueModel[] valueHolders; - - /** - * The list of PropertyChangeListeners used to be notified when - * the properties of the model being display into a row change. - */ - private PropertyChangeListener[] propertyChangeListeners; - - /** - * The label used to format the objects into a string representation. - */ - private ITableLabelProvider labelProvider; - - // ********** static methods ********** - - /** - * Adapt the specified boolean to the specified button. - * If the boolean is null, the button's value will be "unselected". - */ - public static TableItemModelAdapter adapt(TableItem tableItem, ColumnAdapter columnAdapter, ITableLabelProvider labelProvider) { - return new TableItemModelAdapter(tableItem, columnAdapter, labelProvider); - } - - - // ********** constructors ********** - - /** - * Constructor - the boolean holder and button are required. - */ - @SuppressWarnings("unchecked") - protected TableItemModelAdapter(TableItem tableItem, ColumnAdapter columnAdapter, ITableLabelProvider labelProvider) { - super(); - if (tableItem == null || columnAdapter == null || labelProvider == null) { - throw new NullPointerException(); - } - this.tableItem = tableItem; - this.labelProvider = labelProvider; - this.columnAdapter = (ColumnAdapter) columnAdapter; - - this.tableItemDisposeListener = this.buildTableItemDisposeListener(); - this.tableItem.addDisposeListener(this.tableItemDisposeListener); - - this.valueHolders = this.columnAdapter.cellModels(tableItem.getData()); - this.propertyChangeListeners = this.buildPropertyChangeListeners(); - - for (int index = this.columnAdapter.columnCount(); --index >= 0; ) { - tableItemChanged(index, tableItem.getData(), false); - valueHolders[index].addPropertyChangeListener(PropertyValueModel.VALUE, propertyChangeListeners[index]); - } - } - - - // ********** initialization ********** - - private PropertyChangeListener[] buildPropertyChangeListeners() { - PropertyChangeListener[] listeners = new PropertyChangeListener[columnAdapter.columnCount()]; - for (int index = listeners.length; --index >= 0; ) { - listeners[index] = buildPropertyChangeListener(index); - } - return listeners; - } - - - protected PropertyChangeListener buildPropertyChangeListener(int index) { - return new SWTPropertyChangeListenerWrapper( - this.buildPropertyChangeListener_(index) - ); - } - - protected PropertyChangeListener buildPropertyChangeListener_(int index) { - return new TableItemPropertyChangeListener(index); - } - - protected DisposeListener buildTableItemDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - TableItemModelAdapter.this.tableItemDisposed(event); - } - @Override - public String toString() { - return "TableItem dispose listener"; - } - }; - } - - - // ********** behavior ********** - - protected void tableItemChanged(int index, Object subject, boolean revalidate) { - - if (!this.tableItem.isDisposed()) { - this.updateTableItemText(index, subject); - this.updateTableItemImage(index, subject); - - if (revalidate) { - this.layoutTable(); - } - } - } - - private void updateTableItemText(int index, Object subject) { - String text = this.labelProvider.getColumnText(subject, index); - if (text == null) { - text = ""; - } - this.tableItem.setText(index, text); - } - - private void updateTableItemImage(int index, Object subject) { - Image image = this.labelProvider.getColumnImage(subject, index); - this.tableItem.setImage(index, image); - } - - private void layoutTable() { - // Refresh the table in order to show the scrollbar if required - Composite container = this.tableItem.getParent().getParent(); - container.computeSize(SWT.DEFAULT, SWT.DEFAULT); - container.layout(); - } - - // ********** dispose ********** - - protected void tableItemDisposed(DisposeEvent event) { - // the button is not yet "disposed" when we receive this event - // so we can still remove our listeners - this.tableItem.removeDisposeListener(this.tableItemDisposeListener); - - for (int index = valueHolders.length; --index >= 0; ) { - valueHolders[index].removePropertyChangeListener(PropertyValueModel.VALUE, propertyChangeListeners[index]); - } - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - private class TableItemPropertyChangeListener implements PropertyChangeListener { - - private final int index; - - TableItemPropertyChangeListener(int index) { - super(); - this.index = index; - } - - public void propertyChanged(PropertyChangeEvent event) { - if (!tableItem.isDisposed()) { - Table table = tableItem.getParent(); - tableItemChanged(index, tableItem.getData(), table.getColumnCount() == 0); - } - } - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java deleted file mode 100644 index 8d3b4e3af9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java +++ /dev/null @@ -1,746 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.swt; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.EventListener; -import java.util.EventObject; -import java.util.Iterator; -import java.util.List; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jpt.common.ui.internal.listeners.SWTCollectionChangeListenerWrapper; -import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyCollectionValueModelAdapter; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel; -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.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.swt.widgets.TableItem; - -/** - * This adapter provides a more object-oriented interface to the items and - * selected items in a table. - * {@link #listHolder} contains the data of a single column in the table. - * {@link #selectedItemsHolder} contains the data of a single column in - * {@link #listHolder} that are selected in the table. - */ -// TODO bjv -@SuppressWarnings("nls") -public class TableModelAdapter { - - // ********** model ********** - /** - * A value model on the underlying model list. - */ - protected final ListValueModel listHolder; - - /** - * A listener that allows us to synchronize the table's contents with - * the model list. - */ - protected final ListChangeListener listChangeListener; - - /** - * A value model on the underlying model selections. - */ - protected final CollectionValueModel selectedItemsHolder; - - /** - * A listener that allows us to synchronize the table's selection with - * the model selections. - */ - protected final CollectionChangeListener selectedItemsChangeListener; - - /** - * The table we keep synchronized with the model list. - */ - protected final Table table; - - /** - * A listener that allows us to synchronize our selection list holder - * with the table's selection. - */ - protected final SelectionListener tableSelectionListener; - - /** - * Clients that are interested in selection change events. - */ - protected final ListenerList> selectionChangeListenerList; - - /** - * Clients that are interested in double click events. - */ - protected final ListenerList> doubleClickListenerList; - - /** - * A listener that allows us to stop listening to stuff when the table - * is disposed. - */ - protected final DisposeListener tableDisposeListener; - - /** - * This label provider is responsible to convert a property at a column index - * to a string value. - */ - protected final ITableLabelProvider labelProvider; - - /** - * The column adapter is responsible to return the count of columns and to - * create the value holders for all the properties. - */ - private ColumnAdapter columnAdapter; - - /** - * Keeps track of the TableItemModelAdapters that were created - * for each item of the list holder. - */ - private List tableItemModelAdapters; - - - // ********** static methods ********** - - /** - * Adapt the specified list model and selection to the specified table. - * Use the specified string converter to convert the model items to strings - * to be displayed in the table. - */ - public static TableModelAdapter adapt( - ListValueModel listHolder, - PropertyValueModel selectedItemHolder, - Table table, - ColumnAdapter columnAdapter, - ITableLabelProvider labelProvider) { - - return new TableModelAdapter( - listHolder, - new PropertyCollectionValueModelAdapter(selectedItemHolder), - table, - columnAdapter, - labelProvider); - } - - /** - * Adapt the specified list model and selection to the specified table. - * The specified selection model will be kept in sync with the table. - * Use the specified string converter to convert the model items to strings - * to be displayed in the table. - */ - public static TableModelAdapter adapt( - ListValueModel listHolder, - WritableCollectionValueModel selectionModel, - Table table, - ColumnAdapter columnAdapter, - ITableLabelProvider labelProvider) { - - TableModelAdapter adapter = - new TableModelAdapter( - listHolder, - selectionModel, - table, - columnAdapter, - labelProvider); - adapter.addSelectionChangeListener(buildSyncListener(selectionModel)); - return adapter; - } - - private static SelectionChangeListener buildSyncListener( - final WritableCollectionValueModel selectionModel) { - - return new SelectionChangeListener() { - public void selectionChanged(SelectionChangeEvent event) { - selectionModel.setValues(CollectionTools.iterable(event.selection())); - } - }; - } - - - // ********** constructors ********** - - /** - * Constructor - the list holder, selections holder, table, and - * string converter are required. - */ - protected TableModelAdapter( - ListValueModel listHolder, - CollectionValueModel selectedItemsHolder, - Table table, - ColumnAdapter columnAdapter, - ITableLabelProvider labelProvider) - { - super(); - if ((listHolder == null) || (selectedItemsHolder == null) || (table == null) || (labelProvider == null)) { - throw new NullPointerException(); - } - this.listHolder = listHolder; - this.selectedItemsHolder = selectedItemsHolder; - this.table = table; - this.columnAdapter = columnAdapter; - this.labelProvider = labelProvider; - this.tableItemModelAdapters = new ArrayList(columnAdapter.columnCount()); - - this.listChangeListener = this.buildListChangeListener(); - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - - this.selectedItemsChangeListener = this.buildSelectedItemsChangeListener(); - this.selectedItemsHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.selectedItemsChangeListener); - - this.tableSelectionListener = this.buildTableSelectionListener(); - this.table.addSelectionListener(this.tableSelectionListener); - - this.selectionChangeListenerList = this.buildSelectionChangeListenerList(); - this.doubleClickListenerList = this.buildDoubleClickListenerList(); - - this.tableDisposeListener = this.buildTableDisposeListener(); - this.table.addDisposeListener(this.tableDisposeListener); - - this.synchronizeTable(); - } - - - // ********** initialization ********** - - protected ListChangeListener buildListChangeListener() { - return new SWTListChangeListenerWrapper(this.buildListChangeListener_()); - } - - protected ListChangeListener buildListChangeListener_() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - TableModelAdapter.this.listItemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - TableModelAdapter.this.listItemsRemoved(event); - } - public void itemsMoved(ListMoveEvent event) { - TableModelAdapter.this.listItemsMoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - TableModelAdapter.this.listItemsReplaced(event); - } - public void listCleared(ListClearEvent event) { - TableModelAdapter.this.listCleared(event); - } - public void listChanged(ListChangeEvent event) { - TableModelAdapter.this.listChanged(event); - } - @Override - public String toString() { - return "TableModelAdapter list listener"; - } - }; - } - - protected CollectionChangeListener buildSelectedItemsChangeListener() { - return new SWTCollectionChangeListenerWrapper(this.buildSelectedItemsChangeListener_()); - } - - protected CollectionChangeListener buildSelectedItemsChangeListener_() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - TableModelAdapter.this.selectedItemsAdded(event); - } - public void itemsRemoved(CollectionRemoveEvent event) { - TableModelAdapter.this.selectedItemsRemoved(event); - } - public void collectionCleared(CollectionClearEvent event) { - TableModelAdapter.this.selectedItemsCleared(event); - } - public void collectionChanged(CollectionChangeEvent event) { - TableModelAdapter.this.selectedItemsChanged(event); - } - @Override - public String toString() { - return "TableModelAdapter selected items listener"; - } - }; - } - - protected SelectionListener buildTableSelectionListener() { - return new SelectionListener() { - public void widgetSelected(SelectionEvent event) { - TableModelAdapter.this.tableSelectionChanged(event); - } - public void widgetDefaultSelected(SelectionEvent event) { - TableModelAdapter.this.tableDoubleClicked(event); - } - @Override - public String toString() { - return "TableModelAdapter table selection listener"; - } - }; - } - - @SuppressWarnings({"rawtypes", "unchecked"}) - protected ListenerList> buildDoubleClickListenerList() { - return new ListenerList(DoubleClickListener.class); - } - - @SuppressWarnings({"rawtypes", "unchecked"}) - protected ListenerList> buildSelectionChangeListenerList() { - return new ListenerList(SelectionChangeListener.class); - } - - protected DisposeListener buildTableDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - TableModelAdapter.this.tableDisposed(event); - } - @Override - public String toString() { - return "TableModelAdapter table dispose listener"; - } - }; - } - - protected void synchronizeTable() { - this.synchronizeTableColumns(); - this.synchronizeTableItems(); - this.synchronizeTableSelection(); - } - - - // ********** list ********** - - /** - * Creates the table colums. - */ - protected void synchronizeTableColumns() { - if (this.table.isDisposed()) { - return; - } - - int columnCount = this.columnAdapter.columnCount(); - - for (int index = 0; index < columnCount; index++) { - TableColumn tableColumn = new TableColumn(this.table, SWT.NULL, index); - tableColumn.setMoveable(false); - tableColumn.setResizable(true); - tableColumn.setWidth(100); - - String columnName = this.columnAdapter.columnName(index); - - if (columnName == null) { - columnName = ""; - } - - tableColumn.setText(columnName); - } - } - - /** - * Brute force synchronization of table with the model list. - */ - protected void synchronizeTableItems() { - if (this.table.isDisposed()) { - return; - } - - for (int index = this.table.getItemCount(); --index >= 0; ) { - this.table.remove(index); - this.tableItemModelAdapters.remove(index); - } - - int itemCount = this.listHolder.size(); - - for (int index = 0; index < itemCount; index++) { - - TableItem tableItem = new TableItem(this.table, SWT.NULL, index); - tableItem.setData(this.listHolder.get(index)); - - TableItemModelAdapter adapter = this.buildItemModel(tableItem); - this.tableItemModelAdapters.add(adapter); - } - } - - /** - * The model has changed - synchronize the table. - */ - protected void listItemsAdded(ListAddEvent event) { - - if (this.table.isDisposed()) { - return; - } - - int index = event.getIndex(); - - for (E item : this.getItems(event)) { - - TableItem tableItem = new TableItem(this.table, SWT.NULL, index); - tableItem.setData(item); - - TableItemModelAdapter adapter = this.buildItemModel(tableItem); - this.tableItemModelAdapters.add(index++, adapter); - } - } - - /** - * The model has changed - synchronize the table. - */ - protected void listItemsRemoved(ListRemoveEvent event) { - - if (this.table.isDisposed()) { - return; - } - - this.table.remove(event.getIndex(), event.getIndex() + event.getItemsSize() - 1); - - for (int index = event.getIndex() + event.getItemsSize(); --index >= event.getIndex(); ) { - this.tableItemModelAdapters.remove(index); - } - } - - /** - * The model has changed - synchronize the table. - */ - protected void listItemsMoved(ListMoveEvent event) { - - if (this.table.isDisposed()) { - return; - } - - int length = event.getLength(); - int sourceIndex = event.getSourceIndex(); - int targetIndex = event.getTargetIndex(); - int lowStartIndex = Math.min(targetIndex, sourceIndex); - int hiStartIndex = Math.max(targetIndex, sourceIndex); - - Object[] items = new Object[hiStartIndex - lowStartIndex + length]; - int itemsIndex = items.length; - - // Remove the TableItems wrapping the moved items - for (int index = hiStartIndex + length; --index >= lowStartIndex; ) { - - TableItemModelAdapter tableItemModel = this.tableItemModelAdapters.get(index); - items[--itemsIndex] = tableItemModel.tableItem.getData(); - - // Remove the TableItem, which will also dispose TableItemModelAdapter - this.table.remove(index); - } - - // Move the items so they can retrieved in the right order when - // re-creating the TableItems - ArrayTools.move( - items, - targetIndex - lowStartIndex, - sourceIndex - lowStartIndex, - length - ); - - itemsIndex = 0; - - // Add TableItems for the moved items - for (int index = lowStartIndex; index <= hiStartIndex + length - 1; index++) { - - // Create the new TableItem - TableItem tableItem = new TableItem(this.table, SWT.NULL, index); - tableItem.setData(items[itemsIndex++]); - - // Adapt it with a model adapter - TableItemModelAdapter adapter = this.buildItemModel(tableItem); - this.tableItemModelAdapters.set(index, adapter); - } - } - - - private TableItemModelAdapter buildItemModel(TableItem tableItem) { - return TableItemModelAdapter.adapt( - tableItem, - this.columnAdapter, - this.labelProvider - ); - } - - /** - * The model has changed - synchronize the table. - */ - protected void listItemsReplaced(ListReplaceEvent event) { - if (this.table.isDisposed()) { - return; - } - - int rowIndex = event.getIndex(); - - for (E item : this.getNewItems(event)) { - TableItem tableItem = this.table.getItem(rowIndex); - tableItem.setData(item); - - TableItemModelAdapter adapter = this.tableItemModelAdapters.get(rowIndex); - - int columnCount = this.columnAdapter.columnCount(); - boolean revalidate = (columnCount == 1); - - for (int columnIndex = columnCount; --columnIndex >= 0; ) { - adapter.tableItemChanged(columnIndex, tableItem.getData(), revalidate); - } - - rowIndex++; - } - } - - /** - * The model has changed - synchronize the table. - */ - protected void listCleared(@SuppressWarnings("unused") ListClearEvent event) { - if (this.table.isDisposed()) { - return; - } - this.table.removeAll(); - } - - /** - * The model has changed - synchronize the table. - */ - protected void listChanged(@SuppressWarnings("unused") ListChangeEvent event) { - this.synchronizeTableItems(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(ListAddEvent event) { - return (Iterable) event.getItems(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getNewItems(ListReplaceEvent event) { - return (Iterable) event.getNewItems(); - } - - - // ********** selected items ********** - - protected int indexOf(E item) { - int len = this.listHolder.size(); - for (int i = 0; i < len; i++) { - if (this.listHolder.get(i) == item) { - return i; - } - } - return -1; - } - - protected void synchronizeTableSelection() { - if (this.table.isDisposed()) { - return; - } - int[] indices = new int[this.selectedItemsHolder.size()]; - int i = 0; - for (E selectedItemHolder : this.selectedItemsHolder) { - indices[i++] = this.indexOf(selectedItemHolder); - } - this.table.deselectAll(); - this.table.select(indices); - } - - protected void selectedItemsAdded(CollectionAddEvent event) { - if (this.table.isDisposed()) { - return; - } - this.table.select(this.getIndices(event.getItemsSize(), this.getItems(event))); - } - - protected void selectedItemsRemoved(CollectionRemoveEvent event) { - if (this.table.isDisposed()) { - return; - } - this.table.deselect(this.getIndices(event.getItemsSize(), this.getItems(event))); - } - - protected int[] getIndices(int itemsSize, Iterable items) { - int[] indices = new int[itemsSize]; - int i = 0; - for (E item : items) { - indices[i++] = this.indexOf(item); - } - return indices; - } - - protected void selectedItemsCleared(@SuppressWarnings("unused") CollectionClearEvent event) { - if (this.table.isDisposed()) { - return; - } - this.table.deselectAll(); - } - - protected void selectedItemsChanged(@SuppressWarnings("unused") CollectionChangeEvent event) { - this.synchronizeTableSelection(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(CollectionAddEvent event) { - return (Iterable) event.getItems(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(CollectionRemoveEvent event) { - return (Iterable) event.getItems(); - } - - - // ********** list box events ********** - - protected void tableSelectionChanged(@SuppressWarnings("unused") SelectionEvent event) { - if (this.selectionChangeListenerList.size() > 0) { - SelectionChangeEvent scEvent = new SelectionChangeEvent(this, this.selectedItems()); - for (SelectionChangeListener selectionChangeListener : this.selectionChangeListenerList.getListeners()) { - selectionChangeListener.selectionChanged(scEvent); - } - } - } - - protected Collection selectedItems() { - if (this.table.isDisposed()) { - return Collections.emptySet(); - } - ArrayList selectedItems = new ArrayList(this.table.getSelectionCount()); - for (int selectionIndex : this.table.getSelectionIndices()) { - selectedItems.add(this.listHolder.get(selectionIndex)); - } - return selectedItems; - } - - protected void tableDoubleClicked(@SuppressWarnings("unused") SelectionEvent event) { - if (this.table.isDisposed()) { - return; - } - if (this.doubleClickListenerList.size() > 0) { - // there should be only a single item selected during a double-click(?) - E selection = this.listHolder.get(this.table.getSelectionIndex()); - DoubleClickEvent dcEvent = new DoubleClickEvent(this, selection); - for (DoubleClickListener doubleClickListener : this.doubleClickListenerList.getListeners()) { - doubleClickListener.doubleClick(dcEvent); - } - } - } - - - // ********** dispose ********** - - protected void tableDisposed(@SuppressWarnings("unused") DisposeEvent event) { - // the table is not yet "disposed" when we receive this event - // so we can still remove our listeners - this.table.removeDisposeListener(this.tableDisposeListener); - this.table.removeSelectionListener(this.tableSelectionListener); - this.selectedItemsHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, this.selectedItemsChangeListener); - this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listHolder); - } - - - // ********** double click support ********** - - public void addDoubleClickListener(DoubleClickListener listener) { - this.doubleClickListenerList.add(listener); - } - - public void removeDoubleClickListener(DoubleClickListener listener) { - this.doubleClickListenerList.remove(listener); - } - - public interface DoubleClickListener extends EventListener { - void doubleClick(DoubleClickEvent event); - } - - public static class DoubleClickEvent extends EventObject { - private final E selection; - private static final long serialVersionUID = 1L; - - protected DoubleClickEvent(TableModelAdapter source, E selection) { - super(source); - if (selection == null) { - throw new NullPointerException(); - } - this.selection = selection; - } - - @Override - @SuppressWarnings("unchecked") - public TableModelAdapter getSource() { - return (TableModelAdapter) super.getSource(); - } - - public E selection() { - return this.selection; - } - - } - - - // ********** selection support ********** - - public void addSelectionChangeListener(SelectionChangeListener listener) { - this.selectionChangeListenerList.add(listener); - } - - public void removeSelectionChangeListener(SelectionChangeListener listener) { - this.selectionChangeListenerList.remove(listener); - } - - public interface SelectionChangeListener extends EventListener { - void selectionChanged(SelectionChangeEvent event); - } - - public static class SelectionChangeEvent extends EventObject { - private final Collection selection; - private static final long serialVersionUID = 1L; - - protected SelectionChangeEvent(TableModelAdapter source, Collection selection) { - super(source); - if (selection == null) { - throw new NullPointerException(); - } - this.selection = selection; - } - - @Override - @SuppressWarnings("unchecked") - public TableModelAdapter getSource() { - return (TableModelAdapter) super.getSource(); - } - - public Iterator selection() { - return this.selection.iterator(); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java deleted file mode 100644 index 2c16b5b31c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.swt; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.ui.internal.widgets.TriStateCheckBox; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; - -/** - * This adapter can be used to keep a tri-state check box in synch with - * a model Boolean where the value can be null. - */ -@SuppressWarnings("nls") -public class TriStateCheckBoxModelAdapter { - - /** A value model on the underlying model boolean. */ - protected final WritablePropertyValueModel booleanHolder; - - /** - * A listener that allows us to synchronize the button's selection state with - * the model boolean. - */ - protected final PropertyChangeListener booleanChangeListener; - - /** The check box/toggle button we synchronize with the model boolean. */ - protected final TriStateCheckBox button; - - /** - * A listener that allows us to synchronize the model boolean with - * the button's selection state. - */ - protected final SelectionListener buttonSelectionListener; - - /** - * A listener that allows us to stop listening to stuff when the button - * is disposed. - */ - protected final DisposeListener buttonDisposeListener; - - - // ********** static methods ********** - - /** - * Adapt the specified boolean to the specified button. - * If the boolean is null, the button's value will be "partially checked" - * (i.e. the button will be checked but grayed out). - */ - public static TriStateCheckBoxModelAdapter adapt(WritablePropertyValueModel booleanHolder, TriStateCheckBox button) { - return new TriStateCheckBoxModelAdapter(booleanHolder, button); - } - - - // ********** constructors ********** - - /** - * Constructor - the boolean holder and button are required. - */ - protected TriStateCheckBoxModelAdapter(WritablePropertyValueModel booleanHolder, TriStateCheckBox button) { - super(); - - Assert.isNotNull(booleanHolder, "The boolean holder cannot be null"); - Assert.isNotNull(button, "The check box cannot be null"); - - this.booleanHolder = booleanHolder; - this.button = button; - - this.booleanChangeListener = this.buildBooleanChangeListener(); - this.booleanHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener); - - this.buttonDisposeListener = this.buildButtonDisposeListener(); - this.button.addDisposeListener(this.buttonDisposeListener); - - this.buttonSelectionListener = this.buildButtonSelectionListener(); - this.button.addSelectionListener(this.buttonSelectionListener); - - this.setButtonSelection(this.booleanHolder.getValue()); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildBooleanChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_()); - } - - protected PropertyChangeListener buildBooleanChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - TriStateCheckBoxModelAdapter.this.booleanChanged(event); - } - @Override - public String toString() { - return "tri-state boolean listener"; - } - }; - } - - protected SelectionListener buildButtonSelectionListener() { - return new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - TriStateCheckBoxModelAdapter.this.buttonSelected(event); - } - @Override - public String toString() { - return "tri-state button selection listener"; - } - }; - } - - protected DisposeListener buildButtonDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - TriStateCheckBoxModelAdapter.this.buttonDisposed(event); - } - @Override - public String toString() { - return "tri-state button dispose listener"; - } - }; - } - - - // ********** behavior ********** - - /** - * The model has changed - synchronize the button. - * If the new model value is null, use the adapter's default value - * (which is typically false). - */ - protected void booleanChanged(PropertyChangeEvent event) { - this.setButtonSelection((Boolean) event.getNewValue()); - } - - protected void setButtonSelection(Boolean selection) { - if (this.button.isDisposed()) { - return; - } - this.button.setSelection(selection); - } - - /** - * The button has been "selected" - synchronize the model. - */ - protected void buttonSelected(SelectionEvent event) { - if (this.button.isDisposed()) { - return; - } - this.booleanHolder.setValue(button.getSelection()); - } - - - // ********** dispose ********** - - protected void buttonDisposed(DisposeEvent event) { - // the button is not yet "disposed" when we receive this event - // so we can still remove our listeners - this.button.removeSelectionListener(this.buttonSelectionListener); - this.button.removeDisposeListener(this.buttonDisposeListener); - this.booleanHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.booleanHolder); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlAligner.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlAligner.java deleted file mode 100644 index ebbd1eed4c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlAligner.java +++ /dev/null @@ -1,913 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import org.eclipse.core.runtime.Assert; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Listener; - -/** - * This class is responsible to set a preferred width on the registered widgets - * (either Control or ControlAligner) based on the - * widest widget. - *

- * Important: The layout data has to be a GridData. If none is set, - * then a new GridData is automatically created. - *

- * Here an example of the result if this aligner is used to align controls - * within either one or two group boxes, the controls added are the labels in - * this case. It is also possible to align controls on the right side of the - * main component, a spacer can be used for extra space. - *

- * Here's an example: - *

- * - Group Box 1 --------------------------------------------------------------
- * |                     -------------------------------------- ------------- |
- * | Name:               | I                                  | | Browse... | |
- * |                     -------------------------------------- ------------- |
- * |                     ---------                                            |
- * | Preallocation Size: |     |I|                                            |
- * |                     ---------                                            |
- * |                     --------------------------------------               |
- * | Descriptor:         |                                  |v|               |
- * |                     --------------------------------------               |
- * ----------------------------------------------------------------------------
- *
- * - Group Box 2 --------------------------------------------------------------
- * |                     --------------------------------------               |
- * | Mapping Type:       |                                  |V|               |
- * |                     --------------------------------------               |
- * |                     --------------------------------------               |
- * | Check in Script:    | I                                  |               |
- * |                     --------------------------------------               |
- * ----------------------------------------------------------------------------
- * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public final class ControlAligner -{ - /** - * Flag used to prevent a validation so it can be done after an operation - * completed. - */ - private boolean autoValidate; - - /** - * The utility class used to support bound properties. - */ - private Collection changeSupport; - - /** - * The listener added to each of the controls that listens only to a text - * change. - */ - private Listener listener; - - /** - * Prevents infinite recursion when recalculating the preferred width. - * This happens in an hierarchy of ControlAligners. The lock - * has to be placed here and not in the {@link ControlAlignerWrapper}. - */ - private boolean locked; - - /** - * The length of the widest control. If the length was not calculated, then - * this value is 0. - */ - private int maximumWidth; - - /** - * The collection of {@link Wrapper}s encapsulating either Controls - * or {@link ControlAligner}s. - */ - private Collection wrappers; - - /** - * A null-Point object used to clear the preferred size. - */ - private static final Point DEFAULT_SIZE = new Point(SWT.DEFAULT, SWT.DEFAULT); - - /** - * The types of events to listen in order to properly adjust the size of all - * the widgets. - */ - private static final int[] EVENT_TYPES = { - SWT.Dispose, - SWT.Hide, - SWT.Resize, - SWT.Show - }; - - /** - * Creates a new ControlAligner. - */ - public ControlAligner() { - super(); - initialize(); - } - - /** - * Creates a new ControlAligner. - * - * @param controls The collection of Controls - */ - public ControlAligner(Collection controls) { - this(); - addAllControls(controls); - } - - /** - * Adds the given control. Its width will be used along with the width of all - * the other registered controls in order to get the greater witdh and use - * it as the width for all the controls. - * - * @param control The Control to be added - */ - public void add(Control control) { - - Assert.isNotNull(control, "Can't add null to this ControlAligner"); - - Wrapper wrapper = buildWrapper(control); - wrapper.addListener(listener); - wrappers.add(wrapper); - - revalidate(false); - } - - /** - * Adds the given control. Its width will be used along with the width of all - * the other registered controls in order to get the greater witdh and use - * it as the width for all the controls. - * - * @param controlAligner The ControlAligner to be added - * @exception IllegalArgumentException Can't add the ControlAligner - * to itself - */ - public void add(ControlAligner controlAligner) { - - Assert.isNotNull(controlAligner, "Can't add null to this ControlAligner"); - Assert.isLegal(controlAligner != this, "Can't add the ControlAligner to itself"); - - Wrapper wrapper = buildWrapper(controlAligner); - wrapper.addListener(listener); - wrappers.add(wrapper); - - if (!controlAligner.wrappers.isEmpty()) { - revalidate(false); - } - } - - /** - * Adds the items contained in the given collection into this - * ControlAligner. The preferred width of each item will be - * used along with the width of all the other items in order to get the - * widest control and use its width as the width for all the controls. - * - * @param aligners The collection of ControlAligners - */ - public void addAllControlAligners(Collection aligners) { - - // Deactivate the auto validation while adding all the Controls and/or - // ControlAligners in order to improve performance - boolean oldAutoValidate = autoValidate; - autoValidate = false; - - for (ControlAligner aligner : aligners) { - add(aligner); - } - - autoValidate = oldAutoValidate; - revalidate(false); - } - - /** - * Adds the items contained in the given collection into this - * ControlAligner. The preferred width of each item will be - * used along with the width of all the other items in order to get the - * widest control and use its width as the width for all the controls. - * - * @param controls The collection of Controls - */ - public void addAllControls(Collection controls) { - - // Deactivate the auto validation while adding all the Controls and/or - // ControlAligners in order to improve performance - boolean oldAutoValidate = autoValidate; - autoValidate = false; - - for (Control control : controls) { - add(control); - } - - autoValidate = oldAutoValidate; - revalidate(false); - } - - /** - * Adds the given ControListener. - * - * @param listener The Listener to be added - */ - private void addListener(Listener listener) { - - if (changeSupport == null) { - changeSupport = new ArrayList(); - } - - changeSupport.add(listener); - } - - /** - * Creates a new Wrapper that encapsulates the given source. - * - * @param control The control to be wrapped - * @return A new {@link Wrapper} - */ - private Wrapper buildWrapper(Control control) { - return new ControlWrapper(control); - } - - /** - * Creates a new Wrapper that encapsulates the given source. - * - * @param ControlAligner The ControlAligner to be wrapped - * @return A new {@link ControlAlignerWrapper} - */ - private Wrapper buildWrapper(ControlAligner ControlAligner) { - return new ControlAlignerWrapper(ControlAligner); - } - - /** - * Calculates the width taken by the widgets and returns the maximum width. - * - * @param recalculateSize true to recalculate the preferred size - * of all the wrappers contained within them rather than using the cached - * size; false to use the cached size - */ - private int calculateWidth(boolean recalculateSize) { - - int width = 0; - - for (Wrapper wrapper : wrappers) { - Point size = wrapper.cachedSize(); - - // The size has not been calculated yet - if (recalculateSize || (size.x == 0)) { - size = wrapper.calculateSize(); - } - - // Only keep the greatest width - width = Math.max(size.x, width); - } - - return width; - } - - /** - * Reports a bound property change. - * - * @param oldValue the old value of the property (as an int) - * @param newValue the new value of the property (as an int) - */ - private void controlResized(int oldValue, int newValue) { - - if ((changeSupport != null) && (oldValue != newValue)) { - Event event = new Event(); - event.widget = SWTUtil.getShell(); - event.data = this; - - for (Listener listener : changeSupport) { - listener.handleEvent(event); - } - } - } - - /** - * Disposes this ControlAligner, this can improve the speed of - * disposing a pane. When a pane is disposed, this aligner doesn't need to - * revalidate its size upon dispose of its widgets. - */ - public void dispose() { - - for (Iterator iter = wrappers.iterator(); iter.hasNext(); ) { - Wrapper wrapper = iter.next(); - wrapper.removeListener(listener); - iter.remove(); - } - - this.wrappers.clear(); - } - - /** - * Returns the length of the widest control. If the length was not - * calculated, then this value is 0. - * - * @return The width of the widest control or 0 if the length has not been - * calculated yet - */ - public int getMaximumWidth() { - return maximumWidth; - } - - /** - * Initializes this ControlAligner. - */ - private void initialize() { - - this.autoValidate = true; - this.maximumWidth = 0; - this.listener = new ListenerHandler(); - this.wrappers = new ArrayList(); - } - - /** - * Invalidates the size of the given object. - * - * @param source The source object to be invalidated - */ - private void invalidate(Object source) { - - Wrapper wrapper = retrieveWrapper(source); - - if (!wrapper.locked()) { - Point size = wrapper.cachedSize(); - size.x = size.y = 0; - wrapper.setSize(DEFAULT_SIZE); - } - } - - /** - * Updates the maximum length based on the widest control. This methods - * does not update the width of the controls. - * - * @param recalculateSize true to recalculate the preferred size - * of all the wrappers contained within them rather than using the cached - * size; false to use the cached size - */ - private void recalculateWidth(boolean recalculateSize) { - - int width = calculateWidth(recalculateSize); - - try { - locked = true; - setMaximumWidth(width); - } - finally { - locked = false; - } - } - - /** - * Removes the given control. Its preferred width will not be used when - * calculating the preferred width. - * - * @param control The control to be removed - * @exception AssertionFailedException If the given Control is - * null - */ - public void remove(Control control) { - - Assert.isNotNull(control, "The Control to remove cannot be null"); - - Wrapper wrapper = retrieveWrapper(control); - wrapper.removeListener(listener); - wrappers.remove(wrapper); - - revalidate(true); - } - - /** - * Removes the given ControlAligner. Its preferred width - * will not be used when calculating the preferred witdh. - * - * @param controlAligner The ControlAligner to be removed - * @exception AssertionFailedException If the given ControlAligner - * is null - */ - public void remove(ControlAligner controlAligner) { - - Assert.isNotNull(controlAligner, "The ControlAligner to remove cannot be null"); - - Wrapper wrapper = retrieveWrapper(controlAligner); - wrapper.removeListener(listener); - wrappers.remove(wrapper); - - revalidate(true); - } - - /** - * Removes the given Listener. - * - * @param listener The Listener to be removed - */ - private void removeListener(Listener listener) { - - changeSupport.remove(listener); - - if (changeSupport.isEmpty()) { - changeSupport = null; - } - } - - /** - * Retrieves the Wrapper that is encapsulating the given object. - * - * @param source Either a Control or a ControlAligner - * @return Its Wrapper - */ - private Wrapper retrieveWrapper(Object source) { - - for (Wrapper wrapper : wrappers) { - if (wrapper.source() == source) { - return wrapper; - } - } - - throw new IllegalArgumentException("Can't retrieve the Wrapper for " + source); - } - - /** - * If the count of control is greater than one and {@link #isAutoValidate()} - * returns true, then the size of all the registered - * Controls will be udpated. - * - * @param recalculateSize true to recalculate the preferred size - * of all the wrappers contained within them rather than using the cached - * size; false to use the cached size - */ - private void revalidate(boolean recalculateSize) { - - if (autoValidate) { - recalculateWidth(recalculateSize); - updateWrapperSize(recalculateSize); - } - } - - /** - * Bases on the information contained in the given Event, - * resize the controls. - * - * @param event The Event sent by the UI thread when the state - * of a widget changed - */ - private void revalidate(Event event) { - - // We don't need to revalidate during a revalidation process - if (locked) { - return; - } - - Object source; - - if (event.widget != SWTUtil.getShell()) { - source = event.widget; - Control control = (Control) source; - - // When a dialog is opened, we need to actually force a layout of - // the controls, this is required because the control is actually - // not visible when the preferred width is caculated - if (control == control.getShell()) { - if (event.type == SWT.Dispose) { - return; - } - - source = null; - } - } - else { - source = event.data; - } - - // Either remove the ControlWrapper if the widget was disposed or - // invalidate the widget in order to recalculate the preferred size - if (source != null) { - if (event.type == SWT.Dispose) { - Wrapper wrapper = retrieveWrapper(source); - wrappers.remove(wrapper); - } - else { - invalidate(source); - } - } - - // Now revalidate all the Controls and ControlAligners - revalidate(true); - } - - /** - * Sets the length of the widest control. If the length was not calulcated, - * then this value is 0. - * - * @param maximumWidth The width of the widest control - */ - private void setMaximumWidth(int maximumWidth) { - - int oldMaximumWidth = this.maximumWidth; - this.maximumWidth = maximumWidth; - controlResized(oldMaximumWidth, maximumWidth); - } - - /** - * Returns a string representation of this ControlAligner. - * - * @return Information about this object - */ - @Override - public String toString() { - - StringBuffer sb = new StringBuffer(); - sb.append("maximumWidth="); - sb.append(maximumWidth); - sb.append(", wrappers="); - sb.append(wrappers); - return StringTools.buildToStringFor(this, sb); - } - - /** - * Updates the size of every Wrapper based on the maximum width. - * - * @param forceRevalidate true to revalidate the wrapper's size - * even though its current size might be the same as the maximum width; - * false to only revalidate the wrappers with a different width - */ - private void updateWrapperSize(boolean forceRevalidate) { - - for (Wrapper wrapper : wrappers) { - Point cachedSize = wrapper.cachedSize(); - - // No need to change the size of the wrapper since it's always using - // the maximum width - if (forceRevalidate || (cachedSize.x != maximumWidth)) { - Point size = new Point(maximumWidth, cachedSize.y); - wrapper.setSize(size); - } - } - } - - /** - * This Wrapper encapsulates a {@link ControlAligner}. - */ - private class ControlAlignerWrapper implements Wrapper { - /** - * The cached size, which is {@link ControlAligner#maximumWidth}. - */ - private final Point cachedSize; - - /** - * The ControlAligner encapsulated by this - * Wrapper. - */ - private final ControlAligner controlAligner; - - /** - * Creates a new ControlAlignerWrapper that encapsulates - * the given ControlAligner. - * - * @param controlAligner The ControlAligner to be - * encapsulated by this Wrapper - */ - private ControlAlignerWrapper(ControlAligner controlAligner) { - super(); - this.controlAligner = controlAligner; - this.cachedSize = new Point(controlAligner.maximumWidth, 0); - } - - /* - * (non-Javadoc) - */ - public void addListener(Listener listener) { - controlAligner.addListener(listener); - } - - /* - * (non-Javadoc) - */ - public Point cachedSize() { - cachedSize.x = controlAligner.maximumWidth; - return cachedSize; - } - - /* - * (non-Javadoc) - */ - public Point calculateSize() { - - Point size = new Point(controlAligner.calculateWidth(false), 0); - - if (size.x != SWT.DEFAULT) { - cachedSize.x = size.x; - } - else { - cachedSize.x = 0; - } - - if (size.y != SWT.DEFAULT) { - cachedSize.y = size.y; - } - else { - cachedSize.y = 0; - } - - return size; - } - - /* - * (non-Javadoc) - */ - public boolean locked() { - return controlAligner.locked; - } - - /* - * (non-Javadoc) - */ - public void removeListener(Listener listener) { - controlAligner.removeListener(listener); - } - - /* - * (non-Javadoc) - */ - public void setSize(Point size) { - - if (size == DEFAULT_SIZE) { - controlAligner.maximumWidth = 0; - } - else if (controlAligner.maximumWidth != size.x) { - controlAligner.maximumWidth = size.x; - controlAligner.updateWrapperSize(true); - } - } - - /* - * (non-Javadoc) - */ - public Object source() { - return controlAligner; - } - - /* - * (non-Javadoc) - */ - @Override - public String toString() { - - StringBuffer sb = new StringBuffer(); - sb.append("Cached size="); - sb.append(cachedSize); - sb.append(", ControlAligner="); - sb.append(controlAligner); - return StringTools.buildToStringFor(this, sb); - } - } - - /** - * This Wrapper encapsulates a {@link Control}. - */ - private class ControlWrapper implements Wrapper { - /** - * The cached size, which is control's size. - */ - private Point cachedSize; - - /** - * The control to be encapsulated by this Wrapper. - */ - private final Control control; - - /** - * Creates a new controlWrapper that encapsulates the given - * control. - * - * @param control The control to be encapsulated by this Wrapper - */ - private ControlWrapper(Control control) { - super(); - - this.control = control; - this.cachedSize = new Point(0, 0); - } - - /* - * (non-Javadoc) - */ - public void addListener(Listener listener) { - - for (int eventType : EVENT_TYPES) { - control.addListener(eventType, listener); - } - } - - /* - * (non-Javadoc) - */ - public Point cachedSize() { - return cachedSize; - } - - /* - * (non-Javadoc) - */ - public Point calculateSize() { - - cachedSize = control.computeSize(SWT.DEFAULT, SWT.DEFAULT, true); - - // Update right away the control's GridData - GridData gridData = (GridData) control.getLayoutData(); - - if (gridData == null) { - gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); - control.setLayoutData(gridData); - } - - gridData.widthHint = cachedSize.x; - gridData.heightHint = cachedSize.y; - - // Make sure the size is not -1 - if (cachedSize.x == SWT.DEFAULT) { - cachedSize.x = 0; - } - - if (cachedSize.y == SWT.DEFAULT) { - cachedSize.y = 0; - } - - return cachedSize; - } - - /* - * (non-Javadoc) - */ - public boolean locked() { - return false; - } - - /* - * (non-Javadoc) - */ - public void removeListener(Listener listener) { - - for (int eventType : EVENT_TYPES) { - control.removeListener(eventType, listener); - } - } - - /* - * (non-Javadoc) - */ - public void setSize(Point size) { - - if (control.isDisposed()) { - return; - } - - // Update the GridData with the new size - GridData gridData = (GridData) control.getLayoutData(); - - if (gridData == null) { - gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); - control.setLayoutData(gridData); - } - - gridData.widthHint = size.x; - gridData.heightHint = size.y; - - // Force the control to be resized, and tell its parent to layout - // its widgets - if (size.x > 0) { -// locked = true; -// try { -//// control.getParent().layout(new Control[] { control }); -// control.getParent().layout(true); -// } -// finally { -// locked = false; -// } - Rectangle bounds = control.getBounds(); - - // Only update the control's width if it's - // different from the current size - if (bounds.width != size.x) { - locked = true; - - try { -// control.setBounds(bounds.x, bounds.y, size.x, size.y); - control.getParent().layout(true); - } - finally - { - locked = false; - } - } - } - } - - /* - * (non-Javadoc) - */ - public Control source() { - return control; - } - - /* - * (non-Javadoc) - */ - @Override - public String toString() { - - StringBuffer sb = new StringBuffer(); - sb.append("Cached size="); - sb.append(cachedSize); - sb.append(", Control="); - sb.append(control); - return StringTools.buildToStringFor(this, sb); - } - } - - /** - * The listener added to each of the control that is notified in order to - * revalidate the preferred size. - */ - private class ListenerHandler implements Listener { - public void handleEvent(Event event) { - ControlAligner.this.revalidate(event); - } - } - - /** - * This Wrapper helps to encapsulate heterogeneous objects and - * apply the same behavior on them. - */ - private interface Wrapper { - /** - * Adds the given Listener to wrapped object in order to - * receive notification when its property changed. - * - * @param listener The Listener to be added - */ - void addListener(Listener listener); - - /** - * Returns the cached size of the encapsulated source. - * - * @return A non-null Point where the x is the - * width and the y is the height of the widget - */ - Point cachedSize(); - - /** - * Calculates the preferred size the wrapped object would take by itself. - * - * @return The calculated size - */ - Point calculateSize(); - - /** - * Prevents infinite recursion when recalculating the preferred width. - * This happens in an hierarchy of ControlAligners. - * - * @return true to prevent this Wrapper from - * being invalidated; otherwise false - */ - boolean locked(); - - /** - * Removes the given Listener. - * - * @param listener The Listener to be removed - */ - void removeListener(Listener listener); - - /** - * Sets the size on the encapsulated source. - * - * @param size The new size - */ - void setSize(Point size); - - /** - * Returns the encapsulated object. - * - * @return The object that is been wrapped - */ - Object source(); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlSwitcher.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlSwitcher.java deleted file mode 100644 index 1d527ff73f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/ControlSwitcher.java +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.ui.part.PageBook; - -/** - * This controller is responsible to switch the active page based on a value. A - * Transformer is used to transformed that value into a - * Control. - * - * @version 2.3 - * @since 2.0 - */ -public final class ControlSwitcher -{ - /** - * The widget that is used to show the active Control. - */ - private PageBook pageBook; - - /** - * The Transformer used to transform the value into a - * Control. - */ - private Transformer paneTransformer; - - private Label emptyLabel; - - /** - * Creates a new ControlSwitcher. - * - * @param switchHolder The holder of the value that will be used to retrieve - * the right Control when passed to the given transformer - * @param paneTransformer The Transformer used to transform the value into a - * Control - * @param pageBook The Transformer used to transform the value - * into a Control - */ - public ControlSwitcher(PropertyValueModel switchHolder, - Transformer paneTransformer, - PageBook pageBook) - { - super(); - initialize(switchHolder, paneTransformer, pageBook); - } - - private void initialize(PropertyValueModel switchHolder, - Transformer paneTransformer, - PageBook pageBook) - { - this.pageBook = pageBook; - this.paneTransformer = paneTransformer; - - this.emptyLabel = this.buildEmptyLabel(); - - switchHolder.addPropertyChangeListener( - PropertyValueModel.VALUE, - buildPropertyChangeListener() - ); - - switchPages(switchHolder.getValue()); - } - - //Build an empty label to display in the page book when the paneTransformer returns null. - //SWT.SHADOW_NONE makes the line separator not visible - //This is the best we can come up with for an empty page - private Label buildEmptyLabel() { - return new Label(this.pageBook, SWT.SEPARATOR | SWT.SHADOW_NONE | SWT.HORIZONTAL); - } - - private PropertyChangeListener buildPropertyChangeListener() { - return new SWTPropertyChangeListenerWrapper( - buildPropertyChangeListener_() - ); - } - - private PropertyChangeListener buildPropertyChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - switchPages(e.getNewValue()); - } - }; - } - - /** - * Switches the active page by transforming the given value into its - * corresponding pane. - * - * @param value The state passed to the transformer in order to retrieve the - * new pane - */ - private void switchPages(Object value) { - if (this.pageBook.isDisposed()) { - return; - } - - // Retrieve the Control for the new value - Control page = transform(value); - - if (page == null) { - //Note: We can't pass in null due to a bug in PageBook - page = this.emptyLabel; - } - this.pageBook.showPage(page); - - // Revalidate the parents in order to update the layout - SWTUtil.reflow(this.pageBook); - } - - @SuppressWarnings("unchecked") - private Control transform(Object value) { - return ((Transformer) this.paneTransformer).transform(value); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledButton.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledButton.java deleted file mode 100644 index a1d6d2979a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledButton.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. This - * program and the accompanying materials are made available under the terms of - * the Eclipse Public License v1.0 which accompanies this distribution, and is - * available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: Oracle. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Button; - -/** - * A default implementation of LabeledControl that updates a - * Button when required. - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public final class LabeledButton implements LabeledControl -{ - /** - * The button to be updated with a different icon and text. - */ - private final Button button; - - /** - * Creates a new LabeledButton. - * - * @param button The button that will have its text and icon updated when - * required - * @exception AssertionFailedException If the given Button is - * null - */ - public LabeledButton(Button button) { - super(); - - Assert.isNotNull(button, "The button cannot be null"); - this.button = button; - } - - /* - * (non-Javadoc) - */ - public void setImage(Image image) { - if (!this.button.isDisposed()) { - this.button.setImage(image); - this.button.getParent().layout(true); - } - } - - /* - * (non-Javadoc) - */ - public void setText(String text) { - if (!this.button.isDisposed()) { - this.button.setText(text); - this.button.getParent().layout(true); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControl.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControl.java deleted file mode 100644 index 2cef0dc8b2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControl.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. This - * program and the accompanying materials are made available under the terms of - * the Eclipse Public License v1.0 which accompanies this distribution, and is - * available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: Oracle. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import org.eclipse.swt.graphics.Image; - -/** - * This LabeledControl is used to encapsulate a widget and update - * its properties (icon and text). - * - * @see LabeledButton - * @see LabeledLabel - * - * @version 2.0 - * @since 2.0 - */ -public interface LabeledControl { - /** - * Passes the image so the wrapped component can receive it. - * - * @param image The new Image - */ - void setImage(Image image); - - /** - * Passes the text so the wrapped component can receive it. - * - * @param text The new text - */ - void setText(String text); -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControlUpdater.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControlUpdater.java deleted file mode 100644 index 8be981398a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledControlUpdater.java +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.graphics.Image; - -/** - * This updater is responsible to update the LabeledControl when - * the text and the icon need to change. - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public final class LabeledControlUpdater { - - /** - * The wrapper around a control that has text and icon. - */ - private LabeledControl labeledControl; - - /** - * Creates a new LabeledControlUpdater. - * - * @param labeledControl The wrapper around the control that needs to - * have its text updated - * @param textHolder The holder this class will listen for changes - */ - public LabeledControlUpdater(LabeledControl labeledControl, - PropertyValueModel textHolder) - { - this(labeledControl, textHolder, null); - } - - /** - * Creates a new LabeledControlUpdater. - * - * @param labeledControl The wrapper around the control that needs to - * have its image and text updated - * @param imageHolder The holder this class will listen for changes or - * null if the text never changes - * @param textHolder The holder this class will listen for changes or - * null if the image never changes - */ - public LabeledControlUpdater(LabeledControl labeledControl, - PropertyValueModel textHolder, - PropertyValueModel imageHolder) - { - super(); - initialize(labeledControl, textHolder, imageHolder); - } - - private PropertyChangeListener buildIconListener() { - return new SWTPropertyChangeListenerWrapper(buildIconListener_()); - } - - private PropertyChangeListener buildIconListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - LabeledControlUpdater.this.setImage((Image) e.getNewValue()); - } - - @Override - public String toString() { - return "LabeledControlUpdater.imageListener"; - } - }; - } - - private PropertyChangeListener buildTextListener() { - return new SWTPropertyChangeListenerWrapper(buildTextListener_()); - } - - private PropertyChangeListener buildTextListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - LabeledControlUpdater.this.setText((String) e.getNewValue()); - } - - @Override - public String toString() { - return "LabeledControlUpdater.textListener"; - } - }; - } - - private void initialize(LabeledControl labeledControl, - PropertyValueModel textHolder, - PropertyValueModel imageHolder) - { - Assert.isNotNull(labeledControl, "The LabeledControl cannot be null"); - - this.labeledControl = labeledControl; - - if (textHolder != null) { - textHolder.addPropertyChangeListener(PropertyValueModel.VALUE, buildTextListener()); - setText(textHolder.getValue()); - } - - if (imageHolder != null) { - imageHolder.addPropertyChangeListener(PropertyValueModel.VALUE, buildIconListener()); - setImage(imageHolder.getValue()); - } - } - - private void setImage(Image icon) { - labeledControl.setImage(icon); - } - - private void setText(String text) { - - if (text == null) { - text = ""; - } - - labeledControl.setText(text); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledLabel.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledLabel.java deleted file mode 100644 index c74ef06559..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/LabeledLabel.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. This - * program and the accompanying materials are made available under the terms of - * the Eclipse Public License v1.0 which accompanies this distribution, and is - * available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: Oracle. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Label; - -/** - * A default implementation of LabeledControl that updates an - * Label when required. - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public final class LabeledLabel implements LabeledControl -{ - /** - * The label to be updated with a different icon and text. - */ - private final Label label; - - /** - * Creates a new LabeledButton. - * - * @param label The label that will have its text and icon updated when - * required - * @exception AssertionFailedException If the given Label is - * null - */ - public LabeledLabel(Label label) { - super(); - - Assert.isNotNull(label, "The label cannot be null"); - this.label = label; - } - - /* - * (non-Javadoc) - */ - public void setImage(Image image) { - if (!this.label.isDisposed()) { - this.label.setImage(image); - this.label.getParent().layout(true); - } - } - - /* - * (non-Javadoc) - */ - public void setText(String text) { - if (!this.label.isDisposed()) { - this.label.setText(text); - this.label.getParent().layout(true); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneEnabler.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneEnabler.java deleted file mode 100644 index 6615c72127..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneEnabler.java +++ /dev/null @@ -1,175 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import java.util.Collection; -import java.util.Iterator; -import org.eclipse.jpt.common.ui.internal.widgets.Pane; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This PaneEnabler keeps the "enabled" state of a collection of - * controls in synch with the provided boolean holder. - * - * @version 2.0 - * @since 2.0 - */ -public class PaneEnabler extends StateController -{ - /** - * Creates a new PaneEnabler with a default value of - * false (i.e. disabled). - * - * @param booleanHolder A value model on the underlying boolean model - * @param pane The pane whose "enabled" state is kept in sync with the - * boolean holder's value - */ - public PaneEnabler(PropertyValueModel booleanHolder, - Pane pane) { - - this(booleanHolder, pane, false); - } - - /** - * Creates a new PaneEnabler with a default value of - * false (i.e. disabled). - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes The collection of panes whose "enabled" state is kept in sync - * with the boolean holder's value - */ - public PaneEnabler(PropertyValueModel booleanHolder, - Pane... panes) { - - this(booleanHolder, CollectionTools.collection(panes), false); - } - - /** - * Creates a new PaneEnabler. - * - * @param booleanHolder A value model on the underlying boolean model - * @param pane The pane whose "enabled" state is kept in sync with the - * boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - public PaneEnabler(PropertyValueModel booleanHolder, - Pane pane, - boolean defaultValue) { - - this(booleanHolder, CollectionTools.singletonIterator(pane), false); - } - - /** - * Creates a new PaneEnabler. - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes The collection of panes whose "enabled" state is kept in sync - * with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - public PaneEnabler(PropertyValueModel booleanHolder, - Pane[] panes, - boolean defaultValue) { - - this(booleanHolder, CollectionTools.iterator(panes), defaultValue); - } - - /** - * Creates a new BaseJpaControllerEnabler with a default value - * of* false (i.e. disabled). - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes The collection of panes whose "enabled" state is kept in sync - * with the boolean holder's value - */ - public PaneEnabler(PropertyValueModel booleanHolder, - Collection> panes) { - - this(booleanHolder, panes, false); - } - - /** - * Creates a new BaseJpaControllerEnabler. - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes The collection of panes whose "enabled" state is kept in sync - * with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - public PaneEnabler(PropertyValueModel booleanHolder, - Collection> panes, - boolean defaultValue) { - - this(booleanHolder, panes.iterator(), defaultValue); - } - - /** - * Creates a new BaseJpaControllerEnabler with a default value of - * false (i.e. disabled). - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes An iterator on the collection of panes whose "enabled" state - * is kept in sync with the boolean holder's value - */ - public PaneEnabler(PropertyValueModel booleanHolder, - Iterator> panes) { - - this(booleanHolder, panes, false); - } - - /** - * Creates a new BaseJpaControllerEnabler. - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes An iterator on the collection of panes whose "enabled" state - * is kept in sync with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - public PaneEnabler(PropertyValueModel booleanHolder, - Iterator> panes, - boolean defaultValue) { - - super(booleanHolder, wrap(panes), defaultValue); - } - - private static Collection wrap(Iterator> panes) { - return CollectionTools.collection(new TransformationIterator, ControlHolder>(panes) { - @Override - protected ControlHolder transform(Pane pane) { - return new PaneHolder(pane); - } - }); - } - - /** - * This holder holds onto an Pane and update its enabled - * state. - */ - private static class PaneHolder implements ControlHolder { - private final Pane pane; - - PaneHolder(Pane pane) { - super(); - this.pane = pane; - } - - public void updateState(boolean state) { - if (!this.pane.getControl().isDisposed()) { - this.pane.enableWidgets(state); - } - } - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneVisibilityEnabler.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneVisibilityEnabler.java deleted file mode 100644 index c081839b5f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/PaneVisibilityEnabler.java +++ /dev/null @@ -1,173 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import java.util.Collection; -import java.util.Iterator; -import org.eclipse.jpt.common.ui.internal.widgets.Pane; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This PaneVisibilityEnabler keeps the "visible" state of a - * collection of controls in synch with the provided boolean holder. - * - * @version 2.0 - * @since 2.0 - */ -public class PaneVisibilityEnabler extends StateController -{ - /** - * Creates a new PaneVisibilityEnabler with a default value of - * false (i.e. not visible). - * - * @param booleanHolder A value model on the underlying boolean model - * @param pane The pane whose "visible" state is kept in sync with the - * boolean holder's value - */ - public PaneVisibilityEnabler(PropertyValueModel booleanHolder, - Pane pane) { - - this(booleanHolder, pane, false); - } - - /** - * Creates a new PaneVisibilityEnabler with a default value of - * false (i.e. not visible). - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes The collection of panes whose "visible" state is kept in sync - * with the boolean holder's value - */ - public PaneVisibilityEnabler(PropertyValueModel booleanHolder, - Pane... panes) { - - this(booleanHolder, CollectionTools.collection(panes), false); - } - - /** - * Creates a new PaneVisibilityEnabler. - * - * @param booleanHolder A value model on the underlying boolean model - * @param pane The pane whose "visible" state is kept in sync with the - * boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - public PaneVisibilityEnabler(PropertyValueModel booleanHolder, - Pane pane, - boolean defaultValue) { - - this(booleanHolder, CollectionTools.singletonIterator(pane), false); - } - - /** - * Creates a new PaneVisibilityEnabler. - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes The collection of panes whose "visible" state is kept in sync - * with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - public PaneVisibilityEnabler(PropertyValueModel booleanHolder, - Pane[] panes, - boolean defaultValue) { - - this(booleanHolder, CollectionTools.iterator(panes), defaultValue); - } - - /** - * Creates a new PaneVisibilityEnabler with a default value of - * false (i.e. not visible). - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes The collection of panes whose "visible" state is kept in sync - * with the boolean holder's value - */ - public PaneVisibilityEnabler(PropertyValueModel booleanHolder, - Collection> panes) { - - this(booleanHolder, panes, false); - } - - /** - * Creates a new PaneVisibilityEnabler. - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes The collection of panes whose "visible" state is kept in sync - * with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - public PaneVisibilityEnabler(PropertyValueModel booleanHolder, - Collection> panes, - boolean defaultValue) { - - this(booleanHolder, panes.iterator(), defaultValue); - } - - /** - * Creates a new PaneVisibilityEnabler with a default value of - * false (i.e. not visible). - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes An iterator on the collection of panes whose "visible" state - * is kept in sync with the boolean holder's value - */ - public PaneVisibilityEnabler(PropertyValueModel booleanHolder, - Iterator> panes) { - - this(booleanHolder, panes, false); - } - - /** - * Creates a new PaneVisibilityEnabler. - * - * @param booleanHolder A value model on the underlying boolean model - * @param panes An iterator on the collection of panes whose "visible" state - * is kept in sync with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - public PaneVisibilityEnabler(PropertyValueModel booleanHolder, - Iterator> panes, - boolean defaultValue) { - - super(booleanHolder, wrap(panes), defaultValue); - } - - private static Collection wrap(Iterator> panes) { - return CollectionTools.collection(new TransformationIterator, ControlHolder>(panes) { - @Override - protected ControlHolder transform(Pane pane) { - return new PaneHolder(pane); - } - }); - } - - /** - * This holder holds onto an Pane and update its visible - * state. - */ - private static class PaneHolder implements ControlHolder { - private final Pane pane; - - PaneHolder(Pane pane) { - super(); - this.pane = pane; - } - - public void updateState(boolean state) { - this.pane.setVisible(state); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/SWTUtil.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/SWTUtil.java deleted file mode 100644 index efc6584919..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/SWTUtil.java +++ /dev/null @@ -1,447 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import java.util.Locale; -import org.eclipse.core.runtime.Assert; -import org.eclipse.core.runtime.AssertionFailedException; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.resource.JFaceResources; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jpt.common.ui.internal.widgets.NullPostExecution; -import org.eclipse.jpt.common.ui.internal.widgets.PostExecution; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.swt.events.FocusEvent; -import org.eclipse.swt.events.FocusListener; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.Widget; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.forms.widgets.ScrolledForm; - -/** - * A suite of utility methods related to the user interface. - * - * @version 2.0 - * @since 1.0 - */ -@SuppressWarnings("nls") -public class SWTUtil { - - /** - * Causes the run() method of the given runnable to be invoked - * by the user-interface thread at the next reasonable opportunity. The caller - * of this method continues to run in parallel, and is not notified when the - * runnable has completed. - * - * @param runnable Code to run on the user-interface thread - * @exception org.eclipse.swt.SWTException - *
    - *
  • ERROR_DEVICE_DISPOSED - if the receiver has been disposed
  • - *
- * @see #syncExec - */ - public static void asyncExec(Runnable runnable) { - getStandardDisplay().asyncExec(runnable); - } - - /** - * Tweaks the given Combo to remove the default value when the - * widget receives the focus and to show the default when the widget loses - * the focus. - * - * @param combo The widget having a default value that is always at the - * beginning of the list - */ - public static void attachDefaultValueHandler(Combo combo) { - ComboHandler handler = new ComboHandler(); - combo.addFocusListener(handler); - combo.addModifyListener(handler); - } - - /** - * Retrieves the localized string from the given NLS class by creating the - * key. That key is the concatenation of the composite's short class name - * with the toString() of the given value separated by an underscore. - * - * @param nlsClass The NLS class used to retrieve the localized text - * @param compositeClass The class used for creating the key, its short class - * name is the beginning of the key - * @param value The value used to append its toString() to the generated key - * @return The localized text associated with the value - */ - public static String buildDisplayString(Class nlsClass, - Class compositeClass, - Object value) { - - StringBuilder sb = new StringBuilder(); - sb.append(compositeClass.getSimpleName()); - sb.append("_"); - sb.append(value.toString().toLowerCase(Locale.ENGLISH));//bug 234953 - //TODO in a future release we should not be converting the key using toLowerCase() - - return (String) ReflectionTools.getStaticFieldValue(nlsClass, sb.toString()); - } - - /** - * Retrieves the localized string from the given NLS class by creating the - * key. That key is the concatenation of the composite's short class name - * with the toString() of the given value separated by an underscore. - * - * @param nlsClass The NLS class used to retrieve the localized text - * @param composite The object used to retrieve the short class name that is - * the beginning of the key - * @param value The value used to append its toString() to the generated key - * @return The localized text associated with the value - */ - public static final String buildDisplayString(Class nlsClass, - Object composite, - Object value) { - - return buildDisplayString(nlsClass, composite.getClass(), value); - } - - /** - * Creates the Runnable that will invoke the given - * PostExecution in order to its execution to be done in the - * UI thread. - * - * @param dialog The dialog that was just diposed - * @param postExecution The post execution once the dialog is disposed - * @return The Runnable that will invoke - * {@link PostExecution#execute(Dialog)} - */ - @SuppressWarnings("unchecked") - private static - Runnable buildPostExecutionRunnable( - final D1 dialog, - final PostExecution postExecution) { - - return new Runnable() { - public void run() { - setUserInterfaceActive(false); - try { - postExecution.execute((D2) dialog); - } - finally { - setUserInterfaceActive(true); - } - } - }; - } - - /** - * Convenience method for getting the current shell. If the current thread is - * not the UI thread, then an invalid thread access exception will be thrown. - * - * @return The shell, never null - */ - public static Shell getShell() { - - // Retrieve the active shell, which can be the shell from any window - Shell shell = getStandardDisplay().getActiveShell(); - - // No shell could be found, revert back to the active workbench window - if (shell == null) { - shell = getWorkbench().getActiveWorkbenchWindow().getShell(); - } - - // Make sure it's never null - if (shell == null) { - shell = new Shell(getStandardDisplay().getActiveShell()); - } - - return shell; - } - - /** - * Returns the standard display to be used. The method first checks, if the - * thread calling this method has an associated display. If so, this display - * is returned. Otherwise the method returns the default display. - * - * @return The current display if not null otherwise the default - * display is returned - */ - public static Display getStandardDisplay() - { - Display display = Display.getCurrent(); - - if (display == null) { - display = Display.getDefault(); - } - - return display; - } - - public static int getTableHeightHint(Table table, int rows) { - if (table.getFont().equals(JFaceResources.getDefaultFont())) - table.setFont(JFaceResources.getDialogFont()); - int result= table.getItemHeight() * rows + table.getHeaderHeight(); - if (table.getLinesVisible()) - result+= table.getGridLineWidth() * (rows - 1); - return result; - } - - /** - * Returns the Platform UI workbench. - * - * @return The workbench for this plug-in - */ - public static IWorkbench getWorkbench() { - return PlatformUI.getWorkbench(); - } - - /** - * Relays out the parents of the Control. This was taken from - * the widget Section. - * - * @param pane The pane to revalidate as well as its parents - */ - public static void reflow(Composite pane) { - - for (Composite composite = pane; composite != null; ) { - composite.setRedraw(false); - composite = composite.getParent(); - - if (composite instanceof ScrolledForm || composite instanceof Shell) { - break; - } - } - - for (Composite composite = pane; composite != null; ) { - composite.layout(true); - composite = composite.getParent(); - - if (composite instanceof ScrolledForm) { - ((ScrolledForm) composite).reflow(true); - break; - } - } - - for (Composite composite = pane; composite != null; ) { - composite.setRedraw(true); - composite = composite.getParent(); - - if (composite instanceof ScrolledForm || composite instanceof Shell) { - break; - } - } - } - - /** - * Sets whether the entire shell and its widgets should be enabled or - * everything should be unaccessible. - * - * @param active true to make all the UI active otherwise - * false to deactivate it - */ - public static void setUserInterfaceActive(boolean active) { - Shell[] shells = getStandardDisplay().getShells(); - - for (Shell shell : shells) { - shell.setEnabled(active); - } - } - - /** - * Asynchronously launches the specified dialog in the UI thread. - * - * @param dialog The dialog to show on screen - * @param postExecution This interface let the caller to invoke a piece of - * code once the dialog is disposed - */ - public static - void show(final D1 dialog, final PostExecution postExecution) { - - try { - Assert.isNotNull(dialog, "The dialog cannot be null"); - Assert.isNotNull(postExecution, "The PostExecution cannot be null"); - } - catch (AssertionFailedException e) { - // Make sure the UI is interactive - setUserInterfaceActive(true); - throw e; - } - - new Thread() { - @Override - public void run() { - asyncExec( - new Runnable() { - public void run() { - showImp(dialog, postExecution); - } - } - ); - } - }.start(); - } - - /** - * Asynchronously launches the specified dialog in the UI thread. - * - * @param dialog The dialog to show on screen - */ - public static void show(Dialog dialog) { - show(dialog, NullPostExecution.instance()); - } - - /** - * Asynchronously launches the specified dialog in the UI thread. - * - * @param dialog The dialog to show on screen - * @param postExecution This interface let the caller to invoke a piece of - * code once the dialog is disposed - */ - private static - void showImp(D1 dialog, PostExecution postExecution) { - - setUserInterfaceActive(true); - dialog.open(); - - if (postExecution != NullPostExecution.instance()) { - asyncExec(buildPostExecutionRunnable(dialog, postExecution)); - } - } - - /** - * Causes the run() method of the given runnable to be invoked - * by the user-interface thread at the next reasonable opportunity. The - * thread which calls this method is suspended until the runnable completes. - * - * @param runnable code to run on the user-interface thread. - * @see #asyncExec - */ - public static void syncExec(Runnable runnable) { - getStandardDisplay().syncExec(runnable); - } - - /** - * Determines if the current thread is the UI event thread. - * - * @return true if it's the UI event thread, false - * otherwise - */ - public static boolean uiThread() { - return getStandardDisplay().getThread() == Thread.currentThread(); - } - - /** - * Determines if the current thread is the UI event thread by using the - * thread from which the given viewer's display was instantiated. - * - * @param viewer The viewer used to determine if the current thread - * is the UI event thread - * @return true if the current thread is the UI event thread; - * false otherwise - */ - public static boolean uiThread(Viewer viewer) { - return uiThread(viewer.getControl()); - } - - /** - * Determines if the current thread is the UI event thread by using the - * thread from which the given widget's display was instantiated. - * - * @param widget The widget used to determine if the current thread - * is the UI event thread - * @return true if the current thread is the UI event thread; - * false otherwise - */ - public static boolean uiThread(Widget widget) { - return widget.getDisplay().getThread() == Thread.currentThread(); - } - - - /** - * This handler is responsible for removing the default value when the combo - * has the focus or when the selected item is the default value and to select - * it when the combo loses the focus. - */ - private static class ComboHandler implements ModifyListener, - FocusListener { - - public void focusGained(FocusEvent e) { - Combo combo = (Combo) e.widget; - - if (combo.getSelectionIndex() == 0) { - // The text selection has to be changed outside of the context of this - // listener otherwise the combo won't update because it's currently - // notifying its listeners - asyncExec(new SelectText(combo)); - } - } - - public void focusLost(FocusEvent e) { - //do nothing - } - - public void modifyText(ModifyEvent e) { - - Combo combo = (Combo) e.widget; - - if (combo.isFocusControl() && - combo.getSelectionIndex() == 0) { - - // The text has to be changed outside of the context of this - // listener otherwise the combo won't update because it's currently - // notifying its listeners - asyncExec(new ModifyText(combo)); - } - } - - private class ModifyText implements Runnable { - private final Combo combo; - - public ModifyText(Combo combo) { - super(); - this.combo = combo; - } - - public void run() { - if (this.combo.isDisposed()) { - return; - } - String text = this.combo.getText(); - - if (text.length() == 0) { - text = this.combo.getItem(0); - this.combo.setText(text); - } - - this.combo.setSelection(new Point(0, text.length())); - } - } - - private class SelectText implements Runnable { - private final Combo combo; - - public SelectText(Combo combo) { - super(); - this.combo = combo; - } - - public void run() { - if (this.combo.isDisposed()) { - return; - } - String text = this.combo.getText(); - this.combo.setSelection(new Point(0, text.length())); - } - } - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/StateController.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/StateController.java deleted file mode 100644 index 5c313e6603..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/StateController.java +++ /dev/null @@ -1,320 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.util; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import org.eclipse.core.runtime.Assert; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * A StateController keeps the state of a collection of widgets in - * synch with the provided boolean holder. - * - * @see ControlEnabler - * @see ControlVisibilityEnabler - * @see PaneEnabler - * @see PaneVisibilityEnabler - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -abstract class StateController -{ - /** - * A listener that allows us to synchronize the controlHolders with changes - * made to the underlying boolean model. - */ - private PropertyChangeListener booleanChangeListener; - - /** - * A value model on the underlying boolean model - */ - private PropertyValueModel booleanHolder; - - /** - * The collection of ControlHolders whose state is kept in sync - * with the boolean holder's value. - */ - private Collection controlHolders; - - /** - * The default setting for the state; for when the underlying model is - * null. The default [default value] is false. - */ - private boolean defaultValue; - - /** - * Creates a new StateController. - */ - StateController() { - super(); - initialize(); - } - - /** - * Creates a new StateController with a default value of - * false. - * - * @param booleanHolder A value model on the underlying boolean model - * @param controlHolders The collection of ControlHolders whose - * state is kept in sync with the boolean holder's value - */ - StateController(PropertyValueModel booleanHolder, - Collection controlHolders) { - - this(booleanHolder, controlHolders, false); - } - - /** - * Creates a new StateController with a default value of - * false. - * - * @param booleanHolder A value model on the underlying boolean model - * @param controlHolders The collection of ControlHolders whose - * state is kept in sync with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - StateController(PropertyValueModel booleanHolder, - Collection controlHolders, - boolean defaultValue) { - - this(); - initialize(booleanHolder, controlHolders, defaultValue); - } - - /** - * Creates a new StateController with a default value of - * false. - * - * @param booleanHolder A value model on the underlying boolean model - * @param controlHolder The ControlHolder whose state is kept - * in sync with the boolean holder's value - */ - StateController(PropertyValueModel booleanHolder, - ControlHolder controlHolder) { - - this(booleanHolder, controlHolder, false); - } - - /** - * Creates a new StateController with a default value of - * false. - * - * @param booleanHolder A value model on the underlying boolean model - * @param controlHolders The collection of ControlHolders whose - * state is kept in sync with the boolean holder's value - */ - StateController(PropertyValueModel booleanHolder, - ControlHolder... controlHolders) { - - this(booleanHolder, CollectionTools.collection(controlHolders), false); - } - - /** - * Creates a new StateController with a default value of - * false. - * - * @param booleanHolder A value model on the underlying boolean model - * @param controlHolder The ControlHolder whose state is kept - * in sync with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - StateController(PropertyValueModel booleanHolder, - ControlHolder controlHolder, - boolean defaultValue) { - - this(booleanHolder, new ControlHolder[] { controlHolder }, false); - } - - /** - * Creates a new StateController. - * - * @param booleanHolder A value model on the underlying boolean model - * @param controlHolders The collection of ControlHolders whose - * state is kept in sync with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - StateController(PropertyValueModel booleanHolder, - ControlHolder[] controlHolders, - boolean defaultValue) { - - this(); - this.initialize(booleanHolder, CollectionTools.collection(controlHolders), defaultValue); - } - - /** - * Creates a new StateController with a default value of - * false. - * - * @param booleanHolder A value model on the underlying boolean model - * @param controlHolders An iterator on the collection of - * ControlHolders whose state is kept in sync with the boolean - * holder's value - */ - StateController(PropertyValueModel booleanHolder, - Iterator controlHolders) { - - this(booleanHolder, CollectionTools.collection(controlHolders), false); - } - - /** - * Creates a new StateController. - * - * @param booleanHolder A value model on the underlying boolean model - * @param controlHolders An iterator on the collection of - * ControlHolders whose state is kept in sync with the boolean - * holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - StateController(PropertyValueModel booleanHolder, - Iterator controlHolders, - boolean defaultValue) { - - this(); - initialize(booleanHolder, CollectionTools.collection(controlHolders), defaultValue); - } - - /** - * Returns the boolean primitive of the given Boolean value but - * also checks for null, if that is the case, then - * {@link #defaultValue} is returned. - * - * @param value The Boolean value to be returned as a primitive - * @return The primitive of the given value or {@link #defaultValue}when the - * value is null - */ - protected boolean booleanValue(Boolean value) { - return (value == null) ? this.defaultValue : value.booleanValue(); - } - - /** - * Creates a listener for the boolean holder. - * - * @return A new PropertyChangeListener - */ - private PropertyChangeListener buildBooleanChangeListener() { - return new SWTPropertyChangeListenerWrapper( - buildBooleanChangeListener_() - ) - { - @Override - public String toString() { - return "StateController.SWTPropertyChangeListenerWrapper"; - } - }; - } - - /** - * Creates a listener for the boolean holder. - * - * @return A new PropertyChangeListener - */ - private PropertyChangeListener buildBooleanChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - updateState(); - } - - @Override - public String toString() { - return "StateController.PropertyChangeListener"; - } - }; - } - - /** - * Returns an Iterator over the collection of - * ControlHolders. - * - * @return The iteration of ControlHolders - */ - protected final Iterator controlHolders() { - return new CloneIterator(this.controlHolders); - } - - /** - * Initializes this StateController by building the appropriate - * listeners. - */ - protected void initialize() { - this.booleanChangeListener = this.buildBooleanChangeListener(); - } - - /** - * Initializes this StateController with the given state. - * - * @param booleanHolder A value model on the underlying boolean model - * @param controlHolders A ControlHolders whose enablement state - * is kept in sync with the boolean holder's value - * @param defaultValue The value to use when the underlying model is - * null - */ - protected void initialize(PropertyValueModel booleanHolder, - Collection controlHolders, - boolean defaultValue) { - - Assert.isNotNull(booleanHolder, "The holder of the boolean value cannot be null"); - Assert.isNotNull(controlHolders, "The collection of ControlHolders cannot be null"); - - this.controlHolders = new ArrayList(controlHolders); - this.defaultValue = defaultValue; - this.booleanHolder = booleanHolder; - - this.booleanHolder.addPropertyChangeListener( - PropertyValueModel.VALUE, - this.booleanChangeListener - ); - - this.updateState(); - } - - /** - * Updates the state of the control holders. - */ - protected void updateState() { - this.updateState(booleanValue(this.booleanHolder.getValue())); - } - - /** - * Updates the state of the Controls. - * - * @param state The new state the widgets need to have - */ - protected void updateState(boolean state) { - for (ControlHolder controlHolder : this.controlHolders) { - controlHolder.updateState(state); - } - } - - /** - * The holder of the actual widget. - */ - static interface ControlHolder { - - /** - * Updates the state of the wrapped control. - * - * @param state The new state the control should have - */ - void updateState(boolean state); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/TableLayoutComposite.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/TableLayoutComposite.java deleted file mode 100644 index 9a8790c941..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/util/TableLayoutComposite.java +++ /dev/null @@ -1,207 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2009 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -// copied from org.eclipse.jdt.internal.ui.util.TableLayoutComposite -package org.eclipse.jpt.common.ui.internal.util; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ControlAdapter; -import org.eclipse.swt.events.ControlEvent; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; - -import org.eclipse.core.runtime.Assert; - -import org.eclipse.jface.viewers.ColumnLayoutData; -import org.eclipse.jface.viewers.ColumnPixelData; -import org.eclipse.jface.viewers.ColumnWeightData; - -/** - * A special composite to layout columns inside a table. The composite is needed since we have - * to layout the columns "before" the actual table gets layouted. Hence we can't use a normal - * layout manager. - *

- * XXX: Should switch to use {@link org.eclipse.jface.layout.TableColumnLayout}. - *

- */ -public class TableLayoutComposite extends Composite { - - /** - * The number of extra pixels taken as horizontal trim by the table column. - * To ensure there are N pixels available for the content of the column, - * assign N+COLUMN_TRIM for the column width. - *

- * XXX: Should either switch to use {@link org.eclipse.jface.layout.TableColumnLayout} or get API from JFace or SWT, see: https://bugs.eclipse.org/bugs/show_bug.cgi?id=218483 - *

- * - * @since 3.1 - */ - private static int COLUMN_TRIM; - static { - String platform= SWT.getPlatform(); - if ("win32".equals(platform)) //$NON-NLS-1$ - COLUMN_TRIM= 4; - else if ("carbon".equals(platform)) //$NON-NLS-1$ - COLUMN_TRIM= 24; - else - COLUMN_TRIM= 3; - } - - private List columns= new ArrayList(); - - /** - * Creates a new TableLayoutComposite. - * - * @param parent the parent composite - * @param style the SWT style - */ - public TableLayoutComposite(Composite parent, int style) { - super(parent, style); - addControlListener(new ControlAdapter() { - public void controlResized(ControlEvent e) { - Rectangle area= getClientArea(); - Table table= (Table)getChildren()[0]; - Point preferredSize= computeTableSize(table); - int width= area.width - 2 * table.getBorderWidth(); - if (preferredSize.y > area.height) { - // Subtract the scrollbar width from the total column width - // if a vertical scrollbar will be required - Point vBarSize = table.getVerticalBar().getSize(); - width -= vBarSize.x; - } - layoutTable(table, width, area, table.getSize().x < area.width); - } - }); - } - - /** - * Adds a new column of data to this table layout. - * - * @param data the column layout data - */ - public void addColumnData(ColumnLayoutData data) { - columns.add(data); - } - - //---- Helpers ------------------------------------------------------------------------------------- - - private Point computeTableSize(Table table) { - Point result= table.computeSize(SWT.DEFAULT, SWT.DEFAULT); - - int width= 0; - int size= columns.size(); - for (int i= 0; i < size; ++i) { - ColumnLayoutData layoutData= (ColumnLayoutData) columns.get(i); - if (layoutData instanceof ColumnPixelData) { - ColumnPixelData col= (ColumnPixelData) layoutData; - width += col.width; - if (col.addTrim) { - width += COLUMN_TRIM; - } - } else if (layoutData instanceof ColumnWeightData) { - ColumnWeightData col= (ColumnWeightData) layoutData; - width += col.minimumWidth; - } else { - Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$ - } - } - if (width > result.x) - result.x= width; - return result; - } - - private void layoutTable(Table table, int width, Rectangle area, boolean increase) { - // XXX: Layout is being called with an invalid value the first time - // it is being called on Linux. This method resets the - // Layout to null so we make sure we run it only when - // the value is OK. - if (width <= 1) - return; - - TableColumn[] tableColumns= table.getColumns(); - int size= Math.min(columns.size(), tableColumns.length); - int[] widths= new int[size]; - int fixedWidth= 0; - int numberOfWeightColumns= 0; - int totalWeight= 0; - - // First calc space occupied by fixed columns - for (int i= 0; i < size; i++) { - ColumnLayoutData col= (ColumnLayoutData) columns.get(i); - if (col instanceof ColumnPixelData) { - ColumnPixelData cpd= (ColumnPixelData) col; - int pixels= cpd.width; - if (cpd.addTrim) { - pixels += COLUMN_TRIM; - } - widths[i]= pixels; - fixedWidth += pixels; - } else if (col instanceof ColumnWeightData) { - ColumnWeightData cw= (ColumnWeightData) col; - numberOfWeightColumns++; - // first time, use the weight specified by the column data, otherwise use the actual width as the weight - // int weight = firstTime ? cw.weight : tableColumns[i].getWidth(); - int weight= cw.weight; - totalWeight += weight; - } else { - Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$ - } - } - - // Do we have columns that have a weight - if (numberOfWeightColumns > 0) { - // Now distribute the rest to the columns with weight. - int rest= width - fixedWidth; - int totalDistributed= 0; - for (int i= 0; i < size; ++i) { - ColumnLayoutData col= (ColumnLayoutData) columns.get(i); - if (col instanceof ColumnWeightData) { - ColumnWeightData cw= (ColumnWeightData) col; - // calculate weight as above - // int weight = firstTime ? cw.weight : tableColumns[i].getWidth(); - int weight= cw.weight; - int pixels= totalWeight == 0 ? 0 : weight * rest / totalWeight; - if (pixels < cw.minimumWidth) - pixels= cw.minimumWidth; - totalDistributed += pixels; - widths[i]= pixels; - } - } - - // Distribute any remaining pixels to columns with weight. - int diff= rest - totalDistributed; - for (int i= 0; diff > 0; ++i) { - if (i == size) - i= 0; - ColumnLayoutData col= (ColumnLayoutData) columns.get(i); - if (col instanceof ColumnWeightData) { - ++widths[i]; - --diff; - } - } - } - - if (increase) { - table.setSize(area.width, area.height); - } - for (int i= 0; i < size; i++) { - tableColumns[i].setWidth(widths[i]); - } - if (!increase) { - table.setSize(area.width, area.height); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/AsynchronousUiCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/AsynchronousUiCommandExecutor.java deleted file mode 100644 index 9a8b3aa0d8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/AsynchronousUiCommandExecutor.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.CommandExecutor; -import org.eclipse.jpt.common.utility.internal.CommandRunnable; -import org.eclipse.swt.widgets.Display; - -/** - * This implementation of CommandExecutor can be used by a non-UI - * thread to asynchronously modify a JPA project with any objects associated - * with documents that are currently displayed in the UI. - */ -public final class AsynchronousUiCommandExecutor - implements CommandExecutor -{ - public static final CommandExecutor INSTANCE = new AsynchronousUiCommandExecutor(); - - public static CommandExecutor instance() { - return INSTANCE; - } - - // ensure single instance - private AsynchronousUiCommandExecutor() { - super(); - } - - public void execute(Command command) { - this.getDisplay().asyncExec(this.buildRunnable(command)); - } - - private Runnable buildRunnable(Command command) { - return new CommandRunnable(command); - } - - private Display getDisplay() { - Display display = Display.getCurrent(); - return (display != null) ? display : Display.getDefault(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/SynchronousUiCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/SynchronousUiCommandExecutor.java deleted file mode 100644 index 895dd212f3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/SynchronousUiCommandExecutor.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.CommandExecutor; -import org.eclipse.jpt.common.utility.internal.CommandRunnable; -import org.eclipse.swt.widgets.Display; - -/** - * This implementation of CommandExecutor can be used by a non-UI - * thread to synchronously modify a JPA project with any objects associated - * with documents that are currently displayed in the UI. - */ -public final class SynchronousUiCommandExecutor - implements CommandExecutor -{ - public static final CommandExecutor INSTANCE = new SynchronousUiCommandExecutor(); - - public static CommandExecutor instance() { - return INSTANCE; - } - - // ensure single instance - private SynchronousUiCommandExecutor() { - super(); - } - - public void execute(Command command) { - this.getDisplay().syncExec(this.buildRunnable(command)); - } - - private Runnable buildRunnable(Command command) { - return new CommandRunnable(command); - } - - private Display getDisplay() { - Display display = Display.getCurrent(); - return (display != null) ? display : Display.getDefault(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/AbstractListWidgetAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/AbstractListWidgetAdapter.java deleted file mode 100644 index 50df45253c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/AbstractListWidgetAdapter.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.widgets.Widget; - -/** - * All the "list widgets" are subclasses of {@link Widget}; so we can provide - * a smidgen of common behavior here. - */ -abstract class AbstractListWidgetAdapter - implements ListWidgetModelBinding.ListWidget -{ - final W widget; - - AbstractListWidgetAdapter(W widget) { - super(); - this.widget = widget; - } - - public boolean isDisposed() { - return this.widget.isDisposed(); - } - - public void addDisposeListener(DisposeListener listener) { - this.widget.addDisposeListener(listener); - } - - public void removeDisposeListener(DisposeListener listener) { - this.widget.removeDisposeListener(listener); - } - -} - diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanButtonModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanButtonModelBinding.java deleted file mode 100644 index 5967029a51..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanButtonModelBinding.java +++ /dev/null @@ -1,190 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.widgets.Button; - -/** - * This binding can be used to keep a check-box, toggle button, or radio button - * "selection" synchronized with a model boolean. - * - * @see WritablePropertyValueModel - * @see Button - */ -@SuppressWarnings("nls") -final class BooleanButtonModelBinding { - - // ***** model - /** A value model on the underlying model boolean. */ - private final WritablePropertyValueModel booleanModel; - - /** - * A listener that allows us to synchronize the button's selection state with - * the model boolean. - */ - private final PropertyChangeListener booleanChangeListener; - - /** - * The default setting for the check-box/toggle button/radio button; - * for when the underlying model is null. - * The default [default value] is false (i.e. the check-box - * is unchecked/toggle button popped out/radio button unchecked). - */ - private final boolean defaultValue; - - // ***** UI - /** The check-box/toggle button/radio button we synchronize with the model boolean. */ - private final Button button; - - /** - * A listener that allows us to synchronize the model boolean with - * the button's selection state. - */ - private final SelectionListener buttonSelectionListener; - - /** - * A listener that allows us to stop listening to stuff when the button - * is disposed. (Critical for preventing memory leaks.) - */ - private final DisposeListener buttonDisposeListener; - - - // ********** constructor ********** - - /** - * Constructor - the boolean model and button are required. - */ - BooleanButtonModelBinding(WritablePropertyValueModel booleanModel, Button button, boolean defaultValue) { - super(); - if ((booleanModel == null) || (button == null)) { - throw new NullPointerException(); - } - this.booleanModel = booleanModel; - this.button = button; - this.defaultValue = defaultValue; - - this.booleanChangeListener = this.buildBooleanChangeListener(); - this.booleanModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener); - - this.buttonSelectionListener = this.buildButtonSelectionListener(); - this.button.addSelectionListener(this.buttonSelectionListener); - - this.buttonDisposeListener = this.buildButtonDisposeListener(); - this.button.addDisposeListener(this.buttonDisposeListener); - - this.setButtonSelection(this.booleanModel.getValue()); - } - - - // ********** initialization ********** - - private PropertyChangeListener buildBooleanChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_()); - } - - private PropertyChangeListener buildBooleanChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - BooleanButtonModelBinding.this.booleanChanged(event); - } - @Override - public String toString() { - return "boolean listener"; - } - }; - } - - private SelectionListener buildButtonSelectionListener() { - return new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - BooleanButtonModelBinding.this.buttonSelected(); - } - @Override - public String toString() { - return "button selection listener"; - } - }; - } - - private DisposeListener buildButtonDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - BooleanButtonModelBinding.this.buttonDisposed(); - } - @Override - public String toString() { - return "button dispose listener"; - } - }; - } - - - // ********** boolean model events ********** - - /** - * The model has changed - synchronize the button. - * If the new model value is null, use the binding's default value - * (which is typically false). - */ - /* CU private */ void booleanChanged(PropertyChangeEvent event) { - this.setButtonSelection((Boolean) event.getNewValue()); - } - - private void setButtonSelection(Boolean b) { - if ( ! this.button.isDisposed()) { - this.button.setSelection(this.booleanValue(b)); - } - } - - private boolean booleanValue(Boolean b) { - return (b != null) ? b.booleanValue() : this.defaultValue; - } - - - // ********** button events ********** - - /** - * The button has been "selected" - synchronize the model. - */ - /* CU private */ void buttonSelected() { - if ( ! this.button.isDisposed()) { - this.booleanModel.setValue(Boolean.valueOf(this.button.getSelection())); - } - } - - /* CU private */ void buttonDisposed() { - // the button is not yet "disposed" when we receive this event - // so we can still remove our listeners - this.button.removeSelectionListener(this.buttonSelectionListener); - this.button.removeDisposeListener(this.buttonDisposeListener); - this.booleanModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.booleanModel); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanStateController.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanStateController.java deleted file mode 100644 index 5ea988de7c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/BooleanStateController.java +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.widgets.Control; - -/** - * This controller enables a boolean model to control either the - * enabled or visible properties of SWT controls; i.e. the - * controls' properties are kept in synch with the boolean model, - * but not vice-versa. - *

- * Subclasses must manage the listeners; i.e. the engaging and disengaging of - * the boolean model and the control(s). - * - * @see PropertyValueModel - * @see Control#setEnabled(boolean) - * @see Control#setVisible(boolean) - */ -abstract class BooleanStateController { - - /** - * The controlling boolean model. - */ - private final PropertyValueModel booleanModel; - - /** - * A listener that allows us to synchronize the control states with - * changes in the value of the boolean model. - */ - private final PropertyChangeListener booleanChangeListener; - - /** - * A listener that allows us to stop listening to stuff when all the - * controls are disposed. (Critical for preventing memory leaks.) - */ - private final DisposeListener controlDisposeListener; - - /** - * The default setting for the state; for when the underlying boolean model is - * null. The default [default value] is false. - */ - private final boolean defaultValue; - - /** - * The adapter determines whether the 'enabled' or 'visible' property is - * controlled. - */ - private final Adapter adapter; - - - // ********** constructor ********** - - /** - * Constructor - the boolean model and the adapter are required. - */ - BooleanStateController(PropertyValueModel booleanModel, boolean defaultValue, Adapter adapter) { - super(); - if ((booleanModel == null) || (adapter == null)) { - throw new NullPointerException(); - } - this.booleanModel = booleanModel; - this.defaultValue = defaultValue; - this.adapter = adapter; - - this.booleanChangeListener = this.buildBooleanChangeListener(); - this.controlDisposeListener = this.buildControlDisposeListener(); - } - - - // ********** initialization ********** - - private PropertyChangeListener buildBooleanChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_()); - } - - private PropertyChangeListener buildBooleanChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - BooleanStateController.this.booleanChanged(event); - } - @Override - public String toString() { - return "boolean listener"; //$NON-NLS-1$ - } - }; - } - - private DisposeListener buildControlDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - // the control is not yet "disposed" when we receive this event - // so we can still remove our listener - BooleanStateController.this.controlDisposed((Control) event.widget); - } - @Override - public String toString() { - return "control dispose listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** boolean model ********** - - void engageBooleanModel() { - this.booleanModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener); - } - - void disengageBooleanModel() { - this.booleanModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener); - } - - /** - * The boolean model has changed - synchronize the controls. - * If the new boolean model value is null, use the controller's - * default value (which is typically false). - */ - /* CU private */ void booleanChanged(PropertyChangeEvent event) { - this.setControlState((Boolean) event.getNewValue()); - } - - - boolean getBooleanValue() { - return this.booleanValue(this.booleanModel.getValue()); - } - - private boolean booleanValue(Boolean b) { - return (b != null) ? b.booleanValue() : this.defaultValue; - } - - - // ********** control ********** - - void engageControl(Control control) { - control.addDisposeListener(this.controlDisposeListener); - } - - void disengageControl(Control control) { - control.removeDisposeListener(this.controlDisposeListener); - } - - private void setControlState(Boolean b) { - this.setControlState(this.booleanValue(b)); - } - - abstract void setControlState(boolean b); - - void setControlState(Control control, boolean b) { - if ( ! control.isDisposed()) { - this.adapter.setState(control, b); - } - } - - void controlDisposed(Control control) { - this.disengageControl(control); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.booleanModel); - } - - - // ********** adapter interface ********** - - interface Adapter { - void setState(Control control, boolean b); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/DropDownListBoxSelectionBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/DropDownListBoxSelectionBinding.java deleted file mode 100644 index ccfb8bdaed..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/DropDownListBoxSelectionBinding.java +++ /dev/null @@ -1,283 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Tools; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; - -/** - * This binding can be used to keep a drop-down list box's selection - * synchronized with a model. The selection can be modified by either the - * drop-down list box or the model, so changes must be coordinated. - *

- * NB: A selected item value of null can be used - * to clear the drop-down list box's selection. If null is a - * valid item in the model list, an invalid selected item can be used to clear - * the selection. - * - * @see ListValueModel - * @see WritablePropertyValueModel - * @see DropDownListBox - * @see SWTTools - */ -@SuppressWarnings("nls") -final class DropDownListBoxSelectionBinding - implements ListWidgetModelBinding.SelectionBinding -{ - // ***** model - /** - * The underlying list model. - */ - private final ListValueModel listModel; - - /** - * A writable value model on the underlying model selection. - */ - private final WritablePropertyValueModel selectedItemModel; - - /** - * A listener that allows us to synchronize the drop-down list box's - * selection with the model selection. - */ - private final PropertyChangeListener selectedItemChangeListener; - - // ***** UI - /** - * The drop-down list box whose selection we keep synchronized - * with the model selection. - */ - private final DropDownListBox dropdownListBox; - - /** - * A listener that allows us to synchronize our selected item holder - * with the drop-down list box's selection. - */ - private final SelectionListener dropdownListBoxSelectionListener; - - - // ********** constructor ********** - - /** - * Constructor - all parameters are required. - */ - DropDownListBoxSelectionBinding( - ListValueModel listModel, - WritablePropertyValueModel selectedItemModel, - DropDownListBox dropdownListBox - ) { - super(); - if ((listModel == null) || (selectedItemModel == null) || (dropdownListBox == null)) { - throw new NullPointerException(); - } - this.listModel = listModel; - this.selectedItemModel = selectedItemModel; - this.dropdownListBox = dropdownListBox; - - this.selectedItemChangeListener = this.buildSelectedItemChangeListener(); - this.selectedItemModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.selectedItemChangeListener); - - this.dropdownListBoxSelectionListener = this.buildDropDownListBoxSelectionListener(); - this.dropdownListBox.addSelectionListener(this.dropdownListBoxSelectionListener); - } - - - // ********** initialization ********** - - private PropertyChangeListener buildSelectedItemChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildSelectedItemChangeListener_()); - } - - private PropertyChangeListener buildSelectedItemChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - DropDownListBoxSelectionBinding.this.selectedItemChanged(event); - } - @Override - public String toString() { - return "selected item listener"; - } - }; - } - - private SelectionListener buildDropDownListBoxSelectionListener() { - return new SelectionListener() { - public void widgetSelected(SelectionEvent event) { - DropDownListBoxSelectionBinding.this.dropDownListBoxSelectionChanged(event); - } - public void widgetDefaultSelected(SelectionEvent event) { - DropDownListBoxSelectionBinding.this.dropDownListBoxDoubleClicked(event); - } - @Override - public String toString() { - return "drop-down list box selection listener"; - } - }; - } - - - // ********** ListWidgetModelBinding.SelectionBinding implementation ********** - - /** - * Modifying the drop-down lisb box's selected item programmatically does - * not trigger a SelectionEvent. - *

- * Pre-condition: The drop-down list box is not disposed. - */ - public void synchronizeListWidgetSelection() { - int oldIndex = this.dropdownListBox.getSelectionIndex(); - E value = this.selectedItemModel.getValue(); - int newIndex = this.indexOf(value); - if ((oldIndex != -1) && (newIndex != -1) && (newIndex != oldIndex)) { - this.dropdownListBox.deselect(oldIndex); - } - if (newIndex == -1) { - this.dropdownListBox.deselectAll(); - } else { - if (newIndex != oldIndex) { - this.dropdownListBox.select(newIndex); - } - } - } - - public void dispose() { - this.dropdownListBox.removeSelectionListener(this.dropdownListBoxSelectionListener); - this.selectedItemModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.selectedItemChangeListener); - } - - - // ********** selected item ********** - - void selectedItemChanged(PropertyChangeEvent event) { - if ( ! this.dropdownListBox.isDisposed()) { - this.selectedItemChanged_(event); - } - } - - /** - * Modifying the drop-down list box's selected item programmatically does - * not trigger a SelectionEvent. - */ - private void selectedItemChanged_(@SuppressWarnings("unused") PropertyChangeEvent event) { - this.synchronizeListWidgetSelection(); - } - - private int indexOf(E item) { - int len = this.listModel.size(); - for (int i = 0; i < len; i++) { - if (Tools.valuesAreEqual(this.listModel.get(i), item)) { - return i; - } - } - // if 'null' is not in the list, use it to clear the selection - if (item == null) { - return -1; - } - // We can get here via one of the following: - // 1. The selected item model is invalid and not in sync with the list - // model. This is not good and we don't make this (programming - // error) obvious (e.g. via an exception). :-( - // 2. If both the selected item model and the list model are dependent - // on the same underlying model, the selected item model may receive - // its event first, resulting in a missing item. This will resolve - // itself once the list model receives its event and synchronizes - // with the same underlying model. This situation is acceptable. - return -1; - -// This is what we used to do: -// throw new IllegalStateException("selected item not found: " + item); - } - - - // ********** combo-box events ********** - - void dropDownListBoxSelectionChanged(SelectionEvent event) { - if ( ! this.dropdownListBox.isDisposed()) { - this.dropDownListBoxSelectionChanged_(event); - } - } - - void dropDownListBoxDoubleClicked(SelectionEvent event) { - if ( ! this.dropdownListBox.isDisposed()) { - this.dropDownListBoxSelectionChanged_(event); - } - } - - private void dropDownListBoxSelectionChanged_(@SuppressWarnings("unused") SelectionEvent event) { - this.selectedItemModel.setValue(this.getDropDownListBoxSelectedItem()); - } - - private E getDropDownListBoxSelectedItem() { - int selectionIndex = this.dropdownListBox.getSelectionIndex(); - return (selectionIndex == -1) ? null : this.listModel.get(selectionIndex); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.selectedItemModel); - } - - - // ********** adapter interface ********** - - /** - * Adapter used by the drop-down list box selection binding to query and manipulate - * the drop-down list box. - */ - interface DropDownListBox { - - /** - * Return whether the combo-box is "disposed". - */ - boolean isDisposed(); - - /** - * Add the specified selection listener to the combo-box. - */ - void addSelectionListener(SelectionListener listener); - - /** - * Remove the specified selection listener from the combo-box. - */ - void removeSelectionListener(SelectionListener listener); - - /** - * Return the index of the combo-box's selection. - */ - int getSelectionIndex(); - - /** - * Select the item at the specified index in the combo-box. - */ - void select(int index); - - /** - * Deselect the item at the specified index in the combo-box. - */ - void deselect(int index); - - /** - * Clear the combo-box's selection. - */ - void deselectAll(); - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListBoxSelectionBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListBoxSelectionBinding.java deleted file mode 100644 index 1c5c28bcab..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListBoxSelectionBinding.java +++ /dev/null @@ -1,305 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import java.util.ArrayList; -import java.util.Arrays; - -import org.eclipse.jpt.common.ui.internal.listeners.SWTCollectionChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Tools; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.widgets.List; - -/** - * This binding can be used to keep a list box's selection - * synchronized with a model. The selection can be modified by either the list - * box or the model, so changes must be coordinated. - * - * @see ListValueModel - * @see WritableCollectionValueModel - * @see List - * @see SWTTools - */ -@SuppressWarnings("nls") -final class ListBoxSelectionBinding - implements ListWidgetModelBinding.SelectionBinding -{ - // ***** model - /** - * The underlying list model. - */ - private final ListValueModel listModel; - - /** - * A writable value model on the underlying model selections. - */ - private final WritableCollectionValueModel selectedItemsModel; - - /** - * A listener that allows us to synchronize the list box's selection with - * the model selections. - */ - private final CollectionChangeListener selectedItemsChangeListener; - - // ***** UI - /** - * The list box whose selection we keep synchronized with the model selections. - */ - private final List listBox; - - /** - * A listener that allows us to synchronize our selected items holder - * with the list box's selection. - */ - private final SelectionListener listBoxSelectionListener; - - - // ********** constructor ********** - - /** - * Constructor - all parameters are required. - */ - ListBoxSelectionBinding( - ListValueModel listModel, - WritableCollectionValueModel selectedItemsModel, - List listBox - ) { - super(); - if ((listModel == null) || (selectedItemsModel == null) || (listBox == null)) { - throw new NullPointerException(); - } - this.listModel = listModel; - this.selectedItemsModel = selectedItemsModel; - this.listBox = listBox; - - this.selectedItemsChangeListener = this.buildSelectedItemsChangeListener(); - this.selectedItemsModel.addCollectionChangeListener(CollectionValueModel.VALUES, this.selectedItemsChangeListener); - - this.listBoxSelectionListener = this.buildListBoxSelectionListener(); - this.listBox.addSelectionListener(this.listBoxSelectionListener); - } - - - // ********** initialization ********** - - private CollectionChangeListener buildSelectedItemsChangeListener() { - return new SWTCollectionChangeListenerWrapper(this.buildSelectedItemsChangeListener_()); - } - - private CollectionChangeListener buildSelectedItemsChangeListener_() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - ListBoxSelectionBinding.this.selectedItemsAdded(event); - } - public void itemsRemoved(CollectionRemoveEvent event) { - ListBoxSelectionBinding.this.selectedItemsRemoved(event); - } - public void collectionCleared(CollectionClearEvent event) { - ListBoxSelectionBinding.this.selectedItemsCleared(event); - } - public void collectionChanged(CollectionChangeEvent event) { - ListBoxSelectionBinding.this.selectedItemsChanged(event); - } - @Override - public String toString() { - return "selected items listener"; - } - }; - } - - private SelectionListener buildListBoxSelectionListener() { - return new SelectionListener() { - public void widgetSelected(SelectionEvent event) { - ListBoxSelectionBinding.this.listBoxSelectionChanged(event); - } - public void widgetDefaultSelected(SelectionEvent event) { - ListBoxSelectionBinding.this.listBoxDoubleClicked(event); - } - @Override - public String toString() { - return "list box selection listener"; - } - }; - } - - - // ********** ListWidgetModelBinding.SelectionBinding implementation ********** - - /** - * Modifying the list box's selected items programmatically does not - * trigger a SelectionEvent. - * - * Pre-condition: The list-box is not disposed. - */ - public void synchronizeListWidgetSelection() { - int selectedItemsSize = this.selectedItemsModel.size(); - int[] select = new int[selectedItemsSize]; - int i = 0; - for (E item : this.selectedItemsModel) { - select[i++] = this.indexOf(item); - } - - int listSize = this.listModel.size(); - int[] deselect = new int[listSize - selectedItemsSize]; - i = 0; - for (int j = 0; j < listSize; j++) { - if ( ! ArrayTools.contains(select, j)) { - deselect[i++] = j; - } - } - - int[] old = ArrayTools.sort(this.listBox.getSelectionIndices()); - select = ArrayTools.sort(select); - if ( ! Arrays.equals(select, old)) { - this.listBox.deselect(deselect); - this.listBox.select(select); - } - } - - public void dispose() { - this.listBox.removeSelectionListener(this.listBoxSelectionListener); - this.selectedItemsModel.removeCollectionChangeListener(CollectionValueModel.VALUES, this.selectedItemsChangeListener); - } - - - // ********** selected items ********** - - void selectedItemsAdded(CollectionAddEvent event) { - if ( ! this.listBox.isDisposed()) { - this.selectedItemsAdded_(event); - } - } - - /** - * Modifying the list box's selected items programmatically does not - * trigger a SelectionEvent. - */ - private void selectedItemsAdded_(CollectionAddEvent event) { - int[] indices = new int[event.getItemsSize()]; - int i = 0; - for (E item : this.getItems(event)) { - indices[i++] = this.indexOf(item); - } - this.listBox.select(indices); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - private Iterable getItems(CollectionAddEvent event) { - return (Iterable) event.getItems(); - } - - void selectedItemsRemoved(CollectionRemoveEvent event) { - if ( ! this.listBox.isDisposed()) { - this.selectedItemsRemoved_(event); - } - } - - /** - * Modifying the list box's selected items programmatically does not - * trigger a SelectionEvent. - */ - private void selectedItemsRemoved_(CollectionRemoveEvent event) { - int[] indices = new int[event.getItemsSize()]; - int i = 0; - for (E item : this.getItems(event)) { - indices[i++] = this.indexOf(item); - } - this.listBox.deselect(indices); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - private Iterable getItems(CollectionRemoveEvent event) { - return (Iterable) event.getItems(); - } - - void selectedItemsCleared(CollectionClearEvent event) { - if ( ! this.listBox.isDisposed()) { - this.selectedItemsCleared_(event); - } - } - - /** - * Modifying the list box's selected items programmatically does not - * trigger a SelectionEvent. - */ - private void selectedItemsCleared_(@SuppressWarnings("unused") CollectionClearEvent event) { - this.listBox.deselectAll(); - } - - void selectedItemsChanged(CollectionChangeEvent event) { - if ( ! this.listBox.isDisposed()) { - this.selectedItemsChanged_(event); - } - } - - private void selectedItemsChanged_(@SuppressWarnings("unused") CollectionChangeEvent event) { - this.synchronizeListWidgetSelection(); - } - - private int indexOf(E item) { - int len = this.listModel.size(); - for (int i = 0; i < len; i++) { - if (Tools.valuesAreEqual(this.listModel.get(i), item)) { - return i; - } - } - // see comment in DropDownListBoxSelectionBinding.indexOf(E) - return -1; - } - - - // ********** list box events ********** - - void listBoxSelectionChanged(SelectionEvent event) { - if ( ! this.listBox.isDisposed()) { - this.listBoxSelectionChanged_(event); - } - } - - void listBoxDoubleClicked(SelectionEvent event) { - if ( ! this.listBox.isDisposed()) { - this.listBoxSelectionChanged_(event); - } - } - - private void listBoxSelectionChanged_(@SuppressWarnings("unused") SelectionEvent event) { - this.selectedItemsModel.setValues(this.getListBoxSelectedItems()); - } - - private Iterable getListBoxSelectedItems() { - ArrayList selectedItems = new ArrayList(this.listBox.getSelectionCount()); - for (int selectionIndex : this.listBox.getSelectionIndices()) { - selectedItems.add(this.listModel.get(selectionIndex)); - } - return selectedItems; - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.selectedItemsModel); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListWidgetModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListWidgetModelBinding.java deleted file mode 100644 index 18b9e7c2d8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/ListWidgetModelBinding.java +++ /dev/null @@ -1,428 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import java.util.ArrayList; - -import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; - -/** - * This binding can be used to keep a list widget's contents - * synchronized with a model. The list widget never alters - * its contents directly; all changes are driven by the model. - * - * @see ListValueModel - * @see StringConverter - * @see ListWidget - * @see SelectionBinding - * @see SWTTools - */ -@SuppressWarnings("nls") -final class ListWidgetModelBinding { - - // ***** model - /** - * The underlying list model. - */ - private final ListValueModel listModel; - - /** - * A listener that allows us to synchronize the list widget's contents with - * the model list. - */ - private final ListChangeListener listChangeListener; - - /** - * A converter that converts items in the model list - * to strings that can be put in the list widget. - */ - private final StringConverter stringConverter; - - // ***** UI - /** - * An adapter on the list widget we keep synchronized with the model list. - */ - private final ListWidget listWidget; - - /** - * A listener that allows us to stop listening to stuff when the list widget - * is disposed. (Critical for preventing memory leaks.) - */ - private final DisposeListener listWidgetDisposeListener; - - // ***** selection - /** - * Widget-specific selection binding. - */ - private final SelectionBinding selectionBinding; - - - // ********** constructor ********** - - /** - * Constructor - all parameters are required. - */ - ListWidgetModelBinding( - ListValueModel listModel, - ListWidget listWidget, - StringConverter stringConverter, - SelectionBinding selectionBinding - ) { - super(); - if ((listModel == null) || (listWidget == null) || (stringConverter == null) || (selectionBinding == null)) { - throw new NullPointerException(); - } - this.listModel = listModel; - this.listWidget = listWidget; - this.stringConverter = stringConverter; - this.selectionBinding = selectionBinding; - - this.listChangeListener = this.buildListChangeListener(); - this.listModel.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - - this.listWidgetDisposeListener = this.buildListWidgetDisposeListener(); - this.listWidget.addDisposeListener(this.listWidgetDisposeListener); - - this.synchronizeListWidget(); - } - - - // ********** initialization ********** - - private ListChangeListener buildListChangeListener() { - return new SWTListChangeListenerWrapper(this.buildListChangeListener_()); - } - - private ListChangeListener buildListChangeListener_() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - ListWidgetModelBinding.this.listItemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - ListWidgetModelBinding.this.listItemsRemoved(event); - } - public void itemsMoved(ListMoveEvent event) { - ListWidgetModelBinding.this.listItemsMoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - ListWidgetModelBinding.this.listItemsReplaced(event); - } - public void listCleared(ListClearEvent event) { - ListWidgetModelBinding.this.listCleared(event); - } - public void listChanged(ListChangeEvent event) { - ListWidgetModelBinding.this.listChanged(event); - } - @Override - public String toString() { - return "list listener"; - } - }; - } - - private DisposeListener buildListWidgetDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - ListWidgetModelBinding.this.listWidgetDisposed(event); - } - @Override - public String toString() { - return "list widget dispose listener"; - } - }; - } - - - // ********** list ********** - - /** - * Brute force synchronization of list widget with the model list. - */ - private void synchronizeListWidget() { - if ( ! this.listWidget.isDisposed()) { - this.synchronizeListWidget_(); - } - } - - private void synchronizeListWidget_() { - ArrayList items = new ArrayList(this.listModel.size()); - for (E item : this.listModel) { - items.add(this.convert(item)); - } - this.listWidget.setItems(items.toArray(new String[items.size()])); - - // now that the list has changed, we need to synch the selection - this.selectionBinding.synchronizeListWidgetSelection(); - } - - /** - * The model has changed - synchronize the list widget. - */ - void listItemsAdded(ListAddEvent event) { - if ( ! this.listWidget.isDisposed()) { - this.listItemsAdded_(event); - } - } - - private void listItemsAdded_(ListAddEvent event) { - int i = event.getIndex(); - for (E item : this.getItems(event)) { - this.listWidget.add(this.convert(item), i++); - } - - // now that the list has changed, we need to synch the selection - this.selectionBinding.synchronizeListWidgetSelection(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - private Iterable getItems(ListAddEvent event) { - return (Iterable) event.getItems(); - } - - /** - * The model has changed - synchronize the list widget. - */ - void listItemsRemoved(ListRemoveEvent event) { - if ( ! this.listWidget.isDisposed()) { - this.listItemsRemoved_(event); - } - } - - private void listItemsRemoved_(ListRemoveEvent event) { - this.listWidget.remove(event.getIndex(), event.getIndex() + event.getItemsSize() - 1); - - // now that the list has changed, we need to synch the selection - this.selectionBinding.synchronizeListWidgetSelection(); - } - - /** - * The model has changed - synchronize the list widget. - */ - void listItemsMoved(ListMoveEvent event) { - if ( ! this.listWidget.isDisposed()) { - this.listItemsMoved_(event); - } - } - - private void listItemsMoved_(ListMoveEvent event) { - int target = event.getTargetIndex(); - int source = event.getSourceIndex(); - int len = event.getLength(); - int loStart = Math.min(target, source); - int hiStart = Math.max(target, source); - // make a copy of the affected items... - String[] subArray = ArrayTools.subArray(this.listWidget.getItems(), loStart, hiStart + len); - // ...move them around... - subArray = ArrayTools.move(subArray, target - loStart, source - loStart, len); - // ...and then put them back - int i = loStart; - for (String item : subArray) { - this.listWidget.setItem(i++, item); - } - - // now that the list has changed, we need to synch the selection - this.selectionBinding.synchronizeListWidgetSelection(); - } - - /** - * The model has changed - synchronize the list widget. - */ - void listItemsReplaced(ListReplaceEvent event) { - if ( ! this.listWidget.isDisposed()) { - this.listItemsReplaced_(event); - } - } - - private void listItemsReplaced_(ListReplaceEvent event) { - int i = event.getIndex(); - for (E item : this.getNewItems(event)) { - this.listWidget.setItem(i++, this.convert(item)); - } - - // now that the list has changed, we need to synch the selection - this.selectionBinding.synchronizeListWidgetSelection(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - private Iterable getNewItems(ListReplaceEvent event) { - return (Iterable) event.getNewItems(); - } - - /** - * The model has changed - synchronize the list widget. - */ - void listCleared(ListClearEvent event) { - if ( ! this.listWidget.isDisposed()) { - this.listCleared_(event); - } - } - - private void listCleared_(@SuppressWarnings("unused") ListClearEvent event) { - this.listWidget.removeAll(); - } - - /** - * The model has changed - synchronize the list widget. - */ - void listChanged(ListChangeEvent event) { - if ( ! this.listWidget.isDisposed()) { - this.listChanged_(event); - } - } - - private void listChanged_(@SuppressWarnings("unused") ListChangeEvent event) { - this.synchronizeListWidget_(); - } - - /** - * Use the string converter to convert the specified item to a - * string that can be added to the list widget. - */ - private String convert(E item) { - return this.stringConverter.convertToString(item); - } - - - // ********** list widget events ********** - - void listWidgetDisposed(@SuppressWarnings("unused") DisposeEvent event) { - // the list widget is not yet "disposed" when we receive this event - // so we can still remove our listeners - this.listWidget.removeDisposeListener(this.listWidgetDisposeListener); - this.listModel.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - this.selectionBinding.dispose(); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listModel); - } - - - // ********** adapter interfaces ********** - - /** - * Adapter used by the list widget model binding to query and manipulate - * the widget. - */ - interface ListWidget { - - /** - * Return whether the list widget is "disposed". - */ - boolean isDisposed(); - - /** - * Add the specified dispose listener to the list widget. - */ - void addDisposeListener(DisposeListener listener); - - /** - * Remove the specified dispose listener from the list widget. - */ - void removeDisposeListener(DisposeListener listener); - - /** - * Return the list widget's items. - */ - String[] getItems(); - - /** - * Set the list widget's item at the specified index to the specified item. - */ - void setItem(int index, String item); - - /** - * Set the list widget's items. - */ - void setItems(String[] items); - - /** - * Add the specified item to the list widget's items at the specified index. - */ - void add(String item, int index); - - /** - * Remove the specified range of items from the list widget's items. - */ - void remove(int start, int end); - - /** - * Remove all the items from the list widget. - */ - void removeAll(); - - } - - - /** - * Widget-specific selection binding that is controlled by the list widget - * model binding. - */ - interface SelectionBinding { - - /** - * Synchronize the selection binding's widget with the selection model. - *

- * Pre-condition: The widget is not disposed. - */ - void synchronizeListWidgetSelection(); - - /** - * The widget has been disposed; dispose the selection binding. - */ - void dispose(); - - - /** - * Useful for list boxes that ignore the selection. - */ - final class Null implements SelectionBinding { - public static final SelectionBinding INSTANCE = new Null(); - public static SelectionBinding instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - public void synchronizeListWidgetSelection() { - // do nothing - } - public void dispose() { - // do nothing - } - @Override - public String toString() { - return "SelectionBinding.Null"; //$NON-NLS-1$ - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/MultiControlBooleanStateController.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/MultiControlBooleanStateController.java deleted file mode 100644 index aa52a80af1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/MultiControlBooleanStateController.java +++ /dev/null @@ -1,157 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import java.util.HashSet; - -import org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneIterable; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.widgets.Control; - -/** - * This controller enables a boolean model to control either the - * enabled or visible properties of a set of SWT controls; - * i.e. the controls' properties are kept in synch with the boolean model, - * but not vice-versa. - * - * @see PropertyValueModel - * @see CollectionValueModel - * @see Control#setEnabled(boolean) - * @see Control#setVisible(boolean) - */ -final class MultiControlBooleanStateController - extends BooleanStateController -{ - /** - * The set of controls whose state is kept in sync with the boolean model. - */ - private final CollectionValueModel controlsModel; - - /** - * A listener that allows clients to add/remove controls. - */ - private final CollectionChangeListener controlsListener; - - /** - * Cache of controls. - */ - private final HashSet controls = new HashSet(); - - - // ********** constructor ********** - - /** - * Constructor - the boolean model, the controls model, and the adapter are required. - */ - MultiControlBooleanStateController( - PropertyValueModel booleanModel, - CollectionValueModel controlsModel, - boolean defaultValue, - Adapter adapter - ) { - super(booleanModel, defaultValue, adapter); - if (controlsModel == null) { - throw new NullPointerException(); - } - this.controlsModel = controlsModel; - this.controlsListener = this.buildControlsListener(); - this.addControls(controlsModel); - } - - - // ********** initialization ********** - - private CollectionChangeListener buildControlsListener() { - return new CollectionChangeListener() { - @SuppressWarnings("unchecked") - public void itemsAdded(CollectionAddEvent event) { - MultiControlBooleanStateController.this.addControls((Iterable) event.getItems()); - } - @SuppressWarnings("unchecked") - public void itemsRemoved(CollectionRemoveEvent event) { - MultiControlBooleanStateController.this.removeControls((Iterable) event.getItems()); - } - public void collectionCleared(CollectionClearEvent event) { - MultiControlBooleanStateController.this.clearControls(); - } - @SuppressWarnings("unchecked") - public void collectionChanged(CollectionChangeEvent event) { - MultiControlBooleanStateController.this.clearControls(); - MultiControlBooleanStateController.this.addControls((Iterable) event.getCollection()); - } - @Override - public String toString() { - return "controls listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** controls ********** - - @Override - void setControlState(boolean b) { - for (Control control : this.controls) { - this.setControlState(control, b); - } - } - - /* CU private */ void addControls(Iterable controls_) { - boolean b = this.getBooleanValue(); - for (Control control : controls_) { - this.addControl(control, b); - } - } - - private void addControl(Control control, boolean b) { - if (this.controls.isEmpty()) { - this.engageBooleanModel(); - this.controlsModel.addCollectionChangeListener(CollectionValueModel.VALUES, this.controlsListener); - } - if (this.controls.add(control)) { - this.engageControl(control); - this.setControlState(control, b); - } else { - throw new IllegalArgumentException("duplicate control: " + control); //$NON-NLS-1$ - } - } - - /* CU private */ void clearControls() { - this.removeControls(new SnapshotCloneIterable(this.controls)); - } - - /* CU private */ void removeControls(Iterable controls_) { - for (Control control : controls_) { - this.disengageControl(control); - this.removeControl(control); - } - } - - private void removeControl(Control control) { - this.controls.remove(control); - if (this.controls.isEmpty()) { - this.controlsModel.removeCollectionChangeListener(CollectionValueModel.VALUES, this.controlsListener); - this.disengageBooleanModel(); - } - } - - @Override - void controlDisposed(Control control) { - super.controlDisposed(control); - this.removeControl(control); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTComboAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTComboAdapter.java deleted file mode 100644 index 672524d2d2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTComboAdapter.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.widgets.Combo; - -/** - * Adapt an SWT {@link Combo} to the list widget expected by - * {@link ListWidgetModelBinding} and the - * drop-down list box expected by {@link DropDownListBoxSelectionBinding}. - */ -final class SWTComboAdapter - extends AbstractListWidgetAdapter - implements DropDownListBoxSelectionBinding.DropDownListBox -{ - SWTComboAdapter(Combo combo) { - super(combo); - } - - // ********** ListWidgetModelBinding.ListWidget implementation ********** - public String[] getItems() { - return this.widget.getItems(); - } - public void setItem(int index, String item) { - this.widget.setItem(index, item); - } - public void setItems(String[] items) { - this.widget.setItems(items); - } - public void add(String item, int index) { - this.widget.add(item, index); - } - public void remove(int start, int end) { - this.widget.remove(start, end); - } - public void removeAll() { - this.widget.removeAll(); - } - - // ********** ComboBoxSelectionBinding.ComboBox implementation ********** - public void addSelectionListener(SelectionListener listener) { - this.widget.addSelectionListener(listener); - } - public void removeSelectionListener(SelectionListener listener) { - this.widget.removeSelectionListener(listener); - } - public int getSelectionIndex() { - return this.widget.getSelectionIndex(); - } - public void select(int index) { - this.widget.select(index); - } - public void deselect(int index) { - this.widget.deselect(index); - } - public void deselectAll() { - this.widget.deselectAll(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTListAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTListAdapter.java deleted file mode 100644 index 767be1bb86..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTListAdapter.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.widgets.List; - -/** - * Adapt an SWT {@link List} to the list widget expected by - * {@link ListWidgetModelBinding}. - */ -final class SWTListAdapter - extends AbstractListWidgetAdapter -{ - SWTListAdapter(List list) { - super(list); - } - public void addSelectionListener(SelectionListener listener) { - this.widget.addSelectionListener(listener); - } - public void removeSelectionListener(SelectionListener listener) { - this.widget.removeSelectionListener(listener); - } - public String[] getItems() { - return this.widget.getItems(); - } - public void setItem(int index, String item) { - this.widget.setItem(index, item); - } - public void setItems(String[] items) { - this.widget.setItems(items); - } - public void add(String item, int index) { - this.widget.add(item, index); - } - public void remove(int start, int end) { - this.widget.remove(start, end); - } - public void removeAll() { - this.widget.removeAll(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTTools.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTTools.java deleted file mode 100644 index f5b9358a74..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SWTTools.java +++ /dev/null @@ -1,392 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import java.util.Arrays; - -import org.eclipse.jpt.common.utility.internal.BitTools; -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.internal.model.value.StaticCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.WritablePropertyCollectionValueModelAdapter; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.List; -import org.eclipse.swt.widgets.Text; -import org.eclipse.swt.widgets.Widget; - -/** - * Various SWT tools. - */ -@SuppressWarnings("nls") -public final class SWTTools { - - // ********** check-box/radio button/toggle button ********** - - /** - * Bind the specified button (check-box, radio button, or toggle button) - * to the specified boolean model. - * If the boolean model is null, the button's 'selection' state will - * be false. - */ - public static void bind(WritablePropertyValueModel booleanModel, Button button) { - bind(booleanModel, button, false); - } - - /** - * Bind the specified button (check-box, radio button, or toggle button) - * to the specified boolean model. - * If the boolean model is null, the button's 'selection' state will - * be the specified default value. - */ - public static void bind(WritablePropertyValueModel booleanModel, Button button, boolean defaultValue) { - // the new binding will add itself as a listener to the boolean model and the button - new BooleanButtonModelBinding(booleanModel, button, defaultValue); - } - - - // ********** text field ********** - - /** - * Bind the specified text model to the specified text field. - */ - public static void bind(WritablePropertyValueModel textModel, Text textField) { - // the new binding will add itself as a listener to the text model and the text field - new TextFieldModelBinding(textModel, textField); - } - - - // ********** list box ********** - - /** - * Bind the specified model list to the specified list box. - * The list box selection is ignored. - * Use the default string converter to convert the model items to strings - * to be displayed in the list box, which calls {@link Object#toString()} - * on the items in the model list. - */ - public static void bind(ListValueModel listModel, List listBox) { - bind(listModel, listBox, StringConverter.Default.instance()); - } - - /** - * Bind the specified model list to the specified list box. - * The list box selection is ignored. - * Use the specified string converter to convert the model items to strings - * to be displayed in the list box. - */ - public static void bind(ListValueModel listModel, List listBox, StringConverter stringConverter) { - bind(listModel, new SWTListAdapter(listBox), stringConverter); - } - - /** - * Bind the specified model list and selection to the specified list box. - * Use the default string converter to convert the model items to strings - * to be displayed in the list box, which calls {@link Object#toString()} - * on the items in the model list. - */ - public static void bind(ListValueModel listModel, WritablePropertyValueModel selectedItemModel, List listBox) { - bind(listModel, selectedItemModel, listBox, StringConverter.Default.instance()); - } - - /** - * Adapt the specified model list and selection to the specified list box. - * Use the specified string converter to convert the model items to strings - * to be displayed in the list box. - */ - public static void bind(ListValueModel listModel, WritablePropertyValueModel selectedItemModel, List listBox, StringConverter stringConverter) { - checkForSingleSelectionStyle(listBox); - bind(listModel, new WritablePropertyCollectionValueModelAdapter(selectedItemModel), listBox, stringConverter); - } - - /** - * Bind the specified model list and selections to the specified list box. - * Use the default string converter to convert the model items to strings - * to be displayed in the list box, which calls {@link Object#toString()} - * on the items in the model list. - */ - public static void bind(ListValueModel listModel, WritableCollectionValueModel selectedItemsModel, List listBox) { - bind(listModel, selectedItemsModel, listBox, StringConverter.Default.instance()); - } - - /** - * Bind the specified model list and selections to the specified list box. - * Use the specified string converter to convert the model items to strings - * to be displayed in the list box. - */ - public static void bind(ListValueModel listModel, WritableCollectionValueModel selectedItemsModel, List listBox, StringConverter stringConverter) { - bind( - listModel, - new SWTListAdapter(listBox), - stringConverter, - new ListBoxSelectionBinding(listModel, selectedItemsModel, listBox) - ); - } - - private static void checkForSingleSelectionStyle(List listBox) { - if ( ! BitTools.flagIsSet(listBox.getStyle(), SWT.SINGLE)) { - throw new IllegalStateException("list box must be single-selection: " + listBox); - } - } - - - // ********** drop-down list box ********** - - /** - * Bind the specified model list and selection to the specified drop-down list box. - * Use the default string converter to convert the model items to strings - * to be displayed in the drop-down list box, which calls {@link Object#toString()} - * on the items in the model list. - */ - public static void bind(ListValueModel listModel, WritablePropertyValueModel selectedItemModel, Combo dropDownListBox) { - bind(listModel, selectedItemModel, dropDownListBox, StringConverter.Default.instance()); - } - - /** - * Adapt the specified model list and selection to the specified drop-down list box. - * Use the specified string converter to convert the model items to strings - * to be displayed in the drop-down list box. - */ - public static void bind(ListValueModel listModel, WritablePropertyValueModel selectedItemModel, Combo dropDownListBox, StringConverter stringConverter) { - checkForReadOnlyStyle(dropDownListBox); - SWTComboAdapter comboAdapter = new SWTComboAdapter(dropDownListBox); - bind( - listModel, - comboAdapter, - stringConverter, - new DropDownListBoxSelectionBinding(listModel, selectedItemModel, comboAdapter) - ); - } - - private static void checkForReadOnlyStyle(Widget comboBox) { - if ( ! BitTools.flagIsSet(comboBox.getStyle(), SWT.READ_ONLY)) { - throw new IllegalStateException("combo-box must be read-only: " + comboBox); - } - } - - - // ********** list "widget" ********** - - /** - * Bind the specified model list to the specified list widget. - * The list widget's selection is ignored. - * Use the specified string converter to convert the model items to strings - * to be displayed in the list box. - */ - private static void bind(ListValueModel listModel, ListWidgetModelBinding.ListWidget listWidget, StringConverter stringConverter) { - bind(listModel, listWidget, stringConverter, ListWidgetModelBinding.SelectionBinding.Null.instance()); - } - - /** - * Bind the specified model list to the specified list widget. - * Use the specified selection binding to control the list widget's selection. - * Use the specified string converter to convert the model items to strings - * to be displayed in the list box. - */ - private static void bind(ListValueModel listModel, ListWidgetModelBinding.ListWidget listWidget, StringConverter stringConverter, ListWidgetModelBinding.SelectionBinding selectionBinding) { - // the new binding will add itself as a listener to the value models and the list box - new ListWidgetModelBinding(listModel, listWidget, stringConverter, selectionBinding); - } - - - // ********** 'enabled' state ********** - - /** - * Control the enabled state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * enabled states will be false. - */ - public static void controlEnabledState(PropertyValueModel booleanModel, Control... controls) { - controlEnabledState(booleanModel, controls, false); - } - - /** - * Control the enabled state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * enabled states will be the specified default value. - */ - public static void controlEnabledState(PropertyValueModel booleanModel, Control[] controls, boolean defaultValue) { - switch (controls.length) { - case 0: - throw new IllegalArgumentException("empty controls array: " + Arrays.toString(controls)); - case 1: - controlEnabledState(booleanModel, controls[0], defaultValue); - break; - default: - controlEnabledState(booleanModel, new StaticCollectionValueModel(controls), defaultValue); - break; - } - } - - /** - * Control the enabled state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * enabled states will be false. - */ - public static void controlEnabledState(PropertyValueModel booleanModel, Iterable controls) { - controlEnabledState(booleanModel, controls, false); - } - - /** - * Control the enabled state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * enabled states will be the specified default value. - */ - public static void controlEnabledState(PropertyValueModel booleanModel, Iterable controls, boolean defaultValue) { - controlEnabledState(booleanModel, new StaticCollectionValueModel(controls), defaultValue); - } - - /** - * Control the enabled state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * enabled states will be false. - */ - public static void controlEnabledState(PropertyValueModel booleanModel, CollectionValueModel controlsModel) { - controlEnabledState(booleanModel, controlsModel, false); - } - - /** - * Control the enabled state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * enabled states will be the specified default value. - */ - public static void controlEnabledState(PropertyValueModel booleanModel, CollectionValueModel controlsModel, boolean defaultValue) { - control(booleanModel, controlsModel, defaultValue, ENABLED_ADAPTER); - } - - /** - * Control the enabled state of the specified control with the - * specified boolean. If the boolean is null, the control's - * enabled state will be the specified default value. - */ - public static void controlEnabledState(PropertyValueModel booleanModel, Control control, boolean defaultValue) { - control(booleanModel, control, defaultValue, ENABLED_ADAPTER); - } - - private static final BooleanStateController.Adapter ENABLED_ADAPTER = - new BooleanStateController.Adapter() { - public void setState(Control control, boolean b) { - control.setEnabled(b); - } - }; - - - // ********** 'visible' state ********** - - /** - * Control the visible state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * visible states will be false. - */ - public static void controlVisibleState(PropertyValueModel booleanModel, Control... controls) { - controlVisibleState(booleanModel, controls, false); - } - - /** - * Control the visible state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * visible states will be the specified default value. - */ - public static void controlVisibleState(PropertyValueModel booleanModel, Control[] controls, boolean defaultValue) { - switch (controls.length) { - case 0: - throw new IllegalArgumentException("empty controls array: " + Arrays.toString(controls)); - case 1: - controlVisibleState(booleanModel, controls[0], defaultValue); - break; - default: - controlVisibleState(booleanModel, new StaticCollectionValueModel(controls), defaultValue); - break; - } - } - - /** - * Control the visible state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * visible states will be false. - */ - public static void controlVisibleState(PropertyValueModel booleanModel, Iterable controls) { - controlVisibleState(booleanModel, controls, false); - } - - /** - * Control the visible state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * visible states will be the specified default value. - */ - public static void controlVisibleState(PropertyValueModel booleanModel, Iterable controls, boolean defaultValue) { - controlVisibleState(booleanModel, new StaticCollectionValueModel(controls), defaultValue); - } - - /** - * Control the visible state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * visible states will be false. - */ - public static void controlVisibleState(PropertyValueModel booleanModel, CollectionValueModel controlsModel) { - controlVisibleState(booleanModel, controlsModel, false); - } - - /** - * Control the visible state of the specified controls with the - * specified boolean. If the boolean is null, the controls' - * visible states will be the specified default value. - */ - public static void controlVisibleState(PropertyValueModel booleanModel, CollectionValueModel controlsModel, boolean defaultValue) { - control(booleanModel, controlsModel, defaultValue, VISIBLE_ADAPTER); - } - - /** - * Control the visible state of the specified control with the - * specified boolean. If the boolean is null, the control's - * visible state will be the specified default value. - */ - public static void controlVisibleState(PropertyValueModel booleanModel, Control control, boolean defaultValue) { - control(booleanModel, control, defaultValue, VISIBLE_ADAPTER); - } - - private static final BooleanStateController.Adapter VISIBLE_ADAPTER = - new BooleanStateController.Adapter() { - public void setState(Control control, boolean b) { - control.setVisible(b); - } - }; - - - // ********** boolean state controller ********** - - private static void control(PropertyValueModel booleanModel, CollectionValueModel controlsModel, boolean defaultValue, BooleanStateController.Adapter adapter) { - // the new controller will add itself as a listener to the value model and the controls - new MultiControlBooleanStateController(booleanModel, controlsModel, defaultValue, adapter); - } - - private static void control(PropertyValueModel booleanModel, Control control, boolean defaultValue, BooleanStateController.Adapter adapter) { - // the new controller will add itself as a listener to the value model and the controls - new SimpleBooleanStateController(booleanModel, control, defaultValue, adapter); - } - - - // ********** constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private SWTTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SimpleBooleanStateController.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SimpleBooleanStateController.java deleted file mode 100644 index 0b38bb3c1d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/SimpleBooleanStateController.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.widgets.Control; - -/** - * This controller enables a boolean model to control either the - * enabled or visible properties of an SWT control; i.e. the - * control's property is kept in synch with the boolean model, - * but not vice-versa. - *

- * Once the control is disposed, this controller is kaput. - * - * @see PropertyValueModel - * @see Control#setEnabled(boolean) - * @see Control#setVisible(boolean) - */ -final class SimpleBooleanStateController - extends BooleanStateController -{ - private final Control control; - - - // ********** constructor ********** - - /** - * Constructor - the boolean model, the control, and the adapter are required. - */ - SimpleBooleanStateController( - PropertyValueModel booleanModel, - Control control, - boolean defaultValue, - Adapter adapter - ) { - super(booleanModel, defaultValue, adapter); - if (control == null) { - throw new NullPointerException(); - } - this.control = control; - this.engageBooleanModel(); - this.engageControl(control); - this.setControlState(control, this.getBooleanValue()); - } - - - // ********** controls ********** - - @Override - void setControlState(boolean b) { - this.setControlState(this.control, b); - } - - @Override - void controlDisposed(Control c) { - super.controlDisposed(c); - this.disengageBooleanModel(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/TextFieldModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/TextFieldModelBinding.java deleted file mode 100644 index 12c0ce1b3e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/utility/swt/TextFieldModelBinding.java +++ /dev/null @@ -1,196 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.utility.swt; - -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.widgets.Text; - -/** - * This binding can be used to keep a text field - * synchronized with a model text/string. - * - * @see WritablePropertyValueModel - * @see Text - */ -@SuppressWarnings("nls") -class TextFieldModelBinding { - - /** - * The text model we keep synchronized with the text field. - */ - private final WritablePropertyValueModel textModel; - - /** - * A listener that allows us to synchronize the text field's contents with - * the text model. - */ - private final PropertyChangeListener textModelChangeListener; - - /** - * The text field we keep synchronized with the text model. - */ - private final Text textField; - - /** - * A listener that allows us to synchronize our text model - * with the text field's contents. - */ - private final ModifyListener textFieldModifyListener; - - /** - * A listener that allows us to stop listening to stuff when the text field - * is disposed. - */ - private final DisposeListener textFieldDisposeListener; - - /** - * Hmm... - */ - private boolean settingTextFieldText = false; - - - // ********** constructor ********** - - /** - * Constructor - the text model and text field are required. - */ - TextFieldModelBinding(WritablePropertyValueModel textModel, Text textField) { - super(); - if ((textModel == null) || (textField == null)) { - throw new NullPointerException(); - } - this.textModel = textModel; - this.textField = textField; - - this.textModelChangeListener = this.buildTextModelChangeListener(); - this.textModel.addPropertyChangeListener(PropertyValueModel.VALUE, this.textModelChangeListener); - - this.textFieldModifyListener = this.buildTextFieldModifyListener(); - this.textField.addModifyListener(this.textFieldModifyListener); - - this.textFieldDisposeListener = this.buildTextFieldDisposeListener(); - this.textField.addDisposeListener(this.textFieldDisposeListener); - - this.setTextFieldText(textModel.getValue()); - } - - - // ********** initialization ********** - - private PropertyChangeListener buildTextModelChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildTextModelChangeListener_()); - } - - private PropertyChangeListener buildTextModelChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - TextFieldModelBinding.this.textModelChanged(event); - } - @Override - public String toString() { - return "text listener"; - } - }; - } - - private ModifyListener buildTextFieldModifyListener() { - return new ModifyListener() { - public void modifyText(ModifyEvent event) { - TextFieldModelBinding.this.textFieldModified(); - } - @Override - public String toString() { - return "text field modify listener"; - } - }; - } - - private DisposeListener buildTextFieldDisposeListener() { - return new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - TextFieldModelBinding.this.textFieldDisposed(); - } - @Override - public String toString() { - return "text field dispose listener"; - } - }; - } - - - // ********** text model events ********** - - /* CU private */ void textModelChanged(PropertyChangeEvent event) { - if ( ! this.textField.isDisposed()) { // ??? - this.setTextFieldText((String) event.getNewValue()); - } - } - - private void setTextFieldText(String text) { - // the text model can be null, but the text field cannot - this.setTextFieldText_((text == null) ? "" : text); - } - - private void setTextFieldText_(String text) { - if ( ! text.equals(this.textField.getText())) { // ??? - this.setTextFieldText__(text); - } - } - - private void setTextFieldText__(String text) { - this.settingTextFieldText = true; - try { - this.textField.setText(text); - } finally { - this.settingTextFieldText = false; - } - } - - - // ********** text field events ********** - - /* CU private */ void textFieldModified() { - if ( ! this.settingTextFieldText) { - this.setTextModelText(this.textField.getText()); - } - } - - private void setTextModelText(String text) { - if ( ! text.equals(this.textModel.getValue())) { // ??? - this.textModel.setValue(text); - } - } - - /* CU private */ void textFieldDisposed() { - // the text field is not yet "disposed" when we receive this event - // so we can still remove our listeners - this.textField.removeDisposeListener(this.textFieldDisposeListener); - this.textField.removeModifyListener(this.textFieldModifyListener); - this.textModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.textModelChangeListener); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.textModel); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveListPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveListPane.java deleted file mode 100644 index 3aefe2adfe..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveListPane.java +++ /dev/null @@ -1,554 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jface.viewers.IBaseLabelProvider; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.ui.internal.swt.ColumnAdapter; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeEvent; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeListener; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ObjectListSelectionModel; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Layout; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; - -/** - * This implementation of the AddRemovePane uses a Table - * as its main widget, a List can't be used because it doesn't - * support showing images. However, the table is displayed like a list. - *

- * Here the layot of this pane: - *

- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------- ----------- |
- * | | Item 1                                                    | | Add...  | |
- * | | ...                                                       | ----------- |
- * | | Item n                                                    | ----------- |
- * | |                                                           | | Edit... | |
- * | |                                                           | ----------- |
- * | |                                                           | ----------- |
- * | |                                                           | | Remove  | |
- * | |                                                           | ----------- |
- * | -------------------------------------------------------------             |
- * -----------------------------------------------------------------------------
- * - * @version 2.0 - * @since 1.0 - */ -@SuppressWarnings("nls") -public class AddRemoveListPane extends AddRemovePane -{ - - /** - * The main widget of this add/remove pane. - */ - private Table table; - - /** - * Creates a new AddRemoveListPane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param adapter - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the table holder's items - */ - public AddRemoveListPane(Pane parentPane, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ILabelProvider labelProvider) { - - super(parentPane, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider); - } - - /** - * Creates a new AddRemoveListPane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param adapter - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the table holder's items - * @param helpId The topic help ID to be registered with this pane - */ - public AddRemoveListPane(Pane parentPane, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ILabelProvider labelProvider, - String helpId) { - - super(parentPane, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider, - helpId); - } - - /** - * Creates a new AddRemoveListPane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param adapter - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the table holder's items - * @param helpId The topic help ID to be registered with this pane - * @param parentManagePane true to have the parent pane manage - * the enabled state of this pane - */ - public AddRemoveListPane(Pane parentPane, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ILabelProvider labelProvider, - String helpId, - boolean parentManagePane) { - - super(parentPane, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider, - helpId, - parentManagePane); - } - - /** - * Creates a new AddRemoveListPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of the subject - * @param adapter - * @param parent The parent container - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the table holder's items - */ - public AddRemoveListPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ILabelProvider labelProvider) { - - super(parentPane, - subjectHolder, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider); - } - - /** - * Creates a new AddRemoveListPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of the subject - * @param adapter - * @param parent The parent container - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the table holder's items - * @param helpId The topic help ID to be registered with this pane - */ - public AddRemoveListPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ILabelProvider labelProvider, - String helpId) { - - super(parentPane, - subjectHolder, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider, - helpId); - } - - private ColumnAdapter buildColumnAdapter() { - return new ColumnAdapter() { - public WritablePropertyValueModel[] cellModels(Object subject) { - WritablePropertyValueModel[] valueHolders = new WritablePropertyValueModel[1]; - valueHolders[0] = new SimplePropertyValueModel(subject); - return valueHolders; - } - - public int columnCount() { - return 1; - } - - public String columnName(int columnIndex) { - return ""; - } - }; - } - - @Override - protected void itemsAdded(ListAddEvent e) { - super.itemsAdded(e); - revalidateLayout(); - } - - @Override - protected void itemsMoved(ListMoveEvent e) { - super.itemsMoved(e); - revalidateLayout(); - } - - @Override - protected void itemsRemoved(ListRemoveEvent e) { - super.itemsRemoved(e); - revalidateLayout(); - } - - @Override - protected void itemsReplaced(ListReplaceEvent e) { - super.itemsReplaced(e); - revalidateLayout(); - } - - @Override - protected void listChanged(ListChangeEvent e) { - super.listChanged(e); - revalidateLayout(); - } - - @Override - protected void listCleared(ListClearEvent e) { - super.listCleared(e); - revalidateLayout(); - } - - /** - * Revalidates the table layout after the list of items has changed. The - * layout has to be done in a new UI thread because our listener might be - * notified before the table has been updated (table column added or removed). - */ - private void revalidateLayout() { - SWTUtil.asyncExec(new Runnable() { public void run() { - if (!table.isDisposed()) { - table.getParent().computeSize(SWT.DEFAULT, SWT.DEFAULT); - table.getParent().layout(); - } - }}); - } - - private PropertyChangeListener buildSelectedItemPropertyChangeListener() { - return new SWTPropertyChangeListenerWrapper( - buildSelectedItemPropertyChangeListener_() - ); - } - - private PropertyChangeListener buildSelectedItemPropertyChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - if (table.isDisposed()) { - return; - } - getSelectionModel().setSelectedValue(e.getNewValue()); - updateButtons(); - } - }; - } - - private SelectionChangeListener buildSelectionListener() { - return new SelectionChangeListener() { - public void selectionChanged(SelectionChangeEvent e) { - AddRemoveListPane.this.selectionChanged(); - } - }; - } - - private Composite addTableContainer(Composite container) { - - container = addPane(container, buildTableContainerLayout()); - container.setLayoutData(new GridData(GridData.FILL_BOTH)); - return container; - } - - private Layout buildTableContainerLayout() { - return new Layout() { - @Override - protected Point computeSize(Composite composite, - int widthHint, - int heightHint, - boolean flushCache) { - - Table table = (Table) composite.getChildren()[0]; - TableColumn tableColumn = table.getColumn(0); - int columnWidth = tableColumn.getWidth(); - packColumn(table); - - // Calculate the table size and adjust it with the hints - Point size = table.computeSize(SWT.DEFAULT, SWT.DEFAULT); - - if (widthHint != SWT.DEFAULT) { - size.x = widthHint; - } - - if (heightHint != SWT.DEFAULT) { - size.y = heightHint; - } - - // Revert the column's width to its current value - table.setRedraw(false); - table.setLayoutDeferred(true); - tableColumn.setWidth(columnWidth); - table.setLayoutDeferred(false); - table.setRedraw(true); - - return size; - } - - private boolean isVerticalScrollbarBarVisible(Table table, - Rectangle clientArea) { - - // Get the height of all the rows - int height = table.getItemCount() * table.getItemHeight(); - - // Remove the border from the height - height += (table.getBorderWidth() * 2); - - return (clientArea.height < height); - } - - @Override - protected void layout(Composite composite, boolean flushCache) { - - Rectangle bounds = composite.getClientArea(); - - if (bounds.width > 0) { - - Table table = (Table) composite.getChildren()[0]; - table.setBounds(0, 0, bounds.width, bounds.height); - - updateTableColumnWidth( - table, - bounds.width, - isVerticalScrollbarBarVisible(table, bounds) - ); - } - } - - private void packColumn(Table table) { - - TableColumn tableColumn = table.getColumn(0); - - table.setRedraw(false); - table.setLayoutDeferred(true); - tableColumn.pack(); - table.setLayoutDeferred(false); - table.setRedraw(true); - - // Cache the column width so it can be used in - // updateTableColumnWidth() when determine which width to use - table.setData( - "column.width", - Integer.valueOf(tableColumn.getWidth()) - ); - } - - private void updateTableColumnWidth(Table table, - int width, - boolean verticalScrollbarBarVisible) { - - // Remove the border from the width - width -= (table.getBorderWidth() * 2); - - // Remove the scrollbar from the width if it is shown - if (verticalScrollbarBarVisible) { - width -= table.getVerticalBar().getSize().x; - } - - TableColumn tableColumn = table.getColumn(0); - - // Retrieve the cached column width, which is required for - // determining which width to use (the column width or the - // calculated width) - Integer columnWitdh = (Integer) table.getData("column.width"); - - // Use the calculated width if the column is smaller, otherwise - // use the column width and a horizontal scroll bar will show up - width = Math.max(width, columnWitdh); - - // Adjust the column width - tableColumn.setWidth(width); - } - }; - } - - private ITableLabelProvider buildTableLabelProvider(IBaseLabelProvider labelProvider) { - return new TableLabelProvider((ILabelProvider) labelProvider); - } - - /* - * (non-Javadoc) - */ - @Override - public Table getMainControl() { - return table; - } - - /* - * (non-Javadoc) - */ - @Override - @SuppressWarnings("unchecked") - protected void initializeMainComposite(Composite container, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider, - String helpId) { - - table = addUnmanagedTable( - addTableContainer(container), - SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI, - helpId - ); - - - TableModelAdapter model = TableModelAdapter.adapt( - (ListValueModel) listHolder, - getSelectedItemHolder(), - table, - buildColumnAdapter(), - buildTableLabelProvider(labelProvider) - ); - - model.addSelectionChangeListener(buildSelectionListener()); - - selectedItemHolder.addPropertyChangeListener( - PropertyValueModel.VALUE, - buildSelectedItemPropertyChangeListener() - ); - - initializeTable(table); - } - - /** - * Initializes the given table, which acts like a list in our case. - * - * @param table The main widget of this pane - */ - protected void initializeTable(Table table) { - - table.setData("column.width", new Integer(0)); - table.setHeaderVisible(false); - table.setLinesVisible(false); - } - - /** - * The selection has changed, update (1) the selected item holder, (2) the - * selection model and (3) the buttons. - */ - private void selectionChanged() { - WritablePropertyValueModel selectedItemHolder = getSelectedItemHolder(); - ObjectListSelectionModel selectionModel = getSelectionModel(); - int selectionCount = this.table.getSelectionCount(); - - if (selectionCount == 0) { - selectedItemHolder.setValue(null); - selectionModel.clearSelection(); - } - else if (selectionCount != 1) { - selectedItemHolder.setValue(null); - selectionModel.clearSelection(); - - for (int index : this.table.getSelectionIndices()) { - selectionModel.addSelectionInterval(index, index); - } - } - else { - int selectedIndex = this.table.getSelectionIndex(); - Object selectedItem = getListHolder().get(selectedIndex); - - selectedItemHolder.setValue(selectedItem); - selectionModel.setSelectedValue(selectedItem); - } - - updateButtons(); - } - - /** - * This label provider simply delegates the rendering to the provided - * ILabelProvider. - */ - private class TableLabelProvider extends LabelProvider - implements ITableLabelProvider { - - private ILabelProvider labelProvider; - - TableLabelProvider(ILabelProvider labelProvider) { - super(); - this.labelProvider = labelProvider; - } - - public Image getColumnImage(Object element, int columnIndex) { - return labelProvider.getImage(element); - } - - public String getColumnText(Object element, int columnIndex) { - return labelProvider.getText(element); - } - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java deleted file mode 100644 index 79d6175759..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java +++ /dev/null @@ -1,923 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.Arrays; - -import org.eclipse.jface.viewers.IBaseLabelProvider; -import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; -import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ObjectListSelectionModel; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; - -/** - * The abstract definition of a pane that has buttons for adding, removing and - * possibly editing the items. - * - * @see AddRemoveListPane - * - * @version 1.0 - * @since 2.0 - */ -public abstract class AddRemovePane extends Pane -{ - private Adapter adapter; - private Button addButton; - private Composite container; - private boolean enabled; - private IBaseLabelProvider labelProvider; - private ListValueModel listHolder; - private Button optionalButton; - private Button removeButton; - private WritablePropertyValueModel selectedItemHolder; - private ObjectListSelectionModel selectionModel; - - /** - * Creates a new AddRemovePane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param adapter This Adapter is used to dictacte the behavior - * of this AddRemovePane and by delegating to it some of the - * behavior - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - */ - protected AddRemovePane(Pane parentPane, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider) { - - this(parentPane, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider, - null); - } - - /** - * Creates a new AddRemovePane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param adapter This Adapter is used to dictacte the behavior - * of this AddRemovePane and by delegating to it some of the - * behavior - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - * @param helpId The topic help ID to be registered with this pane - */ - protected AddRemovePane(Pane parentPane, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider, - String helpId) { - - this(parentPane, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider, - helpId, - true); - } - /** - * Creates a new AddRemovePane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param adapter This Adapter is used to dictacte the behavior - * of this AddRemovePane and by delegating to it some of the - * behavior - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - * @param helpId The topic help ID to be registered with this pane - * @param parentManagePane true to have the parent pane manage - * the enabled state of this pane - */ - protected AddRemovePane(Pane parentPane, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider, - String helpId, - boolean parentManagePane) { - - super(parentPane, parent, true, parentManagePane); - - initialize( - adapter, - listHolder, - selectedItemHolder, - labelProvider - ); - - initializeLayout( - adapter, - listHolder, - selectedItemHolder, - labelProvider, - helpId - ); - } - - /** - * Creates a new AddRemovePane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of the subject - * @param adapter This Adapter is used to dictacte the behavior - * of this AddRemovePane and by delegating to it some of the - * behavior - * @param parent The parent container - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - */ - protected AddRemovePane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider) { - - this(parentPane, - subjectHolder, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider, - null); - } - - /** - * Creates a new AddRemovePane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of the subject - * @param adapter This Adapter is used to dictacte the behavior - * of this AddRemovePane and by delegating to it some of the - * behavior - * @param parent The parent container - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - * @param helpId The topic help ID to be registered with this pane - */ - protected AddRemovePane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider, - String helpId) { - - super(parentPane, subjectHolder, parent); - - initialize( - adapter, - listHolder, - selectedItemHolder, - labelProvider - ); - - initializeLayout( - adapter, - listHolder, - selectedItemHolder, - labelProvider, - helpId - ); - } - - /** - * Gives the possibility to add buttons after the Add button and before the - * optional button. - * - * @param container The parent container - * @param helpId The topic help ID to be registered with the buttons - * - * @category Layout - */ - protected void addCustomButtonAfterAddButton(Composite container, - String helpId) { - } - - /** - * Gives the possibility to add buttons after the optional button and before - * the Remove button. - * - * @param container The parent container - * @param helpId The topic help ID to be registered with the buttons - * - * @category Layout - */ - protected void addCustomButtonAfterOptionalButton(Composite container, - String helpId) { - } - - /** - * @category Add - */ - protected void addItem() { - adapter.addNewItem(selectionModel); - } - - /** - * @category Initialize - */ - protected Adapter buildAdapter() { - return adapter; - } - - /** - * @category Add - */ - protected Button addAddButton(Composite parent) { - return addUnmanagedButton( - parent, - adapter.addButtonText(), - buildAddItemAction() - ); - } - - /** - * @category Add - */ - private Runnable buildAddItemAction() { - return new Runnable() { - public void run() { - AddRemovePane.this.addItem(); - } - }; - } - - private ListChangeListener buildListChangeListener() { - return new SWTListChangeListenerWrapper(buildListChangeListener_()); - } - - private ListChangeListener buildListChangeListener_() { - return new ListChangeListener() { - - public void itemsAdded(ListAddEvent e) { - AddRemovePane.this.itemsAdded(e); - } - - public void itemsMoved(ListMoveEvent e) { - AddRemovePane.this.itemsMoved(e); - } - - public void itemsRemoved(ListRemoveEvent e) { - AddRemovePane.this.itemsRemoved(e); - } - - public void itemsReplaced(ListReplaceEvent e) { - AddRemovePane.this.itemsReplaced(e); - } - - public void listChanged(ListChangeEvent e) { - AddRemovePane.this.listChanged(e); - } - - public void listCleared(ListClearEvent e) { - AddRemovePane.this.listCleared(e); - } - }; - } - - protected void itemsAdded(ListAddEvent e) { - - } - - protected void itemsMoved(ListMoveEvent e) { - - } - - protected void itemsRemoved(ListRemoveEvent e) { - Object selectedItem = this.selectedItemHolder.getValue(); - - if (selectedItem == null) { - updateButtons(); - return; - } - - if (CollectionTools.contains(e.getItems(), selectedItem)) { - this.selectedItemHolder.setValue(null); - updateButtons(); - } - } - - protected void itemsReplaced(ListReplaceEvent e) { - - } - - protected void listChanged(ListChangeEvent e) { - - } - - protected void listCleared(ListClearEvent e) { - this.selectedItemHolder.setValue(null); - updateButtons(); - } - - - /** - * @category Option - */ - private Runnable buildOptionalAction() { - return new Runnable() { - public void run() { - AddRemovePane.this.editItem(); - } - }; - } - - /** - * @category Option - */ - protected Button addOptionalButton(Composite container) { - return addUnmanagedButton( - container, - adapter.optionalButtonText(), - buildOptionalAction() - ); - } - - /** - * @category Add - */ - protected Button addRemoveButton(Composite parent) { - return addUnmanagedButton( - parent, - adapter.removeButtonText(), - buildRemoveItemsAction() - ); - } - - /** - * @category Remove - */ - private Runnable buildRemoveItemsAction() { - return new Runnable() { - public void run() { - AddRemovePane.this.removeItems(); - } - }; - } - - protected ObjectListSelectionModel buildRowSelectionModel(ListValueModel listModel) { - return new ObjectListSelectionModel(new ListModelAdapter(listModel)); - } - - /** - * @category Option - */ - protected void editItem() { - this.adapter.optionOnSelection(getSelectionModel()); - } - - /* - * (non-Javadoc) - */ - @Override - public void enableWidgets(boolean enabled) { - - super.enableWidgets(enabled); - this.enabled = enabled; - - if (!this.getMainControl().isDisposed()) { - this.getMainControl().setEnabled(enabled); - } - - this.updateButtons(); - } - - protected final Composite getContainer() { - return container; - } - - protected IBaseLabelProvider getLabelProvider() { - return labelProvider; - } - - protected final ListValueModel getListHolder() { - return listHolder; - } - - /** - * Returns - * - * @return - */ - public abstract Composite getMainControl(); - - protected final WritablePropertyValueModel getSelectedItemHolder() { - return selectedItemHolder; - } - - public final ObjectListSelectionModel getSelectionModel() { - return selectionModel; - } - - /** - * Initializes this add/remove pane. - * - * @param adapter This Adapter is used to dictacte the behavior - * of this AddRemovePane and by delegating to it some of the - * behavior - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - * - * @category Initialization - */ - @SuppressWarnings("unchecked") - protected void initialize(Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider) - { - this.listHolder = listHolder; - this.labelProvider = labelProvider; - this.adapter = (adapter == null) ? buildAdapter() : adapter; - this.selectedItemHolder = (WritablePropertyValueModel) selectedItemHolder; - this.selectionModel = new ObjectListSelectionModel(new ListModelAdapter(listHolder)); - - this.listHolder.addListChangeListener( - ListValueModel.LIST_VALUES, - buildListChangeListener() - ); - } - - /** - * Initializes the pane containing the buttons (Add, optional (if required) - * and Remove). - * - * @param container The parent container - * @param helpId The topic help ID to be registered with the buttons - * - * @category Layout - */ - protected void initializeButtonPane(Composite container, String helpId) { - - container = addSubPane(container); - - GridData gridData = new GridData(); - gridData.grabExcessVerticalSpace = true; - gridData.verticalAlignment = SWT.TOP; - container.setLayoutData(gridData); - - // Add button - this.addButton = addAddButton(container); - addAlignRight(this.addButton); - - // Custom button - addCustomButtonAfterAddButton(container, helpId); - - // Optional button - if (this.adapter.hasOptionalButton()) { - this.optionalButton = addOptionalButton(container); - addAlignRight(this.optionalButton); - } - - // Custom button - addCustomButtonAfterOptionalButton(container, helpId); - - // Remove button - removeButton = addRemoveButton(container); - addAlignRight(removeButton); - - // Update the help topic ID - if (helpId != null) { - getHelpSystem().setHelp(addButton, helpId); - getHelpSystem().setHelp(removeButton, helpId); - - if (optionalButton != null) { - getHelpSystem().setHelp(optionalButton, helpId); - } - } - } - - /** - * Initializes this add/remove pane by creating the widgets. The subclass is - * required to build the main widget. - * - * @param adapter This Adapter is used to dictacte the behavior - * of this AddRemovePane and by delegating to it some of the - * behavior - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - * @param helpId The topic help ID to be registered with this pane - * - * @category Layout - */ - protected void initializeLayout(Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider, - String helpId) { - - initializeMainComposite( - container, - adapter, - listHolder, - selectedItemHolder, - labelProvider, - helpId); - - initializeButtonPane(container, helpId); - enableWidgets(getSubject() != null); - } - - /** - * {@inheritDoc} - */ - @Override - protected void initializeLayout(Composite container) { - this.container = addSubPane(container, 2, 0, 0, 0, 0); - } - - /** - * Initializes the main widget of this add/remove pane. - * - * @param container The parent container - * @param adapter This Adapter is used to dictacte the behavior - * of this AddRemovePane and by delegating to it some of the - * behavior - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - * @param helpId The topic help ID to be registered with this pane or - * null if it was not specified - * - * @category Layout - */ - protected abstract void initializeMainComposite(Composite container, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider, - String helpId); - - /** - * @category Remove - */ - protected void removeItems() { - - // Keep track of the selected indices so we can select an item - // before the lowest index - int[] indices = selectionModel.selectedIndices(); - Arrays.sort(indices); - - // Notify the adapter to remove the selected items - adapter.removeSelectedItems(selectionModel); - - // Select a new item - if (getListHolder().size() > 0) { - int index = Math.min(indices[0], getListHolder().size() - 1); - Object item = getListHolder().get(index); - selectedItemHolder.setValue(item); - } - // The list is empty, clear the value - else { - selectedItemHolder.setValue(null); - } - } - - /** - * Selects the given value, which can be null. - * - * @param value The new selected value - */ - public void setSelectedItem(Object value) { - selectedItemHolder.setValue(value); - } - - /** - * @category UpdateButtons - */ - protected void updateAddButton(Button addButton) { - addButton.setEnabled(enabled); - } - - /** - * @category UpdateButtons - */ - protected void updateButtons() { - if (!container.isDisposed()) { - updateAddButton(addButton); - updateRemoveButton(removeButton); - updateOptionalButton(optionalButton); - } - } - - /** - * @category UpdateButtons - */ - protected void updateOptionalButton(Button optionalButton) { - if (optionalButton != null) { - optionalButton.setEnabled( - enabled && - adapter.enableOptionOnSelectionChange(selectionModel) - ); - } - } - - /** - * @category UpdateButtons - */ - protected void updateRemoveButton(Button removeButton) { - removeButton.setEnabled( - enabled && - adapter.enableRemoveOnSelectionChange(selectionModel) - ); - } - - /** - * An abstract implementation of Adapter. - */ - public static abstract class AbstractAdapter implements Adapter { - - /** - * The text of the add button. - */ - private String addButtonText; - - /** - * Determines whether the optional button should be shown or not. - */ - private boolean hasOptionalButton; - - /** - * The text of the optional button, if used. - */ - private String optionalButtonText; - - /** - * The text of the remove button. - */ - private String removeButtonText; - - /** - * Creates a new AbstractAdapter with default text for the - * add and remove buttons. - */ - public AbstractAdapter() { - this(JptCommonUiMessages.AddRemovePane_AddButtonText, - JptCommonUiMessages.AddRemovePane_RemoveButtonText); - } - - /** - * Creates a new AbstractAdapter with default text for the - * add and remove buttons. - * - * @param hasOptionalButton true to show an optional button - * and to use the behavior related to the optional button; - * false to not use it - */ - public AbstractAdapter(boolean hasOptionalButton) { - this(); - this.setHasOptionalButton(hasOptionalButton); - } - - /** - * Creates a new AbstractAdapter with default text for the - * add and remove buttons. - * - * @param optionalButtonText The text of the optional button, which means - * the optional button will be shown - */ - public AbstractAdapter(String optionalButtonText) { - this(true); - this.setOptionalButtonText(optionalButtonText); - } - - /** - * Creates a new AbstractAdapter. - * - * @param addButtonText The add button's text - * @param removeButtonText The remove button's text - */ - public AbstractAdapter(String addButtonText, - String removeButtonText) { - - super(); - this.addButtonText = addButtonText; - this.removeButtonText = removeButtonText; - } - - /** - * Creates a new AbstractAdapter. - * - * @param addButtonText The add button's text - * @param removeButtonText The remove button's text - * @param optionalButtonText The text of the optional button, which means - * the optional button will be shown - */ - public AbstractAdapter(String addButtonText, - String removeButtonText, - String optionalButtonText) { - - this(optionalButtonText); - this.setAddButtonText(addButtonText); - this.setRemoveButtonText(removeButtonText); - } - - /* - * (non-Javadoc) - */ - public String addButtonText() { - return addButtonText; - } - - /* - * (non-Javadoc) - */ - public boolean enableOptionOnSelectionChange(ObjectListSelectionModel listSelectionModel) { - return listSelectionModel.selectedValuesSize() == 1; - } - - public boolean enableRemoveOnSelectionChange(ObjectListSelectionModel listSelectionModel) { - return listSelectionModel.selectedValue() != null; - } - - /* - * (non-Javadoc) - */ - public boolean hasOptionalButton() { - return hasOptionalButton; - } - - /* - * (non-Javadoc) - */ - public String optionalButtonText() { - return optionalButtonText; - } - - /* - * (non-Javadoc) - */ - public void optionOnSelection(ObjectListSelectionModel listSelectionModel) { - } - - /* - * (non-Javadoc) - */ - public String removeButtonText() { - return removeButtonText; - } - - /** - * Changes the text of the add button. This method has to be called before - * the AddRemoveListPane is initialized. - * - * @param addButtonText The add button's text - */ - public void setAddButtonText(String addButtonText) { - this.addButtonText = addButtonText; - } - - /** - * Changes the state of the optional button, meaning if it should be shown - * between the add and remove buttons or not. - * - * @param hasOptionalButton true to show an optional button - * and to use the behavior related to the optional button; - * false to not use it - */ - public void setHasOptionalButton(boolean hasOptionalButton) { - this.hasOptionalButton = hasOptionalButton; - } - - /** - * Changes the text of the optional button. This method has to be called - * before the AddRemoveListPane is initialized. This does not - * make the optional button visible. - * - * @param optionalButtonText The optional button's text - */ - public void setOptionalButtonText(String optionalButtonText) { - this.optionalButtonText = optionalButtonText; - } - - /** - * Changes the text of the remove button. This method has to be called - * before the AddRemoveListPane is initialized. - * - * @param removeButtonText The remove button's text - */ - public void setRemoveButtonText(String removeButtonText) { - this.removeButtonText = removeButtonText; - } - } - - /** - * This adapter is used to perform the actual action when adding a new item - * or removing the selected items. It is possible to add an optional button. - */ - public static interface Adapter { - - /** - * The add button's text. - * - * @return The text shown on the add button - */ - String addButtonText(); - - /** - * Invoked when the user selects the Add button. - */ - void addNewItem(ObjectListSelectionModel listSelectionModel); - - /** - * Invoked when selection changes. Implementation dictates whether button - * should be enabled. - */ - boolean enableOptionOnSelectionChange(ObjectListSelectionModel listSelectionModel); - - /** - * Invoked when selection changes. Implementation dictates whether remove button - * should be enabled. - */ - boolean enableRemoveOnSelectionChange(ObjectListSelectionModel listSelectionModel); - - /** - * Determines whether an optional button should be added between the add - * and remove buttons. - * - * @return true to show an optional button and to use the - * behavior related to the optional button; false to not use - * it - */ - boolean hasOptionalButton(); - - /** - * Resource string key for the optional button. - */ - String optionalButtonText(); - - /** - * Invoked when the user selects the optional button - */ - void optionOnSelection(ObjectListSelectionModel listSelectionModel); - - /** - * The remove button's text. - * - * @return The text shown on the remove button - */ - String removeButtonText(); - - /** - * Invoked when the user selects the Remove button. - */ - void removeSelectedItems(ObjectListSelectionModel listSelectionModel); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveTablePane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveTablePane.java deleted file mode 100644 index 05a7eda6be..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemoveTablePane.java +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jface.viewers.IBaseLabelProvider; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.ui.internal.swt.ColumnAdapter; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeEvent; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeListener; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ObjectListSelectionModel; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Table; - -/** - * This implementation of the AddRemovePane uses a Table - * as its main widget. - *

- * Here the layout of this pane: - *

- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------- ----------- |
- * | | Column 1 | Column 2 | ...   | Column i | ...   | Colunm n | | Add...  | |
- * | |-----------------------------------------------------------| ----------- |
- * | |          |          |       |          |       |          | ----------- |
- * | |-----------------------------------------------------------| | Edit... | |
- * | |          |          |       |          |       |          | ----------- |
- * | |-----------------------------------------------------------| ----------- |
- * | |          |          |       |          |       |          | | Remove  | |
- * | |-----------------------------------------------------------| ----------- |
- * | -------------------------------------------------------------             |
- * -----------------------------------------------------------------------------
- * - * @version 2.0 - * @since 1.0 - */ -public abstract class AddRemoveTablePane extends AddRemovePane -{ - /** - * Flag used to prevent circular - */ - private boolean locked; - - /** - * The main widget of this add/remove pane. - */ - private Table table; - - /** - * Creates a new AddRemoveTablePane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param adapter - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - */ - public AddRemoveTablePane(Pane parentPane, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ITableLabelProvider labelProvider) { - - super(parentPane, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider); - - } - - /** - * Creates a new AddRemoveTablePane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param adapter - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - * @param helpId The topic help ID to be registered with this pane - */ - public AddRemoveTablePane(Pane parentPane, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ITableLabelProvider labelProvider, - String helpId) { - - super(parentPane, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider, - helpId); - } - - /** - * Creates a new AddRemoveTablePane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of the subject - * @param adapter - * @param parent The parent container - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - */ - public AddRemoveTablePane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ITableLabelProvider labelProvider) { - - super(parentPane, - subjectHolder, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider); - } - - /** - * Creates a new AddRemoveTablePane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of the subject - * @param adapter - * @param parent The parent container - * @param listHolder The ListValueModel containing the items - * @param selectedItemHolder The holder of the selected item, if more than - * one item or no items are selected, then null will be passed - * @param labelProvider The renderer used to format the list holder's items - * @param helpId The topic help ID to be registered with this pane - */ - public AddRemoveTablePane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - ITableLabelProvider labelProvider, - String helpId) { - - super(parentPane, - subjectHolder, - parent, - adapter, - listHolder, - selectedItemHolder, - labelProvider, - helpId); - } - - protected abstract ColumnAdapter buildColumnAdapter(); - - private WritablePropertyValueModel buildSelectedItemHolder() { - return new SimplePropertyValueModel(); - } - - private PropertyChangeListener buildSelectedItemPropertyChangeListener() { - return new SWTPropertyChangeListenerWrapper( - buildSelectedItemPropertyChangeListener_() - ); - } - - private PropertyChangeListener buildSelectedItemPropertyChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - if (table.isDisposed()) { - return; - } - - if (!locked) { - locked = true; - - try { - Object value = e.getNewValue(); - getSelectionModel().setSelectedValue(e.getNewValue()); - int index = -1; - - if (value != null) { - index = CollectionTools.indexOf(getListHolder().iterator(), value); - } - - table.select(index); - updateButtons(); - } - finally { - locked = false; - } - } - } - }; - } - - private SelectionChangeListener buildSelectionListener() { - return new SelectionChangeListener() { - public void selectionChanged(SelectionChangeEvent e) { - AddRemoveTablePane.this.selectionChanged(); - } - }; - } - - /* - * (non-Javadoc) - */ - @Override - public Table getMainControl() { - return table; - } - - /* - * (non-Javadoc) - */ - @Override - @SuppressWarnings("unchecked") - protected void initializeMainComposite(Composite container, - Adapter adapter, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - IBaseLabelProvider labelProvider, - String helpId) - { - table = addUnmanagedTable(container, helpId); - table.setHeaderVisible(true); - - TableModelAdapter tableModel = TableModelAdapter.adapt( - (ListValueModel) listHolder, - buildSelectedItemHolder(), - table, - (ColumnAdapter) buildColumnAdapter(), - (ITableLabelProvider) labelProvider - ); - - tableModel.addSelectionChangeListener(buildSelectionListener()); - - selectedItemHolder.addPropertyChangeListener( - PropertyValueModel.VALUE, - buildSelectedItemPropertyChangeListener() - ); - } - - /** - * The selection has changed, update (1) the selected item holder, (2) the - * selection model and (3) the buttons. - */ - private void selectionChanged() { - - if (locked) { - return; - } - - locked = true; - - try { - WritablePropertyValueModel selectedItemHolder = getSelectedItemHolder(); - ObjectListSelectionModel selectionModel = getSelectionModel(); - int selectionCount = table.getSelectionCount(); - - if (selectionCount == 0) { - selectedItemHolder.setValue(null); - selectionModel.clearSelection(); - } - else if (selectionCount != 1) { - selectedItemHolder.setValue(null); - selectionModel.clearSelection(); - - for (int index : table.getSelectionIndices()) { - selectionModel.addSelectionInterval(index, index); - } - } - else { - int selectedIndex = table.getSelectionIndex(); - Object selectedItem = getListHolder().get(selectedIndex); - - selectedItemHolder.setValue(selectedItem); - selectionModel.setSelectedValue(selectedItem); - } - - updateButtons(); - } - finally { - locked = false; - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ChooserPane.java deleted file mode 100644 index a652562257..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ChooserPane.java +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; - -/** - * A chooser is simply a pane with three widgets, the label on the left, a main - * widget, usually a text field, and a right widget which is usually a browse - * button. - * - * @see ClassChooserPane - * @see PackageChooserPane - * - * @version 3.0 - * @since 2.0 - */ -public abstract class ChooserPane extends Pane -{ - /** - * The control shown after the label (left control). - */ - private Control mainControl; - - /** - * The control shown after the main control. - */ - private Control rightControl; - - /** - * Creates a new ChooserPane. - * - * @param parentPane The parent pane of this one - * @param parent The parent container - */ - public ChooserPane(Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new ChooserPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - */ - public ChooserPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - @Override - protected void initializeLayout(Composite container) { - - this.mainControl = addMainControl(container); - this.rightControl = addRightControl(container); - - addLabeledComposite( - container, - addLeftControl(container), - this.mainControl, - this.rightControl, - getHelpId() - ); - } - - /** - * Creates the left control. By default a label is created and its text is - * retrieved by {@link #getLabelText()}. - * - * @param container The parent container - * @return The newly created left control - */ - protected Control addLeftControl(Composite container) { - return addLabel(container, getLabelText()); - } - - /** - * The text of the label. This method is called by - * {@link #buildLeftControl(Composite)}. - * - * @return The localized text of the left control (which is a label by - * default) - */ - protected abstract String getLabelText(); - - /** - * Creates the main control of this pane. - * - * @param container The parent container - * @return The newly created main control - */ - protected abstract Control addMainControl(Composite container); - - /** - * Creates the right control. By default a browse button is created and its - * action is performed by {@link #buildBrowseAction()} and its text is - * retrieved by {@link #getBrowseButtonText()}. - * - * @param container The parent container - * @return The newly created right control - */ - protected Control addRightControl(Composite container) { - return addButton( - container, - getBrowseButtonText(), - buildBrowseAction() - ); - } - - /** - * Returns the text of the browse button. This method is called by - * {@link #buildRightControl(Composite)}. - * - * @return "Browse..." - */ - protected String getBrowseButtonText() { - return JptCommonUiMessages.ChooserPane_browseButton; - } - - /** - * Creates the action responsible to perform the action when the Browse is - * clicked. - * - * @return A new Runnable performing the actual action of the - * button - */ - protected abstract Runnable buildBrowseAction(); - - /** - * Returns the help topic ID for the controls of this pane. - * - * @return null is returned otherwise the subclass can return an ID - */ - protected String getHelpId() { - return null; - } - - @Override - public void enableWidgets(boolean enabled) { - - super.enableWidgets(enabled); - - if (!this.mainControl.isDisposed()) { - this.mainControl.setEnabled(enabled); - } - - if (!this.rightControl.isDisposed()) { - this.rightControl.setEnabled(enabled); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserComboPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserComboPane.java deleted file mode 100644 index f50eb3b64f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserComboPane.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper; -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; - -/** - * This chooser allows the user to choose a type when browsing and it adds code - * completion support to the text field, which is the main component. - *

- * Here the layout of this pane: - *

- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                             X  | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------
- * - * @version 2.0 - * @since 2.0 - */ -public abstract class ClassChooserComboPane extends ClassChooserPane -{ - - /** - * Creates a new ClassChooserPane. - * - * @param parentPane The parent pane of this one - * @param parent The parent container - */ - public ClassChooserComboPane(Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new ClassChooserPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - */ - public ClassChooserComboPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - @Override - protected Control addMainControl(Composite container) { - Composite subPane = addSubPane(container); - Combo combo = this.addClassCombo(subPane); - - ControlContentAssistHelper.createComboContentAssistant( - combo, - javaTypeCompletionProcessor - ); - - return subPane; - } - - protected Combo addClassCombo(Composite container) { - return this.addEditableCombo( - container, - this.buildClassListHolder(), - this.buildTextHolder(), - this.buildClassConverter() - ); - } - - protected abstract ListValueModel buildClassListHolder(); - - protected StringConverter buildClassConverter() { - return StringConverter.Default.instance(); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java deleted file mode 100644 index e2eb246e3e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java +++ /dev/null @@ -1,373 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.IPackageFragment; -import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.core.search.IJavaSearchScope; -import org.eclipse.jdt.core.search.SearchEngine; -import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper; -import org.eclipse.jdt.internal.ui.refactoring.contentassist.JavaTypeCompletionProcessor; -import org.eclipse.jdt.internal.ui.wizards.NewClassCreationWizard; -import org.eclipse.jdt.ui.IJavaElementSearchConstants; -import org.eclipse.jdt.ui.JavaUI; -import org.eclipse.jdt.ui.wizards.NewClassWizardPage; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.window.Window; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.jpt.common.core.internal.utility.JDTTools; -import org.eclipse.jpt.common.ui.JptCommonUiPlugin; -import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.ClassName; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.dialogs.SelectionDialog; -import org.eclipse.ui.forms.widgets.Hyperlink; - -/** - * This chooser allows the user to choose a type when browsing and it adds code - * completion support to the text field, which is the main component. - *

- * Here the layout of this pane: - *

- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                                | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------
- * - * @version 2.3 - * @since 2.0 - */ -@SuppressWarnings("nls") -public abstract class ClassChooserPane extends ChooserPane -{ - /** - * The code completion manager. - */ - protected JavaTypeCompletionProcessor javaTypeCompletionProcessor; - - private PropertyChangeListener subjectChangeListener; - - /** - * Creates a new ClassChooserPane. - * - * @param parentPane The parent pane of this one - * @param parent The parent container - */ - public ClassChooserPane(Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new ClassChooserPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - */ - public ClassChooserPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - @Override - protected void initialize() { - super.initialize(); - - // TODO bug 156185 - when this is fixed there should be api for this - this.javaTypeCompletionProcessor = new JavaTypeCompletionProcessor(false, false); - - this.subjectChangeListener = this.buildSubjectChangeListener(); - this.getSubjectHolder().addPropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener); - - this.classChooserSubjectChanged(getSubject()); - } - - private PropertyChangeListener buildSubjectChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildSubjectChangeListener_()); - } - - private PropertyChangeListener buildSubjectChangeListener_() { - return new PropertyChangeListener() { - @SuppressWarnings("unchecked") - public void propertyChanged(PropertyChangeEvent e) { - ClassChooserPane.this.classChooserSubjectChanged((T) e.getNewValue()); - } - }; - } - - protected void classChooserSubjectChanged(T newSubject) { - IPackageFragment packageFragment = null; - if (newSubject != null) { - IPackageFragmentRoot root = getPackageFragmentRoot(); - if (root != null) { - packageFragment = root.getPackageFragment(""); - } - } - this.javaTypeCompletionProcessor.setPackageFragment(packageFragment); - } - - @Override - protected Control addLeftControl(Composite container) { - if( ! this.allowTypeCreation()) { - return super.addLeftControl(container); - } - Hyperlink labelLink = this.addHyperlink(container, - this.getLabelText(), - this.buildHyperLinkAction() - ); - return labelLink; - } - - private Runnable buildHyperLinkAction() { - return new Runnable() { - public void run() { - ClassChooserPane.this.hyperLinkSelected(); - } - }; - } - - protected void hyperLinkSelected() { - IType type = getType(); - if (type != null) { - openInEditor(type); - } - else if (allowTypeCreation()){ - createType(); - } - } - - protected IType getType() { - if (getClassName() == null) { - return null; - } - IType type = null; - try { - type = getJavaProject().findType(getClassName().replace('$', '.')); - } - catch (JavaModelException e) { - JptCommonUiPlugin.log(e); - } - return type; - } - - protected void createType() { - StructuredSelection selection = new StructuredSelection(getJavaProject().getProject()); - - NewClassWizardPage newClassWizardPage = new NewClassWizardPage(); - newClassWizardPage.init(selection); - newClassWizardPage.setSuperClass(getSuperclassName(), true); - newClassWizardPage.setSuperInterfaces(getSuperInterfaceNames(), true); - if (!StringTools.stringIsEmpty(getClassName())) { - newClassWizardPage.setTypeName(ClassName.getSimpleName(getClassName()), true); - String packageName = ClassName.getPackageName(getClassName()); - newClassWizardPage.setPackageFragment(getFirstJavaSourceFolder().getPackageFragment(packageName), true); - } - NewClassCreationWizard wizard = new NewClassCreationWizard(newClassWizardPage, false); - wizard.init(PlatformUI.getWorkbench(), selection); - - WizardDialog dialog = new WizardDialog(getShell(), wizard); - dialog.create(); - int dResult = dialog.open(); - if (dResult == Window.OK) { - String className = (newClassWizardPage.getCreatedType()).getFullyQualifiedName(getEnclosingTypeSeparator()); - setClassName(className); - } - } - - protected abstract void setClassName(String className); - - /** - * Override this to change the enclosing type separator - */ - protected char getEnclosingTypeSeparator() { - return '$'; - } - - /** - * Override this to set a superclass in the New Class wizard. If no class is chosen, - * clicking the hyperlink label will open the new class wizard. - */ - protected String getSuperclassName() { - return ""; - } - - /** - * Override this to set a super interface in the New Class wizard. If no class is chosen, - * clicking the hyperlink label will open the new class wizard. - * @see getSuperInterfaceName - */ - protected List getSuperInterfaceNames() { - return getSuperInterfaceName() != null ? Collections.singletonList(getSuperInterfaceName()) : Collections.emptyList(); - } - - /** - * Override this to set a super interface in the New Class wizard. If no class is chosen, - * clicking the hyperlink label will open the new class wizard. - */ - protected String getSuperInterfaceName() { - return null; - } - - /** - * Override this if it does not make sense to allow the user to create a new type. - * This will determine whether clicking the hyperlink opens the New Class wizard - * @return - */ - protected boolean allowTypeCreation() { - return true; - } - - protected void openInEditor(IType type) { - IJavaElement javaElement = type.getParent(); - try { - JavaUI.openInEditor(javaElement, true, true); - } - catch (JavaModelException e) { - JptCommonUiPlugin.log(e); - } - catch (PartInitException e) { - JptCommonUiPlugin.log(e); - } - } - - protected abstract IJavaProject getJavaProject(); - - @Override - protected final Runnable buildBrowseAction() { - return new Runnable() { - public void run() { - promptType(); - } - }; - } - - @Override - protected Control addMainControl(Composite container) { - Composite subPane = addSubPane(container); - Text text = addText(subPane, buildTextHolder()); - - ControlContentAssistHelper.createTextContentAssistant( - text, - javaTypeCompletionProcessor - ); - - return subPane; - } - - /** - * Creates the value holder of the subject's property. - * - * @return The holder of the class name - */ - protected abstract WritablePropertyValueModel buildTextHolder(); - - /** - * Prompts the user the Open Type dialog. - * - * @return Either the selected type or null if the user - * cancelled the dialog - */ - protected IType chooseType() { - IJavaElement[] elements = new IJavaElement[] { getJavaProject() }; - IJavaSearchScope scope = SearchEngine.createJavaSearchScope(elements); - SelectionDialog typeSelectionDialog; - - try { - typeSelectionDialog = JavaUI.createTypeDialog( - getShell(), - PlatformUI.getWorkbench().getProgressService(), - scope, - getTypeDialogStyle(), - false, - StringTools.stringIsEmpty(getClassName()) ? "" : ClassName.getSimpleName(getClassName()) - ); - } - catch (JavaModelException e) { - JptCommonUiPlugin.log(e); - return null; - } - - typeSelectionDialog.setTitle(JptCommonUiMessages.ClassChooserPane_dialogTitle); - typeSelectionDialog.setMessage(JptCommonUiMessages.ClassChooserPane_dialogMessage); - - if (typeSelectionDialog.open() == Window.OK) { - return (IType) typeSelectionDialog.getResult()[0]; - } - - return null; - } - - protected int getTypeDialogStyle() { - return IJavaElementSearchConstants.CONSIDER_CLASSES; - } - - /** - * Returns the class name from its subject. - * - * @return The class name or null if none is defined - */ - protected abstract String getClassName(); - - protected IPackageFragmentRoot getFirstJavaSourceFolder() { - Iterator i = JDTTools.getJavaSourceFolders(getJavaProject()).iterator(); - return i.hasNext() ? i.next() : null; - } - - /** - * The browse button was clicked, its action invokes this action which should - * prompt the user to select a class and set it. - */ - protected void promptType() { - IType type = this.chooseType(); - - if (type != null) { - String className = type.getFullyQualifiedName(getEnclosingTypeSeparator()); - setClassName(className); - } - } - - protected IPackageFragmentRoot getPackageFragmentRoot() { - try { - return this.getJavaProject().getPackageFragmentRoots()[0]; - } catch (JavaModelException ex) { - JptCommonUiPlugin.log(ex); - return null; - } - } - - @Override - public void dispose() { - this.getSubjectHolder().removePropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener); - super.dispose(); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ComboPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ComboPane.java deleted file mode 100644 index 4046ed13ba..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ComboPane.java +++ /dev/null @@ -1,289 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Tools; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.osgi.util.NLS; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; - -/** - * Pane with combo box support for automatic updating of: - * - selected value - * - default value - * - value choices - */ -public abstract class ComboPane - extends Pane -{ - /** - * The main (only) widget of this pane. - */ - protected Combo comboBox; - - - // **************** constructors ****************************************** - - protected ComboPane( - Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - protected ComboPane( - Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - protected ComboPane( - Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - PropertyValueModel enabledModel) { - - super(parentPane, subjectHolder, parent, enabledModel); - } - - - // **************** initialization **************************************** - - @Override - protected void initializeLayout(Composite container) { - this.comboBox = this.addEditableCombo(container); - this.comboBox.addModifyListener(this.buildModifyListener()); - SWTUtil.attachDefaultValueHandler(this.comboBox); - } - - protected ModifyListener buildModifyListener() { - return new ModifyListener() { - public void modifyText(ModifyEvent e) { - ComboPane.this.comboBoxModified(); - } - }; - } - - - // **************** typical overrides ************************************* - - /** - * Return the possible values to be added to the combo during - * population. - */ - protected abstract Iterable getValues(); - - /** - * Return whether the combo is to add a default value to the choices - */ - protected boolean usesDefaultValue() { - // default response is 'true' - return true; - } - - /** - * Return the default value, or null if no default is - * specified. This method is only called when the subject is non-null. - */ - protected abstract String getDefaultValue(); - - /** - * Return the current value from the subject. - * This method is only called when the subject is non-null. - */ - protected abstract String getValue(); - - /** - * Set the specified value as the new value on the subject. - */ - protected abstract void setValue(String value); - - - // **************** overrides ********************************************* - - @Override - protected void propertyChanged(String propertyName) { - super.propertyChanged(propertyName); - this.updateSelectedItem(); - } - - @Override - protected void doPopulate() { - super.doPopulate(); - this.populateComboBox(); - } - - - // **************** populating ******************************************** - - /** - * Populate the combo-box list by clearing it, then adding first the default - * value, if available, and then the possible choices. - */ - protected void populateComboBox() { - this.comboBox.removeAll(); - - if (usesDefaultValue()) { - this.comboBox.add(this.buildDefaultValueEntry()); - } - - for (String value : this.getValues()) { - this.comboBox.add(value); - } - - this.updateSelectedItem_(); - } - - protected String buildDefaultValueEntry() { - if (getSubject() == null) { - return JptCommonUiMessages.NoneSelected; - } - String defaultValue = this.getDefaultValue(); - return (defaultValue == null) ? this.buildNullDefaultValueEntry() : this.buildNonNullDefaultValueEntry(defaultValue); - } - - protected String buildNullDefaultValueEntry() { - return JptCommonUiMessages.DefaultEmpty; - } - - protected String buildNonNullDefaultValueEntry(String defaultValue) { - return NLS.bind( - JptCommonUiMessages.DefaultWithOneParam, - defaultValue); - } - - protected void updateSelectedItem() { - // make sure the default value is up to date (??? ~bjv) - if (usesDefaultValue()) { - String defaultValueEntry = this.buildDefaultValueEntry(); - if ( ! this.comboBox.getItem(0).equals(defaultValueEntry)) { - this.comboBox.remove(0); - this.comboBox.add(defaultValueEntry, 0); - } - } - - this.updateSelectedItem_(); - } - - /** - * Updates the selected item by selecting the current value, if not - * null, or select the default value if one is available, - * otherwise remove the selection. - */ - protected void updateSelectedItem_() { - String value = (this.getSubject() == null) ? null : this.getValue(); - if (value == null) { - if (usesDefaultValue()) { - // select the default value - this.comboBox.select(0); - } - else { - this.comboBox.setText(""); - } - } else { - // select the new value - if ( ! value.equals(this.comboBox.getText())) { - // This prevents the cursor from being set back to the beginning of the line (bug 234418). - // The reason we are hitting this method at all is because the - // context model is updating from the resource model in a way - // that causes change notifications to be fired (the annotation - // is added to the resource model, change notification occurs - // on the update thread, and then the name is set, these 2 - // threads can get in the wrong order). - // The #valueChanged() method sets the populating flag to true, - // but in this case it is already set back to false when we - // receive notification back from the model because it has - // moved to the update thread and then jumps back on the UI thread. - this.comboBox.setText(value); - } - } - } - - protected void repopulateComboBox() { - if ( ! this.comboBox.isDisposed()) { - this.repopulate(); - } - } - - - // **************** combo-box listener callback *************************** - - protected void comboBoxModified() { - if ( ! this.isPopulating()) { - this.valueChanged(this.comboBox.getText()); - } - } - - /** - * The combo-box selection has changed, update the model if necessary. - * If the value has changed and the subject is null, we can build a subject - * before setting the value. - */ - protected void valueChanged(String newValue) { - T subject = this.getSubject(); - String oldValue; - if (subject == null) { - if (this.nullSubjectIsNotAllowed()) { - return; // no subject to set the value on - } - oldValue = null; - } else { - oldValue = this.getValue(); - } - - // convert empty string or default to null - if (StringTools.stringIsEmpty(newValue) || this.valueIsDefault(newValue)) { - newValue = null; - } - - // set the new value if it is different from the old value - if (Tools.valuesAreDifferent(oldValue, newValue)) { - this.setPopulating(true); - - try { - this.setValue(newValue); - } finally { - this.setPopulating(false); - } - } - } - - /** - * Return whether we can set the value when the subject is null - * (i.e. #setValue(String) will construct the subject if necessary). - */ - protected boolean nullSubjectIsAllowed() { - return false; - } - - protected final boolean nullSubjectIsNotAllowed() { - return ! this.nullSubjectIsAllowed(); - } - - /** - * pre-condition: value is not null - */ - protected boolean valueIsDefault(String value) { - if (! usesDefaultValue()) { - return false; - } - return (this.comboBox.getItemCount() > 0) - && value.equals(this.comboBox.getItem(0)); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DefaultWidgetFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DefaultWidgetFactory.java deleted file mode 100644 index 97f4dc388c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DefaultWidgetFactory.java +++ /dev/null @@ -1,260 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jpt.common.ui.WidgetFactory; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.DateTime; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.List; -import org.eclipse.swt.widgets.Spinner; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.forms.widgets.FormText; -import org.eclipse.ui.forms.widgets.FormToolkit; -import org.eclipse.ui.forms.widgets.Hyperlink; -import org.eclipse.ui.forms.widgets.Section; -import org.eclipse.ui.forms.widgets.TableWrapData; -import org.eclipse.ui.forms.widgets.TableWrapLayout; - -/** - * This WidgetFactory simply creates plain SWT widgets. - * - * @version 2.0 - * @since 2.0 - */ -public class DefaultWidgetFactory implements WidgetFactory { - - /** - * The singleton instance of this IWidgetFactory - */ - private static final WidgetFactory INSTANCE = new DefaultWidgetFactory(); - - /** - * Creates a new DefaultWidgetFactory. - */ - private DefaultWidgetFactory() { - super(); - } - - /** - * Returns the singleton instance of this IWidgetFactory. - * - * @return The singleton instance of this IWidgetFactory - */ - public static WidgetFactory instance() { - return INSTANCE; - } - - /** - * {@inheritDoc} - */ - public Button createButton(Composite parent, String text) { - return this.createButton(parent, text, SWT.NULL); - } - - /** - * Creates a new button. - * - * @param parent The parent container - * @param text The button's text - * @param style The style to apply to the button, which determines its type: - * toggle, push, check box, radio - * @return The newly created Button - */ - private Button createButton(Composite parent, String text, int style) { - Button button = new Button(parent, style); - button.setText(text); - return button; - } - - /** - * {@inheritDoc} - */ - @Deprecated - public CCombo createCCombo(Composite parent) { - return new CCombo(parent, SWT.BORDER | SWT.READ_ONLY); - } - - /** - * {@inheritDoc} - */ - public Button createCheckBox(Composite parent, String text) { - return this.createButton(parent, text, SWT.CHECK); - } - - /** - * {@inheritDoc} - */ - public Combo createCombo(Composite parent) { - return new Combo(parent, SWT.BORDER | SWT.READ_ONLY); - } - - /** - * {@inheritDoc} - */ - public Composite createComposite(Composite parent) { - return new Composite(parent, SWT.NULL); - } - - /** - * {@inheritDoc} - */ - public DateTime createDateTime(Composite parent, int style) { - return new DateTime(parent, style); - } - - /** - * {@inheritDoc} - */ - @Deprecated - public CCombo createEditableCCombo(Composite parent) { - return new CCombo(parent, SWT.BORDER); - } - - /** - * {@inheritDoc} - */ - public Combo createEditableCombo(Composite parent) { - return new Combo(parent, SWT.BORDER); - } - - /** - * {@inheritDoc} - */ - public Group createGroup(Composite parent, String title) { - Group group = new Group(parent, SWT.NULL); - group.setText(title); - return group; - } - - /** - * {@inheritDoc} - */ - public Hyperlink createHyperlink(Composite parent, String text) { - Hyperlink hyperlink = new Hyperlink(parent, SWT.NULL); - hyperlink.setText(text); - return hyperlink; - } - - /** - * {@inheritDoc} - */ - public Label createLabel(Composite parent, String labelText) { - Label label = new Label(parent, SWT.WRAP); - label.setText(labelText); - return label; - } - - /** - * {@inheritDoc} - */ - public List createList(Composite parent, int style) { - return new List(parent, SWT.BORDER | style); - } - - /** - * {@inheritDoc} - */ - public FormText createMultiLineLabel(Composite parent, String labelText) { - - Composite container = new Composite(parent, SWT.NONE); - - GridData gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - container.setLayoutData(gridData); - - TableWrapLayout layout = new TableWrapLayout(); - layout.numColumns = 1; - layout.bottomMargin = 0; - layout.leftMargin = 0; - layout.rightMargin = 0; - layout.topMargin = 0; - container.setLayout(layout); - - FormToolkit widgetFactory = new FormToolkit(parent.getDisplay()); - FormText text = widgetFactory.createFormText(container, true); - text.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); - text.setText(labelText, false, false); - - return text; - } - - /** - * {@inheritDoc} - */ - public Text createMultiLineText(Composite parent) { - return new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL); - } - - /** - * {@inheritDoc} - */ - public Text createPasswordText(Composite parent) { - return new Text(parent, SWT.BORDER | SWT.PASSWORD); - } - - /** - * {@inheritDoc} - */ - public Button createPushButton(Composite parent, String text) { - return this.createButton(parent, text, SWT.PUSH); - } - - /** - * {@inheritDoc} - */ - public Button createRadioButton(Composite parent, String text) { - return this.createButton(parent, text, SWT.RADIO); - } - - /** - * {@inheritDoc} - */ - public Section createSection(Composite parent, int style) { - return new Section(parent, style); - } - - /** - * {@inheritDoc} - */ - public Spinner createSpinner(Composite parent) { - return new Spinner(parent, SWT.NULL); - } - - /** - * {@inheritDoc} - */ - public Table createTable(Composite parent, int style) { - return new Table(parent, SWT.BORDER | style); - } - - /** - * {@inheritDoc} - */ - public Text createText(Composite parent) { - return new Text(parent, SWT.BORDER); - } - - /** - * {@inheritDoc} - */ - public Button createTriStateCheckBox(Composite parent, String text) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, text, this); - return checkBox.getCheckBox(); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Dialog.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Dialog.java deleted file mode 100644 index 1c6509ed1b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Dialog.java +++ /dev/null @@ -1,350 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jface.dialogs.TitleAreaDialog; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.node.Node; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -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.swt.widgets.Control; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.help.IWorkbenchHelpSystem; - -/** - * The abstract implementation of a dialog using a "state object" (model object) - * for behavior. - *

- * The main pane of this dialog should be extending DialogPane - * for creating the right type of widgets and it has the "state object" (subject) - * behavior built-in. - * - * @see Node - * @see DialogPane - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public abstract class Dialog extends TitleAreaDialog -{ - /** - * The main content pane of this dialog. - */ - private DialogPane pane; - - /** - * The holder of the "state object" used by this dialog. - */ - private WritablePropertyValueModel subjectHolder; - - /** - * Caches the title text until the dialog is created and the dialog's shell - * needs to be configured. - */ - private String title; - - /** - * Creates a new Dialog. - * - * @param parent The parent shell - */ - protected Dialog(Shell parent) { - this(parent, ""); - } - - /** - * Creates a new Dialog. - * - * @param parent The parent shell - * @param title The dialog's title - */ - protected Dialog(Shell parent, String title) { - super(parent); - this.title = title; - initialize(); - } - - /** - * Initializes the main pane of this dialog. This method is invoked only - * when the dialog is requested to show on screen and not during - * initialization. - * - * @param container The container to which the widgets should be added to, - * the layout is already set - */ - protected abstract DialogPane buildLayout(Composite container); - - /** - * Creates the state object (model object) that will be used to keep track - * of the information entered in this dialog. The state object will be stored - * in the subject holder and can be retrieved using {@link #subject()}. - * - * @return A new state object - */ - protected T buildStateObject() { - return null; - } - - /** - * Creates the Validator that will be notified when changes are - * made to the state object. - * - * @return The validator that will be set on the state object - */ - Node.Validator buildValidator() { - return Node.NULL_VALIDATOR; - } - - /* - * (non-Javadoc) - */ - @Override - public boolean close() { - - // Dispose the pane in order to remove any listeners that could - // have been installed outside the scrope of the state object - if (pane != null) { - pane.dispose(); - pane = null; - } - - return super.close(); - } - - /** - * {@inheritDoc} - */ - @Override - protected void configureShell(Shell shell) { - super.configureShell(shell); - shell.setText(getTitle()); - } - - /** - * {@inheritDoc} - */ - @Override - public void create() { - super.create(); - installSubject(); - } - - /* - * (non-Javadoc) - */ - @Override - protected Control createContents(Composite parent) { - if (hasTitleArea()) { - return super.createContents(parent); - } - - return createDefaultContent(parent); - } - - /** - * Creates the default main container of this dialog when the title area is - * not required. The top part is the dialog area populated by the subclass - * and the lower part is the button pane having the OK and Cancel buttons. - * - * @param parent The parent container - * @return The - */ - private Composite createDefaultContent(Composite parent) { - - Composite composite = new Composite(parent, SWT.NULL); - - GridLayout layout = new GridLayout(1, false); - layout.marginHeight = 0; - layout.marginWidth = 0; - layout.verticalSpacing = 0; - composite.setLayout(layout); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - - applyDialogFont(composite); - initializeDialogUnits(composite); - dialogArea = createDialogArea(composite); - buttonBar = createButtonBar(composite); - - return composite; - } - - /* - * (non-Javadoc) - */ - @Override - protected Composite createDialogArea(Composite parent) { - - // If the title area needs to be shown, then leave the superclass to - // create the necessary widgets - if (hasTitleArea()) { - parent = (Composite) super.createDialogArea(parent); - } - - // Create the main area's container - Composite container = new Composite(parent, SWT.NULL); - container.setLayout(new GridLayout(1, false)); - - GridData gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.verticalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - container.setLayoutData(gridData); - - // Initialize the content pane - pane = buildLayout(container); - - // Initialize the UI part, which requires the widgets being created - initializeUI(); - - return parent; - } - - /** - * Determines whether the description area (where a title, description and - * image) should be visible or hidden. ValidatingDialog - * automatically show the description area in order to show problems. - * - * @return false by default, which means the methods used to - * update the title, description and image shouldn't be called; true - * to make the description pane visible - */ - protected boolean hasTitleArea() { - return false; - } - - /** - * Returns the helps system. - * - * @return The platform's help system - * - * @category Helper - */ - protected final IWorkbenchHelpSystem getHelpSystem() { - return PlatformUI.getWorkbench().getHelpSystem(); - } - - /** - * Initializes this dialog. - */ - protected void initialize() { - this.subjectHolder = new SimplePropertyValueModel(); - } - - /** - * Initializes the UI part of this dialog, this is called after the widgets - * have been created. - */ - protected void initializeUI() { - } - - /** - * Creates the state object, if one is needed and install a Validator - * in order to receive notification of changes done to that state object. The - * subject can be retrieved from the subject holder. - */ - private void installSubject() { - - T subject = buildStateObject(); - - if (subject != null) { - subject.setValidator(buildValidator()); - } - - subjectHolder.setValue(subject); - } - - /** - * Asynchronously launches this dialog in the UI thread. - */ - public final void openDialog() { - SWTUtil.setUserInterfaceActive(false); - SWTUtil.show(this); - } - - /** - * Asynchronously launches this dialog in the UI thread and invoke the given - * PostExecution to perform any post-task. - * - * @param postExecution This interface let the caller to invoke a piece of - * code once the dialog is disposed - */ - public final void openDialog(PostExecution> execution) { - SWTUtil.setUserInterfaceActive(false); - SWTUtil.show(this, execution); - } - - /** - * Gives access to the dialog's main pane. - * - * @return The pane showing the custom widgets - */ - protected DialogPane getPane() { - return pane; - } - - /** - * Returns the subject of this dialog. - * - * @return The subject of this dialog or null if no subject was - * used - */ - public T getSubject() { - return subjectHolder.getValue(); - } - - /** - * Returns the holder of the subject. - * - * @return The subject holder used to be passed to the dialog pane, which is - * an instance of DialogPane - */ - protected final PropertyValueModel getSubjectHolder() { - return subjectHolder; - } - - /** - * Retrieves the dialog's title. The title passed to the constructor will be - * returned by default but if it wasn't specified, this method can be used - * to return it. - * - * @return Either the title passed to the constructor or a different title - */ - protected String getTitle() { - return title; - } - - /** - * Determines whether the dialog was cancelled or not. - * - * @return true if the dialog was cancelled; false - * if it was confirmed - */ - public final boolean wasCancelled() { - return getReturnCode() == CANCEL; - } - - /** - * Determines whether the dialog was confirmed or not. - * - * @return true if the dialog was confirmed; false - * if it was cancelled - */ - public final boolean wasConfirmed() { - return getReturnCode() == OK; - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DialogPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DialogPane.java deleted file mode 100644 index 823cd0c183..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/DialogPane.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jpt.common.utility.internal.node.Node; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.widgets.Composite; - -/** - * The abstract pane to use when the pane is shown in an Dialog. - * - * @see Dialog - * - * @version 2.0 - * @since 2.0 - */ -public abstract class DialogPane extends Pane { - - /** - * Creates a new DialogPane. - * - * @param parentPane The parent controller of this one - * @param parent The parent container - * - * @category Constructor - */ - protected DialogPane(DialogPane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new DialogPane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - * @param automaticallyAlignWidgets true to make the widgets - * this pane aligned with the widgets of the given parent controller; - * false to not align them - * - * @category Constructor - */ - protected DialogPane(DialogPane parentPane, - Composite parent, - boolean automaticallyAlignWidgets) { - - super(parentPane, parent, automaticallyAlignWidgets); - } - - /** - * Creates a new DialogPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - * - * @category Constructor - */ - protected DialogPane(DialogPane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - /** - * Creates a new DialogPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - * @param automaticallyAlignWidgets true to make the widgets - * this pane aligned with the widgets of the given parent controller; - * false to not align them - * - * @category Constructor - */ - protected DialogPane(DialogPane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - boolean automaticallyAlignWidgets) { - - super(parentPane, subjectHolder, parent, automaticallyAlignWidgets); - } - - /** - * Creates a new DialogPane. - * - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - * - * @category Constructor - */ - protected DialogPane(PropertyValueModel subjectHolder, - Composite parent) { - - super(subjectHolder, parent, DefaultWidgetFactory.instance()); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumComboViewer.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumComboViewer.java deleted file mode 100644 index f3069c5311..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumComboViewer.java +++ /dev/null @@ -1,369 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.Arrays; -import java.util.Comparator; -import org.eclipse.jface.viewers.ComboViewer; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jpt.common.ui.WidgetFactory; -import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.osgi.util.NLS; -import org.eclipse.swt.widgets.Composite; -import com.ibm.icu.text.Collator; - -/** - * This pane simply shows a combo where its data is populating through - * {@link #choices()} and a default value can also be added. - *

- * Here the layout of this pane: - *

- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | | I                                                                   |v| |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------
- * - * @version 2.0 - * @since 1.0 - */ -@SuppressWarnings("nls") -abstract class EnumComboViewer extends Pane -{ - /** - * The main widget of this pane. - */ - private ComboViewer comboViewer; - - /** - * A constant used to represent the null value. - */ - public static final String NULL_VALUE = "null"; - - /** - * Creates a new EnumComboViewer. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - */ - EnumComboViewer(Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new EnumComboViewer. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - */ - EnumComboViewer(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - /** - * Creates a new EnumComboViewer. - * - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - */ - EnumComboViewer(PropertyValueModel subjectHolder, - Composite parent, - WidgetFactory widgetFactory) { - - super(subjectHolder, parent, widgetFactory); - } - - /** - * Creates the list of choices and add an extra element that represents the - * default value. - * - * @return The combo's choices including the default value - */ - private Object[] buildChoices() { - V[] choices = getChoices(); - if (sortChoices()) { - Arrays.sort(choices, buildComparator()); - } - - Object[] extendedChoices = new Object[choices.length + 1]; - System.arraycopy(choices, 0, extendedChoices, 1, choices.length); - extendedChoices[0] = NULL_VALUE; - - return extendedChoices; - } - - /** - * Return true to sort the choices in alphabetical order - * @return - */ - protected boolean sortChoices() { - return true; - } - - /** - * Creates the ComboViewer with the right combo widgets. - * - * @param container The container of the combo - * @return A new ComboViewer containing the right combo widget - */ - protected ComboViewer addComboViewer(Composite container) { - return addComboViewer(container, buildLabelProvider()); - } - - private Comparator buildComparator() { - return new Comparator() { - final LabelProvider labelProvider = buildLabelProvider(); - - public int compare(Object value1, Object value2) { - String displayString1 = labelProvider.getText(value1); - String displayString2 = labelProvider.getText(value2); - return Collator.getInstance().compare(displayString1, displayString2); - } - }; - } - - /** - * Retrieves the localized string from the given NLS class by creating the - * key. That key is the concatenation of the composite's short class name - * with the toString() of the given value separated by an underscore. - * - * @param nlsClass The NLS class used to retrieve the localized text - * @param compositeClass The class used for creating the key, its short class - * name is the beginning of the key - * @param value The value used to append its toString() to the generated key - * @return The localized text associated with the value - */ - protected final String buildDisplayString(Class nlsClass, - Class compositeClass, - Object value) { - - return SWTUtil.buildDisplayString(nlsClass, compositeClass, value); - } - - /** - * Retrieves the localized string from the given NLS class by creating the - * key. That key is the concatenation of the composite's short class name - * with the toString() of the given value separated by an underscore. - * - * @param nlsClass The NLS class used to retrieve the localized text - * @param composite The object used to retrieve the short class name that is - * the beginning of the key - * @param value The value used to append its toString() to the generated key - * @return The localized text associated with the value - */ - protected final String buildDisplayString(Class nlsClass, - Object composite, - Object value) { - - return SWTUtil.buildDisplayString(nlsClass, composite, value); - } - - /** - * Creates the display string for the given element. If the element is the - * virtual null value then its display string will be "Default" - * appended by the actual default value, if it exists. - * - * @param value The value to convert into a human readable string - * @return The string representation of the given element - */ - @SuppressWarnings("unchecked") - private String buildDisplayString(Object value) { - if (value == NULL_VALUE) { - V defaultValue = (getSubject() != null) ? getDefaultValue() : null; - - if (defaultValue != null) { - String displayString = displayString(defaultValue); - return NLS.bind(JptCommonUiMessages.EnumComboViewer_defaultWithDefault, displayString); - } - return nullDisplayString(); - } - - return displayString((V) value); - } - - final LabelProvider buildLabelProvider() { - return new LabelProvider() { - @Override - public String getText(Object element) { - return buildDisplayString(element); - } - }; - } - - private ISelection buildSelection() { - Object value = (getSubject() != null) ? getValue() : null; - - if (value == null) { - value = NULL_VALUE; - } - - return new StructuredSelection(value); - } - - private ISelectionChangedListener buildSelectionChangedListener() { - return new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent e) { - if (!isPopulating()) { - StructuredSelection selection = (StructuredSelection) e.getSelection(); - valueChanged(selection.getFirstElement()); - } - } - }; - } - - /** - * Returns the possible choices to show in the viewer. - * - * @return The items to show in the combos - */ - protected abstract V[] getChoices(); - - /** - * Returns the default value, this method is not called if the subject is - * null. - * - * @return The value that is declared as being the default when it is not - * defined or null if there is no default value - */ - protected abstract V getDefaultValue(); - - /** - * Returns the displayable string for the given value. - * - * @param value The value to translate into a human readable string - * @return The localized text representing the given value - */ - protected abstract String displayString(V value); - - /** - * Returns the displayable string for a null value. - */ - protected String nullDisplayString() { - return null; //I would rather display nothing than "Default()" - } - - /* - * (non-Javadoc) - */ - @Override - protected void doPopulate() { - super.doPopulate(); - this.populateCombo(); - } - - /** - * Returns - * - * @return - */ - final ComboViewer getComboViewer() { - return comboViewer; - } - - /** - * Retrieves the subject's value. The subject is never null. - * - * @return The subject' value, which can be null - */ - protected abstract V getValue(); - - /* - * (non-Javadoc) - */ - @Override - protected final void initializeLayout(Composite container) { - - this.comboViewer = this.addComboViewer(container); - this.comboViewer.addSelectionChangedListener(buildSelectionChangedListener()); - } - - /** - * Populates the combo by re-adding all the items. - */ - private void populateCombo() { - - removeAll(); - comboViewer.add(buildChoices()); - updateSelection(); - } - - /* - * (non-Javadoc) - */ - @Override - protected void propertyChanged(String propertyName) { - super.propertyChanged(propertyName); - this.populateCombo(); - } - - /** - * Removes all the items from the combo. - */ - abstract void removeAll(); - - /** - * Requests the given new value be set on the subject. - * - * @param value The new value to be set - */ - protected abstract void setValue(V value); - - /** - * Updates the cursor, which is required to show the entire selected item - * within the combo's area. - */ - abstract void updateCursor(); - - /** - * Updates the combo's selected item. - */ - private void updateSelection() { - comboViewer.setSelection(buildSelection()); - updateCursor(); - } - - /** - * The selection changes, notify the subclass to set the value. - * - * @param value The new selected item - */ - @SuppressWarnings("unchecked") - private void valueChanged(Object value) { - - // Convert the default "null" value to a real null - if (value == NULL_VALUE) { - value = null; - } - - setPopulating(true); - - try { - setValue((V) value); - } - finally { - setPopulating(false); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumDialogComboViewer.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumDialogComboViewer.java deleted file mode 100644 index 85d6b19518..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumDialogComboViewer.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; - -/** - * This EnumComboViewer should be used within a dialog pane. - * - * @version 2.0 - * @since 2.0 - */ -public abstract class EnumDialogComboViewer - extends EnumComboViewer -{ - /** - * Creates a new EnumDialogComboViewer. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - */ - protected EnumDialogComboViewer(DialogPane parentPane, - Composite parent - ) { - super(parentPane, parent); - } - - /** - * Creates a new EnumDialogComboViewer. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - */ - protected EnumDialogComboViewer(DialogPane parentPane, - PropertyValueModel subjectHolder, - Composite parent - ) { - super(parentPane, subjectHolder, parent); - } - - @Override - public void enableWidgets(boolean enabled) { - super.enableWidgets(enabled); - - Combo combo = getCombo(); - if ( ! combo.isDisposed()) { - combo.setEnabled(enabled); - } - } - - protected final Combo getCombo() { - return getComboViewer().getCombo(); - } - - @Override - void removeAll() { - getCombo().removeAll(); - } - - @Override - void updateCursor() { - getCombo().setSelection(new Point(0, 0)); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumFormComboViewer.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumFormComboViewer.java deleted file mode 100644 index b6ee89f7ec..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/EnumFormComboViewer.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; - -/** - * This EnumComboViewer should be used within a form pane. - * - * @version 2.3 - * @since 1.0 - */ -public abstract class EnumFormComboViewer - extends EnumComboViewer -{ - /** - * Creates a new EnumFormComboViewer. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - */ - protected EnumFormComboViewer(Pane parentPane, - Composite parent - ) { - super(parentPane, parent); - } - - /** - * Creates a new EnumFormComboViewer. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - */ - protected EnumFormComboViewer(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent - ) { - super(parentPane, subjectHolder, parent); - } - - @Override - public void enableWidgets(boolean enabled) { - super.enableWidgets(enabled); - - Combo combo = getCombo(); - if ( ! combo.isDisposed()) { - combo.setEnabled(enabled); - } - } - - protected final Combo getCombo() { - return this.getComboViewer().getCombo(); - } - - @Override - void removeAll() { - getCombo().removeAll(); - } - - @Override - void updateCursor() { - getCombo().setSelection(new Point(0, 0)); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserComboPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserComboPane.java deleted file mode 100644 index 4b47bad407..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserComboPane.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.Arrays; -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; - -/** - * This chooser allows the user to choose a file when browsing. - *

- * Here the layout of this pane: - *

- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                            |v| | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------
- * - * @version 3.0 - * @since 3.0 - */ -public abstract class FileChooserComboPane extends FileChooserPane -{ - /** - * Creates a new FileChooserComboPane. - * - * @param parentPane The parent pane of this one - * @param parent The parent container - */ - public FileChooserComboPane(Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new FileChooserComboPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - */ - public FileChooserComboPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - @Override - protected Control addMainControl(Composite container) { - - return addEditableCombo( - container, - this.buildListHolder(), - this.getTextHolder(), - this.buildStringConverter() - ); - } - - /** - * Creates the list holder of the combo box. - */ - protected ListValueModel buildListHolder() { - return new SimpleListValueModel( - this.buildDefaultList() - ); - } - - /** - * Creates the default list of the combo box. - */ - protected List buildDefaultList() { - return Arrays.asList(this.getDefaultString()); - } - - /** - * Returns the default value of the combo box. - */ - protected abstract String getDefaultString(); - - /** - * The converter responsible to transform each combo box item - * into a string representation - */ - protected StringConverter buildStringConverter() { - return StringConverter.Default.instance(); - } - -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserPane.java deleted file mode 100644 index bcaec6dca9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FileChooserPane.java +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.jpt.common.ui.JptCommonUiPlugin; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.ui.dialogs.ISelectionStatusValidator; - -/** - * This chooser allows the user to choose a file when browsing. - *

- * Here the layout of this pane: - *

- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                                | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------
- * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public abstract class FileChooserPane extends ChooserPane -{ - private WritablePropertyValueModel textHolder; - - /** - * Creates a new FileChooserPane. - * - * @param parentPane The parent pane of this one - * @param parent The parent container - */ - public FileChooserPane(Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new FileChooserPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - */ - public FileChooserPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - @Override - protected final Runnable buildBrowseAction() { - return new Runnable() { - public void run() { - promptFile(); - } - }; - } - - /** - * Creates the ViewerFilter that will filter the content of the - * dialog and only displays what is valid. - * - * @return A new ViewerFilter - */ - protected ViewerFilter buildFilter() { - return new ViewerFilter() { - @Override - public boolean select(Viewer viewer, - Object parentElement, - Object element) { - - return true; - } - }; - } - - @Override - protected Control addMainControl(Composite container) { - return this.addText(container, this.textHolder); - } - - /** - * Creates the value holder of the subject's property. - * - * @return The holder of the class name - */ - protected abstract WritablePropertyValueModel buildTextHolder(); - - /** - * Creates the validator that will show a status message based on what is - * selected in the selection dialog. - * - * @return A new ISelectionStatusValidator - */ - protected ISelectionStatusValidator buildValidator() { - return new ISelectionStatusValidator() { - public IStatus validate(Object[] selection) { - - if (selection.length != 1) { - return new Status(IStatus.ERROR, JptCommonUiPlugin.PLUGIN_ID, ""); - } - - return new Status(IStatus.OK, JptCommonUiPlugin.PLUGIN_ID, ""); - } - }; - } - - /** - * Returns the selection dialog's title. - * - * @return A non-null string - */ - protected abstract String getDialogTitle(); - - /** - * Retrieves the project path that will be used by the selection dialog. - * - * @return The project path used to display its content in a selection dialog - */ - protected abstract String getProjectPath(); - - protected WritablePropertyValueModel getTextHolder() { - return this.textHolder; - } - - @Override - protected void initialize() { - super.initialize(); - this.textHolder = this.buildTextHolder(); - } - - /** - * The browse button was clicked, its action invokes this action which should - * prompt the user to select a file and set it. - */ - protected void promptFile() { - String projectPath= this.getProjectPath(); - - FileDialog dialog = new FileDialog(getShell()); - dialog.setText(this.getDialogTitle()); - dialog.setFilterPath(projectPath); - String filePath = dialog.open(); - if (filePath != null) { - FileChooserPane.this.textHolder.setValue(filePath); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserComboPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserComboPane.java deleted file mode 100644 index d7cce8ab4d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserComboPane.java +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.Arrays; -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; - - -/** - * This chooser allows the user to choose a folder when browsing. - *

- * Here the layout of this pane: - *

- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                            |v| | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------
- * - * @version 3.0 - * @since 3.0 - */ -public abstract class FolderChooserComboPane extends FolderChooserPane -{ - /** - * Creates a new FolderChooserComboPane. - * - * @param parentPane The parent pane of this one - * @param parent The parent container - */ - public FolderChooserComboPane(Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new FolderChooserComboPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - */ - public FolderChooserComboPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - @Override - protected Control addMainControl(Composite container) { - - return addEditableCombo( - container, - this.buildListHolder(), - this.getTextHolder(), - this.buildStringConverter() - ); - } - - /** - * Creates the list holder of the combo box. - */ - protected ListValueModel buildListHolder() { - return new SimpleListValueModel( - this.buildDefaultList() - ); - } - - /** - * Creates the default list of the combo box. - */ - protected List buildDefaultList() { - return Arrays.asList(this.getDefaultString()); - } - - /** - * Returns the default value of the combo box. - */ - protected abstract String getDefaultString(); - - /** - * The converter responsible to transform each combo box item - * into a string representation - */ - protected StringConverter buildStringConverter() { - return StringConverter.Default.instance(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserPane.java deleted file mode 100644 index 0aa4142d4a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FolderChooserPane.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 20010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.DirectoryDialog; - -/** - * This chooser allows the user to choose a folder when browsing. - *

- * Here the layout of this pane: - *

- * -----------------------------------------------------------------------------
- * |        ---------------------------------------------------- ------------- |
- * | Label: | I                                                | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------
- * - * @version 3.0 - * @since 2.0 - */ -public abstract class FolderChooserPane extends ChooserPane -{ - private WritablePropertyValueModel textHolder; - - /** - * Creates a new FolderChooserPane. - * - * @param parentPane The parent pane of this one - * @param parent The parent container - */ - public FolderChooserPane(Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new FolderChooserPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - */ - public FolderChooserPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - @Override - protected final Runnable buildBrowseAction() { - return new Runnable() { - public void run() { - promptFolder(); - } - }; - } - - @Override - protected Control addMainControl(Composite container) { - return this.addText(container, this.textHolder); - } - - /** - * Creates the value holder of the subject's property. - * - * @return The holder of the class name - */ - protected abstract WritablePropertyValueModel buildTextHolder(); - - /** - * Returns the message to be shown in the selection dialog. - * - * @return A non-null string shown above the text field of the - * selection dialog - */ - protected abstract String getDialogMessage(); - - /** - * Returns the selection dialog's title. - * - * @return A non-null string - */ - protected abstract String getDialogTitle(); - - /** - * Returns the path that the dialog will use to filter the directories it - * shows to the argument, which may be null. If the string is null, then the - * operating system's default filter path will be used. - *

- * Note that the path string is platform dependent. For convenience, either - * '/' or '\' can be used as a path separator. - *

- * - * @return The filter path - */ - protected String filterPath() { - return null; - } - - protected WritablePropertyValueModel getTextHolder() { - return this.textHolder; - } - - @Override - protected void initialize() { - super.initialize(); - this.textHolder = this.buildTextHolder(); - } - - /** - * The browse button was clicked, its action invokes this action which should - * prompt the user to select a folder and set it. - */ - protected void promptFolder() { - - DirectoryDialog dialog = new DirectoryDialog(getShell()); - dialog.setMessage(this.getDialogMessage()); - dialog.setText(this.getDialogTitle()); - dialog.setFilterPath(this.filterPath()); - String directory = dialog.open(); - - if (directory != null) { - this.textHolder.setValue(directory); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FormWidgetFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FormWidgetFactory.java deleted file mode 100644 index ea1302f7df..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/FormWidgetFactory.java +++ /dev/null @@ -1,338 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.jpt.common.ui.WidgetFactory; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.DateTime; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.List; -import org.eclipse.swt.widgets.Spinner; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.forms.widgets.FormText; -import org.eclipse.ui.forms.widgets.FormToolkit; -import org.eclipse.ui.forms.widgets.Hyperlink; -import org.eclipse.ui.forms.widgets.Section; -import org.eclipse.ui.forms.widgets.TableWrapData; -import org.eclipse.ui.forms.widgets.TableWrapLayout; - -/** - * This WidgetFactory is responsible to create the widgets - * using the FormToolkit in order use the form style (flat-style) - * look and feel. - * - * @see FormToolkit - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public class FormWidgetFactory implements WidgetFactory { - - /** - * The actual factory responsible for creating the new widgets. - */ - private final FormToolkit widgetFactory; - - /** - * Creates a new FormWidgetFactory. - * - * @param widgetFactory The actual factory responsible for creating the new - * widgets - */ - public FormWidgetFactory(FormToolkit widgetFactory) { - super(); - - Assert.isNotNull(widgetFactory, "The widget factory cannot be null"); - this.widgetFactory = widgetFactory; - } - - /** - * Wraps the given Composite into a new Composite - * in order to have the widgets' border painted. Except for CCombo, - * the top and bottom margins have to be 2 pixel and the left and right - * margins have to be 1 pixel. - * - * @param container The parent of the sub-pane - * @return A new Composite that has the necessary space to paint - * the border - */ - protected Composite createBorderContainer(Composite container) { - return createBorderContainer(container, 2, 1); - } - - protected Composite createBorderContainer(Composite container, int marginHeight, int marginWidth) { - - GridLayout layout = new GridLayout(1, false); - layout.marginHeight = marginHeight; - layout.marginWidth = marginWidth; - - GridData gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - - container = widgetFactory.createComposite(container); - container.setLayoutData(gridData); - container.setLayout(layout); - - return container; - } - - /** - * {@inheritDoc} - */ - public Button createButton(Composite parent, String text) { - return createButton(parent, text, SWT.NULL); - } - - /** - * Creates a new button. - * - * @param parent The parent container - * @param text The button's text - * @param style The style to apply to the button, which determines its type: - * toggle, push, check box, radio - * @return The newly created Button - */ - protected Button createButton(Composite parent, String text, int style) { - return widgetFactory.createButton(parent, text, SWT.FLAT | style); - } - - /** - * {@inheritDoc} - */ - @Deprecated - public CCombo createCCombo(Composite parent) { - return createCCombo(parent, SWT.READ_ONLY); - } - - /** - * Creates a new combo. - * - * @param parent The parent container - * @param style The style to apply to the combo, usually read-only, flat - * @return The newly created CCombo - */ - protected CCombo createCCombo(Composite parent, int style) { - parent = createBorderContainer(parent, 1, 1); - - CCombo combo = new CCombo(parent, style); - widgetFactory.adapt(combo, true, false); - - // Bugzilla 145837 - workaround for no borders on Windows XP - if (widgetFactory.getBorderStyle() == SWT.BORDER) { - combo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); - } - - return combo; - } - - /** - * {@inheritDoc} - */ - public Button createCheckBox(Composite parent, String text) { - return createButton(parent, text, SWT.CHECK); - } - - /** - * {@inheritDoc} - */ - public Combo createCombo(Composite parent) { - return new Combo(parent, SWT.READ_ONLY | SWT.FLAT); - } - - /** - * {@inheritDoc} - */ - public Composite createComposite(Composite parent) { - return this.widgetFactory.createComposite(parent); - } - /** - * {@inheritDoc} - */ - public DateTime createDateTime(Composite parent, int style) { - parent = createBorderContainer(parent); - - DateTime dateTime = new DateTime(parent, style | SWT.FLAT); - dateTime.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); - this.widgetFactory.adapt(dateTime, true, false); - - return dateTime; - } - - /** - * {@inheritDoc} - */ - @Deprecated - public CCombo createEditableCCombo(Composite parent) { - return createCCombo(parent, SWT.NULL); - } - - /** - * {@inheritDoc} - */ - public Combo createEditableCombo(Composite parent) { - Combo combo = new Combo(parent, SWT.FLAT); - return combo; - } - - /** - * {@inheritDoc} - */ - public Group createGroup(Composite parent, String title) { - Group group = new Group(parent, SWT.NULL); - group.setText(title); - return group; - } - - /** - * {@inheritDoc} - */ - public Hyperlink createHyperlink(Composite parent, String text) { - return widgetFactory.createHyperlink(parent, text, SWT.FLAT); - } - - /** - * {@inheritDoc} - */ - public Label createLabel(Composite container, String labelText) { - return widgetFactory.createLabel(container, labelText, SWT.WRAP); - } - - /** - * {@inheritDoc} - */ - public List createList(Composite container, int style) { - List list = new List(container, SWT.FLAT | style); - list.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); - return list; - } - - /** - * {@inheritDoc} - */ - public FormText createMultiLineLabel(Composite parent, String labelText) { - - Composite container = widgetFactory.createComposite(parent, SWT.NONE); - - GridData gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - container.setLayoutData(gridData); - - TableWrapLayout layout = new TableWrapLayout(); - layout.numColumns = 1; - layout.bottomMargin = 0; - layout.leftMargin = 0; - layout.rightMargin = 0; - layout.topMargin = 0; - container.setLayout(layout); - - FormText text = widgetFactory.createFormText(container, true); - text.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); - text.setText(labelText, false, false); - - return text; - } - - /** - * {@inheritDoc} - */ - public Text createMultiLineText(Composite parent) { - return createText(parent, SWT.MULTI | SWT.V_SCROLL); - } - - /** - * {@inheritDoc} - */ - public Text createPasswordText(Composite parent) { - return createText(parent, SWT.PASSWORD); - } - - /** - * {@inheritDoc} - */ - public Button createPushButton(Composite parent, String text) { - return createButton(parent, text, SWT.PUSH); - } - - /** - * {@inheritDoc} - */ - public Button createRadioButton(Composite parent, String text) { - return createButton(parent, text, SWT.RADIO); - } - - /** - * {@inheritDoc} - */ - public Section createSection(Composite parent, int style) { - return widgetFactory.createSection(parent, SWT.FLAT | style); - } - - /** - * {@inheritDoc} - */ - public Spinner createSpinner(Composite parent) { - parent = createBorderContainer(parent); - - Spinner spinner = new Spinner(parent, SWT.FLAT); - spinner.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); - widgetFactory.adapt(spinner, true, false); - - return spinner; - } - - /** - * {@inheritDoc} - */ - public Table createTable(Composite parent, int style) { - Table table = this.widgetFactory.createTable(parent, SWT.BORDER | style); - table.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); - return table; - } - - /** - * {@inheritDoc} - */ - public Text createText(Composite parent) { - return createText(parent, SWT.NONE); - } - - protected Text createText(Composite parent, int style) { - return widgetFactory.createText(parent, null, SWT.BORDER | SWT.FLAT | style); - } - - /** - * {@inheritDoc} - */ - public Button createTriStateCheckBox(Composite parent, String text) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, text, this); - return checkBox.getCheckBox(); - } - - /** - * Returns the actual factory responsible for creating the new widgets. - * - * @return The factory creating the widgets with the form style (flat-style) - */ - public FormToolkit getWidgetFactory() { - return widgetFactory; - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/IntegerCombo.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/IntegerCombo.java deleted file mode 100644 index 6703d6a3a0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/IntegerCombo.java +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jface.fieldassist.FieldDecorationRegistry; -import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.TransformationPropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.TransformationWritablePropertyValueModel; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.osgi.util.NLS; -import org.eclipse.swt.events.VerifyEvent; -import org.eclipse.swt.events.VerifyListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; - -/** - * This is a replacement for a Spinner. It is a combo that only accepts integers. - * It also includes a Default option in the combo. - */ -public abstract class IntegerCombo - extends Pane -{ - - /** - * The main (only) widget of this pane. - */ - private Combo comboBox; - - - private PropertyValueModel defaultValueHolder; - - // ********** constructors ********** - - protected IntegerCombo( - Pane parentPane, - Composite parent - ) { - super(parentPane, parent); - } - - protected IntegerCombo( - Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent - ) { - super(parentPane, subjectHolder, parent); - } - - public Combo getCombo() { - return this.comboBox; - } - - // ********** initialization ********** - - @Override - protected void initializeLayout(Composite container) { - this.defaultValueHolder = buildDefaultStringHolder(); - this.comboBox = this.addIntegerCombo(container); - - int margin = FieldDecorationRegistry.getDefault().getMaximumDecorationWidth(); - GridData gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL_HORIZONTAL; - gridData.horizontalIndent = margin; - gridData.grabExcessHorizontalSpace = false; - this.comboBox.setLayoutData(gridData); - - this.comboBox.addVerifyListener(this.buildVerifyListener()); - SWTUtil.attachDefaultValueHandler(this.comboBox); - } - - protected Combo addIntegerCombo(Composite container) { - return this.addLabeledEditableCombo( - container, - getLabelText(), - buildDefaultListHolder(), - buildSelectedItemStringHolder(), - getHelpId() - ); - - } - - protected VerifyListener buildVerifyListener() { - return new VerifyListener() { - public void verifyText(VerifyEvent e) { - IntegerCombo.this.verifyComboBox(e); - } - }; - } - - protected ListValueModel buildDefaultListHolder() { - return new PropertyListValueModelAdapter(this.defaultValueHolder); - } - - private PropertyValueModel buildDefaultStringHolder() { - return new TransformationPropertyValueModel(buildDefaultHolder()) { - @Override - protected String transform(Integer value) { - if (value == null) { - return JptCommonUiMessages.NoneSelected; - } - return super.transform(value); - } - @Override - protected String transform_(Integer value) { - return getDefaultValueString(value); - } - }; - } - - private String getDefaultValueString(Integer defaultValue) { - return NLS.bind( - JptCommonUiMessages.DefaultWithOneParam, - defaultValue - ); - } - - private String getDefaultValueString() { - return this.defaultValueHolder.getValue(); - } - - protected WritablePropertyValueModel buildSelectedItemStringHolder() { - return new TransformationWritablePropertyValueModel(buildSelectedItemHolder()) { - @Override - protected String transform(Integer value) { - return value == null ? - getDefaultValueString() - : - value.toString(); - } - - @Override - protected Integer reverseTransform_(String value) { - int intLength; - try { - intLength = Integer.parseInt(value); - } - catch (NumberFormatException e) { - //if the default is selected from the combo, set length to null - return null; - } - return Integer.valueOf(intLength); - } - }; - } - - // ********** abstract methods ********** - - protected abstract String getLabelText(); - - protected abstract String getHelpId(); - - protected abstract PropertyValueModel buildDefaultHolder(); - - protected abstract WritablePropertyValueModel buildSelectedItemHolder(); - - // ********** combo-box verify listener callback ********** - - protected void verifyComboBox(VerifyEvent e) { - if (e.character == '\b') { - //ignore backspace - return; - } - if (e.text.equals("") //DefaultValueHandler sets the text to "" //$NON-NLS-1$ - || e.text.equals(this.defaultValueHolder.getValue())) { - return; - } - try { - Integer.parseInt(e.text); - } - catch (NumberFormatException exception) { - e.doit = false; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialog.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialog.java deleted file mode 100644 index 3dd63559cb..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialog.java +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.Collection; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -/** - * The dialog used to requests a name from the user. - * - * @version 2.0 - * @since 2.0 - */ -public class NewNameDialog extends ValidatingDialog -{ - private String description; - private Image descriptionImage; - private String descriptionTitle; - private String labelText; - private String name; - private Collection names; - - /** - * Creates a new NewNameDialog. - * - * @param parentShell - * @param dialogTitle - * @param descriptionTitle - * @param descriptionImage - * @param description - * @param labelText - * @param name - * @param names - */ - NewNameDialog(Shell parentShell, - String dialogTitle, - String descriptionTitle, - Image descriptionImage, - String description, - String labelText, - String name, - Collection names) - { - super(parentShell, dialogTitle); - - this.name = name; - this.names = names; - this.labelText = labelText; - this.description = description; - this.descriptionImage = descriptionImage; - this.descriptionTitle = descriptionTitle; - } - - /* - * (non-Javadoc) - */ - @Override - protected DialogPane buildLayout(Composite container) { - return new NewNameDialogPane(container); - } - - /* - * (non-Javadoc) - */ - @Override - protected NewNameStateObject buildStateObject() { - return new NewNameStateObject(name, names); - } - - /* - * (non-Javadoc) - */ - @Override - public void create() { - super.create(); - - NewNameDialogPane pane = (NewNameDialogPane) getPane(); - pane.selectAll(); - - getButton(OK).setEnabled(false); - } - - /* - * (non-Javadoc) - */ - @Override - protected String getDescription() { - return description; - } - - /* - * (non-Javadoc) - */ - @Override - protected Image getDescriptionImage() { - return descriptionImage; - } - - /* (non-Javadoc) - */ - @Override - protected String getDescriptionTitle() { - return descriptionTitle; - } - - /** - * Returns the text field's input, which is the new name the user entered. - * - * @return The name the user entered - */ - public String getName() { - return getSubject().getName(); - } - - private class NewNameDialogPane extends DialogPane { - - private Text text; - - NewNameDialogPane(Composite parent) { - super(NewNameDialog.this.getSubjectHolder(), parent); - } - - private WritablePropertyValueModel buildNameHolder() { - return new PropertyAspectAdapter(getSubjectHolder(), NewNameStateObject.NAME_PROPERTY) { - @Override - protected String buildValue_() { - return subject.getName(); - } - - @Override - protected void setValue_(String value) { - subject.setName(value); - } - }; - } - - /* - * (non-Javadoc) - */ - @Override - protected void initializeLayout(Composite container) { - - text = addLabeledText( - container, - labelText, - buildNameHolder() - ); - } - - void selectAll() { - text.selectAll(); - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialogBuilder.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialogBuilder.java deleted file mode 100644 index 4142c07709..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameDialogBuilder.java +++ /dev/null @@ -1,179 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import org.eclipse.core.runtime.Assert; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Shell; - -/** - * This builder is responsible to create a fully initialized - * NewNameDialog once all the properties have been set. - * - * @see NewNameDialog - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public final class NewNameDialogBuilder { - - /** - * The message to show in the description area. - */ - private String description; - - /** - * The image of the description area. - */ - private Image descriptionImage; - - /** - * The title to show in the description area. - */ - private String descriptionTitle; - - /** - * The title of the new name dialog. - */ - private String dialogTitle; - - /** - * The text field's label. - */ - private String labelText; - - /** - * The initial input or null if no initial value can be - * specified. - */ - private String name; - - /** - * The collection of names that can't be used or an empty collection if none - * are available. - */ - private Collection names; - - /** - * The parent shell of the new name dialog. - */ - private Shell parentShell; - - /** - * Creates a new NewNameDialogBuilder. - * - * @param parentShell The parent shell of the new name dialog - */ - public NewNameDialogBuilder(Shell parentShell) { - super(); - initialize(parentShell); - } - - /** - * Creates the dialog that will be used to request a new name from the user. - * - * @return The initialized dialog - */ - public NewNameDialog buildDialog() { - return new NewNameDialog( - parentShell, - dialogTitle, - descriptionTitle, - descriptionImage, - description, - labelText, - name, - names - ); - } - - /** - * Initializes this builder. - * - * @param parentShell The parent shell of the new name dialog - */ - protected void initialize(Shell parentShell) { - - Assert.isNotNull(parentShell, "The parent shell cannot be null"); - - this.parentShell = parentShell; - this.names = Collections.emptyList(); - } - - /** - * Sets the description to be shown in the description area under the title. - * - * @param description The message to show in the description area - */ - public void setDescription(String description) { - this.description = description; - } - - /** - * Sets the image to be shown to the right side of the description area. - * - * @param descriptionImage The image of the description area - */ - public void setDescriptionImage(Image descriptionImage) { - this.descriptionImage = descriptionImage; - } - - /** - * Sets the title to be shown in the description area. - * - * @param descriptionTitle The title to show in the description area - */ - public void setDescriptionTitle(String descriptionTitle) { - this.descriptionTitle = descriptionTitle; - } - - /** - * Sets the dialog's title. - * - * @param dialogTitle The title of the new name dialog - */ - public void setDialogTitle(String dialogTitle) { - this.dialogTitle = dialogTitle; - } - - /** - * Sets the existing names that will be used to validate the text field's - * input and prevent the user from using it. - * - * @param names The collection of names that can't be used - */ - public void setExistingNames(Iterator names) { - this.names = CollectionTools.collection(names); - } - - /** - * Sets the text to label the text field. - * - * @param labelText The text field's label - */ - public void setLabelText(String labelText) { - this.labelText = labelText; - } - - /** - * Sets the initial name if one exists. It is valid to leave this - * null when the user has to enter something. - * - * @param name The initial input - */ - public void setName(String name) { - this.name = name; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameStateObject.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameStateObject.java deleted file mode 100644 index f86bae2e11..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NewNameStateObject.java +++ /dev/null @@ -1,146 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.Collection; -import java.util.List; -import org.eclipse.jface.dialogs.IMessageProvider; -import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.node.AbstractNode; -import org.eclipse.jpt.common.utility.internal.node.Node; -import org.eclipse.jpt.common.utility.internal.node.Problem; - -/** - * This is the state object used by the NewNameDialog, which stores - * the current name and validates it when it is modified. - * - * @see NewNameDialog - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -final class NewNameStateObject extends AbstractNode -{ - /** - * The initial input or null if no initial value can be - * specified. - */ - private String name; - - /** - * The collection of names that can't be used or an empty collection if none - * are available. - */ - private Collection names; - - /** - * The Validator used to validate this state object. - */ - private Validator validator; - - /** - * Notifies a change in the name property. - */ - static final String NAME_PROPERTY = "name"; - - /** - * Creates a new NewNameStateObject. - * - * @param name The initial input or null if no initial value can - * be specified - * @param names The collection of names that can't be used or an empty - * collection if none are available - */ - NewNameStateObject(String name, Collection names) { - super(null); - - this.name = name; - this.names = names; - } - - /** - * Validates the name property. - * - * @param currentProblems The list to which Problems can be - * added - */ - private void addNameProblems(List currentProblems) { - - if (StringTools.stringIsEmpty(name)) { - currentProblems.add(buildProblem(JptCommonUiMessages.NewNameStateObject_nameMustBeSpecified, IMessageProvider.ERROR)); - } - else if (names.contains(name.trim())) { - currentProblems.add(buildProblem(JptCommonUiMessages.NewNameStateObject_nameAlreadyExists, IMessageProvider.ERROR)); - } - } - - /* - * (non-Javadoc) - */ - @Override - protected void addProblemsTo(List currentProblems) - { - super.addProblemsTo(currentProblems); - addNameProblems(currentProblems); - } - - /* - * (non-Javadoc) - */ - @Override - protected void checkParent(Node parentNode) { - } - - /* - * (non-Javadoc) - */ - public String displayString() { - return null; - } - - /** - * Returns the current name stored in this state object. - * - * @return The current name or null - */ - String getName() { - return name; - } - - /** - * Sets the current name stored in this state object or null to - * clear it. - * - * @param name The new name or null - */ - public void setName(String name) { - String oldName = this.name; - this.name = name; - firePropertyChanged(NAME_PROPERTY, oldName, name); - } - - /* - * (non-Javadoc) - */ - @Override - public void setValidator(Validator validator) { - this.validator = validator; - } - - /* - * (non-Javadoc) - */ - @Override - public Validator getValidator() { - return validator; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NullPostExecution.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NullPostExecution.java deleted file mode 100644 index 21e7420523..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/NullPostExecution.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jface.dialogs.Dialog; - -/** - * A null instance of PostExecution. - * - * @version 2.0 - * @since 1.0 - */ -public final class NullPostExecution implements PostExecution { - - /** - * The singleton instance of this NullPostExecution. - */ - private static PostExecution INSTANCE; - - /** - * Creates a new NullPostExecution. - */ - private NullPostExecution() { - super(); - } - - /** - * Returns the singleton instance of this NullPostExecution. - * - * @param The dialog where this PostExecution will be used - * @return The singleton instance with the proper type - */ - @SuppressWarnings("unchecked") - public static synchronized PostExecution instance() { - - if (INSTANCE == null) { - INSTANCE = new NullPostExecution(); - } - - return (PostExecution) INSTANCE; - } - - /* - * (non-Javadoc) - */ - public void execute(Dialog dialog) { - // Nothing to do - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java deleted file mode 100644 index c88726ca65..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java +++ /dev/null @@ -1,241 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.IPackageFragment; -import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper; -import org.eclipse.jdt.internal.ui.refactoring.contentassist.JavaPackageCompletionProcessor; -import org.eclipse.jdt.ui.JavaElementLabelProvider; -import org.eclipse.jdt.ui.JavaUI; -import org.eclipse.jface.fieldassist.FieldDecorationRegistry; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.JptCommonUiPlugin; -import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.dialogs.SelectionDialog; - -/** - * This chooser allows the user to choose a package when browsing and it adds - * code completion support to the text field, which is the main component. - *

- * Here the layout of this pane: - *

- * -----------------------------------------------------------------------------
- * |       !---------------------------------------------------- ------------- |
- * | Label: | I                                                | | Browse... | |
- * |        ---------------------------------------------------- ------------- |
- * -----------------------------------------------------------------------------
- * - * @version 2.0 - * @since 2.0 - */ -public abstract class PackageChooserPane extends ChooserPane -{ - /** - * The code completion manager. - */ - private JavaPackageCompletionProcessor javaPackageCompletionProcessor; - - private PropertyChangeListener subjectChangeListener; - - /** - * Creates a new PackageChooserPane. - * - * @param parentPane The parent pane of this one - * @param parent The parent container - */ - public PackageChooserPane(Pane parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new PackageChooserPane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - */ - public PackageChooserPane(Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - super(parentPane, subjectHolder, parent); - } - - @Override - protected void initialize() { - super.initialize(); - - // TODO bug 156185 - when this is fixed there should be api for this - this.javaPackageCompletionProcessor = new JavaPackageCompletionProcessor( - new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_ROOT) - ); - this.subjectChangeListener = this.buildSubjectChangeListener(); - this.getSubjectHolder().addPropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener); - this.packageChooserSubjectChanged(getSubject()); - } - - private PropertyChangeListener buildSubjectChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildSubjectChangeListener_()); - } - - private PropertyChangeListener buildSubjectChangeListener_() { - return new PropertyChangeListener() { - @SuppressWarnings("unchecked") - public void propertyChanged(PropertyChangeEvent e) { - PackageChooserPane.this.packageChooserSubjectChanged((T) e.getNewValue()); - } - }; - } - - protected void packageChooserSubjectChanged(T newSubject) { - IPackageFragmentRoot root = null; - if (newSubject != null) { - root = getPackageFragmentRoot(); - } - this.javaPackageCompletionProcessor.setPackageFragmentRoot(root); - } - - @Override - protected final Runnable buildBrowseAction() { - return new Runnable() { - public void run() { - promptPackage(); - } - }; - } - - @Override - protected Control addMainControl(Composite container) { - Composite subPane = addSubPane(container); - - Text text = addText(subPane, buildTextHolder()); - - Image image = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL).getImage(); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.horizontalIndent = image.getBounds().width; - text.setLayoutData(data); - - ControlContentAssistHelper.createTextContentAssistant( - text, - javaPackageCompletionProcessor - ); - - return subPane; - } - - /** - * Creates the value holder of the subject's property. - * - * @return The holder of the package name - */ - protected abstract WritablePropertyValueModel buildTextHolder(); - - /** - * Prompts the user the Open Package dialog. - * - * @return Either the selected package or null if the user - * cancelled the dialog - */ - protected IPackageFragment choosePackage() { - - SelectionDialog selectionDialog; - - try { - selectionDialog = JavaUI.createPackageDialog( - getShell(), - getPackageFragmentRoot() - ); - } - catch (JavaModelException e) { - JptCommonUiPlugin.log(e); - return null; - } - - selectionDialog.setTitle(JptCommonUiMessages.PackageChooserPane_dialogTitle); - selectionDialog.setMessage(JptCommonUiMessages.PackageChooserPane_dialogMessage); - - IPackageFragment pack = getPackageFragment(); - - if (pack != null) { - selectionDialog.setInitialSelections(new Object[] { pack }); - } - - if (selectionDialog.open() == Window.OK) { - return (IPackageFragment) selectionDialog.getResult()[0]; - } - - return null; - } - - protected abstract IJavaProject getJavaProject(); - - /** - * Returns the package name from its subject. - * - * @return The package name or null if none is defined - */ - protected abstract String getPackageName(); - - /** - * The browse button was clicked, its action invokes this action which should - * prompt the user to select a package and set it. - */ - protected void promptPackage() { - IPackageFragment packageFragment = choosePackage(); - - if (packageFragment != null) { - String packageName = packageFragment.getElementName(); - this.setPackageName(packageName); - } - } - - protected abstract void setPackageName(String packageName); - - private IPackageFragment getPackageFragment() { - String packageName = getPackageName(); - - if (packageName == null) { - return null; - } - - return getPackageFragmentRoot().getPackageFragment(packageName); - } - - protected IPackageFragmentRoot getPackageFragmentRoot() { - try { - return this.getJavaProject().getPackageFragmentRoots()[0]; - } catch (JavaModelException ex) { - JptCommonUiPlugin.log(ex); - return null; - } - } - - @Override - public void dispose() { - this.getSubjectHolder().removePropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener); - super.dispose(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java deleted file mode 100644 index e1c0863359..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java +++ /dev/null @@ -1,3722 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.ArrayList; -import java.util.Collection; -import org.eclipse.core.runtime.Assert; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.fieldassist.FieldDecorationRegistry; -import org.eclipse.jface.viewers.ComboViewer; -import org.eclipse.jface.viewers.IBaseLabelProvider; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jpt.common.ui.WidgetFactory; -import org.eclipse.jpt.common.ui.internal.Tracing; -import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.ui.internal.swt.ComboModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.DateTimeModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.SpinnerModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.TriStateCheckBoxModelAdapter; -import org.eclipse.jpt.common.ui.internal.util.ControlAligner; -import org.eclipse.jpt.common.ui.internal.util.LabeledButton; -import org.eclipse.jpt.common.ui.internal.util.LabeledControlUpdater; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.NonNullBooleanTransformer; -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.internal.model.value.CompositeBooleanPropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.TransformationPropertyValueModel; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.MouseAdapter; -import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.DateTime; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Layout; -import org.eclipse.swt.widgets.List; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Spinner; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.forms.widgets.ExpandableComposite; -import org.eclipse.ui.forms.widgets.FormText; -import org.eclipse.ui.forms.widgets.Hyperlink; -import org.eclipse.ui.forms.widgets.Section; -import org.eclipse.ui.help.IWorkbenchHelpSystem; -import org.eclipse.ui.part.PageBook; - -/** - * The abstract definition of a pane which holds onto a PropertyValueModel - * that contains the subject of this pane. - *

- * It also contains convenience methods for building buttons, labels, check - * boxes, and radio buttons, etc. - *

- * It is possible to easily listen to any property changes coming from the - * subject, {@link #addPropertyNames(Collection)} is specify which properties - * are of interest and {@link #propertyChanged(String)} is used to notify the - * pane when the property has changed. - * - * @see FormPane - * @see DialogPane - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public abstract class Pane -{ - /** - * The listener registered with the subject in order to be notified when a - * property has changed, the property names are determined by - * {@link #propertyNames()}. - */ - private PropertyChangeListener aspectChangeListener; - - /** - * The container of this composite. - */ - private final Composite container; - - /** - * The aligner responsible to align the left controls. - */ - private ControlAligner leftControlAligner; - - /** - * Flag used to stop the circular population of widgets. - */ - private boolean populating; - - /** - * The aligner responsible to align the left controls. - */ - private ControlAligner rightControlAligner; - - /** - * This listener is registered with the subject holder in order to - * automatically repopulate this pane with the new subject. - */ - private PropertyChangeListener subjectChangeListener; - - /** - * The subject of this pane. - */ - private PropertyValueModel subjectHolder; - - /** - * The collection of registered sub-panes will be automatically notified - * when listeners need to be engaged or disengaged or when to populate its - * widgets. - */ - private Collection> subPanes; - - /** - * The factory used to create various common widgets. - */ - private WidgetFactory widgetFactory; - - /** - * The collection of Controls that are displayed in this pane, - * which will have their enablement state updated when - * {@link #enableWidgets(boolean)} is called. - */ - private ArrayList managedWidgets; - - /** - * The collection of Panes that are displayed in this pane, - * which will have their enablement state updated when - * {@link #enableWidgets(boolean)} is called. - */ - private ArrayList> managedSubPanes; - - /** - * This enabled model is used to store the pane's base enablement state. - * If API is called to set the pane enabled, this model gets updated. If the pane is thereby - * fully enabled (controller enabled model is also in agreement) the pane's widgets are set - * enabled. - * @see #getCombinedEnabledModel() - */ - private final WritablePropertyValueModel baseEnabledModel - = new SimplePropertyValueModel(Boolean.TRUE); - - /** - * This enabled model is used to define the pane's enablement as controlled by other widgets, - * tests, etc. (for example a radio button) - * If this model is changed, and the pane is thereby fully enabled (base enabled model is also - * in agreement) the pane's widgets are set enabled. - * @see #getCombinedEnabledModel() - */ - private PropertyValueModel controllerEnabledModel; - - /** - * The "and" combination of {@link #baseEnabledModel} and {@link #controllerEnabledModel} - */ - private PropertyValueModel combinedEnabledModel; - - private PropertyChangeListener combinedEnabledModelListener; - - /** - * Creates a new Pane. - * - * @param parentPane The parent pane of this one - * @param parent The parent container - * - * @category Constructor - */ - protected Pane( - Pane parentPane, - Composite parent) { - - this(parentPane, parent, true); - } - - /** - * Creates a new Pane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - * @param automaticallyAlignWidgets true to make the widgets - * this pane aligned with the widgets of the given parent pane; - * false to not align them - * - * @category Constructor - */ - protected Pane( - Pane parentPane, - Composite parent, - boolean automaticallyAlignWidgets) { - - this( - parentPane, - parentPane.getSubjectHolder(), - parent, - automaticallyAlignWidgets); - } - - /** - * Creates a new Pane. - * - * @param parentPane The parent container of this one - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - * @param automaticallyAlignWidgets true to make the widgets - * this pane aligned with the widgets of the given parent pane; - * false to not align them - * - * @category Constructor - */ - protected Pane( - Pane parentPane, - Composite parent, - boolean automaticallyAlignWidgets, - boolean parentManagePane) { - - this( - parentPane, - parentPane.getSubjectHolder(), - parent, - automaticallyAlignWidgets, - parentManagePane); - } - - /** - * Creates a new Pane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - * - * @category Constructor - */ - protected Pane( - Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent) { - - this(parentPane, subjectHolder, parent, true); - } - - protected Pane( - Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - PropertyValueModel enabledModel) { - - this(parentPane, subjectHolder, parent, true, enabledModel); - } - - /** - * Creates a new Pane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - * @param automaticallyAlignWidgets true to make the widgets - * this pane aligned with the widgets of the given parent pane; - * false to not align them - * - * @category Constructor - */ - protected Pane( - Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - boolean automaticallyAlignWidgets) { - - this(parentPane, subjectHolder, parent, automaticallyAlignWidgets, true); - } - - protected Pane( - Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - boolean automaticallyAlignWidgets, - PropertyValueModel enabledModel) { - - this(parentPane, subjectHolder, parent, automaticallyAlignWidgets, true, enabledModel); - } - - /** - * Creates a new Pane. - * - * @param parentPane The parent container of this one - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - * @param widgetFactory The factory used to create various widgets - * @param automaticallyAlignWidgets true to make the widgets - * this pane aligned with the widgets of the given parent pane; - * false to not align them - * @param parentManagePane true to have the parent pane manage - * the enabled state of this pane - * - * @category Constructor - */ - protected Pane( - Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - boolean automaticallyAlignWidgets, - boolean parentManagePane) { - - this(subjectHolder, parent, parentPane.getWidgetFactory()); - this.initialize(parentPane, automaticallyAlignWidgets, parentManagePane); - } - - protected Pane( - Pane parentPane, - PropertyValueModel subjectHolder, - Composite parent, - boolean automaticallyAlignWidgets, - boolean parentManagePane, - PropertyValueModel enabledModel) { - - this(subjectHolder, parent, parentPane.getWidgetFactory()); - this.initialize(parentPane, automaticallyAlignWidgets, parentManagePane); - this.initializeEnabledModel(enabledModel); - } - - /** - * Creates a new Pane. - * - * @param subjectHolder The holder of this pane's subject - * @param parent The parent container - * @param widgetFactory The factory used to create various common widgets - * - * @category Constructor - */ - protected Pane( - PropertyValueModel subjectHolder, - Composite parent, - WidgetFactory widgetFactory) { - - super(); - this.initialize(subjectHolder, widgetFactory); - this.container = this.addContainer(parent); - this.initializeLayout(this.container); - this.engageSubjectHolder(); - this.engageListeners(getSubject()); - this.populate(); - } - - - // ********** initialization ********** - - @SuppressWarnings("unchecked") - private void initialize( - PropertyValueModel subjectHolder, - WidgetFactory widgetFactory) { - - Assert.isNotNull(subjectHolder, "The subject holder cannot be null"); - - this.subjectHolder = (PropertyValueModel) subjectHolder; - this.widgetFactory = widgetFactory; - this.subPanes = new ArrayList>(); - this.managedWidgets = new ArrayList(); - this.managedSubPanes = new ArrayList>(); - this.leftControlAligner = new ControlAligner(); - this.rightControlAligner = new ControlAligner(); - this.subjectChangeListener = this.buildSubjectChangeListener(); - this.aspectChangeListener = this.buildAspectChangeListener(); - - this.initialize(); - } - - protected void initialize() { - // do nothing by default - } - - /** - * Registers this pane with the parent pane. - * - * @param parentPane The parent pane - * @param automaticallyAlignWidgets true to make the widgets - * this pane aligned with the widgets of the given parent pane; - * false to not align them - * @param parentManagePane true to have the parent pane manage - * the enabled state of this pane - * - * @category Initialization - */ - private void initialize( - Pane parentPane, - boolean automaticallyAlignWidgets, - boolean parentManagePane) { - - // Register this pane with the parent pane, it will call the methods - // automatically (engageListeners(), disengageListeners(), populate(), - // dispose(), etc) - parentPane.registerSubPane(this); - - if (parentManagePane) { - parentPane.manageSubPane(this); - } - - // Align the left and right controls with the controls from the parent - // pane - if (automaticallyAlignWidgets) { - parentPane.addAlignLeft(this); - parentPane.addAlignRight(this); - } - } - - private void initializeEnabledModel(PropertyValueModel enabledModel) { - this.controllerEnabledModel = enabledModel; - this.combinedEnabledModel = - CompositeBooleanPropertyValueModel.and(this.baseEnabledModel, this.controllerEnabledModel); - this.combinedEnabledModelListener = buildCombinedEnabledModelListener(); - this.combinedEnabledModel.addPropertyChangeListener( - PropertyValueModel.VALUE, this.combinedEnabledModelListener); - enableWidgets_(getCombinedEnablement()); - } - - private PropertyChangeListener buildCombinedEnabledModelListener() { - return new SWTPropertyChangeListenerWrapper(buildControllerEnabledModelListener_()); - } - - private PropertyChangeListener buildControllerEnabledModelListener_() { - return new PropertyChangeListener() { - @SuppressWarnings("unchecked") - public void propertyChanged(PropertyChangeEvent e) { - Pane.this.controllerEnablementChanged(); - } - }; - } - - /** - * Initializes the layout of this pane. - * - * @param container The parent container - * - * @category Layout - */ - protected abstract void initializeLayout(Composite container); - - private void manageWidget(Control control) { - if (this.managedWidgets.contains(control)) { - throw new IllegalStateException(); - } - this.managedWidgets.add(control); - } - - private void manageSubPane(Pane subPane) { - if (this.managedSubPanes.contains(subPane)) { - throw new IllegalStateException(); - } - this.managedSubPanes.add(subPane); - } - - /** - * Adds the given pane's widgets (those that were registered with its - * left ControlAligner) to this pane's left - * ControlAligner so that their width can be adjusted to have - * the width of the widest widget. - * - * @param pane The pane containing the widgets to add - * - * @category Layout - */ - protected final void addAlignLeft(Pane container) { - this.leftControlAligner.add(container.leftControlAligner); - } - - /** - * Adds the given control to the collection of widgets that have their width - * adjust with the width of the widest widget. The left alignment is usually - * used for labels. - * - * @param pane The pane to add - * - * @category Layout - */ - protected final void addAlignLeft(Control control) { - this.leftControlAligner.add(control); - } - - /** - * Adds the given pane's widgets (those that were registered with its - * right ControlAligner) to this pane's right - * ControlAligner so that their width can be adjusted to have - * the width of the widest widget. - * - * @param pane The pane containing the widgets to add - * - * @category Layout - */ - protected final void addAlignRight(Pane container) { - this.rightControlAligner.add(container.rightControlAligner); - } - - /** - * Adds the given control to the collection of widgets that have their width - * adjust with the width of the widest widget. The left alignment is usually - * used for buttons. - * - * @param pane The pane to add - * - * @category Layout - */ - protected final void addAlignRight(Control control) { - this.rightControlAligner.add(control); - } - - /** - * Adds the given pane's controls (those that were registered for - * alignment) from this pane. - * - * @param pane The pane containing the widgets to add for - * alignment - * - * @category Layout - */ - protected final void addPaneForAlignment(Pane container) { - addAlignLeft(container); - addAlignRight(container); - } - - /** - * Adds any property names to the given collection in order to be notified - * when the actual property changes in the subject. - * - * @param propertyNames The collection of property names to register with the - * subject - */ - protected void addPropertyNames(Collection propertyNames) { - } - - private PropertyChangeListener buildAspectChangeListener() { - return new SWTPropertyChangeListenerWrapper(buildAspectChangeListener_()); - } - - private PropertyChangeListener buildAspectChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - //subject() could have changed or is null because of the possibility of - //"jumping" on the UI thread here and a selection change occuring - if (e.getSource() == getSubject()) { - updatePane(e.getPropertyName()); - } - } - }; - } - - /** - * Creates a new button using the given information. - * - * @param parent The parent container - * @param buttonText The button's text - * @param buttonAction The action to be invoked when the button is pressed - * @return The newly created Button - * - * @category Layout - */ - protected final Button addButton(Composite container, - String text, - final Runnable buttonAction) { - - return this.addButton(container, text, null, buttonAction); - } - - /** - * Creates a new unmanaged Button widget. Unmanaged means - * that this Pane will not handle the enabling/disabling of this widget. - * The owning object will handle it with its own PaneEnabler or ControlEnabler. - * - * @param parent The parent container - * @param buttonText The button's text - * @param buttonAction The action to be invoked when the button is pressed - * @return The newly created Button - * - * @category Layout - */ - protected final Button addUnmanagedButton(Composite container, - String text, - final Runnable buttonAction) { - - return this.addUnmanagedButton(container, text, null, buttonAction); - } - - /** - * Creates a new button using the given information. - * - * @param parent The parent container - * @param buttonText The button's text - * @param helpId The topic help ID to be registered for the new check box - * @param buttonAction The action to be invoked when the button is pressed - * @return The newly created Button - * - * @category Layout - */ - protected final Button addButton(Composite container, - String text, - String helpId, - final Runnable buttonAction) { - - Button button = addUnmanagedButton(container, text, helpId, buttonAction); - this.manageWidget(button); - - return button; - } - - /** - * Creates a new unmanaged Button widget. Unmanaged means - * that this Pane will not handle the enabling/disabling of this widget. - * The owning object will handle it with its own PaneEnabler or ControlEnabler. - * - * @param parent The parent container - * @param buttonText The button's text - * @param helpId The topic help ID to be registered for the new check box - * @param buttonAction The action to be invoked when the button is pressed - * @return The newly created Button - * - * @category Layout - */ - private Button addUnmanagedButton(Composite container, - String text, - String helpId, - final Runnable buttonAction) { - - Button button = this.widgetFactory.createButton(container, text); - button.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - SWTUtil.asyncExec(buttonAction); - } - }); - - if (helpId != null) { - getHelpSystem().setHelp(button, helpId); - } - - GridData gridData = new GridData(); - gridData.grabExcessHorizontalSpace = false; - gridData.horizontalAlignment = GridData.FILL; - button.setLayoutData(gridData); - - return button; - } - - /** - * This layout will leave space for decorations on widgets. - * Whether decorated or not, all of the widgets need the same indent - * so that they align properly. - */ - protected GridData getFieldGridData() { - int margin = FieldDecorationRegistry.getDefault() - .getMaximumDecorationWidth(); - GridData data = new GridData(); - data.horizontalAlignment = SWT.FILL; - data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH + margin; - data.horizontalIndent = margin; - data.grabExcessHorizontalSpace = true; - return data; - } - - /** - * Creates a new check box using the given information. - * - * @param parent The parent container - * @param buttonText The button's text - * @param booleanHolder The holder of the selection state - * @param helpId The topic help ID to be registered for the new check box - * @return The newly created Button - * - * @category Layout - */ - protected final Button addCheckBox( - Composite parent, - String buttonText, - WritablePropertyValueModel booleanHolder, - String helpId) { - - return this.addToggleButton( - parent, - buttonText, - booleanHolder, - helpId, - SWT.CHECK); - } - - protected final Button addCheckBox( - Composite parent, - String buttonText, - WritablePropertyValueModel booleanHolder, - String helpId, - PropertyValueModel enabledModel) { - - Button button = this.addUnmanagedToggleButton(parent, buttonText, booleanHolder, helpId, SWT.CHECK); - this.controlEnabledState(enabledModel, button); - return button; - } - - /** - * Creates a new Section that can be collapsed. A sub-pane is - * automatically added as its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @return The Section's sub-pane - * - * @category Layout - */ - protected final Composite addCollapsibleSection( - Composite container, - String sectionText) { - - return this.addCollapsibleSection( - container, - sectionText, - new SimplePropertyValueModel(Boolean.FALSE)); - } - - /** - * Creates a new Section that can be collapsed. A sub-pane is - * automatically added as its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @param description The section's description or null if none - * @return The Section's sub-pane - * - * @category Layout - */ - protected final Composite addCollapsibleSection(Composite container, - String sectionText, - String description) { - - return this.addCollapsibleSection( - container, - sectionText, - description, - new SimplePropertyValueModel(Boolean.FALSE) - ); - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @param type The type of section to create - * @param expandedStateHolder The holder of the boolean that will dictate - * when to expand or collapse the section - * @return The Section's sub-pane - * - * @category Layout - */ - private Composite addCollapsibleSection(Composite container, - String sectionText, - int type, - PropertyValueModel expandedStateHolder) { - - return addCollapsibleSection(container, sectionText, null, type, expandedStateHolder); - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @param description The section's description or null if none - * was provided - * @param type The type of section to create - * @param expandedStateHolder The holder of the boolean that will dictate - * when to expand or collapse the section - * @return The Section's sub-pane - * - * @category Layout - */ - private Composite addCollapsibleSection(Composite container, - String sectionText, - String description, - int type, - PropertyValueModel expandedStateHolder) { - - Composite subPane = this.addSection( - container, - sectionText, - description, - ExpandableComposite.TWISTIE | type - ); - - Section section = (Section) subPane.getParent(); - - expandedStateHolder.addPropertyChangeListener( - PropertyValueModel.VALUE, - buildExpandedStateChangeListener(section) - ); - - section.setExpanded( - expandedStateHolder.getValue() != null ? expandedStateHolder.getValue() : true - ); - - return subPane; - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @param expandedStateHolder The holder of the boolean that will dictate - * when to expand or collapse the section - * @return The Section's sub-pane - * - * @category Layout - */ - protected final Composite addCollapsibleSection(Composite container, - String sectionText, - PropertyValueModel expandedStateHolder) { - - return this.addCollapsibleSection( - container, - sectionText, - ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE, - expandedStateHolder - ); - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @param description The section's description or null if none - * @param expandedStateHolder The holder of the boolean that will dictate - * when to expand or collapse the section - * @return The Section's sub-pane - * - * @category Layout - */ - protected final Composite addCollapsibleSection(Composite container, - String sectionText, - String description, - PropertyValueModel expandedStateHolder) { - - return this.addCollapsibleSection( - container, - sectionText, - description, - ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE, - expandedStateHolder - ); - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client which can be typed cast directly as a Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @param expandedStateHolder The holder of the boolean that will dictate - * when to expand or collapse the section - * @return The Section's sub-pane - * - * @category Layout - */ - protected final Composite addCollapsibleSubSection(Composite container, - String sectionText, - PropertyValueModel expandedStateHolder) { - - return this.addCollapsibleSection( - container, - sectionText, - SWT.NULL, - expandedStateHolder - ); - } - - /** - * Creates a new non-editable Combo. - * - * @param container The parent container - * @return The newly created Combo - * - * @category Layout - */ - protected final Combo addCombo(Composite container) { - Combo combo = this.addUnmanagedCombo(container); - this.manageWidget(combo); - return combo; - } - - /** - * Creates a new non-editable Combo. - * - * @param container The parent container - * @return The newly created Combo - * - * @category Layout - */ - private Combo addUnmanagedCombo(Composite container) { - Combo combo = this.widgetFactory.createCombo(container); - combo.setLayoutData(getFieldGridData()); - return combo; - } - - /** - * Creates a new non-editable Combo. - * - * @param container The parent container - * @param listHolder The ListValueHolder - * @param selectedItemHolder The holder of the selected item - * @param stringConverter The converter responsible to transform each item - * into a string representation - * @return The newly created Combo - * - * @category Layout - */ - protected final Combo addCombo(Composite container, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter) { - - Combo combo = this.addCombo(container); - - ComboModelAdapter.adapt( - listHolder, - selectedItemHolder, - combo, - stringConverter - ); - - return combo; - } - - /** - * Creates a new non-editable Combo. - * - * @param container The parent container - * @param listHolder The ListValueHolder - * @param selectedItemHolder The holder of the selected item - * @param stringConverter The converter responsible to transform each item - * into a string representation - * @return The newly created Combo - * - * @category Layout - */ - private Combo addUnmanagedCombo(Composite container, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter) { - - Combo combo = this.addUnmanagedCombo(container); - - ComboModelAdapter.adapt( - listHolder, - selectedItemHolder, - combo, - stringConverter - ); - - return combo; - } - - protected final Combo addCombo( - Composite container, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter, - PropertyValueModel enabledModel) { - - Combo combo = this.addUnmanagedCombo(container, listHolder, selectedItemHolder, stringConverter); - this.controlEnabledState(enabledModel, combo); - return combo; - } - - /** - * Creates a new ComboViewer using a Combo. - * - * @param container The parent container - * @param labelProvider The provider responsible to convert the combo's items - * into human readable strings - * @return The newly created ComboViewer - * - * @category Layout - */ - protected final ComboViewer addComboViewer(Composite container, - IBaseLabelProvider labelProvider) { - - Combo combo = this.addCombo(container); - ComboViewer viewer = new ComboViewer(combo); - viewer.setLabelProvider(labelProvider); - return viewer; - } - - /** - * Creates the main container of this pane. The layout and layout data are - * automatically set. - * - * @param parent The parent container - * @return The newly created Composite that will holds all the - * widgets created by this pane through {@link #initializeLayout(Composite)} - * - * @category Layout - */ - protected Composite addContainer(Composite parent) { - return this.addSubPane(parent); - } - - protected final Combo addEditableCombo( - Composite container, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter, - PropertyValueModel enabledModel) { - - Combo combo = this.addUnmanagedEditableCombo(container, listHolder, selectedItemHolder, stringConverter); - this.controlEnabledState(enabledModel, combo); - return combo; - } - - protected final Combo addEditableCombo( - Composite container) { - - Combo combo = this.widgetFactory.createEditableCombo(container); - combo.setLayoutData(getFieldGridData()); - this.manageWidget(combo); - return combo; - } - - /** - * Creates a new editable Combo. - * - * @param container The parent container - * @param listHolder The ListValueHolder - * @param selectedItemHolder The holder of the selected item - * @param stringConverter The converter responsible to transform each item - * into a string representation - * @return The newly created Combo - * - * @category Layout - */ - protected final Combo addEditableCombo(Composite container, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter) { - - Combo combo = this.addEditableCombo(container); - - ComboModelAdapter.adapt( - listHolder, - selectedItemHolder, - combo, - stringConverter - ); - - return combo; - } - - /** - * Creates a new editable ComboViewer using a Combo. - * - * @param container The parent container - * @param labelProvider The provider responsible to convert the combo's items - * into human readable strings - * @return The newly created ComboViewer - * - * @category Layout - */ - protected final ComboViewer addEditableComboViewer(Composite container, - IBaseLabelProvider labelProvider) { - - Combo combo = this.addEditableCombo(container); - ComboViewer viewer = new ComboViewer(combo); - viewer.setLabelProvider(labelProvider); - return viewer; - } - - private PropertyChangeListener buildExpandedStateChangeListener(final Section section) { - return new SWTPropertyChangeListenerWrapper(buildExpandedStateChangeListener_(section)); - } - - private PropertyChangeListener buildExpandedStateChangeListener_(final Section section) { - return new PropertyChangeListener() { - public void propertyChanged(final PropertyChangeEvent e) { - Boolean value = (Boolean) e.getNewValue(); - if (value == null) { - value = Boolean.TRUE; - } - section.setExpanded(value); - } - }; - } - - /** - * Creates a new Hyperlink that will invoked the given - * Runnable when selected. The given action is always invoked - * from the UI thread. - * - * @param parent The parent container - * @param text The hyperlink's text - * @param hyperLinkAction The action to be invoked when the link was selected - * return The newly created Hyperlink - * - * @category Layout - */ - protected final Hyperlink addHyperlink(Composite parent, - String text, - final Runnable hyperLinkAction) { - - Hyperlink link = this.widgetFactory.createHyperlink(parent, text); - this.manageWidget(link); - - link.addMouseListener(new MouseAdapter() { - @Override - public void mouseUp(MouseEvent e) { - - Hyperlink hyperLink = (Hyperlink) e.widget; - - if (hyperLink.isEnabled()) { - SWTUtil.asyncExec(hyperLinkAction); - } - } - }); - - return link; - } - - /** - * Creates a new label using the given information. - * - * @param parent The parent container - * @param labelText The label's text - * - * @category Layout - */ - protected final Label addLabel(Composite container, - String labelText) { - - Label label = addUnmanagedLabel(container, labelText); - manageWidget(label); - return label; - } - - protected final Label addLabel( - Composite container, - String labelText, - PropertyValueModel enabledModel - ) { - Label label = this.addUnmanagedLabel(container, labelText); - this.controlEnabledState(enabledModel, label); - return label; - } - - /** - * Creates a new unmanaged Label widget. Unmanaged means - * that this Pane will not handle the enabling/disabling of this widget. - * The owning object will handle it with its own PaneEnabler or ControlEnabler. - * - * @param parent The parent container - * @param labelText The label's text - * - * @category Layout - */ - private Label addUnmanagedLabel(Composite container, - String labelText) { - - return this.widgetFactory.createLabel(container, labelText); - } - - /** - * Creates a new container that will have a non-editable combo labeled with - * the given text. - * - * @param container The parent container - * @param labelText The text of the label - * @param listHolder The ListValueHolder - * @param selectedItemHolder The holder of the selected item - * @param rightControl The control shown to the right of the main widget - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The container of the label and the given center control - * - * @category Layout - */ - protected final Combo addLabeledCombo(Composite container, - String labelText, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter, - Control rightControl, - String helpId) { - - Combo combo = this.addCombo( - container, - listHolder, - selectedItemHolder, - stringConverter - ); - - this.addLabeledComposite( - container, - labelText, - (combo.getParent() != container) ? combo.getParent() : combo, - rightControl, - helpId - ); - - return combo; - } - - /** - * Creates a new container that will have a non-editable combo labeled with - * the given text. - * - * @param container The parent container - * @param labelText The text of the label - * @param listHolder The ListValueHolder - * @param selectedItemHolder The holder of the selected item - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The container of the label and the given center control - * - * @category Layout - */ - protected final Combo addLabeledCombo(Composite container, - String labelText, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter, - String helpId) { - - return this.addLabeledCombo( - container, - labelText, - listHolder, - selectedItemHolder, - stringConverter, - null, - helpId - ); - } - - /** - * Creates a new container that will have the given center control labeled - * with the given label. - * - * @param container The parent container - * @param leftControl The widget shown to the left of the main widget - * @param centerControl The main widget - * @param rightControl The control shown to the right of the main widget - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The container of the label and the given center control - * - * @category Layout - */ - protected final Composite addLabeledComposite(Composite container, - Control leftControl, - Control centerControl, - Control rightControl, - String helpId) { - - // Container for the label and main composite - container = this.addSubPane(container, 3, 0, 0, 0, 0); - - // Left control - GridData gridData = new GridData(); - gridData.horizontalAlignment = GridData.BEGINNING; - gridData.grabExcessHorizontalSpace = false; - leftControl.setLayoutData(gridData); - - // Re-parent the left control to the new sub pane - leftControl.setParent(container); - this.addAlignLeft(leftControl); - - - // Re-parent the center control to the new sub pane - centerControl.setParent(container); - - // Register the help id for the center control - if (helpId != null) { - getHelpSystem().setHelp(centerControl, helpId); - } - - // Right control - if (rightControl == null) { - Composite spacer = this.addPane(container); - spacer.setLayout(this.buildSpacerLayout()); - rightControl = spacer; - } - else { - rightControl.setParent(container); - - // Register the help id for the right control - if (helpId != null) { - getHelpSystem().setHelp(rightControl, helpId); - } - } - - gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL_HORIZONTAL; - gridData.grabExcessHorizontalSpace = false; - - rightControl.setLayoutData(gridData); - this.addAlignRight(rightControl); - - return container; - } - - /** - * Creates a new container that will have the given center control labeled - * with the given label. - * - * @param container The parent container - * @param label The label used to describe the center control - * @param centerControl The main widget - * @param helpId The topic help ID to be registered for the given center - * control - * @return The container of the label and the given center control - * - * @category Layout - */ - protected final Composite addLabeledComposite(Composite container, - Control label, - Control centerControl, - String helpId) { - - return this.addLabeledComposite( - container, - label, - centerControl, - null, - helpId - ); - } - - /** - * Creates a new container that will have the given center composite labeled - * with the given label text. - * - * @param container The parent container - * @param labelText The text to label the main composite - * @param centerPane The main widget - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The container of the label and the given center control - * - * @category Layout - */ - protected final Composite addLabeledComposite(Composite container, - String labelText, - Pane centerPane, - String helpId) { - - return this.addLabeledComposite( - container, - labelText, - centerPane.getControl(), - helpId - ); - } - - /** - * Creates a new container that will have the given center composite labeled - * with the given label text. - * - * @param container The parent container - * @param labelText The text to label the main composite - * @param centerControl The main widget - * @return The container of the label and the given center control - * - * @category Layout - */ - protected final Composite addLabeledComposite(Composite container, - String labelText, - Control centerControl) { - - - return this.addLabeledComposite( - container, - labelText, - centerControl, - null, - null - ); - } - - /** - * Creates a new container that will have the given center composite labeled - * with the given label text. - * - * @param container The parent container - * @param labelText The text to label the main composite - * @param centerControl The main widget - * @param rightControl The control shown to the right of the main widget - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The container of the label and the given center control - * - * @category Layout - */ - protected final Composite addLabeledComposite(Composite container, - String labelText, - Control centerControl, - Control rightControl, - String helpId) { - - return this.addLabeledComposite( - container, - this.addLabel(container, labelText), - centerControl, - rightControl, - helpId - ); - } - - /** - * Creates a new container that will have the given center composite labeled - * with the given label text. - * - * @param container The parent container - * @param labelText The text to label the main composite - * @param centerControl The main widget - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The container of the label and the given center control - * - * @category Layout - */ - protected final Composite addLabeledComposite(Composite container, - String labelText, - Control centerControl, - String helpId) { - - Label label = this.addLabel(container, labelText); - - return this.addLabeledComposite( - container, - label, - centerControl, - helpId - ); - } - - /** - * Creates a new container that will have the given center control labeled - * with the given label. - * - * @param container The parent container - * @param leftControl The widget shown to the left of the main widget - * @param centerControl The main widget - * @param rightControl The control shown to the right of the main widget - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The newly created CCombo - * - * @category Layout - */ - protected final Combo addLabeledEditableCombo(Composite container, - String labelText, - ModifyListener comboListener, - Control rightControl, - String helpId) { - - Combo combo = this.addEditableCombo(container); - combo.addModifyListener(comboListener); - - this.addLabeledComposite( - container, - labelText, - (combo.getParent() != container) ? combo.getParent() : combo, - rightControl, - helpId - ); - - return combo; - } - - /** - * Creates a new container that will have an editable combo labeled with the - * given text. - * - * @param container The parent container - * @param labelText The text of the label - * @param comboListener The listener that will be notified when the selection - * changes - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The newly created CCombo - * - * @category Layout - */ - protected final Combo addLabeledEditableCombo(Composite container, - String labelText, - ModifyListener comboListener, - String helpId) { - - return this.addLabeledEditableCombo( - container, - labelText, - comboListener, - null, - helpId - ); - } - - /** - * Creates a new container that will have the given center control labeled - * with the given label. - * - * @param container The parent container - * @param leftControl The widget shown to the left of the main widget - * @param centerControl The main widget - * @param labelProvider The provider responsible to convert the combo's items - * into human readable strings - * @param rightControl The control shown to the right of the main widget - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The newly created CCombo - * - * @category Layout - */ - protected final Combo addLabeledEditableComboViewer(Composite container, - String labelText, - ModifyListener comboListener, - ILabelProvider labelProvider, - Control rightControl, - String helpId) { - - ComboViewer comboViewer = this.addEditableComboViewer( - container, - labelProvider - ); - - Combo combo = comboViewer.getCombo(); - combo.addModifyListener(comboListener); - - this.addLabeledComposite( - container, - labelText, - (combo.getParent() != container) ? combo.getParent() : combo, - rightControl, - helpId - ); - - return combo; - } - - /** - * Creates a new container that will have an editable combo labeled with the - * given text. - * - * @param container The parent container - * @param labelText The text of the label - * @param comboListener The listener that will be notified when the selection - * changes - * @param labelProvider The provider responsible to convert the combo's items - * into human readable strings - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The newly created CCombo - * - * @category Layout - */ - protected final Combo addLabeledEditableComboViewer(Composite container, - String labelText, - ModifyListener comboListener, - ILabelProvider labelProvider, - String helpId) { - - return this.addLabeledEditableComboViewer( - container, - labelText, - comboListener, - labelProvider, - null, - helpId - ); - } - - /** - * Creates a new container that will have an editable combo labeled with the - * given text. - * - * @param container The parent container - * @param labelText The text of the label - * @param listHolder The ListValueHolder - * @param selectedItemHolder The holder of the selected item - * @param helpId The topic help ID to be registered for the given center - * composite - * @return The newly created CCombo - * - * @category Layout - */ - protected final Combo addLabeledEditableCombo(Composite container, - String labelText, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - String helpId) { - - return this.addLabeledEditableCombo( - container, - labelText, - listHolder, - selectedItemHolder, - StringConverter.Default.instance(), - null, - helpId - ); - } - - /** - * Creates a new container that will have the given center control labeled - * with the given label. - * - * @param container The parent container - * @param labelText The text of the label - * @param listHolder The ListValueHolder - * @param selectedItemHolder The holder of the selected item - * @param stringConverter The converter responsible to transform each item - * into a string representation - * @param rightControl The control shown to the right of the main widget - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The newly created Combo - * - * @category Layout - */ - protected final Combo addLabeledEditableCombo(Composite container, - String labelText, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter, - Control rightControl, - String helpId) { - - Combo combo = this.addEditableCombo( - container, - listHolder, - selectedItemHolder, - stringConverter - ); - - this.addLabeledComposite( - container, - labelText, - (combo.getParent() != container) ? combo.getParent() : combo, - rightControl, - helpId - ); - - return combo; - } - - /** - * Creates a new container that will have an editable combo labeled with the - * given text. - * - * @param container The parent container - * @param labelText The text of the label - * @param listHolder The ListValueHolder - * @param selectedItemHolder The holder of the selected item - * @param stringConverter The converter responsible to transform each item - * into a string representation - * @param helpId The topic help ID to be registered for the given center - * compositer - * @return The newly created Combo - * - * @category Layout - */ - protected final Combo addLabeledEditableCombo(Composite container, - String labelText, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter, - String helpId) { - - return this.addLabeledEditableCombo( - container, - labelText, - listHolder, - selectedItemHolder, - stringConverter, - null, - helpId - ); - } - - /** - * Creates a new container that will have a text field as the center control - * labeled with the given label. - * - * @param container The parent container - * @param labelText The text area's label - * @param textHolder The holder of the text field's input - * @param lineCount The number of lines the text area should display - * @param helpId The topic help ID to be registered for the text field - * @return The newly created Text - * - * @category Layout - */ - protected final Text addLabeledMultiLineText(Composite container, - String labelText, - WritablePropertyValueModel textHolder, - int lineCount, - String helpId) { - - Text text = this.addMultiLineText(container, textHolder, lineCount); - - container = this.addLabeledComposite( - container, - labelText, - text, - helpId - ); - - int textHeight = text.computeSize(SWT.DEFAULT, SWT.DEFAULT).y; - - // Specify the number of lines the text area should display - GridData gridData = (GridData) text.getLayoutData(); - gridData.heightHint = text.getLineHeight() * lineCount; - - // Move the label to the top of its cell - Control label = container.getChildren()[0]; - int labelHeight = label.computeSize(SWT.DEFAULT, SWT.DEFAULT).y; - - gridData = (GridData) label.getLayoutData(); - gridData.verticalAlignment = SWT.TOP; - gridData.verticalIndent += (Math.abs(textHeight - labelHeight) / 2); - - return text; - } - - /** - * Creates a new container that will have a text field as the center control - * labeled with the given label. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @return The newly created Text - * - * @category Layout - */ - protected final Text addLabeledPasswordText(Composite container, - String labelText, - WritablePropertyValueModel textHolder) { - - return this.addLabeledPasswordText( - container, - labelText, - textHolder, - null - ); - } - - /** - * Creates a new container that will have a text field as the center control - * labeled with the given label. - * - * @param container The parent container - * @param labelText The text field's label - * @param rightComponent The component to be placed to the right of the text - * field - * @param textHolder The holder of the text field's input - * @param helpId The topic help ID to be registered for the text field - * @return The newly created Text - * - * @category Layout - */ - protected final Text addLabeledPasswordText(Composite container, - String labelText, - WritablePropertyValueModel textHolder, - Control rightControl, - String helpId) { - - Text text = this.addPasswordText(container, textHolder); - - this.addLabeledComposite( - container, - labelText, - text, - rightControl, - helpId - ); - - return text; - } - - /** - * Creates a new container that will have a text field as the center control - * labeled with the given label. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @param helpId The topic help ID to be registered for the text field - * @return The newly created Text - * - * @category Layout - */ - protected final Text addLabeledPasswordText(Composite container, - String labelText, - WritablePropertyValueModel textHolder, - String helpId) { - - return this.addLabeledPasswordText( - container, - labelText, - textHolder, - null, - helpId - ); - } - - /** - * Creates a new spinner. - * - * @param parent The parent container - * @param labelText The label's text - * @param numberHolder The holder of the integer value - * @param defaultValue The value shown when the holder has null - * @param minimumValue The minimum value that the spinner will allow - * @param maximumValue The maximum value that the spinner will allow - * @param rightControl The widget to be placed to the right of spinner - * @param helpId The topic help ID to be registered for the spinner - * @return The newly created Spinner - * - * @category Layout - */ - protected final Spinner addLabeledSpinner(Composite parent, - String labelText, - WritablePropertyValueModel numberHolder, - int defaultValue, - int minimumValue, - int maximumValue, - Control rightControl, - String helpId) { - - Spinner spinner = this.addSpinner( - parent, - numberHolder, - defaultValue, - minimumValue, - maximumValue, - helpId - ); - Label label = addLabel(parent, labelText); - addLabeledComposite( - parent, - label, - (spinner.getParent() != parent) ? spinner.getParent() : spinner, - rightControl, - helpId - ); - - GridData gridData = (GridData) spinner.getLayoutData(); - gridData.horizontalAlignment = GridData.BEGINNING; - - return spinner; - } - - /** - * Creates a new managed spinner. Managed means that this Pane will - * handle enabling/disabling of this widget if a PaneEnabler is used. - * - * @param parent The parent container - * @param numberHolder The holder of the integer value - * @param defaultValue The value shown when the holder has null - * @param minimumValue The minimum value that the spinner will allow - * @param maximumValue The maximum value that the spinner will allow - * @param helpId The topic help ID to be registered for the new button - * @return The newly created Spinner - * - * @category Layout - */ - protected final Spinner addSpinner(Composite parent, - WritablePropertyValueModel numberHolder, - int defaultValue, - int minimumValue, - int maximumValue, - String helpId) { - - Spinner spinner = addUnmanagedSpinner(parent, numberHolder, defaultValue, minimumValue, maximumValue, helpId); - this.manageWidget(spinner); - return spinner; - } - - /** - * Creates a new unmanaged spinner. Unmanaged means that this Pane will - * not handle the enabling/disabling of this widget. The owning object will handle - * it with its own PaneEnabler or ControlEnabler. - * - * @param parent The parent container - * @param numberHolder The holder of the integer value - * @param defaultValue The value shown when the holder has null - * @param minimumValue The minimum value that the spinner will allow - * @param maximumValue The maximum value that the spinner will allow - * @param helpId The topic help ID to be registered for the new button - * @return The newly created Spinner - * - * @category Layout - */ - private Spinner addUnmanagedSpinner(Composite parent, - WritablePropertyValueModel numberHolder, - int defaultValue, - int minimumValue, - int maximumValue, - String helpId) { - - Spinner spinner = this.widgetFactory.createSpinner(parent); - spinner.setMinimum(minimumValue); - spinner.setMaximum(maximumValue); - GridData gridData = getFieldGridData(); - gridData.grabExcessHorizontalSpace = false; - spinner.setLayoutData(gridData); - - SpinnerModelAdapter.adapt(numberHolder, spinner, defaultValue); - - if (helpId != null) { - getHelpSystem().setHelp(spinner, helpId); - } - - return spinner; - } - - /** - * Creates a new managed DateTime of type SWT.TIME. Managed means that this Pane will - * handle enabling/disabling of this widget if a PaneEnabler is used. - * - * @param parent The parent container - * @param hoursHolder The holder of the hours integer value - * @param minutesHolder The holder of the minutes integer value - * @param secondsHolder The holder of the seconds integer value - * @param helpId The topic help ID to be registered for the new dateTime - * @return The newly created DateTime - * - * @category Layout - */ - protected final DateTime addDateTime(Composite parent, - WritablePropertyValueModel hoursHolder, - WritablePropertyValueModel minutesHolder, - WritablePropertyValueModel secondsHolder, - String helpId) { - - DateTime dateTime = this.addUnmanagedDateTime(parent, hoursHolder, minutesHolder, secondsHolder, helpId); - this.manageWidget(dateTime); - - return dateTime; - } - - protected final DateTime addDateTime( - Composite parent, - WritablePropertyValueModel hoursHolder, - WritablePropertyValueModel minutesHolder, - WritablePropertyValueModel secondsHolder, - String helpId, - PropertyValueModel enabledModel - ) { - DateTime dateTime = this.addUnmanagedDateTime(parent, hoursHolder, minutesHolder, secondsHolder, helpId); - this.controlEnabledState(enabledModel, dateTime); - return dateTime; - } - - /** - * Creates a new unmanaged DateTime of type SWT.TIME. Unmanaged means that this Pane will - * not handle the enabling/disabling of this widget. The owning object will handle - * it with its own PaneEnabler or ControlEnabler. - * - * @param parent The parent container - * @param hoursHolder The holder of the hours integer value - * @param minutesHolder The holder of the minutes integer value - * @param secondsHolder The holder of the seconds integer value - * @param helpId The topic help ID to be registered for the new dateTime - * @return The newly created DateTime - * - * @category Layout - */ - private DateTime addUnmanagedDateTime(Composite parent, - WritablePropertyValueModel hoursHolder, - WritablePropertyValueModel minutesHolder, - WritablePropertyValueModel secondsHolder, - String helpId) { - - DateTime dateTime = this.widgetFactory.createDateTime(parent, SWT.TIME); - - DateTimeModelAdapter.adapt(hoursHolder, minutesHolder, secondsHolder, dateTime); - - if (helpId != null) { - getHelpSystem().setHelp(dateTime, helpId); - } - - return dateTime; - } - /** - * Creates a new editable Combo. - * - * @param container The parent container - * @param listHolder The ListValueHolder - * @param selectedItemHolder The holder of the selected item - * @param stringConverter The converter responsible to transform each item - * into a string representation - * @return The newly created CCombo - * - * @category Layout - */ - private Combo addUnmanagedEditableCombo(Composite container, - ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - StringConverter stringConverter) { - - Combo combo = addUnmanagedEditableCombo(container); - - ComboModelAdapter.adapt( - listHolder, - selectedItemHolder, - combo, - stringConverter - ); - - return combo; - } - - - /** - * Creates a new editable Combo. - * - * @param container The parent container - * @return The newly created CCombo - * - * @category Layout - */ - private Combo addUnmanagedEditableCombo(Composite container) { - - Combo combo = this.widgetFactory.createEditableCombo(container); - combo.setLayoutData(getFieldGridData()); - return combo; - } - - /** - * Creates a new container that will have a text field as the center control - * labeled with the given label. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @return The newly created Text - * - * @category Layout - */ - protected final Text addLabeledText(Composite container, - String labelText, - WritablePropertyValueModel textHolder) { - - return this.addLabeledText(container, labelText, textHolder, null); - } - - /** - * Creates a new container that will have a text field as the center control - * labeled with the given label. - * - * @param container The parent container - * @param labelText The text field's label - * @param rightComponent The component to be placed to the right of the text - * field - * @param textHolder The holder of the text field's input - * @param helpId The topic help ID to be registered for the text field - * @return The newly created Text - * - * @category Layout - */ - protected final Text addLabeledText(Composite container, - String labelText, - WritablePropertyValueModel textHolder, - Control rightComponent, - String helpId) { - - Text text = this.addText(container, textHolder); - - this.addLabeledComposite( - container, - labelText, - text, - rightComponent, - helpId - ); - - return text; - } - /** - * - * Creates a new container that will have a text field as the center control - * labeled with the given label. - * - * @param container The parent container - * @param labelText The text field's label - * @param rightComponent The component to be placed to the right of the text - * field - * @param textHolder The holder of the text field's input - * @param helpId The topic help ID to be registered for the text field - * @return The newly created Text - * - * @category Layout - */ - protected final Text addLabeledText(Composite container, - Label label, - WritablePropertyValueModel textHolder, - Control rightComponent, - String helpId) { - - Text text = this.addText(container, textHolder); - - this.addLabeledComposite( - container, - label, - text, - rightComponent, - helpId - ); - - return text; - } - - /** - * Creates a new container that will have a text field as the center control - * labeled with the given label. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @param helpId The topic help ID to be registered for the text field - * @return The newly created Text - * - * @category Layout - */ - protected final Text addLabeledText(Composite container, - String labelText, - WritablePropertyValueModel textHolder, - String helpId) { - - return this.addLabeledText( - container, - labelText, - textHolder, - null, - helpId - ); - } - - /** - * Creates a new container that will have a text field as the center control - * labeled with the given label. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @param helpId The topic help ID to be registered for the text field - * @return The newly created Text - * - * @category Layout - */ - protected final Text addLabeledText(Composite container, - Label label, - WritablePropertyValueModel textHolder, - String helpId) { - - return this.addLabeledText( - container, - label, - textHolder, - null, - helpId - ); - } - - /** - * Creates a new list and notify the given selection holder when the - * selection changes. If the selection count is different than one than the - * holder will receive null. - * - * @param container The parent container - * @param helpId The topic help ID to be registered for the new radio button - * @return The newly created List - * - * @category Layout - */ - protected final List addList(Composite container, String helpId) { - - return this.addList( - container, - new SimplePropertyValueModel(), - helpId - ); - } - - /** - * Creates a new list and notify the given selection holder when the - * selection changes. If the selection count is different than one than the - * holder will receive null. - * - * @param container The parent container - * @param selectionHolder The holder of the unique selected item - * @param helpId The topic help ID to be registered for the new radio button - * @return The newly created List - * - * @category Layout - */ - protected final List addList(Composite container, - WritablePropertyValueModel selectionHolder, - String helpId) { - - List list = this.addUnmanagedList(container, selectionHolder, helpId); - this.manageWidget(list); - - return list; - } - - /** - * Creates a new unmanaged list and notify the given selection holder when the - * selection changes. If the selection count is different than one than the - * holder will receive null. - * Unmanaged means that this Pane will not handle the enabling/disabling of this widget. - * The owning object will handle it with its own PaneEnabler or ControlEnabler. - * - * @param container The parent container - * @param selectionHolder The holder of the unique selected item - * @param helpId The topic help ID to be registered for the new radio button - * @return The newly created List - * - * @category Layout - */ - private List addUnmanagedList(Composite container, - WritablePropertyValueModel selectionHolder, - String helpId) { - - List list = this.widgetFactory.createList( - container, - SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI - ); - - list.addSelectionListener(buildSelectionListener(selectionHolder)); - list.setLayoutData(new GridData(GridData.FILL_BOTH)); - - if (helpId != null) { - getHelpSystem().setHelp(list, helpId); - } - - return list; - } - - /** - * Creates a new lable expanding on multiple lines. - * - * @param parent The parent container - * @param labelText The label's text - * - * @category Layout - */ - protected final FormText addMultiLineLabel(Composite container, - String labelText) { - - FormText label = this.widgetFactory.createMultiLineLabel(container, labelText); - manageWidget(label); - return label; - } - - /** - * Creates a new Text widget that has multiple lines. - * - * @param container The parent container - * @return The newly created Text widget - * - */ - protected final Text addMultiLineText(Composite container) { - - Text text = this.widgetFactory.createMultiLineText(container); - text.setLayoutData(getFieldGridData()); - this.manageWidget(text); - - return text; - } - - /** - * Creates a new Text widget that has multiple lines. - * - * @param container The parent container - * @param lineCount The number of lines the text area should display - * @param helpId The topic help ID to be registered for the new text - * @return The newly created Text widget - * - * @category Layout - */ - protected final Text addMultiLineText(Composite container, - int lineCount, - String helpId) { - - Text text = this.addMultiLineText(container); - - GridData gridData = getFieldGridData(); - gridData.heightHint = text.getLineHeight() * lineCount; - text.setLayoutData(gridData); - - if (helpId != null) { - getHelpSystem().setHelp(text, helpId); - } - - return text; - } - - /** - * Creates a new Text widget that has multiple lines. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @param lineCount The number of lines the text area should display - * @return The newly created Text widget - * - * @category Layout - */ - protected final Text addMultiLineText(Composite container, - WritablePropertyValueModel textHolder, - int lineCount) { - - return this.addMultiLineText(container, textHolder, lineCount, null); - } - - /** - * Creates a new Text widget that has multiple lines. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @param helpId The topic help ID to be registered for the new text - * @return The newly created Text widget - * - * @category Layout - */ - protected final Text addMultiLineText(Composite container, - WritablePropertyValueModel textHolder, - int lineCount, - String helpId) { - - Text text = this.addMultiLineText(container, lineCount, helpId); - SWTTools.bind(textHolder, text); - return text; - } - - /** - * Creates a new PageBook and set the proper layout and layout - * data. - * - * @param container The parent container - * @return The newly created PageBook - * - * @category Layout - */ - protected final PageBook addPageBook(Composite container) { - - PageBook pageBook = new PageBook(container, SWT.NULL); - pageBook.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - return pageBook; - } - - /** - * Creates a new container without specifying any layout manager. - * - * @param container The parent of the new container - * @return The newly created Composite - * - * @category Layout - */ - protected final Composite addPane(Composite parent) { - return this.widgetFactory.createComposite(parent); - } - - /** - * Creates a new container using the given layout manager. - * - * @param parent The parent of the new container - * @param layout The layout manager of the new container - * @return The newly created container - * - * @category Layout - */ - protected final Composite addPane(Composite container, Layout layout) { - - container = this.addPane(container); - container.setLayout(layout); - container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - return container; - } - - /** - * Creates a new Text widget. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @return The newly created Text widget - * - * @category Layout - */ - protected final Text addPasswordText(Composite container, - WritablePropertyValueModel textHolder) { - - Text text = this.addPasswordText(container); - SWTTools.bind(textHolder, text); - - return text; - } - - /** - * Creates a new Text widget. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @return The newly created Text widget - * - * @category Layout - */ - protected final Text addPasswordText(Composite container) { - - Text text = this.widgetFactory.createPasswordText(container); - text.setLayoutData(getFieldGridData()); - - this.manageWidget(text); - return text; - } - - /** - * Creates a new push button using the given information. - * - * @param parent The parent container - * @param buttonText The button's text - * @param buttonAction The action to be invoked when the button is pressed - * @return The newly created Button - * - * @category Layout - */ - protected final Button addPushButton(Composite parent, - String buttonText, - final Runnable buttonAction) { - - return this.addPushButton(parent, buttonText, null, buttonAction); - } - - /** - * Creates a new push button using the given information. - * - * @param parent The parent container - * @param buttonText The button's text - * @param buttonAction The action to be invoked when the button is pressed - * @param helpId The topic help ID to be registered for the new radio button - * @return The newly created Button - * - * @category Layout - */ - protected final Button addPushButton(Composite parent, - String buttonText, - String helpId, - final Runnable buttonAction) { - - Button button = this.widgetFactory.createPushButton(parent, buttonText); - manageWidget(button); - button.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - SWTUtil.asyncExec(buttonAction); - } - }); - - button.setLayoutData(new GridData()); - - if (helpId != null) { - getHelpSystem().setHelp(button, helpId); - } - - return button; - } - - /** - * Creates a new check box using the given information. - * - * @param parent The parent container - * @param buttonText The button's text - * @param booleanHolder The holder of the selection state - * @param helpId The topic help ID to be registered for the new radio button - * @return The newly created Button - * - * @category Layout - */ - protected final Button addRadioButton(Composite parent, - String buttonText, - WritablePropertyValueModel booleanHolder, - String helpId) { - - return this.addToggleButton( - parent, - buttonText, - booleanHolder, - helpId, - SWT.RADIO - ); - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @return The Section's sub-pane - * - * @category Layout - */ - protected final Composite addSection(Composite container, - String sectionText) { - - return this.addSection( - container, - sectionText, - ExpandableComposite.TITLE_BAR - ); - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @param type The type of section to create - * @param expandedStateHolder The holder of the boolean that will dictate - * when to expand or collapse the section - * @return The Section's sub-pane - * - * @category Layout - */ - private Composite addSection(Composite container, - String sectionText, - int type) { - - return this.addSection(container, sectionText, null, type); - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @param description The section's description - * @return The Section's sub-pane - * - * @category Layout - */ - protected final Composite addSection(Composite container, - String sectionText, - String description) { - - return this.addSection( - container, - sectionText, - description, - ExpandableComposite.TITLE_BAR - ); - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client and is the returned Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @param description The section's description or null if none - * was provider - * @param type The type of section to create - * @param expandedStateHolder The holder of the boolean that will dictate - * when to expand or collapse the section - * @return The Section's sub-pane - * - * @category Layout - */ - private Composite addSection(Composite container, - String sectionText, - String description, - int type) { - - Section section = this.widgetFactory.createSection(container, type | ((description != null) ? Section.DESCRIPTION : SWT.NULL)); - section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - section.setText(sectionText); - section.marginWidth = 0; - section.marginHeight = 0; - - if (description != null) { - section.setDescription(description); - } - - Composite subPane = this.addSubPane(section); - section.setClient(subPane); - - return subPane; - } - - private SelectionListener buildSelectionListener(final WritablePropertyValueModel selectionHolder) { - return new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - List list = (List) e.widget; - String[] selectedItems = list.getSelection(); - if ((selectedItems == null) || (selectedItems.length != 1)) { - selectionHolder.setValue(null); - } - else { - selectionHolder.setValue(selectedItems[0]); - } - } - }; - } - - /** - * Creates the layout responsible to compute the size of the spacer created - * for the right control when none was given. The spacer helps to align all - * the right controls. - * - * @category Layout - */ - private Layout buildSpacerLayout() { - return new Layout() { - @Override - protected Point computeSize(Composite composite, - int widthHint, - int heightHint, - boolean flushCache) { - - return new Point(widthHint, heightHint); - } - - @Override - protected void layout(Composite composite, boolean flushCache) { - GridData data = (GridData) composite.getLayoutData(); - composite.setBounds(0, 0, data.widthHint, data.heightHint); - } - }; - } - - private PropertyChangeListener buildSubjectChangeListener() { - return new SWTPropertyChangeListenerWrapper(this.buildSubjectChangeListener_()); - } - - private PropertyChangeListener buildSubjectChangeListener_() { - return new PropertyChangeListener() { - @SuppressWarnings("unchecked") - public void propertyChanged(PropertyChangeEvent e) { - Pane.this.subjectChanged((T) e.getOldValue(), (T) e.getNewValue()); - } - }; - } - - /** - * Creates a new Composite used as a sub-pane. - * - * @param container The parent container - * @return The newly created Composite used as a sub-pane - * - * @category Layout - */ - protected final Composite addSubPane(Composite container) { - return this.addSubPane(container, 0); - } - - /** - * Creates a new Composite used as a sub-pane. - * - * @param container The parent container - * @param topMargin The extra spacing to add at the top of the pane - * @return The newly created Composite used as a sub-pane - * - * @category Layout - */ - protected final Composite addSubPane(Composite container, int topMargin) { - return this.addSubPane(container, topMargin, 0); - } - - /** - * Creates a new Composite used as a sub-pane. - * - * @param container The parent container - * @param topMargin The extra spacing to add at the top of the pane - * @param leftMargin The extra spacing to add to the left of the pane - * @return The newly created Composite used as a sub-pane - * - * @category Layout - */ - protected final Composite addSubPane(Composite container, - int topMargin, - int leftMargin) { - - return this.addSubPane(container, topMargin, leftMargin, 0, 0); - } - - /** - * Creates a new Composite used as a sub-pane, the new widget - * will have its layout and layout data already initialized, the layout will - * be a GridLayout with 1 column. - * - * @param container The parent container - * @param topMargin The extra spacing to add at the top of the pane - * @param leftMargin The extra spacing to add to the left of the pane - * @param bottomMargin The extra spacing to add at the bottom of the pane - * @param rightMargin The extra spacing to add to the right of the pane - * @return The newly created Composite used as a sub-pane - * - * @category Layout - */ - protected final Composite addSubPane(Composite container, - int topMargin, - int leftMargin, - int bottomMargin, - int rightMargin) { - - return this.addSubPane( - container, - 1, - topMargin, - leftMargin, - bottomMargin, - rightMargin); - } - - /** - * Creates a new Composite used as a sub-pane, the new widget - * will have its layout and layout data already initialized, the layout will - * be a GridLayout with 1 column. - * - * @param container The parent container - * @param topMargin The extra spacing to add at the top of the pane - * @param leftMargin The extra spacing to add to the left of the pane - * @param bottomMargin The extra spacing to add at the bottom of the pane - * @param rightMargin The extra spacing to add to the right of the pane - * @return The newly created Composite used as a sub-pane - * - * @category Layout - */ - protected final Composite addSubPane(Composite container, - int columnCount, - int topMargin, - int leftMargin, - int bottomMargin, - int rightMargin) { - - GridLayout layout = new GridLayout(columnCount, false); - layout.marginHeight = 0; - layout.marginWidth = 0; - layout.marginTop = topMargin; - layout.marginLeft = leftMargin; - layout.marginBottom = bottomMargin; - layout.marginRight = rightMargin; - - container = this.addPane(container, layout); - - return container; - } - - /** - * Creates a new Section. A sub-pane is automatically added as - * its client which can be typed cast directly as a Composite. - * - * @param container The container of the new widget - * @param sectionText The text of the new section - * @return The Section's sub-pane - * - * @category Layout - */ - protected final Composite addSubSection(Composite container, - String sectionText) { - - return this.addCollapsibleSubSection( - container, - sectionText, - new SimplePropertyValueModel(Boolean.TRUE) - ); - } - - /** - * Creates a new table. - * - * @param container The parent container - * @param style The style to apply to the table - * @param helpId The topic help ID to be registered for the new table or - * null if no help ID is required - * @return The newly created Table - * - * @category Layout - */ - protected final Table addTable(Composite container, - int style, - String helpId) { - - Table table = addUnmanagedTable(container, style, helpId); - this.manageWidget(table); - - return table; - } - /** - * Creates a new unmanaged table. Unmanaged means that this Pane will - * not handle the enabling/disabling of this widget. The owning object will handle - * it with its own PaneEnabler or ControlEnabler. - * - * @param container The parent container - * @param style The style to apply to the table - * @param helpId The topic help ID to be registered for the new table or - * null if no help ID is required - * @return The newly created Table - * - * @category Layout - */ - protected final Table addUnmanagedTable(Composite container, - int style, - String helpId) { - - Table table = this.widgetFactory.createTable(container, style); - table.setHeaderVisible(true); - table.setLinesVisible(true); - - GridData gridData = new GridData(GridData.FILL_BOTH); - gridData.heightHint = table.getItemHeight() * 4; - table.setLayoutData(gridData); - - if (helpId != null) { - getHelpSystem().setHelp(table, helpId); - } - - return table; - } - - /** - * Creates a new table. - * - * @param container The parent container - * @param helpId The topic help ID to be registered for the new table or - * null if no help ID is required - * @return The newly created Table - * - * @category Layout - */ - protected final Table addTable(Composite container, String helpId) { - - return this.addTable( - container, - SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI, - helpId - ); - } - - /** - * Creates a new unmanaged table. Unmanaged means that this Pane will - * not handle the enabling/disabling of this widget. The owning object will handle - * it with its own PaneEnabler or ControlEnabler. - * - * @param container The parent container - * @param helpId The topic help ID to be registered for the new table or - * null if no help ID is required - * @return The newly created Table - * - * @category Layout - */ - protected final Table addUnmanagedTable(Composite container, String helpId) { - - return this.addUnmanagedTable( - container, - SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI, - helpId - ); - } - - /** - * Creates a new managed Text widget. - * - * @param container The parent container - * @return The newly created Text widget - * - * @category Layout - */ - protected final Text addText(Composite container) { - Text text = this.addUnmanagedText(container); - this.manageWidget(text); - return text; - } - - /** - * Creates a new unmanaged Text widget. Unmanaged means - * that this Pane will not handle the enabling/disabling of this widget. - * The owning object will handle it with its own PaneEnabler or ControlEnabler. - * - * @param container The parent container - * @return The newly created Text widget - * - * @category Layout - */ - private Text addUnmanagedText(Composite container) { - Text text = this.widgetFactory.createText(container); - text.setLayoutData(getFieldGridData()); - return text; - } - - /** - * Creates a new Text widget. - * - * @param container The parent container - * @param helpId The topic help ID to be registered for the new text - * @return The newly created Text widget - * - * @category Layout - */ - protected final Text addText(Composite container, String helpId) { - - Text text = this.addText(container); - - if (helpId != null) { - getHelpSystem().setHelp(text, helpId); - } - - return text; - } - - /** - * Creates a new unmanaged Text widget. Unmanaged means - * that this Pane will not handle the enabling/disabling of this widget. - * The owning object will handle it with its own PaneEnabler or ControlEnabler. - * - * @param container The parent container - * @param helpId The topic help ID to be registered for the new text - * @return The newly created Text widget - * - * @category Layout - */ - private Text addUnmanagedText(Composite container, String helpId) { - - Text text = this.addUnmanagedText(container); - - if (helpId != null) { - getHelpSystem().setHelp(text, helpId); - } - - return text; - } - - /** - * Creates a new Text widget. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @return The newly created Text widget - * - * @category Layout - */ - protected final Text addText(Composite container, - WritablePropertyValueModel textHolder) { - - return this.addText(container, textHolder, null); - } - - /** - * Creates a new Text widget. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @param helpId The topic help ID to be registered for the new text - * @return The newly created Text widget - * - * @category Layout - */ - protected final Text addText(Composite container, - WritablePropertyValueModel textHolder, - String helpId) { - - Text text = this.addText(container, helpId); - SWTTools.bind(textHolder, text); - - return text; - } - - protected final Text addText( - Composite container, - WritablePropertyValueModel textHolder, - String helpId, - PropertyValueModel enabledModel - ) { - Text text = this.addUnmanagedText(container, textHolder, helpId); - this.controlEnabledState(enabledModel, text); - return text; - } - - /** - * Creates a new unmanaged Text widget. Unmanaged means - * that this Pane will not handle the enabling/disabling of this widget. - * The owning object will handle it with its own PaneEnabler or ControlEnabler. - * - * @param container The parent container - * @param textHolder The holder of the text field's input - * @param helpId The topic help ID to be registered for the new text - * @return The newly created Text widget - * - * @category Layout - */ - private Text addUnmanagedText(Composite container, - WritablePropertyValueModel textHolder, - String helpId) { - - Text text = this.addUnmanagedText(container, helpId); - SWTTools.bind(textHolder, text); - - return text; - } - - /** - * Creates a new container with a titled border. - * - * @param title The text of the titled border - * @param container The parent container - * @return The newly created Composite with a titled border - * - * @category Layout - */ - protected final Group addTitledGroup(Composite container, String title) { - return this.addTitledGroup(container, title, null); - } - - /** - * Creates a new container with a titled border. - * - * @param title The text of the titled border - * @param container The parent container - * @param helpId The topic help ID to be registered for the new group - * @return The newly created Composite with a titled border - * - * @category Layout - */ - protected final Group addTitledGroup(Composite container, - String title, - String helpId) { - - return addTitledGroup(container, title, 1, helpId); - } - - /** - * Creates a new container with a titled border. - * - * @param title The text of the titled border - * @param container The parent container - * @param helpId The topic help ID to be registered for the new group - * @return The newly created Composite with a titled border - * - * @category Layout - */ - protected final Group addTitledGroup(Composite container, - String title, - int columnCount, - String helpId) { - - Group group = this.widgetFactory.createGroup(container, title); - //manageWidget(group); TODO unsure if I want to manage groups, - //also should probably rename this addUnmanagedTitledPane - group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - GridLayout layout = new GridLayout(columnCount, false); - layout.marginHeight = 0; - layout.marginWidth = 0; - layout.marginTop = 5; - layout.marginLeft = 5; - layout.marginBottom = 5; - layout.marginRight = 5; - group.setLayout(layout); - - if (helpId != null) { - getHelpSystem().setHelp(group, helpId); - } - - return group; - } - - /** - * Creates a new unmanaged new toggle button (radio button or check box). - * Unmanaged means that this Pane will not handle the enabling/disabling - * of this widget. The owning object will handle it with its own PaneEnabler - * or ControlEnabler. - * - * @param parent The parent container - * @param buttonText The button's text - * @param booleanHolder The holder of the selection state - * @param helpId The topic help ID to be registered for the new button - * @return The newly created Button - * - * @category Layout - */ - private Button addUnmanagedToggleButton( - Composite parent, - String buttonText, - WritablePropertyValueModel booleanHolder, - String helpId, - int toggleButtonType) { - - Button button; - - if (toggleButtonType == SWT.PUSH) { - button = this.widgetFactory.createPushButton(parent, buttonText); - } - else if (toggleButtonType == SWT.RADIO) { - button = this.widgetFactory.createRadioButton(parent, buttonText); - } - else if (toggleButtonType == SWT.CHECK) { - button = this.widgetFactory.createCheckBox(parent, buttonText); - } - else { - button = this.widgetFactory.createButton(parent, buttonText); - } - - button.setLayoutData(new GridData()); - SWTTools.bind(booleanHolder, button); - - if (helpId != null) { - getHelpSystem().setHelp(button, helpId); - } - - return button; - } - - /** - * Creates a new toggle button (radio button or check box) using the given - * information. - * - * @param parent The parent container - * @param buttonText The button's text - * @param booleanHolder The holder of the selection state - * @param helpId The topic help ID to be registered for the new button - * @return The newly created Button - * - * @category Layout - */ - private Button addToggleButton( - Composite parent, - String buttonText, - WritablePropertyValueModel booleanHolder, - String helpId, - int toggleButtonType) { - - Button button = addUnmanagedToggleButton( - parent, - buttonText, - booleanHolder, - helpId, - toggleButtonType); - this.manageWidget(button); - return button; - } - - /** - * Creates a new check box that can have 3 selection states (selected, - * unselected and partially selected. - * - * @param parent The parent container - * @param text The button's text - * @param booleanHolder The holder of the boolean value where null - * means partially selected - * @param helpId The topic help ID to be registered for the new check box - * @return The newly created TriStateCheckBox - * - * @category Layout - */ - protected final TriStateCheckBox addTriStateCheckBox(Composite parent, - String text, - WritablePropertyValueModel booleanHolder, - String helpId) { - - TriStateCheckBox checkBox = new TriStateCheckBox( - parent, - text, - this.getWidgetFactory() - ); - - this.manageWidget(checkBox.getCheckBox()); - - TriStateCheckBoxModelAdapter.adapt( - booleanHolder, - checkBox - ); - - if (helpId != null) { - getHelpSystem().setHelp(checkBox.getCheckBox(), helpId); - } - - return checkBox; - } - - /** - * Creates a new check box that can have 3 selection states (selected, - * unselected and partially selected. - * - * @param parent The parent container - * @param text The button's text - * @param booleanHolder The holder of the boolean value where null - * means partially selected - * @param stringHolder The holder of the string to put in parenthesis after - * the check box's text when it is partially selected - * @param helpId The topic help ID to be registered for the new check box - * @return The newly created TriStateCheckBox - * - * @category Layout - */ - protected final TriStateCheckBox addTriStateCheckBoxWithDefault(Composite parent, - String text, - WritablePropertyValueModel booleanHolder, - PropertyValueModel stringHolder, - String helpId) { - - TriStateCheckBox checkBox = this.addTriStateCheckBox( - parent, - text, - booleanHolder, - helpId - ); - - new LabeledControlUpdater( - new LabeledButton(checkBox.getCheckBox()), - stringHolder - ); - - return checkBox; - } - - /** - * Requests this pane to populate its widgets with the subject's values. - * - * @category Populate - */ - protected void doPopulate() { - this.log(Tracing.UI_LAYOUT, " ->doPopulate()"); - } - - private void controlEnabledState(PropertyValueModel booleanModel, Control... controls) { - this.controlEnabledState_(this.wrapEnabledModel(booleanModel), controls); - } - - /** - * Assume the "enabled" models can return null (which is typical with aspect - * adapters etc.). - */ - private PropertyValueModel wrapEnabledModel(PropertyValueModel booleanModel) { - return new TransformationPropertyValueModel(booleanModel, NonNullBooleanTransformer.FALSE); - } - - private void controlEnabledState_(PropertyValueModel booleanModel, Control... controls) { - SWTTools.controlEnabledState(this.andEnabledModel(booleanModel), controls); - } - - private PropertyValueModel getCombinedEnabledModel() { - return (this.combinedEnabledModel != null) ? this.combinedEnabledModel : this.baseEnabledModel; - } - - private boolean getCombinedEnablement() { - Boolean enabled = getCombinedEnabledModel().getValue(); - return (enabled == null) ? true : enabled.booleanValue(); - } - - private PropertyValueModel andEnabledModel(PropertyValueModel booleanModel) { - return CompositeBooleanPropertyValueModel.and(getCombinedEnabledModel(), booleanModel); - } - - protected void controllerEnablementChanged() { - enableWidgets_(getCombinedEnablement()); - } - - /** - * Changes the enablement state of the widgets of this pane. - * - * @param enabled true to enable the widgets or false - * to disable them - * - * @category Layout - */ - public void enableWidgets(boolean enabled) { - this.baseEnabledModel.setValue(Boolean.valueOf(enabled)); - enableWidgets_(getCombinedEnablement()); - } - - private void enableWidgets_(boolean enabled) { - if (! this.container.isDisposed()) { - for (Control control : this.managedWidgets) { - control.setEnabled(enabled); - } - - for (Pane subPane : this.managedSubPanes) { - subPane.enableWidgets(enabled); - } - } - } - - private void engageSubjectHolder() { - this.subjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener); - } - - /** - * engage the specified subject - */ - protected void engageListeners(T subject) { - if (subject != null) { - this.engageListeners_(subject); - } - } - - /** - * specified subject is not null - */ - protected void engageListeners_(T subject) { - this.log(Tracing.UI_LAYOUT, " ->engageListeners_(" + subject + ')'); - - for (String propertyName : this.getPropertyNames()) { - subject.addPropertyChangeListener(propertyName, this.aspectChangeListener); - } - } - - /** - * disengage the specified subject - */ - protected void disengageListeners(T subject) { - if (subject != null) { - this.disengageListeners_(subject); - } - } - - /** - * specified subject is not null - */ - protected void disengageListeners_(T subject) { - this.log(Tracing.UI_LAYOUT, " ->disengageListeners_(" + subject + ')'); - - for (String propertyName : this.getPropertyNames()) { - subject.removePropertyChangeListener(propertyName, this.aspectChangeListener); - } - } - - private void disengageSubjectHolder() { - this.subjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener); - } - - /** - * Returns the main Control of this pane. - * - * @return The main container - * - * @category Layout - */ - public Composite getControl() { - return this.container; - } - - /** - * Returns the subject holder used by this pane. - * - * @return The holder of the subject - * - * @category Populate - */ - protected final PropertyValueModel getSubjectHolder() { - return this.subjectHolder; - } - - /** - * Returns the factory responsible for creating the widgets. - * - * @return The factory used by this pane to create the widgets - * - * @category Layout - */ - protected final WidgetFactory getWidgetFactory() { - return this.widgetFactory; - } - - /** - * Returns the margin taken by a group box, which is the number of pixel the - * group box border and its margin takes before displaying its widgets plus - * 5 pixels since the widgets inside of the group box and the border should - * have that extra 5 pixels. - * - * @return The width taken by the group box border with its margin - * - * @category Layout - */ - protected final int getGroupBoxMargin() { - Group group = this.widgetFactory.createGroup(SWTUtil.getShell(), ""); - Rectangle clientArea = group.getClientArea(); - group.dispose(); - return clientArea.x + 5; - } - - /** - * Returns the helps system. - * - * @return The platform's help system - * - * @category Helper - */ - protected final IWorkbenchHelpSystem getHelpSystem() { - return PlatformUI.getWorkbench().getHelpSystem(); - } - - - /** - * Determines whether - * - * @return - * - * @category Populate - */ - protected final boolean isPopulating() { - return this.populating; - } - - /** - * Logs the given message if the Tracing.DEBUG_LAYOUT is enabled. - * - * @param flag - * @param message The logging message - */ - protected void log(String flag, String message) { - if (flag.equals(Tracing.UI_LAYOUT) && Tracing.booleanDebugOption(Tracing.UI_LAYOUT)) { - this.log(message); - } - } - - protected void log(String message) { - Class thisClass = this.getClass(); - String className = thisClass.getSimpleName(); - - if (thisClass.isAnonymousClass()) { - className = className.substring(0, className.indexOf('$')); - className += "->" + thisClass.getSuperclass().getSimpleName(); - } - - Tracing.log(className + ": " + message); - } - - /** - * Notifies this pane to populate itself using the subject's information. - * - * @category Populate - */ - private void populate() { - if (!this.container.isDisposed()) { - this.log(Tracing.UI_LAYOUT, "populate()"); - this.repopulate(); - } - } - - /** - * Notifies the subject's property associated with the given property name - * has changed. - * - * @param propertyName The property name associated with the property change - * - * @category Populate - */ - protected void propertyChanged(String propertyName) { - } - - /** - * Returns the list of names to listen for properties changing from the - * subject. - * - * @return A non-null list of property names - * - * @category Populate - */ - protected Collection getPropertyNames() { - ArrayList propertyNames = new ArrayList(); - addPropertyNames(propertyNames); - return propertyNames; - } - - /** - * Removes the given pane's widgets (those that were registered with - * its left ControlAligner) from this pane's left - * ControlAligner so that their width will no longer be adjusted - * with the width of the widest widget. - * - * @param pane The pane containing the widgets to remove - * - * @category Layout - */ - protected final void removeAlignLeft(Pane pane) { - this.leftControlAligner.remove(pane.leftControlAligner); - } - - /** - * Removes the given control from the collection of widgets that are aligned - * to have the same width when they are shown to the left side of the 3 - * widget colums. - * - * @param pane The pane to remove, its width will no longer be - * ajusted to be the width of the longest widget - * - * @category Layout - */ - protected final void removeAlignLeft(Control control) { - this.leftControlAligner.remove(control); - } - - /** - * Removes the given pane's widgets (those that were registered with - * its right ControlAligner) from this pane's right - * ControlAligner so that their width will no longer be adjusted - * with the width of the widest widget. - * - * @param pane The pane containing the widgets to remove - * - * @category Layout - */ - protected final void removeAlignRight(Pane pane) { - this.rightControlAligner.remove(pane.rightControlAligner); - } - - /** - * Removes the given control from the collection of widgets that are aligned - * to have the same width when they are shown to the right side of the 3 - * widget colums. - * - * @param pane The pane to remove, its width will no longer be - * ajusted to be the width of the longest widget - * - * @category Layout - */ - protected final void removeAlignRight(Control control) { - this.rightControlAligner.remove(control); - } - - /** - * Removes the given pane's controls (those that were registered for - * alignment) from this pane. - * - * @param pane The pane containing the widgets that no longer - * requires their width adjusted with the width of the longest widget - * - * @category Layout - */ - protected final void removePaneForAlignment(Pane pane) { - removeAlignLeft(pane); - removeAlignRight(pane); - } - - /** - * This method is called (perhaps internally) when this needs to repopulate - * but the object of interest has not changed. - * - * @category Populate - */ - protected final void repopulate() { - - this.log(Tracing.UI_LAYOUT, " ->repopulate()"); - - // Populate this pane - try { - setPopulating(true); - doPopulate(); - } - finally { - setPopulating(false); - } - - // Ask the sub-panes to repopulate themselves - for (Pane subPane : this.subPanes) { - subPane.repopulate(); - } - } - - /** - * Sets the internal flag that is used to determine whether the pane is being - * populated or not. During population, it is required to not update the - * widgets when the model is updated nor to update the model when the widgets - * are being synchronized with the model's values. - * - * @param populating - * - * @category Populate - */ - protected final void setPopulating(boolean populating) { - this.populating = populating; - } - - /** - * Either show or hides this pane. - * - * @param visible The new visibility state - */ - public void setVisible(boolean visible) { - if (!this.container.isDisposed()) { - this.container.setVisible(visible); - } - } - - /** - * Returns the nearest Shell displaying the main widget of this - * pane. - * - * @return The nearest window displaying this pane - */ - public final Shell getShell() { - return this.container.getShell(); - } - - /** - * Returns the subject of this pane. - * - * @return The subject if this pane was not disposed; null - * if it was - * - * @category Populate - */ - public T getSubject() { - return this.subjectHolder.getValue(); - } - - /** - * The subject has changed, disconnects any listeners from the old subject - * and connects those listeners onto the new subject. - * - * @param oldsubject The old subject or null if none was set - * @param newSubject The new subject or null if none needs to be - * set - * - * @category Populate - */ - protected final void subjectChanged(T oldSubject, T newSubject) { - if (!this.container.isDisposed()) { - - this.log(Tracing.UI_LAYOUT, "subjectChanged()"); - this.disengageListeners(oldSubject); - - this.repopulate(); - - this.engageListeners(newSubject); - } - } - - - /** - * Registers another Pane with this one so it can - * be automatically notified about certain events such as engaging or - * disengaging the listeners, etc. - * - * @param subPane The sub-pane to register - * - * @category Controller - */ - protected final void registerSubPane(Pane subPane) { - this.subPanes.add(subPane); - } - - /** - * Unregisters the given Pane from this one so it - * can no longer be automatically notified about certain events such as - * engaging or disengaging the listeners, etc. - * - * @param subPane The sub-pane to unregister - * - * @category Controller - */ - protected final void unregisterSubPane(Pane subPane) { - this.subPanes.remove(subPane); - } - - private void updatePane(String propertyName) { - if (!isPopulating() && !this.container.isDisposed()) { - this.populating = true; - - try { - propertyChanged(propertyName); - } - finally { - this.populating = false; - } - } - } - - public void dispose() { - this.log(Tracing.UI_LAYOUT, "dispose()"); - - // Dispose this pane - this.disengageListeners(getSubject()); - this.disengageSubjectHolder(); - - if (this.combinedEnabledModel != null && this.combinedEnabledModelListener != null) { - this.combinedEnabledModel.removePropertyChangeListener(PropertyValueModel.VALUE, this.combinedEnabledModelListener); - } - - this.leftControlAligner.dispose(); - this.rightControlAligner.dispose(); - - // Ask the sub-panes to dispose themselves - for (Pane subPane : this.subPanes) { - subPane.dispose(); - } - } - -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PostExecution.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PostExecution.java deleted file mode 100644 index bae4b60382..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PostExecution.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jface.dialogs.Dialog; - -/** - * This PostExecution is used to post execute a portion of code - * once a dialog, that was launched into a different UI thread, has been - * disposed. - * - * @version 2.0 - * @since 1.0 - */ -public interface PostExecution { - - /** - * Notifies this post exection the dialog that was launched into a different - * UI thread has been disposed. - * - * @param dialog The dialog that was launched into a different thread - */ - public void execute(T dialog); -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PropertySheetWidgetFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PropertySheetWidgetFactory.java deleted file mode 100644 index c841976fc0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PropertySheetWidgetFactory.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Group; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; - -/** - * This WidgetFactory is responsible to create the widgets using - * TabbedPropertySheetWidgetFactory in order use the form style - * (flat-style) look and feel. - * - * @see TabbedPropertySheetWidgetFactory - * - * @version 2.0 - * @since 2.0 - */ -public class PropertySheetWidgetFactory extends FormWidgetFactory { - - /** - * Creates a new PropertySheetWidgetFactory. - * - * @param widgetFactory The actual factory responsible for creating the new - * widgets - */ - public PropertySheetWidgetFactory(TabbedPropertySheetWidgetFactory widgetFactory) { - super(widgetFactory); - } - - /** - * {@inheritDoc} - */ - @Override - public Composite createComposite(Composite parent) { - return getWidgetFactory().createComposite(parent); - } - - /** - * {@inheritDoc} - */ - @Override - public Group createGroup(Composite parent, String title) { - return getWidgetFactory().createGroup(parent, title); - } - - /** - * {@inheritDoc} - */ - @Override - public TabbedPropertySheetWidgetFactory getWidgetFactory() { - return (TabbedPropertySheetWidgetFactory) super.getWidgetFactory(); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/TriStateCheckBox.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/TriStateCheckBox.java deleted file mode 100644 index ecb0d2098c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/TriStateCheckBox.java +++ /dev/null @@ -1,287 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import org.eclipse.jpt.common.ui.WidgetFactory; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; - -/** - * This TriStateCheckBox can display one of three states: - * unchecked, checked, or partially checked. It can be modified via a mouse - * selection, via a keyboard selection, or programmatically. The selection state is - * represented by a Boolean value where a null - * value means partially checked. - *

- * The order of state changes is: unchecked -> partially checked -> checked. - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public final class TriStateCheckBox -{ - /** - * A check box button. - */ - private final Button button; - - /** - * The current selection state. - */ - private TriState state; - - /** - * Creates a new TriStateCheckBox with no text. - * - * @param parent The parent composite - * @param widgetFactory The factory used to create the check box - */ - public TriStateCheckBox(Composite parent, WidgetFactory widgetFactory) { - this(parent, null, widgetFactory); - } - - /** - * Creates a new TriStateCheckBox. - * - * @param parent The parent composite - * @param text The check box's text - * @param widgetFactory The factory used to create the check box - */ - public TriStateCheckBox(Composite parent, - String text, - WidgetFactory widgetFactory) { - super(); - this.state = TriState.UNCHECKED; - this.button = widgetFactory.createCheckBox(parent, text); - this.button.addSelectionListener(this.buildSelectionListener()); - } - - /** - * Convenience method: Adds a dispose listener to the check box. - * The source of any events sent to the listener will be the check box widget. - */ - public void addDisposeListener(DisposeListener disposeListener) { - this.button.addDisposeListener(disposeListener); - } - - /** - * Convenience method: Adds a selection listener to the check box. - * The source of any events sent to the listener will be the check box widget. - */ - public void addSelectionListener(SelectionListener selectionListener) { - this.button.addSelectionListener(selectionListener); - } - - private SelectionListener buildSelectionListener() { - return new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - TriStateCheckBox.this.checkBoxClicked(); - } - }; - } - - /** - * The check box was clicked, change the tri-state to the next value and - * update the check box's state. - */ - void checkBoxClicked() { - this.state = this.nextState(); - this.updateCheckBox(); - } - - /** - * Disposes the check box widget. - */ - public void dispose() { - this.button.dispose(); - } - - /** - * Returns the Button used to show a tri-state check box. - * - * @return The Button used to show a tri-state check box - */ - public Button getCheckBox() { - return this.button; - } - - /** - * Returns the check box's image. - * - * @return The check box's image. - */ - public Image getImage() { - return this.button.getImage(); - } - - /** - * Returns the check box's selection state. - * - * @return Either true or false for checked or - * unchecked; or null for partially selected - */ - public Boolean getSelection() { - return (this.state == TriState.PARTIALLY_CHECKED) ? null : Boolean.valueOf(this.state == TriState.CHECKED); - } - - /** - * Returns the check box's text. - * - * @return The text of the check box - */ - public String getText() { - return this.button.getText(); - } - - /** - * Returns whether the check box is disposed. - * - * @return true if the check box is disposed; false - * otherwise - */ - public boolean isDisposed() { - return this.button.isDisposed(); - } - - /** - * Returns whether the check box is enabled. - * - * @return true if the check box is enabled; false - * otherwise - */ - public boolean isEnabled() { - return this.button.isEnabled(); - } - - /** - * Returns the next state: - * UNCHECKED -> PARTIALLY_CHECKED - * PARTIALLY_CHECKED -> CHECKED - * CHECKED -> UNCHECKED - */ - private TriState nextState() { - switch (this.state) { - case UNCHECKED: - return TriState.PARTIALLY_CHECKED; - case PARTIALLY_CHECKED: - return TriState.CHECKED; - case CHECKED: - return TriState.UNCHECKED; - default: - throw new IllegalStateException("unknown state: " + this.state); - } - } - - /** - * Convenience method: Removes a dispose listener from the check box. - */ - public void removeDisposeListener(DisposeListener disposeListener) { - this.button.removeDisposeListener(disposeListener); - } - - /** - * Convenience method: Removes a selection listener from the check box. - */ - public void removeSelectionListener(SelectionListener selectionListener) { - this.button.removeSelectionListener(selectionListener); - } - - /** - * Changes the check box's enablement state. - * - * @param enabled true to enable the check box or false - * to disable it - */ - public void setEnabled(boolean enabled) { - this.button.setEnabled(enabled); - } - - /** - * Sets the check box's image. - * - * @param image The new image of the check box - */ - public void setImage(Image image) { - this.button.setImage(image); - } - - /** - * Changes the check box's selection state. - * - * @param selection Either true or false for - * checked and unchecked; or null for partially selected - */ - public void setSelection(Boolean selection) { - TriState old = this.state; - this.state = this.stateForBoolean(selection); - if (old != this.state) { - this.updateCheckBox(); - } - } - - /** - * Sets the check box's text. - * - * @param text The new text of the check box - */ - public void setText(String text) { - this.button.setText(text); - } - - /** - * Returns the tri-state corresponding to the boolean. - * - * @param selection The boolean to be converted to a tri-state - */ - private TriState stateForBoolean(Boolean selection) { - return (selection == null) ? TriState.PARTIALLY_CHECKED : - selection.booleanValue() ? TriState.CHECKED : TriState.UNCHECKED; - } - - /** - * Updates the selection state of the of the check box based on the tri-state - * value. - */ - void updateCheckBox() { - switch (this.state) { - case UNCHECKED: - this.button.setSelection(false); - this.button.setGrayed(false); - break; - case PARTIALLY_CHECKED: - this.button.setSelection(true); - this.button.setGrayed(true); - break; - case CHECKED: - this.button.setSelection(true); - this.button.setGrayed(false); - break; - default: - throw new IllegalStateException("unknown state: " + this.state); - } - } - - /** - * An enum containing the possible selections. - */ - enum TriState { - CHECKED, - PARTIALLY_CHECKED, - UNCHECKED - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ValidatingDialog.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ValidatingDialog.java deleted file mode 100644 index b4b6cdf73e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ValidatingDialog.java +++ /dev/null @@ -1,233 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.widgets; - -import java.util.ListIterator; -import org.eclipse.jface.dialogs.IMessageProvider; -import org.eclipse.jpt.common.utility.internal.node.Node; -import org.eclipse.jpt.common.utility.internal.node.Problem; -import org.eclipse.osgi.util.NLS; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.widgets.Shell; - -/** - * This dialog is similar to it superclass, Dialog, with - * the added value of an error message label below the main panel. A subclass - * can set this error message as needed so that it can inform the user something - * incorrect has been entered. - *

- * If there is an error message, it will be shown. If there is a warning - * message, it will only be shown if there is no error message. Warning messages - * have a different icon than error messages. - * - * @version 2.0 - * @since 2.0 - */ -public abstract class ValidatingDialog extends Dialog { - - /** - * Creates a new ValidatingDialog. - * - * @param parent The parent shell - */ - public ValidatingDialog(Shell parent) { - super(parent); - } - - /** - * Creates a new ValidatingDialog. - * - * @param parent The parent shell - * @param title The dialog's title - */ - public ValidatingDialog(Shell parent, String title) { - super(parent, title); - } - - /* - * (non-Javadoc) - */ - @Override - final Node.Validator buildValidator() { - return new Node.Validator() { - public void pause() { - } - - public void resume() { - } - - public void validate() { - ValidatingDialog.this.validate(); - } - }; - } - - /** - * Clears the messages from the description pane - */ - protected final void clearMessage(){ - setMessage(getDescription()); - } - - /** - * Clears the error message from the description pane. - */ - protected final void clearErrorMessage() { - setErrorMessage(null); - } - - /** - * Returns the description shown in the description pane. - * - * @return The description under the description's title - */ - protected String getDescription() { - return null; - } - - /** - * Returns the image shown in the description pane. - * - * @return The image of the description pane or null if none is - * required - */ - protected Image getDescriptionImage() { - return null; - } - - /** - * Returns the title of the description pane. - * - * @return The title shown in the description pane - */ - protected String getDescriptionTitle() { - return null; - } - - /* - * (non-Javadoc) - */ - @Override - protected Point getInitialSize() { - Point result = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT); - Point paneSize = getPane().getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT); - int width = convertHorizontalDLUsToPixels(400); - result.x = Math.max(width, paneSize.x); - return result; - } - - /* - * (non-Javadoc) - */ - @Override - protected final boolean hasTitleArea() { - return true; - } - - /* - * (non-Javadoc) - */ - @Override - protected void initializeUI() { - - super.initializeUI(); - - // Update the description title - String descriptionTitle = getDescriptionTitle(); - - if (descriptionTitle != null) { - setTitle(descriptionTitle); - } - - // Update the description title - String description = getDescription(); - - if (description != null) { - setMessage(description); - } - - // Update the description image - Image image = getDescriptionImage(); - - if (image != null) { - setTitleImage(image); - } - } - - /** - * Updates the description pane by showing the given error message and format - * the text with the given list of arguments if any exists. - * - * @param errorMessage The error message to show in the description pane - * @param arguments The list of arguments used to format the error message - */ - protected final void setErrorMessage(String errorMessage, Object... arguments) { - setErrorMessage(NLS.bind(errorMessage, arguments)); - } - - /** - * Updates the description pane by showing the given warning message and format - * the text with the given list of arguments if any exists. - * - * @param warningMessage The warning message to show in the description pane - * @param arguments The list of arguments used to format the error message - */ - - protected final void setWarningMessage(String warningMessage, Object... arguments) { - setMessage(NLS.bind(warningMessage, arguments), IMessageProvider.WARNING); - } - - /** - * Updates the error message, either shows the first error problem or hides - * the error pane. If the progress bar is shown, then the error message will - * not be shown. - */ - private void updateMessage() { - if (getSubject().branchProblemsSize() == 0) { - clearMessage(); - } else { - for (ListIterator problems = getSubject().branchProblems(); problems.hasNext();){ - Problem problem = problems.next(); - if (problem.messageType() == IMessageProvider.ERROR){ - this.setErrorMessage(problem.messageKey(), problem.messageArguments()); - } - else if (problem.messageType() == IMessageProvider.WARNING){ - this.setWarningMessage(problem.messageKey(), problem.messageArguments()); - } - } - } - if (!this.containsErrorMessage()){ - clearErrorMessage(); - } - } - - public final boolean containsErrorMessage(){ - boolean error = false; - for (ListIterator problems = getSubject().branchProblems(); problems.hasNext();){ - Problem problem = problems.next(); - if (problem.messageType() ==IMessageProvider.ERROR){ - error = true; - } - } - return error; - } - /** - * Validates the state object and based on its status, update the description - * pane to show the first error if any exists and update the enablement of - * the OK button. - */ - private void validate() { - getSubject().validateBranch(); - updateMessage(); - getButton(OK).setEnabled(!containsErrorMessage()); - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/wizards/JavaProjectWizardPage.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/wizards/JavaProjectWizardPage.java deleted file mode 100644 index 510957a1b2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/wizards/JavaProjectWizardPage.java +++ /dev/null @@ -1,256 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.common.ui.internal.wizards; - -import java.util.Iterator; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -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.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableItem; -import org.eclipse.ui.PlatformUI; - -/** - * JavaProjectWizardPage - */ -public class JavaProjectWizardPage extends WizardPage { - - private IJavaProject javaProject; - private String destinationLabel; - private Table projectTable; - private TableViewer projectTableViewer; - - private static String SELECT_PROJECT_PAGE_NAME = "SelectJavaProject"; //$NON-NLS-1$ - private static int PROJECT_NAME_COLUMN_INDEX = 0; - - // ********** constructor ********** - - public JavaProjectWizardPage(IJavaProject javaProject) { - super(SELECT_PROJECT_PAGE_NAME); - - this.javaProject = javaProject; - } - - // ********** IDialogPage implementation ********** - - public void createControl(Composite parent) { - Composite composite = new Composite(parent, SWT.NULL); - GridLayout layout = new GridLayout(); - layout.numColumns = 1; - composite.setLayout(layout); - - this.buildLabel(composite, this.destinationLabel); - - this.projectTable = this.buildProjectTable(composite, this.buildProjectTableSelectionListener()); - - this.projectTableViewer = this.buildProjectTableViewer( - this.projectTable, - this.buildProjectTableLabelProvider(), - this.buildProjectTableContentProvider()); - this.fillProjectList(); - this.setControl(composite); - this.setTableSelection(this.javaProject); - this.validate(); - } - - // ********** listeners ********** - - private SelectionListener buildProjectTableSelectionListener() { - return new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - selectedProjectChanged(); - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - widgetSelected(e); - } - - @Override - public String toString() { - return "PromptProjectWizardPage project table selection listener"; //$NON-NLS-1$ - } - }; - } - - // ********** listener callbacks ********** - - protected void selectedProjectChanged() { - if(this.projectTable.getSelectionIndex() != -1) { - TableItem item = this.projectTable.getItem(this.projectTable.getSelectionIndex()); - String projectName = item.getText(0); - if( ! StringTools.stringIsEmpty(projectName)) { - - IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); - this.setJavaProject(JavaCore.create(project)); - this.validate(); - } - } - } - - // ********** intra-wizard methods ********** - - public IJavaProject getJavaProject() { - return this.javaProject; - } - - public void setDestinationLabel(String destinationLabel) { - this.destinationLabel = destinationLabel; - } - - // ********** protected methods ********** - - protected void setTableSelection(IJavaProject javaProject) { - if(javaProject != null) { - String projectName = javaProject.getProject().getName(); - for(TableItem item: this.projectTable.getItems()) { - if(item.getText(0).equals(projectName)) { - this.projectTable.setSelection(item); - } - } - } - } - - protected void fillProjectList() { - this.projectTableViewer.setInput(this.getSortedJavaProjectsNames()); - } - - // ********** internal methods ********** - - private void validate() { - this.setPageComplete(this.projectTable.getSelectionIndex() != -1); - } - - private void setJavaProject(IJavaProject project) { - this.javaProject = project; - } - - private String[] getSortedJavaProjectsNames() { - return ArrayTools.sort(this.getJavaProjectsNames()); - } - - private String[] getJavaProjectsNames() { - return ArrayTools.array( - new TransformationIterable(this.getJavaProjects()) { - @Override - protected String transform(IProject project) { - return project.getName(); - } - }, - new String[0]); - } - - protected Iterable getJavaProjects() { - return new FilteringIterable(CollectionTools.collection(this.getProjects())) { - @Override - protected boolean accept(IProject next) { - try { - return next.hasNature(JavaCore.NATURE_ID); - } - catch (CoreException e) { - return false; - } - } - }; - } - - protected Iterator getProjects() { - return new ArrayIterator(ResourcesPlugin.getWorkspace().getRoot().getProjects()); - } - - // ********** inner classes ********** - - private final class ProjectTableLabelProvider extends LabelProvider implements ITableLabelProvider { - - public Image getColumnImage(Object element, int columnIndex) { - if(columnIndex == PROJECT_NAME_COLUMN_INDEX) - return PlatformUI.getWorkbench().getSharedImages().getImage(org.eclipse.ui.ide.IDE.SharedImages.IMG_OBJ_PROJECT); - return null; - } - - public String getColumnText(Object element, int columnIndex) { - assert element instanceof String; - String projectName = (String)element; - if(columnIndex == PROJECT_NAME_COLUMN_INDEX) - return projectName; - return null; - } - } - - private final class ProjectTableContentProvider implements IStructuredContentProvider { - - public Object[] getElements(Object inputElement) { - return ((String[])inputElement); - } - - public void dispose() {} - - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {} - } - - // ********** UI components ********** - - private ITableLabelProvider buildProjectTableLabelProvider() { - return new ProjectTableLabelProvider(); - } - - private IStructuredContentProvider buildProjectTableContentProvider() { - return new ProjectTableContentProvider(); - } - - private Label buildLabel(Composite parent, String text) { - Label label = new Label( parent, SWT.NONE ); - label.setText(text); - return label; - } - - private Table buildProjectTable(Composite parent, SelectionListener listener) { - TableViewer tableViewer = new TableViewer(parent, - SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.VIRTUAL); - - Table table = tableViewer.getTable(); - table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - table.addSelectionListener(listener); - return table; - } - - private TableViewer buildProjectTableViewer(Table parent, ITableLabelProvider labelProvider, IStructuredContentProvider contentProvider) { - - TableViewer tableViewer = new TableViewer(parent); - tableViewer.setLabelProvider(labelProvider); - tableViewer.setContentProvider(contentProvider); - return tableViewer; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/DelegatingContentAndLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/DelegatingContentAndLabelProvider.java deleted file mode 100644 index 66f3be391d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/DelegatingContentAndLabelProvider.java +++ /dev/null @@ -1,207 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.jface; - -import java.util.HashMap; -import java.util.Map; -import org.eclipse.jface.viewers.BaseLabelProvider; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.LabelProviderChangedEvent; -import org.eclipse.jface.viewers.StructuredViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.swt.graphics.Image; -import org.eclipse.ui.navigator.IDescriptionProvider; - -/** - * Implementation of {@link IStructuredContentProvider} and {@link ILabelProvider} that - * maintains a collection (Map, actually) of {@link ItemContentProvider} - * delegates that perform the function of providing content and label information - * for each represented item - * - * NB: This class, if used as a label provider *MUST* be used as a content provider - * for the same viewer. It may be used as a content provider with a different - * label provider, however. - * - * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public abstract class DelegatingContentAndLabelProvider - extends BaseLabelProvider - implements IStructuredContentProvider, ILabelProvider, IDescriptionProvider -{ - private final ItemContentProviderFactory itemContentProviderFactory; - - private final ItemLabelProviderFactory itemLabelProviderFactory; - - private final Map itemContentProviders; - - private final Map itemLabelProviders; - - StructuredViewer viewer; - - - protected DelegatingContentAndLabelProvider( - ItemContentProviderFactory itemContentProviderFactory) { - this(itemContentProviderFactory, null); - } - - protected DelegatingContentAndLabelProvider( - ItemContentProviderFactory itemContentProviderFactory, - ItemLabelProviderFactory itemLabelProviderFactory) { - super(); - this.itemContentProviderFactory = itemContentProviderFactory; - this.itemLabelProviderFactory = itemLabelProviderFactory; - this.itemContentProviders = new HashMap(); - this.itemLabelProviders = new HashMap(); - } - - - protected ItemContentProvider itemContentProvider(Object item) { - ItemContentProvider itemContentProvider = this.itemContentProviders.get(item); - if (itemContentProvider != null) { - return itemContentProvider; - } - itemContentProvider = this.itemContentProviderFactory.buildItemContentProvider(item, this); - if (itemContentProvider == null) { - return null; - } - this.itemContentProviders.put(item, itemContentProvider); - return itemContentProvider; - } - - protected ItemLabelProvider itemLabelProvider(Object item) { - if (this.viewer == null) { - throw new IllegalStateException( - "This provider must be used as a content" + //$NON-NLS-1$ - "provider *as well as* a label provider."); //$NON-NLS-1$ - } - ItemLabelProvider itemLabelProvider = this.itemLabelProviders.get(item); - if (itemLabelProvider != null) { - return itemLabelProvider; - } - itemLabelProvider = this.itemLabelProviderFactory.buildItemLabelProvider(item, this); - if (itemLabelProvider == null) { - return null; - } - this.itemLabelProviders.put(item, itemLabelProvider); - return itemLabelProvider; - } - - - public Object[] getElements(Object inputElement) { - return itemContentProvider(inputElement).getElements(); - } - - public Image getImage(Object element) { - ItemLabelProvider provider = itemLabelProvider(element); - return (provider == null) ? null :provider.getImage(); - } - - public String getText(Object element) { - ItemLabelProvider provider = itemLabelProvider(element); - return (provider == null) ? null : provider.getText(); - } - - public String getDescription(Object element) { - ItemLabelProvider provider = itemLabelProvider(element); - return (provider == null) ? null : provider.getDescription(); - } - - /** - * Disposes all items - */ - @Override - public void dispose() { - disposeProviders(); - super.dispose(); - } - - protected void disposeProviders() { - // coded this way to allow some item providers to dispose of their child - // elements without disrupting the entire process - while (! this.itemContentProviders.isEmpty()) { - dispose(this.itemContentProviders.keySet().iterator().next()); - } - // this catches any items that weren't disposed from the content providers, - // though there most likely won't be any items represented here that - // haven't already been disposed - while (! this.itemLabelProviders.isEmpty()) { - dispose(this.itemLabelProviders.keySet().iterator().next()); - } - } - - /** - * Disposes item - */ - public void dispose(Object item) { - if (this.itemContentProviders.containsKey(item)) { - this.itemContentProviders.get(item).dispose(); - this.itemContentProviders.remove(item); - } - if (this.itemLabelProviders.containsKey(item)) { - this.itemLabelProviders.get(item).dispose(); - this.itemLabelProviders.remove(item); - } - } - - public void inputChanged(Viewer structuredViewer, Object oldInput, Object newInput) { - if (oldInput != newInput) { - disposeProviders(); - } - this.viewer = (StructuredViewer) structuredViewer; - } - - /** - * Update the content for the given item - */ - public void updateContent(final Object item) { - Runnable runnable = new Runnable() { - public void run() { - if (viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()) { - viewer.refresh(item); - } - } - }; - if (!viewerIsDisposed()) { - this.viewer.getControl().getDisplay().asyncExec(runnable); - } - } - - // open up visibility a bit for inner classes - @Override - protected void fireLabelProviderChanged(LabelProviderChangedEvent event) { - super.fireLabelProviderChanged(event); - } - - /** - * Update the label for the given item - */ - public void updateLabel(final Object item) { - Runnable runnable = new Runnable() { - public void run() { - if (viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()) { - fireLabelProviderChanged(new LabelProviderChangedEvent(DelegatingContentAndLabelProvider.this, item)); - } - } - }; - if (!viewerIsDisposed()) { - this.viewer.getControl().getDisplay().asyncExec(runnable); - } - } - - protected boolean viewerIsDisposed() { - return this.viewer.getControl().isDisposed(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProvider.java deleted file mode 100644 index 2f21206f8c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProvider.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.jface; - -/** - * Marker interface used in conjunction with DelegatingContentProvider to return - * content information for a particular item. - * @see DelegatingContentProvider - * @see ItemContentProviderFactory - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface ItemContentProvider -{ - /** - * Return the elements of the represented item. - * Note that when this is called, the represented item is an input element. - */ - Object[] getElements(); - - /** - * Dispose of this content provider, cleaning up all references, listeners, etc. - */ - void dispose(); -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProviderFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProviderFactory.java deleted file mode 100644 index a9c951d816..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemContentProviderFactory.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.jface; - -/** - * Factory interface used to describe how to build {@link ItemContentProvider}s - * for a {@link DelegatingContentAndLabelProvider} - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface ItemContentProviderFactory -{ - ItemContentProvider buildItemContentProvider(Object item, - DelegatingContentAndLabelProvider contentAndLabelProvider); -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProvider.java deleted file mode 100644 index 592a8a6bbe..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProvider.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.jface; - -import org.eclipse.swt.graphics.Image; - -/** - * Interface used in conjunction with DelegatingLabelProvider to return - * label information for a particular item. - * @see DelegatingLabelProvider - * @see ItemLabelProviderFactory - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface ItemLabelProvider -{ - /** - * Return the image for the item - */ - Image getImage(); - - /** - * Return the text for the item - */ - public String getText(); - - /** - * Return the description for the item - */ - public String getDescription(); - - /** - * Dispose of this label provider, cleaning up all references, listeners, etc. - */ - void dispose(); -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProviderFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProviderFactory.java deleted file mode 100644 index db61b3905f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/ItemLabelProviderFactory.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.jface; - -/** - * Factory interface used to describe how to build IItemLabelProviders - * for a DelegatingContentAndLabelProvider - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface ItemLabelProviderFactory -{ - ItemLabelProvider buildItemLabelProvider(Object item, - DelegatingContentAndLabelProvider contentAndLabelProvider); -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProvider.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProvider.java deleted file mode 100644 index 2e978f00b8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProvider.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.jface; - -/** - * Interface used in conjunction with DelegatingTreeContentProvider to return - * tree information for a particular item. - * @see DelegatingTreeContentProvider - * @see TreeItemContentProviderFactory - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface TreeItemContentProvider extends ItemContentProvider -{ - /** - * Return the parent of the represented item - */ - Object getParent(); - - /** - * Return whether the represented item has children - */ - boolean hasChildren(); - - /** - * Return the children of the represented item - */ - Object[] getChildren(); -} diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProviderFactory.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProviderFactory.java deleted file mode 100644 index 393a737525..0000000000 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/jface/TreeItemContentProviderFactory.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.jface; - -/** - * Extension of {@link ItemContentProviderFactory} that extends functionality - * for tree content - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface TreeItemContentProviderFactory extends ItemContentProviderFactory -{ - public TreeItemContentProvider buildItemContentProvider(Object item, - DelegatingContentAndLabelProvider contentAndLabelProvider); -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/.classpath b/common/plugins/org.eclipse.jpt.common.utility/.classpath deleted file mode 100644 index 304e86186a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/common/plugins/org.eclipse.jpt.common.utility/.cvsignore b/common/plugins/org.eclipse.jpt.common.utility/.cvsignore deleted file mode 100644 index a128605b1f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -bin -@dot -temp.folder -build.xml \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.utility/.project b/common/plugins/org.eclipse.jpt.common.utility/.project deleted file mode 100644 index dbe6e576b1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.common.utility - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/common/plugins/org.eclipse.jpt.common.utility/META-INF/MANIFEST.MF b/common/plugins/org.eclipse.jpt.common.utility/META-INF/MANIFEST.MF deleted file mode 100644 index fa003f2b9f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/META-INF/MANIFEST.MF +++ /dev/null @@ -1,158 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.common.utility -Bundle-Version: 2.0.0.qualifier -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Export-Package: org.eclipse.jpt.common.utility, - org.eclipse.jpt.common.utility.internal; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.enumerations; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.iterables; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.iterators; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.model; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.model.listener.awt; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.model.value; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.model.value.prefs; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.model.value.swing; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.node; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.swing; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.internal.synchronizers; - x-friends:="org.eclipse.jpt.jpa.core, - org.eclipse.jpt.common.core, - org.eclipse.jpt.common.ui, - org.eclipse.jpt.common.eclipselink.core, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.ui, - org.eclipse.jpt.jpa.db, - org.eclipse.jpt.jpa.db.ui, - org.eclipse.jpt.jpa.gen, - org.eclipse.jpt.jpa.ui", - org.eclipse.jpt.common.utility.model, - org.eclipse.jpt.common.utility.model.event, - org.eclipse.jpt.common.utility.model.listener, - org.eclipse.jpt.common.utility.model.value, - org.eclipse.jpt.common.utility.synchronizers diff --git a/common/plugins/org.eclipse.jpt.common.utility/about.html b/common/plugins/org.eclipse.jpt.common.utility/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/common/plugins/org.eclipse.jpt.common.utility/build.properties b/common/plugins/org.eclipse.jpt.common.utility/build.properties deleted file mode 100644 index 11ab8d42f6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/build.properties +++ /dev/null @@ -1,17 +0,0 @@ -################################################################################ -# Copyright (c) 2006, 2007 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -javacSource=1.5 -javacTarget=1.5 -source.. = src/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - about.html,\ - plugin.properties diff --git a/common/plugins/org.eclipse.jpt.common.utility/component.xml b/common/plugins/org.eclipse.jpt.common.utility/component.xml deleted file mode 100644 index 80c3a500b9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/component.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.utility/plugin.properties b/common/plugins/org.eclipse.jpt.common.utility/plugin.properties deleted file mode 100644 index 1693cd4eb6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/plugin.properties +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Copyright (c) 2006, 2009 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName = Dali Java Persistence Tools - Common Utility -providerName = Eclipse Web Tools Platform - diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Command.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Command.java deleted file mode 100644 index f152ba5fa6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Command.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility; - -import java.io.Serializable; - -/** - * Simple interface for implementing the GOF Command design pattern, - * and it doesn't carry the baggage of {@link java.lang.Runnable}. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface Command { - - /** - * Execute the command. The semantics of the command - * is determined by the contract between the client and server. - */ - void execute(); - - /** - * Singleton implementation of the command interface that will do nothing - * when executed. - */ - final class Null implements Command, Serializable { - public static final Command INSTANCE = new Null(); - public static Command instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - public void execute() { - // do nothing - } - @Override - public String toString() { - return "Command.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - /** - * Singleton implementation of the command interface that will throw an - * exception when executed. - */ - final class Disabled implements Command, Serializable { - public static final Command INSTANCE = new Disabled(); - public static Command instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public void execute() { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "Command.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/CommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/CommandExecutor.java deleted file mode 100644 index 461ab8615d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/CommandExecutor.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility; - -import java.io.Serializable; - -/** - * This interface allows clients to control how a command is executed. - * This is useful when the server provides the command but the client provides - * the context (e.g. the client would like to dispatch the command to the UI - * thread). - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface CommandExecutor { - - /** - * Execute the specified command. - */ - void execute(Command command); - - - /** - * Singleton implementation of the command executor interface - * that simply executes the command without any sort of enhancement. - */ - final class Default implements CommandExecutor, Serializable { - public static final CommandExecutor INSTANCE = new Default(); - public static CommandExecutor instance() { - return INSTANCE; - } - // ensure single instance - private Default() { - super(); - } - public void execute(Command command) { - command.execute(); - } - @Override - public String toString() { - return "CommandExecutor.Default"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Filter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Filter.java deleted file mode 100644 index 222185940e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/Filter.java +++ /dev/null @@ -1,125 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility; - -import java.io.Serializable; - -/** - * Used by various "pluggable" classes to filter objects. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @param the type of objects to be filtered - */ -public interface Filter { - - /** - * Return whether the specified object is "accepted" by the - * filter. The semantics of "accept" is determined by the - * contract between the client and the server. - */ - boolean accept(T o); - - - /** - * Singleton implemetation of the filter interface that accepts all the - * objects (i.e. it does no filtering). - */ - final class Null implements Filter, Serializable { - @SuppressWarnings("rawtypes") - public static final Filter INSTANCE = new Null(); - @SuppressWarnings("unchecked") - public static Filter instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - // nothing is filtered - everything is accepted - public boolean accept(S o) { - return true; - } - @Override - public String toString() { - return "Filter.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - /** - * Singleton implemetation of the filter interface that accepts none of the - * objects (i.e. it filters out all the objects). - */ - final class Opaque implements Filter, Serializable { - @SuppressWarnings("rawtypes") - public static final Filter INSTANCE = new Opaque(); - @SuppressWarnings("unchecked") - public static Filter instance() { - return INSTANCE; - } - // ensure single instance - private Opaque() { - super(); - } - // everything is filtered - nothing is accepted - public boolean accept(S o) { - return false; - } - @Override - public String toString() { - return "Filter.Opaque"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - /** - * Singleton implemetation of the filter interface that throws an exception - * if called. - */ - final class Disabled implements Filter, Serializable { - @SuppressWarnings("rawtypes") - public static final Filter INSTANCE = new Disabled(); - @SuppressWarnings("unchecked") - public static Filter instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public boolean accept(S o) { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "Filter.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/IndentingPrintWriter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/IndentingPrintWriter.java deleted file mode 100644 index 11641aa132..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/IndentingPrintWriter.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility; - -import java.io.PrintWriter; -import java.io.Writer; - -/** - * Extend {@link PrintWriter} to automatically indent new lines. - */ -public class IndentingPrintWriter - extends PrintWriter -{ - private final String indent; - private int indentLevel; - private boolean needsIndent; - - public static String DEFAULT_INDENT = "\t"; //$NON-NLS-1$ - - - /** - * Construct a writer that indents with tabs. - */ - public IndentingPrintWriter(Writer out) { - this(out, DEFAULT_INDENT); - } - - /** - * Construct a writer that indents with the specified string. - */ - public IndentingPrintWriter(Writer out, String indent) { - super(out); - this.indent = indent; - this.indentLevel = 0; - this.needsIndent = true; - } - - /** - * Set flag so following line is indented. - */ - @Override - public void println() { - synchronized (this.lock) { - super.println(); - this.needsIndent = true; - } - } - - /** - * Print the appropriate indent. - * Pre-condition: synchronized - */ - private void printIndent() { - if (this.needsIndent) { - this.needsIndent = false; - for (int i = this.indentLevel; i-- > 0; ) { - this.print(this.indent); - } - } - } - - /** - * Write a portion of an array of characters. - */ - @Override - public void write(char buf[], int off, int len) { - synchronized (this.lock) { - this.printIndent(); - super.write(buf, off, len); - } - } - - /** - * Write a single character. - */ - @Override - public void write(int c) { - synchronized (this.lock) { - this.printIndent(); - super.write(c); - } - } - - /** - * Write a portion of a string. - */ - @Override - public void write(String s, int off, int len) { - synchronized (this.lock) { - this.printIndent(); - super.write(s, off, len); - } - } - - /** - * Bump the indent level. - */ - public void indent() { - this.incrementIndentLevel(); - } - - /** - * Decrement the indent level. - */ - public void undent() { - this.decrementIndentLevel(); - } - - /** - * Bump the indent level. - */ - public void incrementIndentLevel() { - synchronized (this.lock) { - this.indentLevel++; - } - } - - /** - * Decrement the indent level. - */ - public void decrementIndentLevel() { - synchronized (this.lock) { - this.indentLevel--; - } - } - - /** - * Return the current indent level. - */ - public int getIndentLevel() { - synchronized (this.lock) { - return this.indentLevel; - } - } - - /** - * Allow the indent level to be set directly. - * Return the previous indent level. - */ - public int setIndentLevel(int indentLevel) { - synchronized (this.lock) { - int old = this.indentLevel; - this.indentLevel = indentLevel; - return old; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/JavaType.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/JavaType.java deleted file mode 100644 index fb019d5ebe..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/JavaType.java +++ /dev/null @@ -1,135 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility; - -import java.io.PrintWriter; - -/** - * This interface describes a Java type; i.e. its "element type" - * and its "array depth". The element type is referenced by name, - * allowing us to reference classes that are not (or cannot be) loaded. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - *

- * This interface is not intended to be implemented by clients. - */ -public interface JavaType { - - /** - * Return the name of the type's "element type". - * A member type will have one or more '$' characters in its name. - */ - String getElementTypeName(); - - /** - * Return the type's "array depth". - */ - int getArrayDepth(); - - /** - * Return whether the type is an array (i.e. its "array depth" is greater - * than zero). - */ - boolean isArray(); - - /** - * Return whether the type is a "primitive" (e.g. int, float). - *

- * NB: void.class.isPrimitive() == true - */ - boolean isPrimitive(); - - /** - * Return whether the type is a "primitive wrapper" (e.g. {@link java.lang.Integer}, - * {@link java.lang.Float}). - *

- * NB: void.class.isPrimitive() == true - */ - boolean isPrimitiveWrapper(); - - /** - * Return whether the type is a "variable primitive" (e.g. int, float, - * but not void). - *

- * NB: variables cannot be declared void - */ - boolean isVariablePrimitive(); - - /** - * Return whether the type is a "variable primitive wrapper" (e.g. - * {@link java.lang.Integer}, {@link java.lang.Float}, - * but not {@link java.lang.Void}). - *

- * NB: variables cannot be declared void - */ - boolean isVariablePrimitiveWrapper(); - - /** - * Return the class corresponding to the type's element type and array depth. - */ - Class getJavaClass() throws ClassNotFoundException; - - /** - * Return the version of the type's name that matches that - * returned by {@link java.lang.Class#getName()} - * (e.g. "[[J", "[Ljava.lang.Object;", - * "java.util.Map$Entry"). - */ - String getJavaClassName(); - - /** - * Return whether the type is equal to the specified type. - */ - boolean equals(String otherElementTypeName, int otherArrayDepth); - - /** - * Return whether the type describes to the specified type. - */ - boolean describes(String className); - - /** - * Return whether the type describes to the specified type. - */ - boolean describes(Class javaClass); - - /** - * Return whether the type is equal to the specified type. - */ - boolean equals(JavaType other); - - /** - * Return the version of the type's name that can be used in source code:

    - *
  • "[[J" => "long[][]" - *
  • "java.util.Map$Entry" => "java.util.Map.Entry" - *
- */ - String declaration(); - - /** - * Append the version of the type's name that can be used in source code:
    - *
  • "[[J" => "long[][]" - *
  • "java.util.Map$Entry" => "java.util.Map.Entry" - *
- */ - void appendDeclarationTo(StringBuilder sb); - - /** - * Print the version of the type's name that can be used in source code:
    - *
  • "[[J" => "long[][]" - *
  • "java.util.Map$Entry" => "java.util.Map.Entry" - *
- */ - void printDeclarationOn(PrintWriter pw); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/MethodSignature.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/MethodSignature.java deleted file mode 100644 index 32e793a071..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/MethodSignature.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility; - -import java.io.PrintWriter; -import java.lang.reflect.Method; - -/** - * This interface describes a Java method signature; i.e. its "name" - * and its "parameter types". The parameter types are referenced by name, - * allowing us to reference classes that are not (or cannot be) loaded. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - *

- * This interface is not intended to be implemented by clients. - */ -public interface MethodSignature { - - /** - * Return the method's name. - */ - String getName(); - - /** - * Return the method's parameter types. - */ - JavaType[] getParameterTypes(); - - /** - * Return whether the method signature describes the specified method. - */ - boolean describes(Method method); - - /** - * Return whether the method signature equals the specified signature. - */ - boolean equals(String otherName, JavaType[] otherParameterTypes); - - /** - * Return whether the method signature equals the specified signature. - */ - boolean equals(MethodSignature other); - - /** - * Return a string representation of the method's signature:

- * "foo(int, java.lang.String)" - */ - String getSignature(); - - /** - * Append a string representation of the method's signature:

- * "foo(int, java.lang.String)" - */ - void appendSignatureTo(StringBuilder sb); - - /** - * Print a string representation of the method's signature:

- * "foo(int, java.lang.String)" - */ - void printSignatureOn(PrintWriter pw); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ObjectReference.java deleted file mode 100644 index 991c2c97d2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ObjectReference.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility; - -/** - * Provide a container for passing an object that can be changed by the recipient. - */ -public interface ObjectReference - extends ReadOnlyObjectReference -{ - /** - * Set the value. - * Return the previous value. - */ - V setValue(V value); - - /** - * Set the value to null. - * Return the previous value. - */ - V setNull(); -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ReadOnlyObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ReadOnlyObjectReference.java deleted file mode 100644 index 02c4ff6a24..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/ReadOnlyObjectReference.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility; - -/** - * Provide a container for holding an object that cannot be changed. - * - * @see ObjectReference - */ -public interface ReadOnlyObjectReference -{ - /** - * Return the current value. - */ - V getValue(); - - /** - * Return whether the current value is equal to the specified value. - */ - boolean valueEquals(Object object); - - /** - * Return whether the current value is not equal to the specified value. - */ - boolean valueNotEqual(Object object); - - /** - * Return whether the current value is null. - */ - boolean isNull(); - - /** - * Return whether the current value is not null. - */ - boolean isNotNull(); -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AbstractAssociation.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AbstractAssociation.java deleted file mode 100644 index 744d95c727..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AbstractAssociation.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Implement some of the methods in {@link Association} that can - * be defined in terms of the other methods. - */ -public abstract class AbstractAssociation - implements Association -{ - /** - * Default constructor. - */ - protected AbstractAssociation() { - super(); - } - - @Override - public synchronized boolean equals(Object o) { - if ( ! (o instanceof Association)) { - return false; - } - Association other = (Association) o; - return this.keyEquals(other) && this.valueEquals(other); - } - - protected boolean keyEquals(Association other) { - Object key = this.getKey(); - return (key == null) ? - (other.getKey() == null) : - key.equals(other.getKey()); - } - - protected boolean valueEquals(Association other) { - Object value = this.getValue(); - return (value == null) ? - (other.getValue() == null) : - value.equals(other.getValue()); - } - - @Override - public synchronized int hashCode() { - return this.keyHashCode() ^ this.valueHashCode(); - } - - protected int keyHashCode() { - Object key = this.getKey(); - return (key == null) ? 0 : key.hashCode(); - } - - protected int valueHashCode() { - Object value = this.getValue(); - return (value == null) ? 0 : value.hashCode(); - } - - @Override - public synchronized String toString() { - return this.getKey() + " => " + this.getValue(); //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ArrayTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ArrayTools.java deleted file mode 100644 index 4f152023e7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ArrayTools.java +++ /dev/null @@ -1,3122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.lang.reflect.Array; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Comparator; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Random; - -/** - * Array-related utility methods. - */ -public final class ArrayTools { - public static final Object[] EMPTY_OBJECT_ARRAY = new Object[0]; - public static final char[] EMPTY_CHAR_ARRAY = new char[0]; - public static final int[] EMPTY_INT_ARRAY = new int[0]; - - // ********** instantiation ********** - - /** - * Return a new array with the same length - * and the same component type as the specified array. - *

- * Arrays.newArray(Object[] array) - */ - public static E[] newArray(E[] array) { - return newArray(array, array.length); - } - - /** - * Return a new array with the specified length - * and the same component type as the specified array. - *

- * Arrays.newArray(Object[] array, int length) - */ - public static E[] newArray(E[] array, int length) { - return newArray(componentType(array), length); - } - - /** - * Return the specified array's component type, with appropriate support - * for generics. - */ - public static Class componentType(E[] array) { - Class rawComponentType = array.getClass().getComponentType(); - @SuppressWarnings("unchecked") - Class componentType = (Class) rawComponentType; - return componentType; - } - - /** - * Return a new array with the specified component type and length, - * with appropriate support for generics. The component type cannot be a - * primitive type. - */ - public static E[] newArray(Class componentType, int length) { - if (componentType.isPrimitive()) { - throw new IllegalArgumentException("Array class cannot be primitive: " + componentType); //$NON-NLS-1$ - } - return newArray_(componentType, length); - } - - /** - * assume the component type is not a primitive class - */ - @SuppressWarnings("unchecked") - private static E[] newArray_(Class componentType, int length) { - return (E[]) ((componentType == OBJECT_CLASS) ? - new Object[length] : - Array.newInstance(componentType, length)); - } - private static final Class OBJECT_CLASS = Object.class; - - - // ********** conversion ********** - - /** - * Return an array corresponding to the specified iterable. - *

- * Iterable.toArray() - * @see Collection#toArray() - */ - public static Object[] array(Iterable iterable) { - return array(iterable.iterator()); - } - - /** - * Return an array corresponding to the specified iterable. - * The specified iterable size is a performance hint. - *

- * Iterable.toArray() - * @see Collection#toArray() - */ - public static Object[] array(Iterable iterable, int iterableSize) { - return array(iterable.iterator(), iterableSize); - } - - /** - * Return an array corresponding to the specified iterable; - * the runtime type of the returned array is that of the specified array. - * If the iterable fits in the specified array, it is returned therein. - * Otherwise, a new array is allocated with the runtime type of the - * specified array and the size of the iterable. - *

- * Iterable.toArray(Object[]) - * @see Collection#toArray(Object[]) - */ - public static E[] array(Iterable iterable, E[] array) { - return array(iterable.iterator(), array); - } - - /** - * Return an array corresponding to the specified iterable; - * the runtime type of the returned array is that of the specified array. - * If the iterable fits in the specified array, it is returned therein. - * Otherwise, a new array is allocated with the runtime type of the - * specified array and the size of the iterable. - * The specified iterable size is a performance hint. - *

- * Iterable.toArray(Object[]) - * @see Collection#toArray(Object[]) - */ - public static E[] array(Iterable iterable, int iterableSize, E[] array) { - return array(iterable.iterator(), iterableSize, array); - } - - /** - * Return an array corresponding to the specified iterator. - *

- * Iterator.toArray() - * @see Collection#toArray() - */ - public static Object[] array(Iterator iterator) { - return iterator.hasNext() ? - CollectionTools.list(iterator).toArray() : - EMPTY_OBJECT_ARRAY; - } - - /** - * Return an array corresponding to the specified iterator. - * The specified iterator size is a performance hint. - *

- * Iterator.toArray() - * @see Collection#toArray() - */ - public static Object[] array(Iterator iterator, int iteratorSize) { - return iterator.hasNext() ? - CollectionTools.list(iterator, iteratorSize).toArray() : - EMPTY_OBJECT_ARRAY; - } - - /** - * Return an array corresponding to the specified iterator; - * the runtime type of the returned array is that of the specified array. - * If the iterator fits in the specified array, it is returned therein. - * Otherwise, a new array is allocated with the runtime type of the - * specified array and the size of the iterator. - *

- * Iterator.toArray(Object[]) - * @see Collection#toArray(Object[]) - */ - public static E[] array(Iterator iterator, E[] array) { - return iterator.hasNext() ? - CollectionTools.list(iterator).toArray(array) : - emptyArray(array); - } - - /** - * Return an array corresponding to the specified iterator; - * the runtime type of the returned array is that of the specified array. - * If the iterator fits in the specified array, it is returned therein. - * Otherwise, a new array is allocated with the runtime type of the - * specified array and the size of the iterator. - * The specified iterator size is a performance hint. - *

- * Iterator.toArray(Object[]) - * @see Collection#toArray(Object[]) - */ - public static E[] array(Iterator iterator, int iteratorSize, E[] array) { - return iterator.hasNext() ? - CollectionTools.list(iterator, iteratorSize).toArray(array) : - emptyArray(array); - } - - /** - * If the specified array is empty, return it; - * otherwise, set its first element to null. - * @see Collection#toArray(Object[]) - */ - private static E[] emptyArray(E[] array) { - return (array.length == 0) ? array : clearFirst(array); - } - - /** - * Set the specified array's first element to null and and return the array. - * Assume the array length > 0. - */ - private static E[] clearFirst(E[] array) { - array[0] = null; - return array; - } - - - // ********** add ********** - - /** - * Return a new array containing the elements in the - * specified array followed by the specified object to be added. - *

- * Arrays.add(Object[] array, Object o) - */ - public static E[] add(E[] array, E value) { - int len = array.length; - E[] result = newArray(array, len + 1); - if (len > 0) { - System.arraycopy(array, 0, result, 0, len); - } - result[len] = value; - return result; - } - - /** - * Return a new array containing the elements in the - * specified array with the specified object added at the specified index. - *

- * Arrays.add(Object[] array, int index, Object o) - */ - public static E[] add(E[] array, int index, E value) { - int len = array.length; - E[] result = newArray(array, len + 1); - if (index > 0) { - System.arraycopy(array, 0, result, 0, index); - } - result[index] = value; - if (index < len) { - System.arraycopy(array, index, result, index + 1, len - index); - } - return result; - } - - /** - * Return a new array containing the elements in the - * specified array followed by the specified value to be added. - *

- * Arrays.add(char[] array, char value) - */ - public static char[] add(char[] array, char value) { - int len = array.length; - char[] result = new char[len + 1]; - if (len > 0) { - System.arraycopy(array, 0, result, 0, len); - } - result[len] = value; - return result; - } - - /** - * Return a new array containing the elements in the - * specified array with the specified value added at the specified index. - *

- * Arrays.add(char[] array, int index, char value) - */ - public static char[] add(char[] array, int index, char value) { - int len = array.length; - char[] result = new char[len + 1]; - if (index > 0) { - System.arraycopy(array, 0, result, 0, index); - } - result[index] = value; - if (index < len) { - System.arraycopy(array, index, result, index + 1, len - index); - } - return result; - } - - /** - * Return a new array containing the elements in the - * specified array followed by the specified value to be added. - *

- * Arrays.add(int[] array, int value) - */ - public static int[] add(int[] array, int value) { - int len = array.length; - int[] result = new int[len + 1]; - if (len > 0) { - System.arraycopy(array, 0, result, 0, len); - } - result[len] = value; - return result; - } - - /** - * Return a new array containing the elements in the - * specified array with the specified value added at the specified index. - *

- * Arrays.add(int[] array, int index, int value) - */ - public static int[] add(int[] array, int index, int value) { - int len = array.length; - int[] result = new int[len + 1]; - if (index > 0) { - System.arraycopy(array, 0, result, 0, index); - } - result[index] = value; - if (index < len) { - System.arraycopy(array, index, result, index + 1, len - index); - } - return result; - } - - - // ********** add all ********** - - /** - * Return an array containing the elements in the - * specified array followed by the elements - * in the specified collection. - *

- * Arrays.addAll(Object[] array, Collection collection) - */ - public static E[] addAll(E[] array, Collection collection) { - return addAll(array, collection, collection.size()); - } - - /** - * check collection size - */ - private static E[] addAll(E[] array, Collection collection, int collectionSize) { - return (collectionSize == 0) ? array : addAll_(array, collection, collectionSize); - } - - /** - * assume the collection is non-empty - */ - private static E[] addAll_(E[] array, Collection collection) { - return addAll_(array, collection, collection.size()); - } - - /** - * assume collection size > zero - */ - private static E[] addAll_(E[] array, Collection collection, int collectionSize) { - return addAll(array, collection, array.length, collectionSize); - } - - /** - * assume collection size > zero; check array length - */ - private static E[] addAll(E[] array, Collection collection, int arrayLength, int collectionSize) { - return (arrayLength == 0) ? - collection.toArray(newArray(array, collectionSize)) : - addAll_(array, collection, arrayLength, collectionSize); - } - - /** - * assume array length and collection size > zero - */ - private static E[] addAll_(E[] array, Collection collection, int arrayLength, int collectionSize) { - E[] result = newArray(array, arrayLength + collectionSize); - System.arraycopy(array, 0, result, 0, arrayLength); - int i = arrayLength; - for (E element : collection) { - result[i++] = element; - } - return result; - } - - /** - * Return an array containing the elements in the - * specified array followed by the elements - * in the specified iterable. - *

- * Arrays.addAll(Object[] array, Iterable iterable) - */ - public static E[] addAll(E[] array, Iterable iterable) { - return addAll(array, iterable.iterator()); - } - - /** - * Return an array containing the elements in the - * specified array followed by the elements - * in the specified iterable. - * The specified iterable size is a performance hint. - *

- * Arrays.addAll(Object[] array, Iterable iterable) - */ - public static E[] addAll(E[] array, Iterable iterable, int iterableSize) { - return addAll(array, iterable.iterator(), iterableSize); - } - - /** - * Return an array containing the elements in the - * specified array followed by the elements - * in the specified iterator. - *

- * Arrays.addAll(Object[] array, Iterator iterator) - */ - public static E[] addAll(E[] array, Iterator iterator) { - return iterator.hasNext() ? addAll_(array, CollectionTools.list(iterator)) : array; - } - - /** - * Return an array containing the elements in the - * specified array followed by the elements - * in the specified iterator. - * The specified iterator size is a performance hint. - *

- * Arrays.addAll(Object[] array, Iterator iterator) - */ - public static E[] addAll(E[] array, Iterator iterator, int iteratorSize) { - return iterator.hasNext() ? addAll_(array, CollectionTools.list(iterator, iteratorSize)) : array; - } - - /** - * Return an array containing the elements in the - * specified array 1 followed by the elements - * in the specified array 2. - *

- * Arrays.addAll(Object[] array1, Object[] array2) - */ - public static E[] addAll(E[] array1, E... array2) { - return addAll(array1, array2, array2.length); - } - - /** - * check array 2 length - */ - private static E[] addAll(E[] array1, E[] array2, int array2Length) { - return (array2Length == 0) ? array1 : addAll_(array1, array2, array2Length); - } - - /** - * assume array 2 length > 0 - */ - private static E[] addAll_(E[] array1, E[] array2, int array2Length) { - return addAll(array1, array2, array1.length, array2Length); - } - - /** - * assume array 2 length > 0; check array 1 length - */ - private static E[] addAll(E[] array1, E[] array2, int array1Length, int array2Length) { - return (array1Length == 0) ? array2 : addAll_(array1, array2, array1Length, array2Length); - } - - /** - * assume both array lengths > 0 - */ - private static E[] addAll_(E[] array1, E[] array2, int array1Length, int array2Length) { - E[] result = newArray(array1, array1Length + array2Length); - System.arraycopy(array1, 0, result, 0, array1Length); - System.arraycopy(array2, 0, result, array1Length, array2Length); - return result; - } - - /** - * Return an array containing the elements in the - * first specified array with the objects in the second - * specified array added at the specified index. - *

- * Arrays.addAll(Object[] array1, int index, Object[] array2) - */ - public static E[] addAll(E[] array1, int index, E... array2) { - return addAll(array1, index, array2, array2.length); - } - - /** - * check array 2 length - */ - private static E[] addAll(E[] array1, int index, E[] array2, int array2Length) { - return (array2Length == 0) ? array1 : addAll_(array1, index, array2, array2Length); - } - - /** - * assume array 2 length > 0 - */ - private static E[] addAll_(E[] array1, int index, E[] array2, int array2Length) { - return addAll(array1, index, array2, array1.length, array2Length); - } - - /** - * assume array 2 length > 0; check array 1 length - */ - private static E[] addAll(E[] array1, int index, E[] array2, int array1Length, int array2Length) { - return (array1Length == 0) ? - array2 : - (index == array1Length) ? // 'array2' added to end of 'array1' - addAll_(array1, array2, array1Length, array2Length) : - addAll_(array1, index, array2, array1Length, array2Length); - } - - /** - * assume both array lengths > 0 and index != array 1 length - */ - private static E[] addAll_(E[] array1, int index, E[] array2, int array1Length, int array2Length) { - E[] result = newArray(array1, array1Length + array2Length); - System.arraycopy(array1, 0, result, 0, index); - System.arraycopy(array2, 0, result, index, array2Length); - System.arraycopy(array1, index, result, index + array2Length, array1Length - index); - return result; - } - - /** - * Return an array containing the elements in the - * specified array with the elements - * in the specified collection inserted at the specified index. - *

- * Arrays.addAll(Object[] array, int index, Collection c) - */ - public static E[] addAll(E[] array, int index, Collection collection) { - return addAll(array, index, collection, collection.size()); - } - - /** - * check collection size - */ - private static E[] addAll(E[] array, int index, Collection collection, int collectionSize) { - return (collectionSize == 0) ? array : addAll_(array, index, collection, collectionSize); - } - - /** - * assume collection size > 0 - */ - private static E[] addAll_(E[] array, int index, Collection collection, int collectionSize) { - return addAll(array, index, collection, array.length, collectionSize); - } - - /** - * assume collection size > 0; check array length - */ - private static E[] addAll(E[] array, int index, Collection collection, int arrayLength, int collectionSize) { - if (arrayLength == 0) { - if (index == 0) { - return collection.toArray(newArray(array, collectionSize)); - } - throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$ - } - return (index == arrayLength) ? // 'collection' added to end of 'array' - addAll_(array, collection, arrayLength, collectionSize) : - addAll_(array, index, collection, arrayLength, collectionSize); - } - - /** - * assume array length and collection size > 0 and index != array length - */ - private static E[] addAll_(E[] array, int index, Collection collection, int arrayLength, int collectionSize) { - E[] result = newArray(array, arrayLength + collectionSize); - System.arraycopy(array, 0, result, 0, index); - int i = index; - for (E item : collection) { - result[i++] = item; - } - System.arraycopy(array, index, result, index + collectionSize, arrayLength - index); - return result; - } - - /** - * Return an array containing the elements in the - * specified array with the elements - * in the specified iterable inserted at the specified index. - *

- * Arrays.addAll(Object[] array, int index, Iterable iterable) - */ - public static E[] addAll(E[] array, int index, Iterable iterable) { - return addAll(array, index, iterable.iterator()); - } - - /** - * Return an array containing the elements in the - * specified array with the elements - * in the specified iterable inserted at the specified index. - *

- * Arrays.addAll(Object[] array, int index, Iterable iterable) - */ - public static E[] addAll(E[] array, int index, Iterable iterable, int iterableSize) { - return addAll(array, index, iterable.iterator(), iterableSize); - } - - /** - * Return an array containing the elements in the - * specified array with the elements - * in the specified iterator inserted at the specified index. - *

- * Arrays.addAll(Object[] array, int index, Iterator iterator) - */ - public static E[] addAll(E[] array, int index, Iterator iterator) { - return iterator.hasNext() ? addAll_(array, index, CollectionTools.list(iterator)) : array; - } - - /** - * Return an array containing the elements in the - * specified array with the elements - * in the specified iterator inserted at the specified index. - * The specified iterator size is a performance hint. - *

- * Arrays.addAll(Object[] array, int index, Iterator iterator) - */ - public static E[] addAll(E[] array, int index, Iterator iterator, int iteratorSize) { - return iterator.hasNext() ? addAll_(array, index, CollectionTools.list(iterator, iteratorSize)) : array; - } - - /** - * assume collection is non-empty - */ - private static E[] addAll_(E[] array, int index, Collection collection) { - return addAll_(array, index, collection, collection.size()); - } - - /** - * Return an array containing the elements in the - * specified array 1 followed by the elements - * in the specified array 2. - *

- * Arrays.addAll(char[] array1, char[] array2) - */ - public static char[] addAll(char[] array1, char... array2) { - return addAll(array1, array2, array2.length); - } - - /** - * check array 2 length - */ - private static char[] addAll(char[] array1, char[] array2, int array2Length) { - return (array2Length == 0) ? array1 : addAll_(array1, array2, array2Length); - } - - /** - * assume array 2 length > 0 - */ - private static char[] addAll_(char[] array1, char[] array2, int array2Length) { - return addAll(array1, array2, array1.length, array2Length); - } - - /** - * assume array 2 length > 0; check array 1 length - */ - private static char[] addAll(char[] array1, char[] array2, int array1Length, int array2Length) { - return (array1Length == 0) ? array2 : addAll_(array1, array2, array1Length, array2Length); - } - - /** - * assume both array lengths > 0 - */ - private static char[] addAll_(char[] array1, char[] array2, int array1Length, int array2Length) { - char[] result = new char[array1Length + array2Length]; - System.arraycopy(array1, 0, result, 0, array1Length); - System.arraycopy(array2, 0, result, array1Length, array2Length); - return result; - } - - /** - * Return an array containing the elements in the - * first specified array with the objects in the second - * specified array added at the specified index. - *

- * Arrays.add(char[] array1, int index, char[] array2) - */ - public static char[] addAll(char[] array1, int index, char... array2) { - return addAll(array1, index, array2, array2.length); - } - - /** - * check array 2 length - */ - private static char[] addAll(char[] array1, int index, char[] array2, int array2Length) { - return (array2Length == 0) ? array1 : addAll_(array1, index, array2, array2Length); - } - - /** - * assume array 2 length > 0 - */ - private static char[] addAll_(char[] array1, int index, char[] array2, int array2Length) { - return addAll(array1, index, array2, array1.length, array2Length); - } - - /** - * assume array 2 length > 0; check array 1 length - */ - private static char[] addAll(char[] array1, int index, char[] array2, int array1Length, int array2Length) { - return (array1Length == 0) ? - array2 : - (index == array1Length) ? // 'array2' added to end of 'array1' - addAll_(array1, array2, array1Length, array2Length) : - addAll_(array1, index, array2, array1Length, array2Length); - } - - /** - * assume both array lengths > 0 and index != array 1 length - */ - private static char[] addAll_(char[] array1, int index, char[] array2, int array1Length, int array2Length) { - char[] result = new char[array1Length + array2Length]; - System.arraycopy(array1, 0, result, 0, index); - System.arraycopy(array2, 0, result, index, array2Length); - System.arraycopy(array1, index, result, index + array2Length, array1Length - index); - return result; - } - - /** - * Return an array containing the elements in the - * specified array 1 followed by the elements - * in the specified array 2. - *

- * Arrays.addAll(int[] array1, int[] array2) - */ - public static int[] addAll(int[] array1, int... array2) { - return addAll(array1, array2, array2.length); - } - - /** - * check array 2 length - */ - private static int[] addAll(int[] array1, int[] array2, int array2Length) { - return (array2Length == 0) ? array1 : addAll_(array1, array2, array2Length); - } - - /** - * assume array 2 length > 0 - */ - private static int[] addAll_(int[] array1, int[] array2, int array2Length) { - return addAll(array1, array2, array1.length, array2Length); - } - - /** - * assume array 2 length > 0; check array 1 length - */ - private static int[] addAll(int[] array1, int[] array2, int array1Length, int array2Length) { - return (array1Length == 0) ? array2 : addAll_(array1, array2, array1Length, array2Length); - } - - /** - * assume both array lengths > 0 - */ - private static int[] addAll_(int[] array1, int[] array2, int array1Length, int array2Length) { - int[] result = new int[array1Length + array2Length]; - System.arraycopy(array1, 0, result, 0, array1Length); - System.arraycopy(array2, 0, result, array1Length, array2Length); - return result; - } - - /** - * Return an array containing the elements in the - * first specified array with the objects in the second - * specified array added at the specified index. - *

- * Arrays.add(int[] array1, int index, int[] array2) - */ - public static int[] addAll(int[] array1, int index, int... array2) { - return addAll(array1, index, array2, array2.length); - } - - /** - * check array 2 length - */ - private static int[] addAll(int[] array1, int index, int[] array2, int array2Length) { - return (array2Length == 0) ? array1 : addAll_(array1, index, array2, array2Length); - } - - /** - * assume array 2 length > 0 - */ - private static int[] addAll_(int[] array1, int index, int[] array2, int array2Length) { - return addAll(array1, index, array2, array1.length, array2Length); - } - - /** - * assume array 2 length > 0; check array 1 length - */ - private static int[] addAll(int[] array1, int index, int[] array2, int array1Length, int array2Length) { - return (array1Length == 0) ? - array2 : - (index == array1Length) ? // 'array2' added to end of 'array1' - addAll_(array1, array2, array1Length, array2Length) : - addAll_(array1, index, array2, array1Length, array2Length); - } - - /** - * assume both array lengths > 0 and index != array 1 length - */ - private static int[] addAll_(int[] array1, int index, int[] array2, int array1Length, int array2Length) { - int[] result = new int[array1Length + array2Length]; - System.arraycopy(array1, 0, result, 0, index); - System.arraycopy(array2, 0, result, index, array2Length); - System.arraycopy(array1, index, result, index + array2Length, array1Length - index); - return result; - } - - - // ********** clear ********** - - /** - * Return an empty array with the same component type as the specified array. - *

- * Arrays.clear(Object[] array) - */ - public static E[] clear(E[] array) { - return (array.length == 0) ? array : newArray(array, 0); - } - - - // ********** concatenate ********** - - /** - * Return an array containing all the elements in all the - * specified arrays, concatenated in the specified order. - * This is useful for building constant arrays out of other constant arrays. - *

- * Arrays.concatenate(Object[]... arrays) - */ - public static E[] concatenate(E[]... arrays) { - int len = 0; - for (E[] array : arrays) { - len += array.length; - } - E[] result = newArray(arrays[0], len); - if (len == 0) { - return result; - } - int current = 0; - for (E[] array : arrays) { - int arrayLength = array.length; - if (arrayLength > 0) { - System.arraycopy(array, 0, result, current, arrayLength); - current += arrayLength; - } - } - return result; - } - - /** - * Return an array containing all the elements in all the - * specified arrays, concatenated in the specified order. - * This is useful for building constant arrays out other constant arrays. - *

- * Arrays.concatenate(char[]... arrays) - */ - public static char[] concatenate(char[]... arrays) { - int len = 0; - for (char[] array : arrays) { - len += array.length; - } - if (len == 0) { - return EMPTY_CHAR_ARRAY; - } - char[] result = new char[len]; - int current = 0; - for (char[] array : arrays) { - int arrayLength = array.length; - if (arrayLength != 0) { - System.arraycopy(array, 0, result, current, arrayLength); - current += arrayLength; - } - } - return result; - } - - /** - * Return an array containing all the elements in all the - * specified arrays, concatenated in the specified order. - * This is useful for building constant arrays out other constant arrays. - *

- * Arrays.concatenate(int[]... arrays) - */ - public static int[] concatenate(int[]... arrays) { - int len = 0; - for (int[] array : arrays) { - len += array.length; - } - if (len == 0) { - return EMPTY_INT_ARRAY; - } - int[] result = new int[len]; - int current = 0; - for (int[] array : arrays) { - int arrayLength = array.length; - if (arrayLength != 0) { - System.arraycopy(array, 0, result, current, arrayLength); - current += arrayLength; - } - } - return result; - } - - - // ********** contains ********** - - /** - * Return whether the specified array contains the - * specified element. - *

- * Arrays.contains(Object[] array, Object o) - */ - public static boolean contains(Object[] array, Object value) { - return contains(array, value, array.length); - } - - /** - * check array length - */ - private static boolean contains(Object[] array, Object value, int arrayLength) { - return (arrayLength == 0) ? false : contains_(array, value, arrayLength); - } - - /** - * assume array length > 0 - */ - public static boolean contains_(Object[] array, Object value, int arrayLength) { - if (value == null) { - for (int i = arrayLength; i-- > 0; ) { - if (array[i] == null) { - return true; - } - } - } else { - for (int i = arrayLength; i-- > 0; ) { - if (value.equals(array[i])) { - return true; - } - } - } - return false; - } - - /** - * Return whether the specified array contains the - * specified element. - *

- * Arrays.contains(char[] array, char value) - */ - public static boolean contains(char[] array, char value) { - return contains(array, value, array.length); - } - - /** - * check array length - */ - private static boolean contains(char[] array, char value, int arrayLength) { - return (arrayLength == 0) ? false : contains_(array, value, arrayLength); - } - - /** - * assume array length > 0 - */ - private static boolean contains_(char[] array, char value, int arrayLength) { - for (int i = arrayLength; i-- > 0; ) { - if (array[i] == value) { - return true; - } - } - return false; - } - - /** - * Return whether the specified array contains the - * specified element. - *

- * Arrays.contains(int[] array, int value) - */ - public static boolean contains(int[] array, int value) { - return contains(array, value, array.length); - } - - /** - * check array length - */ - private static boolean contains(int[] array, int value, int arrayLength) { - return (arrayLength == 0) ? false : contains_(array, value, arrayLength); - } - - /** - * assume array length > 0 - */ - private static boolean contains_(int[] array, int value, int arrayLength) { - for (int i = arrayLength; i-- > 0; ) { - if (array[i] == value) { - return true; - } - } - return false; - } - - - // ********** contains all ********** - - /** - * Return whether the specified array contains all of the - * elements in the specified collection. - *

- * Arrays.containsAll(Object[] array, Collection collection) - */ - public static boolean containsAll(Object[] array, Collection collection) { - return containsAll(array, collection.iterator()); - } - - /** - * Return whether the specified array contains all of the - * elements in the specified iterable. - *

- * Arrays.containsAll(Object[] array, Iterable iterable) - */ - public static boolean containsAll(Object[] array, Iterable iterable) { - return containsAll(array, iterable.iterator()); - } - - /** - * Return whether the specified array contains all of the - * elements in the specified iterator. - *

- * Arrays.containsAll(Object[] array, Iterator iterator) - */ - public static boolean containsAll(Object[] array, Iterator iterator) { - // use hashed lookup - HashSet set = CollectionTools.set(array); - while (iterator.hasNext()) { - if ( ! set.contains(iterator.next())) { - return false; - } - } - return true; - } - - /** - * Return whether the specified array 1 contains all of the - * elements in the specified array 2. - *

- * Arrays.containsAll(Object[] array1, Object[] array2) - */ - public static boolean containsAll(Object[] array1, Object... array2) { - // use hashed lookup - HashSet set = CollectionTools.set(array1); - for (int i = array2.length; i-- > 0; ) { - if ( ! set.contains(array2[i])) { - return false; - } - } - return true; - } - - /** - * Return whether the specified array 1 contains all of the - * elements in the specified array 2. - *

- * Arrays.containsAll(char[] array1, char[] array2) - */ - public static boolean containsAll(char[] array1, char... array2) { - for (int i = array2.length; i-- > 0; ) { - if ( ! contains(array1, array2[i])) { - return false; - } - } - return true; - } - - /** - * Return whether the specified array 1 contains all of the - * elements in the specified array 2. - *

- * Arrays.containsAll(int[] array1, int[] array2) - */ - public static boolean containsAll(int[] array1, int... array2) { - for (int i = array2.length; i-- > 0; ) { - if ( ! contains(array1, array2[i])) { - return false; - } - } - return true; - } - - - // ********** diff ********** - - /** - * Return the index of the first elements in the specified - * arrays that are different, beginning at the end. - * If the arrays are identical, return -1. - * If the arrays are different sizes, return the index of the - * last element in the longer array. - * Use the elements' {@link Object#equals(Object)} method to compare the - * elements. - */ - public static int diffEnd(Object[] array1, Object[] array2) { - int len1 = array1.length; - int len2 = array2.length; - if (len1 != len2) { - return Math.max(len1, len2) - 1; - } - for (int i = len1 - 1; i > -1; i--) { - Object o = array1[i]; - if (o == null) { - if (array2[i] != null) { - return i; - } - } else { - if ( ! o.equals(array2[i])) { - return i; - } - } - } - return -1; - } - - /** - * Return the range of elements in the specified - * arrays that are different. - * If the arrays are identical, return [size, -1]. - * Use the elements' {@link Object#equals(Object)} method to compare the - * elements. - * @see #diffStart(Object[], Object[]) - * @see #diffEnd(Object[], Object[]) - */ - public static Range diffRange(Object[] array1, Object[] array2) { - int end = diffEnd(array1, array2); - if (end == -1) { - // the lists are identical, the start is the size of the two lists - return new Range(array1.length, end); - } - // the lists are different, calculate the start of the range - return new Range(diffStart(array1, array2), end); - } - - /** - * Return the index of the first elements in the specified - * arrays that are different. If the arrays are identical, return - * the size of the two arrays (i.e. one past the last index). - * If the arrays are different sizes and all the elements in - * the shorter array match their corresponding elements in - * the longer array, return the size of the shorter array - * (i.e. one past the last index of the shorter array). - * Use the elements' {@link Object#equals(Object)} method to compare the - * elements. - */ - public static int diffStart(Object[] array1, Object[] array2) { - int end = Math.min(array1.length, array2.length); - for (int i = 0; i < end; i++) { - Object o = array1[i]; - if (o == null) { - if (array2[i] != null) { - return i; - } - } else { - if ( ! o.equals(array2[i])) { - return i; - } - } - } - return end; - } - - - // ********** identity diff ********** - - /** - * Return the index of the first elements in the specified - * arrays that are different, beginning at the end. - * If the arrays are identical, return -1. - * If the arrays are different sizes, return the index of the - * last element in the longer array. - * Use object identity to compare the elements. - */ - public static int identityDiffEnd(Object[] array1, Object[] array2) { - int len1 = array1.length; - int len2 = array2.length; - if (len1 != len2) { - return Math.max(len1, len2) - 1; - } - for (int i = len1 - 1; i > -1; i--) { - if (array1[i] != array2[i]) { - return i; - } - } - return -1; - } - - /** - * Return the range of elements in the specified - * arrays that are different. - * If the arrays are identical, return [size, -1]. - * Use object identity to compare the elements. - * @see #identityDiffStart(Object[], Object[]) - * @see #identityDiffEnd(Object[], Object[]) - */ - public static Range identityDiffRange(Object[] array1, Object[] array2) { - int end = identityDiffEnd(array1, array2); - if (end == -1) { - // the lists are identical, the start is the size of the two lists - return new Range(array1.length, end); - } - // the lists are different, calculate the start of the range - return new Range(identityDiffStart(array1, array2), end); - } - - /** - * Return the index of the first elements in the specified - * arrays that are different. If the arrays are identical, return - * the size of the two arrays (i.e. one past the last index). - * If the arrays are different sizes and all the elements in - * the shorter array match their corresponding elements in - * the longer array, return the size of the shorter array - * (i.e. one past the last index of the shorter array). - * Use object identity to compare the elements. - */ - public static int identityDiffStart(Object[] array1, Object[] array2) { - int end = Math.min(array1.length, array2.length); - for (int i = 0; i < end; i++) { - if (array1[i] != array2[i]) { - return i; - } - } - return end; - } - - - // ********** elements are identical ********** - - /** - * Return whether the specified arrays contain the same elements. - *

- * Arrays.identical(Object[] array1, Object[] array2) - */ - public static boolean elementsAreIdentical(Object[] array1, Object[] array2) { - if (array1 == array2) { - return true; - } - if (array1 == null || array2 == null) { - return false; - } - int length = array1.length; - if (array2.length != length) { - return false; - } - for (int i = length; i-- > 0; ) { - if (array1[i] != array2[i]) { - return false; - } - } - return true; - } - - - // ********** index of ********** - - /** - * Return the index of the first occurrence of the - * specified element in the specified array, - * or return -1 if there is no such index. - *

- * Arrays.indexOf(Object[] array, Object o) - */ - public static int indexOf(Object[] array, Object value) { - int len = array.length; - if (value == null) { - for (int i = 0; i < len; i++) { - if (array[i] == null) { - return i; - } - } - } else { - for (int i = 0; i < len; i++) { - if (value.equals(array[i])) { - return i; - } - } - } - return -1; - } - - /** - * Return the index of the first occurrence of the - * specified element in the specified array, - * or return -1 if there is no such index. - *

- * Arrays.identityIndexOf(Object[] array, Object o) - */ - public static int identityIndexOf(Object[] array, Object value) { - int len = array.length; - for (int i = 0; i < len; i++) { - if (array[i] == value) { - return i; - } - } - return -1; - } - - /** - * Return the index of the first occurrence of the - * specified element in the specified array, - * or return -1 if there is no such index. - *

- * Arrays.indexOf(char[] array, char value) - */ - public static int indexOf(char[] array, char value) { - int len = array.length; - for (int i = 0; i < len; i++) { - if (array[i] == value) { - return i; - } - } - return -1; - } - - /** - * Return the index of the first occurrence of the - * specified element in the specified array, - * or return -1 if there is no such index. - *

- * Arrays.indexOf(int[] array, int value) - */ - public static int indexOf(int[] array, int value) { - int len = array.length; - for (int i = 0; i < len; i++) { - if (array[i] == value) { - return i; - } - } - return -1; - } - - - // ********** insertion index of ********** - - /** - * Return the maximum index of where the specified comparable object - * should be inserted into the specified sorted array and still keep - * the array sorted. - */ - public static > int insertionIndexOf(E[] sortedArray, Comparable value) { - int len = sortedArray.length; - for (int i = 0; i < len; i++) { - if (value.compareTo(sortedArray[i]) < 0) { - return i; - } - } - return len; - } - - /** - * Return the maximum index of where the specified comparable object - * should be inserted into the specified sorted array and still keep - * the array sorted. - */ - public static int insertionIndexOf(E[] sortedArray, E value, Comparator comparator) { - int len = sortedArray.length; - for (int i = 0; i < len; i++) { - if (comparator.compare(value, sortedArray[i]) < 0) { - return i; - } - } - return len; - } - - - // ********** last index of ********** - - /** - * Return the index of the last occurrence of the - * specified element in the specified array; - * return -1 if there is no such index. - *

- * Arrays.lastIndexOf(Object[] array, Object o) - */ - public static int lastIndexOf(Object[] array, Object value) { - int len = array.length; - if (value == null) { - for (int i = len; i-- > 0; ) { - if (array[i] == null) { - return i; - } - } - } else { - for (int i = len; i-- > 0; ) { - if (value.equals(array[i])) { - return i; - } - } - } - return -1; - } - - /** - * Return the index of the last occurrence of the - * specified element in the specified array, - * or return -1 if there is no such index. - *

- * Arrays.lastIndexOf(char[] array, char value) - */ - public static int lastIndexOf(char[] array, char value) { - for (int i = array.length; i-- > 0; ) { - if (array[i] == value) { - return i; - } - } - return -1; - } - - /** - * Return the index of the last occurrence of the - * specified element in the specified array, - * or return -1 if there is no such index. - *

- * Arrays.lastIndexOf(int[] array, int value) - */ - public static int lastIndexOf(int[] array, int value) { - for (int i = array.length; i-- > 0; ) { - if (array[i] == value) { - return i; - } - } - return -1; - } - - - // ********** min/max ********** - - /** - * Return the character from the specified array with the minimum value. - *

- * Arrays.min(char[] array) - */ - public static char min(char... array) { - int len = array.length; - if (len == 0) { - throw new IndexOutOfBoundsException(); - } - int last = len - 1; - char min = array[last]; - for (int i = last; i-- > 0; ) { - char c = array[i]; - if (c < min) { - min = c; - } - } - return min; - } - - /** - * Return the integer from the specified array with the minimum value. - *

- * Arrays.min(int[] array) - */ - public static int min(int... array) { - int len = array.length; - if (len == 0) { - throw new IndexOutOfBoundsException(); - } - int last = len - 1; - int min = array[last]; - for (int i = last; i-- > 0; ) { - int x = array[i]; - if (x < min) { - min = x; - } - } - return min; - } - - /** - * Return the character from the specified array with the maximum value. - *

- * Arrays.max(char[] array) - */ - public static char max(char... array) { - int len = array.length; - if (len == 0) { - throw new IndexOutOfBoundsException(); - } - int last = len - 1; - char max = array[last]; - for (int i = last; i-- > 0; ) { - char c = array[i]; - if (c > max) { - max = c; - } - } - return max; - } - - /** - * Return the integer from the specified array with the maximum value. - *

- * Arrays.max(int[] array) - */ - public static int max(int... array) { - int len = array.length; - if (len == 0) { - throw new IndexOutOfBoundsException(); - } - int last = len - 1; - int max = array[last]; - for (int i = last; i-- > 0; ) { - int x = array[i]; - if (x > max) { - max = x; - } - } - return max; - } - - - // ********** move ********** - - /** - * Move an element from the specified source index to the specified target - * index. Return the altered array. - *

- * Arrays.move(Object[] array, int targetIndex, int sourceIndex) - */ - public static E[] move(E[] array, int targetIndex, int sourceIndex) { - return (targetIndex == sourceIndex) ? array : move_(array, targetIndex, sourceIndex); - } - - /** - * assume target index != source index - */ - private static E[] move_(E[] array, int targetIndex, int sourceIndex) { - E temp = array[sourceIndex]; - if (targetIndex < sourceIndex) { - System.arraycopy(array, targetIndex, array, targetIndex + 1, sourceIndex - targetIndex); - } else { - System.arraycopy(array, sourceIndex + 1, array, sourceIndex, targetIndex - sourceIndex); - } - array[targetIndex] = temp; - return array; - } - - /** - * Move elements from the specified source index to the specified target - * index. Return the altered array. - *

- * Arrays.move(Object[] array, int targetIndex, int sourceIndex, int length) - */ - public static E[] move(E[] array, int targetIndex, int sourceIndex, int length) { - if ((targetIndex == sourceIndex) || (length == 0)) { - return array; - } - if (length == 1) { - return move_(array, targetIndex, sourceIndex); - } - E[] temp = newArray(array, length); - System.arraycopy(array, sourceIndex, temp, 0, length); - if (targetIndex < sourceIndex) { - System.arraycopy(array, targetIndex, array, targetIndex + length, sourceIndex - targetIndex); - } else { - System.arraycopy(array, sourceIndex + length, array, sourceIndex, targetIndex - sourceIndex); - } - System.arraycopy(temp, 0, array, targetIndex, length); - return array; - } - - /** - * Move an element from the specified source index to the specified target - * index. Return the altered array. - *

- * Arrays.move(int[] array, int targetIndex, int sourceIndex) - */ - public static int[] move(int[] array, int targetIndex, int sourceIndex) { - return (targetIndex == sourceIndex) ? array : move_(array, targetIndex, sourceIndex); - } - - /** - * assume targetIndex != sourceIndex - */ - private static int[] move_(int[] array, int targetIndex, int sourceIndex) { - int temp = array[sourceIndex]; - if (targetIndex < sourceIndex) { - System.arraycopy(array, targetIndex, array, targetIndex + 1, sourceIndex - targetIndex); - } else { - System.arraycopy(array, sourceIndex + 1, array, sourceIndex, targetIndex - sourceIndex); - } - array[targetIndex] = temp; - return array; - } - - /** - * Move elements from the specified source index to the specified target - * index. Return the altered array. - *

- * Arrays.move(int[] array, int targetIndex, int sourceIndex, int length) - */ - public static int[] move(int[] array, int targetIndex, int sourceIndex, int length) { - if ((targetIndex == sourceIndex) || (length == 0)) { - return array; - } - if (length == 1) { - return move_(array, targetIndex, sourceIndex); - } - int[] temp = new int[length]; - System.arraycopy(array, sourceIndex, temp, 0, length); - if (targetIndex < sourceIndex) { - System.arraycopy(array, targetIndex, array, targetIndex + length, sourceIndex - targetIndex); - } else { - System.arraycopy(array, sourceIndex + length, array, sourceIndex, targetIndex - sourceIndex); - } - System.arraycopy(temp, 0, array, targetIndex, length); - return array; - } - - /** - * Move an element from the specified source index to the specified target - * index. Return the altered array. - *

- * Arrays.move(char[] array, int targetIndex, int sourceIndex) - */ - public static char[] move(char[] array, int targetIndex, int sourceIndex) { - return (targetIndex == sourceIndex) ? array : move_(array, targetIndex, sourceIndex); - } - - /** - * assume targetIndex != sourceIndex - */ - private static char[] move_(char[] array, int targetIndex, int sourceIndex) { - char temp = array[sourceIndex]; - if (targetIndex < sourceIndex) { - System.arraycopy(array, targetIndex, array, targetIndex + 1, sourceIndex - targetIndex); - } else { - System.arraycopy(array, sourceIndex + 1, array, sourceIndex, targetIndex - sourceIndex); - } - array[targetIndex] = temp; - return array; - } - - /** - * Move elements from the specified source index to the specified target - * index. Return the altered array. - *

- * Arrays.move(char[] array, int targetIndex, int sourceIndex, int length) - */ - public static char[] move(char[] array, int targetIndex, int sourceIndex, int length) { - if ((targetIndex == sourceIndex) || (length == 0)) { - return array; - } - if (length == 1) { - return move_(array, targetIndex, sourceIndex); - } - char[] temp = new char[length]; - System.arraycopy(array, sourceIndex, temp, 0, length); - if (targetIndex < sourceIndex) { - System.arraycopy(array, targetIndex, array, targetIndex + length, sourceIndex - targetIndex); - } else { - System.arraycopy(array, sourceIndex + length, array, sourceIndex, targetIndex - sourceIndex); - } - System.arraycopy(temp, 0, array, targetIndex, length); - return array; - } - - - // ********** remove ********** - - /** - * Return a new array that contains the elements in the - * specified array with the specified element removed. - *

- * Arrays.remove(Object[] array, Object value) - */ - public static E[] remove(E[] array, Object value) { - return removeElementAtIndex(array, indexOf(array, value)); - } - - /** - * Return a new array that contains the elements in the - * specified array with the specified element removed. - *

- * Arrays.remove(char[] array, char value) - */ - public static char[] remove(char[] array, char value) { - return removeElementAtIndex(array, indexOf(array, value)); - } - - /** - * Return a new array that contains the elements in the - * specified array with the specified element removed. - *

- * Arrays.remove(int[] array, int value) - */ - public static int[] remove(int[] array, int value) { - return removeElementAtIndex(array, indexOf(array, value)); - } - - /** - * Return a new array that contains the elements in the - * specified array with the first element removed. - *

- * Arrays.removeFirst(Object[] array) - */ - public static E[] removeFirst(E[] array) { - return removeElementAtIndex(array, 0); - } - - /** - * Return a new array that contains the elements in the - * specified array with the first element removed. - *

- * Arrays.removeFirst(char[] array) - */ - public static char[] removeFirst(char[] array) { - return removeElementAtIndex(array, 0); - } - - /** - * Return a new array that contains the elements in the - * specified array with the first element removed. - *

- * Arrays.removeFirst(int[] array) - */ - public static int[] removeFirst(int[] array) { - return removeElementAtIndex(array, 0); - } - - /** - * Return a new array that contains the elements in the - * specified array with the last element removed. - *

- * Arrays.removeLast(Object[] array) - */ - public static E[] removeLast(E[] array) { - return removeElementAtIndex(array, array.length - 1); - } - - /** - * Return a new array that contains the elements in the - * specified array with the last element removed. - *

- * Arrays.removeLast(char[] array) - */ - public static char[] removeLast(char[] array) { - return removeElementAtIndex(array, array.length - 1); - } - - /** - * Return a new array that contains the elements in the - * specified array with the last element removed. - *

- * Arrays.removeLast(int[] array) - */ - public static int[] removeLast(int[] array) { - return removeElementAtIndex(array, array.length - 1); - } - - - // ********** remove all ********** - - /** - * Remove from the specified array all the elements in - * the specified iterable and return the result. - *

- * Arrays.removeAll(Object[] array, Iterable iterable) - */ - public static E[] removeAll(E[] array, Iterable iterable) { - return removeAll(array, iterable.iterator()); - } - - /** - * Remove from the specified array all the elements in - * the specified iterable and return the result. - * The specified iterable size is a performance hint. - *

- * Arrays.removeAll(Object[] array, Iterable iterable) - */ - public static E[] removeAll(E[] array, Iterable iterable, int iterableSize) { - return removeAll(array, iterable.iterator(), iterableSize); - } - - /** - * Remove from the specified array all the elements in - * the specified iterator and return the result. - *

- * Arrays.removeAll(Object[] array, Iterator iterator) - */ - public static E[] removeAll(E[] array, Iterator iterator) { - // convert to a set to take advantage of hashed look-up - return iterator.hasNext() ? removeAll_(array, CollectionTools.set(iterator)) : array; - } - - /** - * Remove from the specified array all the elements in - * the specified iterator and return the result. - * The specified iterator size is a performance hint. - *

- * Arrays.removeAll(Object[] array, Iterator iterator) - */ - public static E[] removeAll(E[] array, Iterator iterator, int iteratorSize) { - // convert to a set to take advantage of hashed look-up - return iterator.hasNext() ? removeAll_(array, CollectionTools.set(iterator, iteratorSize)) : array; - } - - /** - * Remove from the specified array all the elements in - * the specified collection and return the result. - *

- * Arrays.removeAll(Object[] array, Collection collection) - */ - public static E[] removeAll(E[] array, Collection collection) { - return collection.isEmpty() ? array : removeAll_(array, collection); - } - - /** - * assume collection is non-empty - */ - private static E[] removeAll_(E[] array, Collection collection) { - return removeAll(array, collection, array.length); - } - - /** - * assume collection is non-empty; check array length - */ - private static E[] removeAll(E[] array, Collection collection, int arrayLength) { - return (arrayLength == 0) ? array : removeAll_(array, collection, arrayLength); - } - - /** - * assume collection is non-empty and array length > 0 - */ - private static E[] removeAll_(E[] array, Collection collection, int arrayLength) { - // build the indices of the elements that are to remain - int[] indices = new int[arrayLength]; - int j = 0; - for (int i = 0; i < arrayLength; i++) { - if ( ! collection.contains(array[i])) { - indices[j++] = i; - } - } - if (j == arrayLength) { - return array; // nothing was removed - } - E[] result = newArray(array, j); - int resultLength = result.length; - for (int i = 0; i < resultLength; i++) { - result[i] = array[indices[i]]; - } - return result; - } - - /** - * Remove from the first specified array all the elements in - * the second specified array and return the result. - *

- * Arrays.removeAll(Object[] array1, Object[] array2) - */ - public static E[] removeAll(E[] array1, Object... array2) { - // convert to a set to take advantage of hashed look-up - return (array2.length == 0) ? array1 : removeAll_(array1, CollectionTools.set(array2)); - } - - /** - * Remove from the first specified array all the elements in - * the second specified array and return the result. - *

- * Arrays#removeAll(char[] array1, char[] array2) - */ - public static char[] removeAll(char[] array1, char... array2) { - if (array2.length == 0) { - return array1; - } - int array1Length = array1.length; - if (array1Length == 0) { - return array1; - } - int[] indices = new int[array1Length]; - int j = 0; - for (int i = 0; i < array1Length; i++) { - if ( ! contains(array2, array1[i])) { - indices[j++] = i; - } - } - if (j == array1Length) { - return array1; // nothing was removed - } - char[] result = new char[j]; - int resultLength = result.length; - for (int i = 0; i < resultLength; i++) { - result[i] = array1[indices[i]]; - } - return result; - } - - /** - * Remove from the first specified array all the elements in - * the second specified array and return the result. - *

- * Arrays#removeAll(int[] array1, int[] array2) - */ - public static int[] removeAll(int[] array1, int... array2) { - if (array2.length == 0) { - return array1; - } - int array1Length = array1.length; - if (array1Length == 0) { - return array1; - } - int[] indices = new int[array1Length]; - int j = 0; - for (int i = 0; i < array1Length; i++) { - if ( ! contains(array2, array1[i])) { - indices[j++] = i; - } - } - if (j == array1Length) { - return array1; // nothing was removed - } - int[] result = new int[j]; - int resultLength = result.length; - for (int i = 0; i < resultLength; i++) { - result[i] = array1[indices[i]]; - } - return result; - } - - - // ********** remove all occurrences ********** - - /** - * Remove from the specified array all occurrences of - * the specified element and return the result. - *

- * Arrays.removeAllOccurrences(Object[] array, Object value) - */ - public static E[] removeAllOccurrences(E[] array, Object value) { - int arrayLength = array.length; - if (arrayLength == 0) { - return array; - } - int[] indices = new int[arrayLength]; - int j = 0; - if (value == null) { - for (int i = arrayLength; i-- > 0; ) { - if (array[i] != null) { - indices[j++] = i; - } - } - } else { - for (int i = array.length; i-- > 0; ) { - if ( ! value.equals(array[i])) { - indices[j++] = i; - } - } - } - if (j == arrayLength) { - return array; // nothing was removed - } - E[] result = newArray(array, j); - int resultLength = result.length; - for (int i = 0; i < resultLength; i++) { - result[i] = array[indices[i]]; - } - return result; - } - - /** - * Remove from the specified array all occurrences of - * the specified element and return the result. - *

- * Arrays.removeAllOccurrences(char[] array, char value) - */ - public static char[] removeAllOccurrences(char[] array, char value) { - int arrayLength = array.length; - if (arrayLength == 0) { - return array; - } - int[] indices = new int[arrayLength]; - int j = 0; - for (int i = arrayLength; i-- > 0; ) { - if (array[i] != value) { - indices[j++] = i; - } - } - if (j == arrayLength) { - return array; // nothing was removed - } - char[] result = new char[j]; - int resultLength = result.length; - for (int i = 0; i < resultLength; i++) { - result[i] = array[indices[i]]; - } - return result; - } - - /** - * Remove from the specified array all occurrences of - * the specified element and return the result. - *

- * Arrays.removeAllOccurrences(int[] array, int value) - */ - public static int[] removeAllOccurrences(int[] array, int value) { - int arrayLength = array.length; - if (arrayLength == 0) { - return array; - } - int[] indices = new int[arrayLength]; - int j = 0; - for (int i = arrayLength; i-- > 0; ) { - if (array[i] != value) { - indices[j++] = i; - } - } - if (j == arrayLength) { - return array; // nothing was removed - } - int[] result = new int[j]; - int resultLength = result.length; - for (int i = 0; i < resultLength; i++) { - result[i] = array[indices[i]]; - } - return result; - } - - - // ********** remove duplicate elements ********** - - /** - * Remove any duplicate elements from the specified array, - * while maintaining the order. - */ - public static E[] removeDuplicateElements(E... array) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - ArrayList temp = CollectionTools.list(array); - return CollectionTools.removeDuplicateElements(temp, len) ? - temp.toArray(newArray(array, temp.size())) : - array; - } - - - // ********** remove element at index ********** - - /** - * Return a new array that contains the elements in the - * specified array with the specified element removed. - *

- * Arrays.removeElementAtIndex(Object[] array, int index) - */ - public static E[] removeElementAtIndex(E[] array, int index) { - return removeElementsAtIndex(array, index, 1); - } - - /** - * Return a new array that contains the elements in the - * specified array with the specified element removed. - *

- * Arrays.removeElementAtIndex(char[] array, int index) - */ - public static char[] removeElementAtIndex(char[] array, int index) { - return removeElementsAtIndex(array, index, 1); - } - - /** - * Return a new array that contains the elements in the - * specified array with the specified element removed. - *

- * Arrays.removeElementAtIndex(int[] array, int index) - */ - public static int[] removeElementAtIndex(int[] array, int index) { - return removeElementsAtIndex(array, index, 1); - } - - - // ********** remove elements at index ********** - - /** - * Return a new array that contains the elements in the - * specified array with the specified elements removed. - *

- * Arrays.removeElementsAtIndex(Object[] array, int index, int length) - */ - public static E[] removeElementsAtIndex(E[] array, int index, int length) { - if (length == 0) { - return array; - } - int arrayLength = array.length; - int newLength = arrayLength - length; - E[] result = newArray(array, newLength); - if ((newLength == 0) && (index == 0)) { - return result; // performance tweak - } - if (index != 0) { - System.arraycopy(array, 0, result, 0, index); - } - int length2 = newLength - index; - if (length2 != 0) { - System.arraycopy(array, index + length, result, index, length2); - } - return result; - } - - /** - * Return a new array that contains the elements in the - * specified array with the specified elements removed. - *

- * Arrays.removeElementsAtIndex(char[] array, int index, int length) - */ - public static char[] removeElementsAtIndex(char[] array, int index, int length) { - if (length == 0) { - return array; - } - int arrayLength = array.length; - int newLength = arrayLength - length; - if ((newLength == 0) && (index == 0)) { - return EMPTY_CHAR_ARRAY; // performance tweak - } - char[] result = new char[newLength]; - if (index != 0) { - System.arraycopy(array, 0, result, 0, index); - } - int length2 = newLength - index; - if (length2 != 0) { - System.arraycopy(array, index + length, result, index, length2); - } - return result; - } - - /** - * Return a new array that contains the elements in the - * specified array with the specified elements removed. - *

- * Arrays.removeElementsAtIndex(int[] array, int index, int length) - */ - public static int[] removeElementsAtIndex(int[] array, int index, int length) { - if (length == 0) { - return array; - } - int arrayLength = array.length; - int newLength = arrayLength - length; - if ((newLength == 0) && (index == 0)) { - return EMPTY_INT_ARRAY; // performance tweak - } - int[] result = new int[newLength]; - if (index != 0) { - System.arraycopy(array, 0, result, 0, index); - } - int length2 = newLength - index; - if (length2 != 0) { - System.arraycopy(array, index + length, result, index, length2); - } - return result; - } - - - // ********** replace all ********** - - /** - * Replace all occurrences of the specified old value with - * the specified new value. Return the altered array. - *

- * Arrays.replaceAll(Object[] array, Object oldValue, Object newValue) - */ - public static E[] replaceAll(E[] array, Object oldValue, E newValue) { - if (oldValue == null) { - for (int i = array.length; i-- > 0; ) { - if (array[i] == null) { - array[i] = newValue; - } - } - } else { - for (int i = array.length; i-- > 0; ) { - if (oldValue.equals(array[i])) { - array[i] = newValue; - } - } - } - return array; - } - - /** - * Replace all occurrences of the specified old value with - * the specified new value. Return the altered array. - *

- * Arrays.replaceAll(int[] array, int oldValue, int newValue) - */ - public static int[] replaceAll(int[] array, int oldValue, int newValue) { - for (int i = array.length; i-- > 0; ) { - if (array[i] == oldValue) { - array[i] = newValue; - } - } - return array; - } - - /** - * Replace all occurrences of the specified old value with - * the specified new value. Return the altered array. - *

- * Arrays.replaceAll(char[] array, char oldValue, char newValue) - */ - public static char[] replaceAll(char[] array, char oldValue, char newValue) { - for (int i = array.length; i-- > 0; ) { - if (array[i] == oldValue) { - array[i] = newValue; - } - } - return array; - } - - - // ********** retain all ********** - - /** - * Retain in the specified array all the elements in - * the specified iterable and return the result. - *

- * Arrays.retainAll(Object[] array, Iterable iterable) - */ - public static E[] retainAll(E[] array, Iterable iterable) { - int arrayLength = array.length; - return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterable.iterator()); - } - - /** - * Retain in the specified array all the elements in - * the specified iterable and return the result. - * The specified iterable size is a performance hint. - *

- * Arrays.retainAll(Object[] array, Iterable iterable) - */ - public static E[] retainAll(E[] array, Iterable iterable, int iterableSize) { - int arrayLength = array.length; - return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterable.iterator(), iterableSize); - } - - /** - * Retain in the specified array all the elements in - * the specified iterator and return the result. - *

- * Arrays.retainAll(Object[] array, Iterator iterator) - */ - public static E[] retainAll(E[] array, Iterator iterator) { - int arrayLength = array.length; - return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterator); - } - - /** - * Retain in the specified array all the elements in - * the specified iterator and return the result. - * The specified iterator size is a performance hint. - *

- * Arrays.retainAll(Object[] array, Iterator iterator) - */ - public static E[] retainAll(E[] array, Iterator iterator, int iteratorSize) { - int arrayLength = array.length; - return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterator, iteratorSize); - } - - /** - * assume array length > 0 - */ - private static E[] retainAll(E[] array, int arrayLength, Iterator iterator) { - return iterator.hasNext() ? - retainAll_(array, CollectionTools.set(iterator), arrayLength) : - newArray(array, 0); - } - - /** - * assume array length > 0 - */ - private static E[] retainAll(E[] array, int arrayLength, Iterator iterator, int iteratorSize) { - return iterator.hasNext() ? - retainAll_(array, CollectionTools.set(iterator, iteratorSize), arrayLength) : - newArray(array, 0); - } - - /** - * Retain in the specified array all the elements in - * the specified collection and return the result. - *

- * Arrays.retainAll(Object[] array, Collection collection) - */ - public static E[] retainAll(E[] array, Collection collection) { - int arrayLength = array.length; - return (arrayLength == 0) ? array : retainAll(array, collection, arrayLength); - } - - /** - * assume array length > 0 - */ - private static E[] retainAll(E[] array, Collection collection, int arrayLength) { - return collection.isEmpty() ? - newArray(array, 0) : - retainAll_(array, collection, arrayLength); - } - - /** - * assume collection is non-empty and array length > 0 - */ - private static E[] retainAll_(E[] array, Collection collection, int arrayLength) { - int[] indices = new int[arrayLength]; - int j = 0; - for (int i = 0; i < arrayLength; i++) { - if (collection.contains(array[i])) { - indices[j++] = i; - } - } - if (j == arrayLength) { - return array; // everything was retained - } - E[] result = newArray(array, j); - int resultLength = result.length; - for (int i = 0; i < resultLength; i++) { - result[i] = array[indices[i]]; - } - return result; - } - - /** - * Remove from the first specified array all the elements in - * the second specified array and return the result. - *

- * Arrays.retainAll(Object[] array1, Object[] array2) - */ - public static E[] retainAll(E[] array1, Object[] array2) { - int array1Length = array1.length; - return (array1Length == 0) ? - array1 : - (array2.length == 0) ? - newArray(array1, 0) : - retainAll(array1, CollectionTools.set(array2), array1Length); - } - - /** - * Remove from the first specified array all the elements in - * the second specified array and return the result. - *

- * Arrays.retainAll(char[] array1, char[] array2) - */ - public static char[] retainAll(char[] array1, char... array2) { - int array1Length = array1.length; - return (array1Length == 0) ? array1 : retainAll(array1, array2, array1Length); - } - - /** - * assume array 1 length > 0 - */ - private static char[] retainAll(char[] array1, char[] array2, int array1Length) { - int array2Length = array2.length; - return (array2Length == 0) ? EMPTY_CHAR_ARRAY : retainAll(array1, array2, array1Length, array2Length); - } - - /** - * assume both array lengths > 0 - */ - private static char[] retainAll(char[] array1, char[] array2, int array1Length, int array2Length) { - int[] indices = new int[array1Length]; - int j = 0; - for (int i = 0; i < array1Length; i++) { - if (contains_(array2, array1[i], array2Length)) { - indices[j++] = i; - } - } - if (j == array1Length) { - return array1; // everything was retained - } - char[] result = new char[j]; - int resultLength = result.length; - for (int i = 0; i < resultLength; i++) { - result[i] = array1[indices[i]]; - } - return result; - } - - /** - * Remove from the first specified array all the elements in - * the second specified array and return the result. - *

- * Arrays.retainAll(int[] array1, int[] array2) - */ - public static int[] retainAll(int[] array1, int... array2) { - int array1Length = array1.length; - return (array1Length == 0) ? array1 : retainAll(array1, array2, array1Length); - } - - /** - * assume array 1 length > 0 - */ - private static int[] retainAll(int[] array1, int[] array2, int array1Length) { - int array2Length = array2.length; - return (array2Length == 0) ? EMPTY_INT_ARRAY : retainAll(array1, array2, array1Length, array2Length); - } - - /** - * assume both array lengths > 0 - */ - private static int[] retainAll(int[] array1, int[] array2, int array1Length, int array2Length) { - int[] indices = new int[array1Length]; - int j = 0; - for (int i = 0; i < array1Length; i++) { - if (contains_(array2, array1[i], array2Length)) { - indices[j++] = i; - } - } - if (j == array1Length) { - return array1; // everything was retained - } - int[] result = new int[j]; - int resultLength = result.length; - for (int i = 0; i < resultLength; i++) { - result[i] = array1[indices[i]]; - } - return result; - } - - - // ********** reverse ********** - - /** - * Return the array, reversed. - *

- * Arrays.reverse(Object... array) - */ - public static E[] reverse(E... array) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - for (int i = 0, mid = len >> 1, j = len - 1; i < mid; i++, j--) { - swap(array, i, j); - } - return array; - } - - /** - * Return the array, reversed. - *

- * Arrays.reverse(char... array) - */ - public static char[] reverse(char... array) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - for (int i = 0, mid = len >> 1, j = len - 1; i < mid; i++, j--) { - swap(array, i, j); - } - return array; - } - - /** - * Return the array, reversed. - *

- * Arrays.reverse(int... array) - */ - public static int[] reverse(int... array) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - for (int i = 0, mid = len >> 1, j = len - 1; i < mid; i++, j--) { - swap(array, i, j); - } - return array; - } - - - // ********** rotate ********** - - /** - * Return the rotated array after rotating it one position. - *

- * Arrays.rotate(Object[] array) - */ - public static E[] rotate(E... array) { - return rotate(array, 1); - } - - /** - * Return the rotated array after rotating it the specified distance. - *

- * Arrays.rotate(Object[] array, int distance) - */ - public static E[] rotate(E[] array, int distance) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - distance = distance % len; - if (distance < 0) { - distance += len; - } - if (distance == 0) { - return array; - } - for (int cycleStart = 0, nMoved = 0; nMoved != len; cycleStart++) { - E displaced = array[cycleStart]; - int i = cycleStart; - do { - i += distance; - if (i >= len) { - i -= len; - } - E temp = array[i]; - array[i] = displaced; - displaced = temp; - nMoved ++; - } while (i != cycleStart); - } - return array; - } - - /** - * Return the rotated array after rotating it one position. - *

- * Arrays.rotate(char[] array) - */ - public static char[] rotate(char... array) { - return rotate(array, 1); - } - - /** - * Return the rotated array after rotating it the specified distance. - *

- * Arrays.rotate(char[] array, int distance) - */ - public static char[] rotate(char[] array, int distance) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - distance = distance % len; - if (distance < 0) { - distance += len; - } - if (distance == 0) { - return array; - } - for (int cycleStart = 0, nMoved = 0; nMoved != len; cycleStart++) { - char displaced = array[cycleStart]; - int i = cycleStart; - do { - i += distance; - if (i >= len) { - i -= len; - } - char temp = array[i]; - array[i] = displaced; - displaced = temp; - nMoved ++; - } while (i != cycleStart); - } - return array; - } - - /** - * Return the rotated array after rotating it one position. - *

- * Arrays.rotate(int[] array) - */ - public static int[] rotate(int... array) { - return rotate(array, 1); - } - - /** - * Return the rotated array after rotating it the specified distance. - *

- * Arrays.rotate(int[] array, int distance) - */ - public static int[] rotate(int[] array, int distance) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - distance = distance % len; - if (distance < 0) { - distance += len; - } - if (distance == 0) { - return array; - } - for (int cycleStart = 0, nMoved = 0; nMoved != len; cycleStart++) { - int displaced = array[cycleStart]; - int i = cycleStart; - do { - i += distance; - if (i >= len) { - i -= len; - } - int temp = array[i]; - array[i] = displaced; - displaced = temp; - nMoved ++; - } while (i != cycleStart); - } - return array; - } - - - // ********** shuffle ********** - - private static final Random RANDOM = new Random(); - - /** - * Return the array after "shuffling" it. - *

- * Arrays.shuffle(Object... array) - */ - public static E[] shuffle(E... array) { - return shuffle(array, RANDOM); - } - - /** - * Return the array after "shuffling" it. - *

- * Arrays.shuffle(Object[] array, Random r) - */ - public static E[] shuffle(E[] array, Random random) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - for (int i = len; i-- > 0; ) { - swap(array, i, random.nextInt(len)); - } - return array; - } - - /** - * Return the array after "shuffling" it. - *

- * Arrays.shuffle(char... array) - */ - public static char[] shuffle(char... array) { - return shuffle(array, RANDOM); - } - - /** - * Return the array after "shuffling" it. - *

- * Arrays.shuffle(char[] array, Random r) - */ - public static char[] shuffle(char[] array, Random random) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - for (int i = len; i-- > 0; ) { - swap(array, i, random.nextInt(len)); - } - return array; - } - - /** - * Return the array after "shuffling" it. - *

- * Arrays.shuffle(int... array) - */ - public static int[] shuffle(int... array) { - return shuffle(array, RANDOM); - } - - /** - * Return the array after "shuffling" it. - *

- * Arrays.shuffle(int[] array, Random r) - */ - public static int[] shuffle(int[] array, Random random) { - int len = array.length; - if ((len == 0) || (len == 1)) { - return array; - } - for (int i = len; i-- > 0; ) { - swap(array, i, random.nextInt(len)); - } - return array; - } - - - // ********** sub-array ********** - - /** - * Return a sub-array of the specified array with elements copied from - * the specified range. The "from" index is inclusive; the "to" index is exclusive. - *

- * Arrays.subArray(E[] array, int fromIndex, int toIndex) - */ - public static E[] subArray(E[] array, int fromIndex, int toIndex) { - int len = toIndex - fromIndex; - E[] result = newArray(array, len); - if (len > 0) { - System.arraycopy(array, fromIndex, result, 0, len); - } - return result; - } - - /** - * Return a sub-array of the specified array with elements copied from - * the specified range. The "from" index is inclusive; the "to" index is exclusive. - *

- * Arrays.subArray(int[] array, int fromIndex, int toIndex) - */ - public static int[] subArray(int[] array, int fromIndex, int toIndex) { - int len = toIndex - fromIndex; - if (len == 0) { - return EMPTY_INT_ARRAY; - } - int[] result = new int[len]; - System.arraycopy(array, fromIndex, result, 0, len); - return result; - } - - /** - * Return a sub-array of the specified array with elements copied from - * the specified range. The "from" index is inclusive; the "to" index is exclusive. - *

- * - * Arrays.subArray(char[] array, int fromIndex, int toIndex) - * - */ - public static char[] subArray(char[] array, int fromIndex, int toIndex) { - int len = toIndex - fromIndex; - if (len == 0) { - return EMPTY_CHAR_ARRAY; - } - char[] result = new char[len]; - System.arraycopy(array, fromIndex, result, 0, len); - return result; - } - - - // ********** swap ********** - - /** - * Return the array after the specified elements have been "swapped". - *

- * Arrays.swap(Object[] array, int i, int j) - */ - public static E[] swap(E[] array, int i, int j) { - return (i == j) ? array : swap_(array, i, j); - } - - /** - * assume the indices are different - */ - private static E[] swap_(E[] array, int i, int j) { - E temp = array[i]; - array[i] = array[j]; - array[j] = temp; - return array; - } - - /** - * Return the array after the specified elements have been "swapped". - *

- * Arrays.swap(char[] array, int i, int j) - */ - public static char[] swap(char[] array, int i, int j) { - return (i == j) ? array : swap_(array, i, j); - } - - /** - * assume the indices are different - */ - private static char[] swap_(char[] array, int i, int j) { - char temp = array[i]; - array[i] = array[j]; - array[j] = temp; - return array; - } - - /** - * Return the array after the specified elements have been "swapped". - *

- * Arrays.swap(int[] array, int i, int j) - */ - public static int[] swap(int[] array, int i, int j) { - return (i == j) ? array : swap_(array, i, j); - } - - /** - * assume the indices are different - */ - private static int[] swap_(int[] array, int i, int j) { - int temp = array[i]; - array[i] = array[j]; - array[j] = temp; - return array; - } - - - // ********** Arrays enhancements ********** - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(boolean[], boolean) - */ - public static boolean[] fill(boolean[] array, boolean value) { - Arrays.fill(array, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(boolean[], int, int, boolean) - */ - public static boolean[] fill(boolean[] array, int fromIndex, int toIndex, boolean value) { - Arrays.fill(array, fromIndex, toIndex, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(byte[], byte) - */ - public static byte[] fill(byte[] array, byte value) { - Arrays.fill(array, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(byte[], int, int, byte) - */ - public static byte[] fill(byte[] array, int fromIndex, int toIndex, byte value) { - Arrays.fill(array, fromIndex, toIndex, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(char[], char) - */ - public static char[] fill(char[] array, char value) { - Arrays.fill(array, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(char[], int, int, char) - */ - public static char[] fill(char[] array, int fromIndex, int toIndex, char value) { - Arrays.fill(array, fromIndex, toIndex, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(double[], double) - */ - public static double[] fill(double[] array, double value) { - Arrays.fill(array, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(double[], int, int, double) - */ - public static double[] fill(double[] array, int fromIndex, int toIndex, double value) { - Arrays.fill(array, fromIndex, toIndex, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(float[], float) - */ - public static float[] fill(float[] array, float value) { - Arrays.fill(array, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(float[], int, int, float) - */ - public static float[] fill(float[] array, int fromIndex, int toIndex, float value) { - Arrays.fill(array, fromIndex, toIndex, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(int[], int) - */ - public static int[] fill(int[] array, int value) { - Arrays.fill(array, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(int[], int, int, int) - */ - public static int[] fill(int[] array, int fromIndex, int toIndex, int value) { - Arrays.fill(array, fromIndex, toIndex, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(Object[], Object) - */ - public static E[] fill(E[] array, E value) { - Arrays.fill(array, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(Object[], int, int, Object) - */ - public static E[] fill(E[] array, int fromIndex, int toIndex, E value) { - Arrays.fill(array, fromIndex, toIndex, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(long[], long) - */ - public static long[] fill(long[] array, long value) { - Arrays.fill(array, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(long[], int, int, long) - */ - public static long[] fill(long[] array, int fromIndex, int toIndex, long value) { - Arrays.fill(array, fromIndex, toIndex, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(short[], short) - */ - public static short[] fill(short[] array, short value) { - Arrays.fill(array, value); - return array; - } - - /** - * Return the array after it has been "filled". - * @see Arrays#fill(short[], int, int, short) - */ - public static short[] fill(short[] array, int fromIndex, int toIndex, short value) { - Arrays.fill(array, fromIndex, toIndex, value); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(byte[]) - */ - public static byte[] sort(byte... array) { - Arrays.sort(array); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(byte[], int, int) - */ - public static byte[] sort(byte[] array, int fromIndex, int toIndex) { - Arrays.sort(array, fromIndex, toIndex); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(char[]) - */ - public static char[] sort(char... array) { - Arrays.sort(array); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(char[], int, int) - */ - public static char[] sort(char[] array, int fromIndex, int toIndex) { - Arrays.sort(array, fromIndex, toIndex); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(double[]) - */ - public static double[] sort(double... array) { - Arrays.sort(array); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(double[], int, int) - */ - public static double[] sort(double[] array, int fromIndex, int toIndex) { - Arrays.sort(array, fromIndex, toIndex); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(float[]) - */ - public static float[] sort(float... array) { - Arrays.sort(array); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(float[], int, int) - */ - public static float[] sort(float[] array, int fromIndex, int toIndex) { - Arrays.sort(array, fromIndex, toIndex); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(int[]) - */ - public static int[] sort(int... array) { - Arrays.sort(array); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(int[], int, int) - */ - public static int[] sort(int[] array, int fromIndex, int toIndex) { - Arrays.sort(array, fromIndex, toIndex); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(Object[]) - */ - public static E[] sort(E... array) { - Arrays.sort(array); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(Object[], Comparator) - */ - public static E[] sort(E[] array, Comparator comparator) { - Arrays.sort(array, comparator); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(Object[], int, int) - */ - public static E[] sort(E[] array, int fromIndex, int toIndex) { - Arrays.sort(array, fromIndex, toIndex); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(Object[], int, int, Comparator) - */ - public static E[] sort(E[] array, int fromIndex, int toIndex, Comparator comparator) { - Arrays.sort(array, fromIndex, toIndex, comparator); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(long[]) - */ - public static long[] sort(long... array) { - Arrays.sort(array); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(long[], int, int) - */ - public static long[] sort(long[] array, int fromIndex, int toIndex) { - Arrays.sort(array, fromIndex, toIndex); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(short[]) - */ - public static short[] sort(short... array) { - Arrays.sort(array); - return array; - } - - /** - * Return the array after it has been "sorted". - * @see Arrays#sort(short[], int, int) - */ - public static short[] sort(short[] array, int fromIndex, int toIndex) { - Arrays.sort(array, fromIndex, toIndex); - return array; - } - - - // ********** constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private ArrayTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Association.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Association.java deleted file mode 100644 index 02226b4333..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Association.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Straightforward definition of an object pairing. - * The key is immutable. - */ -public interface Association { - - /** - * Return the association's key. - */ - K getKey(); - - /** - * Return the association's value. - */ - V getValue(); - - /** - * Set the association's value. - * Return the previous value. - */ - V setValue(V value); - - /** - * Return true if the associations' keys and values - * are equal. - */ - boolean equals(Object o); - - /** - * Return a hash code based on the association's - * key and value. - */ - int hashCode(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AsynchronousCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AsynchronousCommandExecutor.java deleted file mode 100644 index 62b2e70653..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/AsynchronousCommandExecutor.java +++ /dev/null @@ -1,168 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.util.concurrent.ThreadFactory; - -import org.eclipse.jpt.common.utility.Command; - -/** - * This command executor will dispatch commands to be executed in a separate - * thread, allowing calls to {@link CommandExecutor#execute(Command)} to return - * immediately. - *

- * NB: The client-supplied commands should handle any - * exception appropriately (e.g. log the exception and return gracefully) so - * the command execution thread can continue executing. - */ -public class AsynchronousCommandExecutor - implements StatefulCommandExecutor -{ - /** - * This command queue is shared with the command execution/consumer thread. - * Adding a command to it will trigger the command to be executed by the - * command execution thread or, if another command is currently executing, - * to execute the new command once the currently executing command has - * finished executing. - */ - final SynchronizedQueue commands = new SynchronizedQueue(); - - /** - * Most of the thread-related behavior is delegated to this coordinator. - */ - private final ConsumerThreadCoordinator consumerThreadCoordinator; - - - // ********** construction ********** - - /** - * Construct an asynchronous command executor. - * Use simple JDK thread(s) for the command execution thread(s). - * Allow the command execution thread(s) to be assigned JDK-generated names. - */ - public AsynchronousCommandExecutor() { - this(SimpleThreadFactory.instance(), null); - } - - /** - * Construct an asynchronous command executor. - * Use the specified thread factory to construct the command execution thread(s). - * Allow the command execution thread(s) to be assigned JDK-generated names. - */ - public AsynchronousCommandExecutor(ThreadFactory threadFactory) { - this(threadFactory, null); - } - - /** - * Construct an asynchronous command executor. - * Use simple JDK thread(s) for the command execution thread(s). - * Assign the command execution thread(s) the specified name. - */ - public AsynchronousCommandExecutor(String threadName) { - this(SimpleThreadFactory.instance(), threadName); - } - - /** - * Construct an asynchronous command executor. - * Assign the command execution thread(s) the specified name. - */ - public AsynchronousCommandExecutor(ThreadFactory threadFactory, String threadName) { - super(); - this.consumerThreadCoordinator = this.buildConsumerThreadCoordinator(threadFactory, threadName); - } - - private ConsumerThreadCoordinator buildConsumerThreadCoordinator(ThreadFactory threadFactory, String threadName) { - return new ConsumerThreadCoordinator(this.buildConsumer(), threadFactory, threadName); - } - - private ConsumerThreadCoordinator.Consumer buildConsumer() { - return new Consumer(); - } - - - // ********** CallbackStatefulCommandExecutor implementation ********** - - /** - * Build and start the command execution/consumer thread. - *

- * Note: We don't clear the command queue here; so if a command has been - * added to the queue before getting here, the first command will - * be executed promptly (albeit, asynchronously). - * The command queue will be non-empty if:

    - *
  • {@link #execute(Command)} was called after the command executor was - * constructed but before {@link #start()} was called; or - *
  • {@link #execute(Command)} was called after {@link #stop()} was called - * but before {@link #start()} was called (to restart the command executor); or - *
  • {@link #stop()} was called when there were still outstanding commands - * remaining in the command queue - *
- */ - public void start() { - this.consumerThreadCoordinator.start(); - } - - /** - * Put the specified command on the command queue, to be consumed by the - * command execution thread. - */ - public void execute(Command command) { - this.commands.enqueue(command); - } - - /** - * Interrupt the command execution thread so that it stops executing at the - * end of the current command. Suspend the current thread until - * the command execution thread is finished executing. If any uncaught - * exceptions were thrown while the execution thread was executing, - * wrap them in a composite exception and throw the composite exception. - */ - public void stop() { - this.consumerThreadCoordinator.stop(); - } - - - // ********** consumer ********** - - /** - * This implementation of {@link ConsumerThreadCoordinator.Consumer} - * will execute the commands enqueued by the asynchronous command executor. - * It will wait until the shared command queue is non-empty to begin executing the - * commands in the queue. Once a comand is executed, the thread will quiesce until - * another command is placed in the command queue. If a new command is - * enqueued during the execution of another command (either recursively by - * the command itself or by another thread), - * the new command will be executed immediately after the currently - * executing command is finished. - * Stop the thread by calling {@link Thread#interrupt()}. - */ - class Consumer - implements ConsumerThreadCoordinator.Consumer - { - Consumer() { - super(); - } - - /** - * Wait until a command has been placed in the queue. - */ - public void waitForProducer() throws InterruptedException { - AsynchronousCommandExecutor.this.commands.waitUntilNotEmpty(); - } - - /** - * Execute the first command in the queue and notify our listeners. - */ - public void execute() { - AsynchronousCommandExecutor.this.commands.dequeue().execute(); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Bag.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Bag.java deleted file mode 100644 index 0cecf9718c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Bag.java +++ /dev/null @@ -1,197 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.AbstractCollection; -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; - -/** - * A collection that allows duplicate elements. - *

- * The Bag interface places additional stipulations, - * beyond those inherited from the {@link java.util.Collection} interface, - * on the contracts of the {@link #equals(Object)} and {@link #hashCode()} methods. - * - * @see HashBag - */ - -public interface Bag extends java.util.Collection { - - /** - * Compares the specified object with this bag for equality. Returns - * true if the specified object is also a bag, the two bags - * have the same size, and every member of the specified bag is - * contained in this bag with the same number of occurrences (or equivalently, - * every member of this bag is contained in the specified bag with the same - * number of occurrences). This definition ensures that the - * equals method works properly across different implementations of the - * bag interface. - */ - boolean equals(Object o); - - /** - * Returns the hash code value for this bag. The hash code of a bag is - * defined to be the sum of the hash codes of the elements in the bag, - * where the hashcode of a null element is defined to be zero. - * This ensures that b1.equals(b2) implies that - * b1.hashCode() == b2.hashCode() for any two bags - * b1 and b2, as required by the general - * contract of the {@link Object#hashCode()} method. - */ - int hashCode(); - - /** - * Return the number of times the specified object occurs in the bag. - */ - int count(Object o); - - /** - * Add the specified object the specified number of times to the bag. - * Return whether the bag changed. - */ - boolean add(E o, int count); - - /** - * Remove the specified number of occurrences of the specified object - * from the bag. Return whether the bag changed. - */ - boolean remove(Object o, int count); - - /** - * Return an iterator that returns each item in the bag - * once and only once, irrespective of how many times - * the item was added to the bag. - */ - java.util.Iterator uniqueIterator(); - - /** - * Return the number of unique items in the bag. - */ - int uniqueCount(); - - /** - * Return an iterator that returns an entry for each item in the bag - * once and only once, irrespective of how many times - * the item was added to the bag. The entry will indicate the item's - * count. - */ - java.util.Iterator> entries(); - - - /** - * A bag entry (element-count pair). - * The {@link Bag#entries()} method returns an iterator whose - * elements are of this class. The only way to obtain a reference - * to a bag entry is from the iterator returned by this method. These - * Bag.Entry objects are valid only for the duration - * of the iteration; more formally, the behavior of a bag entry is - * undefined if the backing bag has been modified after the entry was - * returned by the iterator, except through the {@link #setCount(int)} - * operation on the bag entry. - */ - interface Entry { - - /** - * Return the entry's element. - */ - E getElement(); - - /** - * Return entry's count; i.e. the number of times the entry's element - * occurs in the bag. - * @see Bag#count(Object) - */ - int getCount(); - - /** - * Set the entry's count; i.e. the number of times the entry's element - * occurs in the bag. The new count must be a positive number. - * Return the previous count of the entry's element. - * NB: Use {@link Iterator#remove()} to set the - * count to zero. - */ - int setCount(int count); - - /** - * Return whether the entry is equal to the specified object; - * i.e. the specified object is a Bag.Entry and its - * element and count are the same as the entry's. - */ - boolean equals(Object obj); - - /** - * Return the entry's hash code. - */ - int hashCode(); - - } - - - final class Empty extends AbstractCollection implements Bag, Serializable { - @SuppressWarnings("rawtypes") - public static final Bag INSTANCE = new Empty(); - @SuppressWarnings("unchecked") - public static Bag instance() { - return INSTANCE; - } - // ensure single instance - private Empty() { - super(); - } - @Override - public Iterator iterator() { - return EmptyIterator.instance(); - } - @Override - public int size() { - return 0; - } - public Iterator uniqueIterator() { - return EmptyIterator.instance(); - } - public int uniqueCount() { - return 0; - } - public int count(Object o) { - return 0; - } - public Iterator> entries() { - return EmptyIterator.instance(); - } - public boolean remove(Object o, int count) { - return false; - } - public boolean add(E o, int count) { - throw new UnsupportedOperationException(); - } - @Override - public boolean equals(Object o) { - if (o == this) { - return true; - } - if ( ! (o instanceof Bag)) { - return false; - } - return ((Bag) o).size() == 0; - } - @Override - public int hashCode() { - return 0; - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiFilter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiFilter.java deleted file mode 100644 index 2894793ffd..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiFilter.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -import org.eclipse.jpt.common.utility.Filter; - -/** - * Used by various "pluggable" classes to filter objects - * in both directions. - * - * If anyone can come up with a better class name - * and/or method name, I would love to hear it. ~bjv - */ -public interface BidiFilter extends Filter { - - /** - * Return whether the specified object is "accepted" by the - * "reverse" filter. What that means is determined by the client. - */ - boolean reverseAccept(T o); - - - final class Null implements BidiFilter, Serializable { - @SuppressWarnings("rawtypes") - public static final BidiFilter INSTANCE = new Null(); - @SuppressWarnings("unchecked") - public static BidiFilter instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - // nothing is filtered - everything is accepted - public boolean accept(S o) { - return true; - } - // nothing is "reverse-filtered" - everything is accepted - public boolean reverseAccept(S o) { - return true; - } - @Override - public String toString() { - return "BidiFilter.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - final class Opaque implements BidiFilter, Serializable { - @SuppressWarnings("rawtypes") - public static final BidiFilter INSTANCE = new Opaque(); - @SuppressWarnings("unchecked") - public static BidiFilter instance() { - return INSTANCE; - } - // ensure single instance - private Opaque() { - super(); - } - // everything is filtered - nothing is accepted - public boolean accept(S o) { - return false; - } - // everything is "reverse-filtered" - nothing is accepted - public boolean reverseAccept(S o) { - return false; - } - @Override - public String toString() { - return "BidiFilter.Opaque"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - final class Disabled implements BidiFilter, Serializable { - @SuppressWarnings("rawtypes") - public static final BidiFilter INSTANCE = new Disabled(); - @SuppressWarnings("unchecked") - public static BidiFilter instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public boolean accept(S o) { - throw new UnsupportedOperationException(); - } - // throw an exception - public boolean reverseAccept(S o) { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "BidiFilter.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiStringConverter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiStringConverter.java deleted file mode 100644 index 056b29ae9f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiStringConverter.java +++ /dev/null @@ -1,149 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * Used by various "pluggable" classes to transform objects - * into strings and vice versa. - * - * If anyone can come up with a better class name - * and/or method name, I would love to hear it. ~bjv - */ -public interface BidiStringConverter extends StringConverter { - - /** - * Convert the specified string into an object. - * The semantics of "convert to object" is determined by the - * contract between the client and the server. - * Typically, if the string is null, null is returned. - */ - T convertToObject(String s); - - - final class Default implements BidiStringConverter, Serializable { - @SuppressWarnings("rawtypes") - public static final BidiStringConverter INSTANCE = new Default(); - @SuppressWarnings("unchecked") - public static BidiStringConverter instance() { - return INSTANCE; - } - // ensure single instance - private Default() { - super(); - } - // simply return the object's #toString() result - public String convertToString(S o) { - return (o == null) ? null : o.toString(); - } - // simply return the string - @SuppressWarnings("unchecked") - public S convertToObject(String s) { - return (S) s; - } - @Override - public String toString() { - return "BidiStringConverter.Default"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - final class Disabled implements BidiStringConverter, Serializable { - @SuppressWarnings("rawtypes") - public static final BidiStringConverter INSTANCE = new Disabled(); - @SuppressWarnings("unchecked") - public static BidiStringConverter instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public String convertToString(S o) { - throw new UnsupportedOperationException(); - } - // throw an exception - public S convertToObject(String s) { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "BidiStringConverter.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - final class BooleanConverter implements BidiStringConverter, Serializable { - public static final BidiStringConverter INSTANCE = new BooleanConverter(); - public static BidiStringConverter instance() { - return INSTANCE; - } - // ensure single instance - private BooleanConverter() { - super(); - } - /** Return "true" if the Boolean is true, otherwise return "false". */ - public String convertToString(Boolean b) { - return (b == null) ? null : b.toString(); - } - /** Return Boolean.TRUE if the string is "true" (case-insensitive), otherwise return Boolean.FALSE. */ - public Boolean convertToObject(String s) { - return (s == null) ? null : Boolean.valueOf(s); - } - @Override - public String toString() { - return "BidiStringConverter.BooleanConverter"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - final class IntegerConverter implements BidiStringConverter, Serializable { - public static final BidiStringConverter INSTANCE = new IntegerConverter(); - public static BidiStringConverter instance() { - return INSTANCE; - } - // ensure single instance - private IntegerConverter() { - super(); - } - /** Integer's #toString() works well. */ - public String convertToString(Integer integer) { - return (integer == null) ? null : integer.toString(); - } - /** Convert the string to an Integer, if possible. */ - public Integer convertToObject(String s) { - return (s == null) ? null : Integer.valueOf(s); - } - @Override - public String toString() { - return "BidiStringConverter.IntegerConverter"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiTransformer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiTransformer.java deleted file mode 100644 index c105d9d50a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BidiTransformer.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * Used by various "pluggable" classes to transform objects - * in both directions. - * - * If anyone can come up with a better class name - * and/or method name, I would love to hear it. ~bjv - */ -public interface BidiTransformer extends Transformer { - - /** - * Return the "reverse-transformed" object. - * The semantics of "reverse-transform" is determined by the - * contract between the client and the server. - */ - T1 reverseTransform(T2 o); - - - final class Null implements BidiTransformer, Serializable { - @SuppressWarnings("rawtypes") - public static final BidiTransformer INSTANCE = new Null(); - @SuppressWarnings("unchecked") - public static BidiTransformer instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - // simply return the object, unchanged - @SuppressWarnings("unchecked") - public S2 transform(S1 o) { - return (S2) o; - } - // simply return the object, unchanged - @SuppressWarnings("unchecked") - public S1 reverseTransform(S2 o) { - return (S1) o; - } - @Override - public String toString() { - return "BidiTransformer.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - final class Disabled implements BidiTransformer, Serializable { - @SuppressWarnings("rawtypes") - public static final BidiTransformer INSTANCE = new Disabled(); - @SuppressWarnings("unchecked") - public static BidiTransformer instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public S2 transform(S1 o) { - throw new UnsupportedOperationException(); - } - // throw an exception - public S1 reverseTransform(S2 o) { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "BidiTransformer.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BitTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BitTools.java deleted file mode 100644 index 20cbf7c9f0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BitTools.java +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Assorted bit tools - */ -public final class BitTools { - - /** - * Return whether the specified 'flags' has the specified - * 'flagToCheck' set. - */ - public static boolean flagIsSet(int flags, int flagToCheck) { - return allFlagsAreSet(flags, flagToCheck); - } - - /** - * Return whether the specified 'flags' has the specified - * 'flagToCheck' turned off. - */ - public static boolean flagIsOff(int flags, int flagToCheck) { - return allFlagsAreOff(flags, flagToCheck); - } - - /** - * Return whether the specified 'flags' has ONLY the specified - * 'flagToCheck' set. - */ - public static boolean onlyFlagIsSet(int flags, int flagToCheck) { - return onlyFlagsAreSet(flags, flagToCheck); - } - - /** - * Return whether the specified 'flags' has ONLY the specified - * 'flagToCheck' turned off. - */ - public static boolean onlyFlagIsOff(int flags, int flagToCheck) { - return onlyFlagsAreOff(flags, flagToCheck); - } - - /** - * Return whether the specified 'flags' has all the specified - * 'flagsToCheck' set. - */ - public static boolean allFlagsAreSet(int flags, int flagsToCheck) { - return (flags & flagsToCheck) == flagsToCheck; - } - - /** - * Return whether the specified 'flags' has all the specified - * 'flagsToCheck' turned off. - */ - public static boolean allFlagsAreOff(int flags, int flagsToCheck) { - return (flags & flagsToCheck) == 0; - } - - /** - * Return whether the specified 'flags' has ONLY the specified - * 'flagsToCheck' set. - */ - public static boolean onlyFlagsAreSet(int flags, int flagsToCheck) { - return allFlagsAreSet(flags, flagsToCheck) && allFlagsAreOff(flags, ~flagsToCheck); - } - - /** - * Return whether the specified 'flags' has ONLY the specified - * 'flagsToCheck' turned off. - */ - public static boolean onlyFlagsAreOff(int flags, int flagsToCheck) { - return allFlagsAreOff(flags, flagsToCheck) && allFlagsAreSet(flags, ~flagsToCheck); - } - - /** - * Return whether the specified 'flags' has any one of the specified - * 'flagsToCheck' set. - */ - public static boolean anyFlagsAreSet(int flags, int flagsToCheck) { - return (flags & flagsToCheck) != 0; - } - - /** - * Return whether the specified 'flags' has any one of the specified - * 'flagsToCheck' turned off. - */ - public static boolean anyFlagsAreOff(int flags, int flagsToCheck) { - return (flags & flagsToCheck) != flagsToCheck; - } - - /** - * Return whether the specified 'flags' has all the specified - * 'flagsToCheck' set. - */ - public static boolean allFlagsAreSet(int flags, int... flagsToCheck) { - for (int i = flagsToCheck.length; i-- > 0; ) { - if ( ! allFlagsAreSet(flags, flagsToCheck[i])) { - return false; - } - } - return true; - } - - /** - * Return whether the specified 'flags' has all the specified - * 'flagsToCheck' turned off. - */ - public static boolean allFlagsAreOff(int flags, int... flagsToCheck) { - for (int i = flagsToCheck.length; i-- > 0; ) { - if ( ! allFlagsAreOff(flags, flagsToCheck[i])) { - return false; - } - } - return true; - } - - /** - * Return whether the specified 'flags' has ONLY the specified - * 'flagsToCheck' set. - */ - public static boolean onlyFlagsAreSet(int flags, int... flagsToCheck) { - int combinedFlags = orFlags(flagsToCheck); - return allFlagsAreSet(flags, combinedFlags) && allFlagsAreOff(flags, ~combinedFlags); - } - - /** - * Return whether the specified 'flags' has ONLY the specified - * 'flagsToCheck' turned off. - */ - public static boolean onlyFlagsAreOff(int flags, int... flagsToCheck) { - int combinedFlags = orFlags(flagsToCheck); - return allFlagsAreOff(flags, combinedFlags) && allFlagsAreSet(flags, ~combinedFlags); - } - - /** - * Return whether the specified 'flags' has any one of the specified - * 'flagsToCheck' set. - */ - public static boolean anyFlagsAreSet(int flags, int... flagsToCheck) { - for (int i = flagsToCheck.length; i-- > 0; ) { - if (anyFlagsAreSet(flags, flagsToCheck[i])) { - return true; - } - } - return false; - } - - /** - * Return whether the specified 'flags' has any one of the specified - * 'flagsToCheck' turned off. - */ - public static boolean anyFlagsAreOff(int flags, int... flagsToCheck) { - for (int i = flagsToCheck.length; i-- > 0; ) { - if (anyFlagsAreOff(flags, flagsToCheck[i])) { - return true; - } - } - return false; - } - - /** - * OR all the specified 'flags' together and return the result. - */ - public static int orFlags(int... flags) { - int last = flags.length - 1; - int result = flags[last]; - for (int i = last; i-- > 0; ) { - result |= flags[i]; - } - return result; - } - - /** - * AND all the specified 'flags' together and return the result. - */ - public static int andFlags(int... flags) { - int last = flags.length - 1; - int result = flags[last]; - for (int i = last; i-- > 0; ) { - result &= flags[i]; - } - return result; - } - - /** - * XOR all the specified 'flags' together and return the result. - */ - public static int xorFlags(int... flags) { - int last = flags.length - 1; - int result = flags[last]; - for (int i = last; i-- > 0; ) { - result ^= flags[i]; - } - return result; - } - - - // ********** constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private BitTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanReference.java deleted file mode 100644 index 9d114257d1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanReference.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Interface for a container for passing a flag that can be changed by - * the recipient. - */ -public interface BooleanReference - extends ReadOnlyBooleanReference -{ - /** - * Set the boolean value. - * Return the previous value. - */ - boolean setValue(boolean value); - - /** - * Set the boolean value to the NOT of its current value. - * Return the new value. - */ - boolean flip(); - - /** - * Set the boolean value to the NOT of the specified value. - * Return the previous value. - */ - boolean setNot(boolean v); - - /** - * Set the boolean value to true. - * Return the previous value. - */ - boolean setTrue(); - - /** - * Set the boolean value to false. - * Return the previous value. - */ - boolean setFalse(); -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanTools.java deleted file mode 100644 index 783c0f1299..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/BooleanTools.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Assorted "Capital-B Boolean" operations. - */ - // commented code is just playing around with building *everything* from NAND -public final class BooleanTools { - - /** - * Return the NOT of the specified Boolean. - * Boolean#not() - */ - public static Boolean not(Boolean b) { - return Boolean.valueOf( ! b.booleanValue()); -// return nand(b, b); - } - - /** - * Return the AND of the specified Booleans. - * Boolean#and(Boolean) - */ - public static Boolean and(Boolean b1, Boolean b2) { - return Boolean.valueOf(b1.booleanValue() && b2.booleanValue()); -// Boolean nand = nand(b1, b2); -// return nand(nand, nand); - } - - /** - * Return the OR of the specified Booleans. - * Boolean#or(Boolean) - */ - public static Boolean or(Boolean b1, Boolean b2) { - return Boolean.valueOf(b1.booleanValue() || b2.booleanValue()); -// Boolean nand = nand(b1, b2); -// Boolean xor = nand(nand(b1, nand), nand(b2, nand)); -// Boolean and = nand(nand, nand); -// Boolean nand2 = nand(xor, and); -// return nand(nand(xor, nand2), nand(and, nand2)); - } - - /** - * Return the XOR of the specified Booleans. - * Boolean#xor(Boolean) - */ - public static Boolean xor(Boolean b1, Boolean b2) { - return and(or(b1, b2), nand(b1, b2)); -// Boolean nand = nand(b1, b2); -// return nand(nand(b1, nand), nand(b2, nand)); - } - - /** - * Return the NAND of the specified Booleans. - * Boolean#nand(Boolean) - */ - public static Boolean nand(Boolean b1, Boolean b2) { - return not(and(b1, b2)); -// return Boolean.valueOf( ! (b1.booleanValue() && b2.booleanValue())); - } - - /** - * Return the NOR of the specified Booleans. - * Boolean#nor(Boolean) - */ - public static Boolean nor(Boolean b1, Boolean b2) { - return not(or(b1, b2)); -// Boolean nand = nand(b1, b2); -// Boolean xor = nand(nand(b1, nand), nand(b2, nand)); -// Boolean and = nand(nand, nand); -// Boolean nand2 = nand(xor, and); -// Boolean nand3 = nand(nand(xor, nand2), nand(and, nand2)); -// return nand(nand3, nand3); - } - - /** - * Return the XNOR of the specified Booleans. - * Boolean#xnor(Boolean) - */ - public static Boolean xnor(Boolean b1, Boolean b2) { - return not(xor(b1, b2)); -// Boolean nand = nand(b1, b2); -// Boolean xor = nand(nand(b1, nand), nand(b2, nand)); -// return nand(xor, xor); - } - - - // ********** constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private BooleanTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ClassName.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ClassName.java deleted file mode 100644 index aaf4be351c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ClassName.java +++ /dev/null @@ -1,431 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Convenience methods related to Java class names as returned by - * {@link java.lang.Class#getName()}. - */ -public final class ClassName { - - public static final String VOID_CLASS_NAME = ReflectionTools.VOID_CLASS.getName(); - public static final String VOID_WRAPPER_CLASS_NAME = ReflectionTools.VOID_WRAPPER_CLASS.getName(); - - public static final char REFERENCE_CLASS_CODE = 'L'; - public static final char REFERENCE_CLASS_NAME_DELIMITER = ';'; - - /** - * Return whether the specified class is an array type. - * @see java.lang.Class#getName() - */ - public static boolean isArray(String className) { - return className.charAt(0) == '['; - } - - /** - * Return the "element type" of the specified class. - * The element type is the base type held by an array type. - * Non-array types simply return themselves. - * @see java.lang.Class#getName() - */ - public static String getElementTypeName(String className) { - int depth = getArrayDepth(className); - if (depth == 0) { - // the name is in the form: "java.lang.Object" or "int" - return className; - } - return getElementTypeName_(className, depth); - } - - /** - * pre-condition: array depth is not zero - */ - private static String getElementTypeName_(String className, int arrayDepth) { - int last = className.length() - 1; - if (className.charAt(arrayDepth) == REFERENCE_CLASS_CODE) { - // the name is in the form: "[[[Ljava.lang.Object;" - return className.substring(arrayDepth + 1, last); // drop the trailing ';' - } - // the name is in the form: "[[[I" - return forCode(className.charAt(last)); - } - - /** - * Return the "array depth" of the specified class. - * The depth is the number of dimensions for an array type. - * Non-array types have a depth of zero. - * @see java.lang.Class#getName() - */ - public static int getArrayDepth(String className) { - int depth = 0; - while (className.charAt(depth) == '[') { - depth++; - } - return depth; - } - - /** - * Return the specified class's component type. - * Return null if the specified class is not an array type. - * @see java.lang.Class#getName() - */ - public static String getComponentTypeName(String className) { - switch (getArrayDepth(className)) { - case 0: - return null; - case 1: - return getElementTypeName_(className, 1); - default: - return className.substring(1); - } - } - - /** - * Return the specified class's simple name. - * Return an empty string if the specified class is anonymous. - *

- * The simple name of an array type is the simple name of the - * component type with "[]" appended. In particular, - * the simple name of an array type whose component type is - * anonymous is simply "[]". - * @see java.lang.Class#getSimpleName() - */ - public static String getSimpleName(String className) { - return isArray(className) ? - getSimpleName(getComponentTypeName(className)) + "[]" : //$NON-NLS-1$ - getSimpleName_(className); - } - - /** - * pre-condition: specified class is not an array type - */ - private static String getSimpleName_(String className) { - int index = className.lastIndexOf('$'); - if (index == -1) { // "top-level" class - strip package name - return className.substring(className.lastIndexOf('.') + 1); - } - - int len = className.length(); - for (int i = ++index; i < len; i++) { - if ( ! charIsAsciiDigit(className.charAt(i))) { - return className.substring(i); // "member" or "local" class - } - } - // all the characters past the '$' are ASCII digits ("anonymous" class) - return ""; //$NON-NLS-1$ - } - - /** - * Return the specified class's package name (e.g. - * "java.lang.Object" returns - * "java.lang"). - * Return an empty string if the specified class is:

    - *
  • in the "default" package - *
  • an array class - *
  • a primtive class - *
- * @see java.lang.Class#getPackage() - * @see java.lang.Package#getName() - */ - public static String getPackageName(String className) { - if (isArray(className)) { - return ""; //$NON-NLS-1$ - } - int lastPeriod = className.lastIndexOf('.'); - return (lastPeriod == -1) ? "" : className.substring(0, lastPeriod); //$NON-NLS-1$ - } - - /** - * Return whether the specified class is a "top-level" class, - * as opposed to a "member", "local", or "anonymous" class, - * using the standard JDK naming conventions (i.e. the class - * name does NOT contain a '$'). - * A "top-level" class can be either the "primary" (public) class defined - * in a file/compilation unit (i.e. the class with the same name as its - * file's simple base name) or a "non-primary" (package visible) class - * (i.e. the other top-level classes defined in a file). - * A "top-level" class can contain any of the other types of classes. - * @see java.lang.Class#getName() - */ - public static boolean isTopLevel(String className) { - if (isArray(className)) { - return false; - } - return className.lastIndexOf('$') == -1; - } - - /** - * Return whether the specified class is a "member" class, - * as opposed to a "top-level", "local", or "anonymous" class, - * using the standard JDK naming convention (i.e. the class - * name ends with a '$' followed by a legal class name; e.g. - * "TopLevelClass$1LocalClass$MemberClass"). - * A "member" class can be either "nested" (static) or "inner"; - * but there is no way to determine which from the class's name. - * A "member" class can contain "local", "anonymous", or other - * "member" classes; and vice-versa. - * @see java.lang.Class#getName() - */ - public static boolean isMember(String className) { - if (isArray(className)) { - return false; - } - int index = className.lastIndexOf('$'); - if (index == -1) { - return false; // "top-level" class - } - // the character immediately after the dollar sign cannot be an ASCII digit - return ! charIsAsciiDigit(className.charAt(++index)); - } - - /** - * Return whether the specified class is a "local" class, - * as opposed to a "top-level", "member", or "anonymous" class, - * using the standard JDK naming convention (i.e. the class name - * ends with "$nnnXXX", - * where the '$' is - * followed by a series of numeric digits which are followed by the - * local class name; e.g. "TopLevelClass$1LocalClass"). - * A "local" class can contain "member", "anonymous", or other - * "local" classes; and vice-versa. - * @see java.lang.Class#getName() - */ - public static boolean isLocal(String className) { - if (isArray(className)) { - return false; - } - int index = className.lastIndexOf('$'); - if (index == -1) { - return false; // "top-level" class - } - if ( ! charIsAsciiDigit(className.charAt(++index))) { - return false; // "member" class - } - int len = className.length(); - for (int i = ++index; i < len; i++) { - if ( ! charIsAsciiDigit(className.charAt(i))) { - return true; - } - } - // all the characters past the '$' are ASCII digits ("anonymous" class) - return false; - } - - /** - * Return whether the specified class is an "anonymous" class, - * as opposed to a "top-level", "member", or "local" class, - * using the standard JDK naming convention (i.e. the class - * name ends with "$nnn" where all the characters past the - * last '$' are ASCII numeric digits; - * e.g. "TopLevelClass$1"). - * An "anonymous" class can contain "member", "local", or other - * "anonymous" classes; and vice-versa. - * @see java.lang.Class#getName() - */ - public static boolean isAnonymous(String className) { - if (isArray(className)) { - return false; - } - int index = className.lastIndexOf('$'); - if (index == -1) { - return false; // "top-level" class - } - if ( ! charIsAsciiDigit(className.charAt(++index))) { - return false; // "member" class - } - int len = className.length(); - for (int i = ++index; i < len; i++) { - if ( ! charIsAsciiDigit(className.charAt(i))) { - return false; // "local" class - } - } - // all the characters past the '$' are ASCII digits ("anonymous" class) - return true; - } - - /** - * {@link Character#isDigit(char)} returns true for some non-ASCII - * digits. This method does not. - */ - private static boolean charIsAsciiDigit(char c) { - return ('0' <= c) && (c <= '9'); - } - - /** - * Return whether the specified class is a "reference" - * class (i.e. neither void nor one of the primitive variable classes, - * boolean, int, float, etc.). - *

- * NB: void.class.isPrimitive() == true - */ - public static boolean isReference(String className) { - return ! isPrimitive(className); - } - - /** - * Return whether the specified class is a primitive - * class (i.e. void or one of the primitive variable classes, - * boolean, int, float, etc.). - *

- * NB: void.class.isPrimitive() == true - */ - public static boolean isPrimitive(String className) { - if (isArray(className) || (className.length() > ReflectionTools.MAX_PRIMITIVE_CLASS_NAME_LENGTH)) { - return false; // performance tweak - } - for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) { - if (className.equals(primitive.javaClass.getName())) { - return true; - } - } - return false; - } - - /** - * Return whether the specified class is a primitive wrapper - * class (i.e. java.lang.Void or one of the primitive - * variable wrapper classes, java.lang.Boolean, - * java.lang.Integer, java.lang.Float, etc.). - *

- * NB: void.class.isPrimitive() == true - */ - public static boolean isPrimitiveWrapper(String className) { - if (isArray(className) || (className.length() > ReflectionTools.MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH)) { - return false; // performance tweak - } - for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) { - if (className.equals(primitive.wrapperClass.getName())) { - return true; - } - } - return false; - } - - /** - * Return whether the specified class is a "variable" primitive - * class (i.e. boolean, int, float, etc., - * but not void). - *

- * NB: void.class.isPrimitive() == true - */ - public static boolean isVariablePrimitive(String className) { - return isPrimitive(className) - && ( ! className.equals(VOID_CLASS_NAME)); - } - - /** - * Return whether the specified class is a "variable" primitive wrapper - * class (i.e. java.lang.Boolean, - * java.lang.Integer, java.lang.Float, etc., - * but not java.lang.Void). - *

- * NB: void.class.isPrimitive() == true - */ - public static boolean isVariablePrimitiveWrapper(String className) { - return isPrimitiveWrapper(className) - && ( ! className.equals(VOID_WRAPPER_CLASS_NAME)); - } - - /** - * Return the name of the primitive wrapper class corresponding to the specified - * primitive class. Return null if the specified class is not a primitive. - */ - public static String getWrapperClassName(String primitiveClassName) { - for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) { - if (primitive.javaClass.getName().equals(primitiveClassName)) { - return primitive.wrapperClass.getName(); - } - } - return null; - } - - /** - * Return the name of the primitive class corresponding to the specified - * primitive wrapper class. Return null if the specified class - * is not a primitive wrapper. - */ - public static String getPrimitiveClassName(String primitiveWrapperClassName) { - for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) { - if (primitive.wrapperClass.getName().equals(primitiveWrapperClassName)) { - return primitive.javaClass.getName(); - } - } - return null; - } - - /** - * Return whether the two class names are equivalent, given autoboxing. - * (e.g. "java.lang.Integer" and "int" should be equivalent) - */ - public static boolean areAutoboxEquivalents(String className1, String className2) { - return Tools.valuesAreEqual(className1, className2) - || Tools.valuesAreEqual(getPrimitiveClassName(className1), className2) - || Tools.valuesAreEqual(getWrapperClassName(className1), className2); - } - - - // ********** primitive codes ********** - - /** - * Return the primitive class name for the specified primitive class code. - * Return null if the specified code - * is not a primitive class code. - * @see java.lang.Class#getName() - */ - public static String forCode(int classCode) { - return forCode((char) classCode); - } - - /** - * Return the primitive class name for the specified primitive class code. - * Return null if the specified code - * is not a primitive class code. - * @see java.lang.Class#getName() - */ - public static String forCode(char classCode) { - Class primitiveClass = ReflectionTools.getClassForCode(classCode); - return (primitiveClass == null) ? null : primitiveClass.getName(); - } - - /** - * Return the class code for the specified primitive class. - * Return 0 if the specified class - * is not a primitive class. - * @see java.lang.Class#getName() - */ - public static char getCodeForClassName(String primitiveClassName) { - if (( ! isArray(primitiveClassName)) && (primitiveClassName.length() <= ReflectionTools.MAX_PRIMITIVE_CLASS_NAME_LENGTH)) { - for (ReflectionTools.Primitive primitive : ReflectionTools.PRIMITIVES) { - if (primitive.javaClass.getName().equals(primitiveClassName)) { - return primitive.code; - } - } - } - return 0; - } - - static void append(String className, StringBuilder sb) { - sb.append(REFERENCE_CLASS_CODE); - sb.append(className); - sb.append(REFERENCE_CLASS_NAME_DELIMITER); - } - - - // ********** suppressed constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private ClassName() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Classpath.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Classpath.java deleted file mode 100644 index dcf03bd2cf..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Classpath.java +++ /dev/null @@ -1,939 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.File; -import java.io.FileFilter; -import java.io.IOException; -import java.io.Serializable; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; - -/** - * Classpath models a Java classpath, which consists of a list of - * {@link Entry}s, each of which contain Java classes. The classpath can return - * the names of classes found in it etc. There are a number of static - * convenience methods that can be use to construct Classpaths - * corresponding to the Java classpath etc. - */ -public class Classpath - implements Serializable -{ - /** The entries in the classpath */ - private final Entry[] entries; - - private static final long serialVersionUID = 1L; - - - // ********** static methods ********** - - // ***** factory methods for "standard" classpaths ***** - - /** - * Return the Java "boot" classpath. This includes rt.jar. - */ - public static Classpath bootClasspath() { - return new Classpath(System.getProperty("sun.boot.class.path")); //$NON-NLS-1$ - } - - /** - * Return a "virtual classpath" that contains all the jars - * that would be used by the Java Extension Mechanism. - */ - public static Classpath javaExtensionClasspath() { - File[] dirs = javaExtensionDirectories(); - List jarFileNames = new ArrayList(); - for (File dir : dirs) { - if (dir.isDirectory()) { - addJarFileNamesTo(dir, jarFileNames); - } - } - return new Classpath(jarFileNames); - } - - /** - * Return the Java "system" classpath. - */ - public static Classpath javaClasspath() { - return new Classpath(System.getProperty("java.class.path")); //$NON-NLS-1$ - } - - /** - * Return the unretouched "complete" classpath. - * This includes the boot classpath, the Java Extension - * Mechanism classpath, and the normal "system" classpath. - */ - public static Classpath completeClasspath() { - return new Classpath(new Classpath[] { - bootClasspath(), - javaExtensionClasspath(), - javaClasspath() - }); - } - - /** - * Return a classpath that contains the location of the specified class. - */ - public static Classpath classpathFor(Class javaClass) { - return new Classpath(locationFor(javaClass)); - } - - - // ***** file => class ***** - - /** - * Convert a relative file name to a class name; this will work for - * any file that has a single extension beyond the base - * class name:

    - *
  • "java/lang/String.class" is converted to "java.lang.String" - *
  • "java/lang/String.java" is converted to "java.lang.String" - *
- */ - public static String convertToClassName(String classFileName) { - String className = FileTools.stripExtension(classFileName); - // do this for archive entry names - className = className.replace('/', '.'); - // do this for O/S-specific file names - if (File.separatorChar != '/') { - className = className.replace(File.separatorChar, '.'); - } - return className; - } - - /** - * Convert a file to a class name; - * e.g. File(java/lang/String.class) is converted to - * "java.lang.String". - */ - public static String convertToClassName(File classFile) { - return convertToClassName(classFile.getPath()); - } - - /** - * Convert a relative file name to a class; - * e.g. "java/lang/String.class" is converted to - * java.lang.String.class. - */ - public static Class convertToClass(String classFileName) throws ClassNotFoundException { - return Class.forName(convertToClassName(classFileName)); - } - - /** - * Convert a relative file to a class; - * e.g. File(java/lang/String.class) is converted to - * java.lang.String.class. - */ - public static Class convertToClass(File classFile) throws ClassNotFoundException { - return convertToClass(classFile.getPath()); - } - - - // ***** class => JAR entry ***** - - /** - * Convert a class name to an archive entry name base; - * e.g. "java.lang.String" is converted to - * "java/lang/String". - */ - public static String convertToArchiveEntryNameBase(String className) { - return className.replace('.', '/'); - } - - /** - * Convert a class to an archive entry name base; - * e.g. java.lang.String.class is converted to - * "java/lang/String". - */ - public static String convertToArchiveEntryNameBase(Class javaClass) { - return convertToArchiveEntryNameBase(javaClass.getName()); - } - - /** - * Convert a class name to an archive class file entry name; - * e.g. "java.lang.String" is converted to - * "java/lang/String.class". - */ - public static String convertToArchiveClassFileEntryName(String className) { - return convertToArchiveEntryNameBase(className) + ".class"; //$NON-NLS-1$ - } - - /** - * Convert a class to an archive class file entry name; - * e.g. java.lang.String.class is converted to - * "java/lang/String.class". - */ - public static String convertToArchiveClassFileEntryName(Class javaClass) { - return convertToArchiveClassFileEntryName(javaClass.getName()); - } - - - // ***** class => file (.class or .java) ***** - - /** - * Convert a class name to a file name base for the current O/S; - * e.g. "java.lang.String" is converted to - * "java/lang/String" on Unix and - * "java\\lang\\String" on Windows. - */ - public static String convertToFileNameBase(String className) { - return className.replace('.', File.separatorChar); - } - - /** - * Convert a class to a file name base for the current O/S; - * e.g. java.lang.String.class is converted to - * "java/lang/String" on Unix and - * "java\\lang\\String" on Windows. - */ - public static String convertToFileNameBase(Class javaClass) { - return convertToFileNameBase(javaClass.getName()); - } - - /** - * Convert a class name to a class file name for the current O/S; - * e.g. "java.lang.String" is converted to - * "java/lang/String.class" on Unix and - * "java\\lang\\String.class" on Windows. - */ - public static String convertToClassFileName(String className) { - return convertToFileNameBase(className) + ".class"; //$NON-NLS-1$ - } - - /** - * Convert a class to a class file name for the current O/S; - * e.g. java.lang.String.class is converted to - * "java/lang/String.class" on Unix and - * "java\\lang\\String.class" on Windows. - */ - public static String convertToClassFileName(Class javaClass) { - return convertToClassFileName(javaClass.getName()); - } - - /** - * Convert a class name to a class file for the current O/S; - * e.g. "java.lang.String" is converted to - * File(java/lang/String.class). - */ - public static File convertToClassFile(String className) { - return new File(convertToClassFileName(className)); - } - - /** - * Convert a class to a class file for the current O/S; - * e.g. java.lang.String.class is converted to - * File(java/lang/String.class). - */ - public static File convertToClassFile(Class javaClass) { - return convertToClassFile(javaClass.getName()); - } - - /** - * Convert a class name to a java file name for the current O/S; - * e.g. "java.lang.String" is converted to - * "java/lang/String.java" on Unixl and - * "java\\lang\\String.java" on Windows. - */ - public static String convertToJavaFileName(String className) { - return convertToFileNameBase(className) + ".java"; //$NON-NLS-1$ - } - - /** - * Convert a class to a java file name for the current O/S; - * e.g. java.lang.String.class is converted to - * "java/lang/String.java" on Unix and - * "java\\lang\\String.java" on Windows. - */ - public static String convertToJavaFileName(Class javaClass) { - return convertToJavaFileName(javaClass.getName()); - } - - /** - * Convert a class name to a java file for the current O/S; - * e.g. "java.lang.String" is converted to - * File(java/lang/String.java). - */ - public static File convertToJavaFile(String className) { - return new File(convertToJavaFileName(className)); - } - - /** - * Convert a class to a java file for the current O/S; - * e.g. java.lang.String.class is converted to - * File(java/lang/String.java). - */ - public static File convertToJavaFile(Class javaClass) { - return convertToJavaFile(javaClass.getName()); - } - - - // ***** class => resource ***** - - /** - * Convert a class to a resource name; - * e.g. java.lang.String.class is converted to - * "/java/lang/String.class". - */ - public static String convertToResourceName(Class javaClass) { - return '/' + convertToArchiveClassFileEntryName(javaClass); - } - - /** - * Convert a class to a resource; - * e.g. java.lang.String.class is converted to - * URL(jar:file:/C:/jdk/1.4.2_04/jre/lib/rt.jar!/java/lang/String.class). - */ - public static URL convertToResource(Class javaClass) { - return javaClass.getResource(convertToResourceName(javaClass)); - } - - - // ***** utilities ***** - - /** - * Return whether the specified file is an archive file; - * i.e. its name ends with ".zip" or ".jar". - */ - public static boolean fileNameIsArchive(String fileName) { - String ext = FileTools.extension(fileName).toLowerCase(); - return ext.equals(".jar") || ext.equals(".zip"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Return whether the specified file is an archive file; - * i.e. its name ends with ".zip" or ".jar". - */ - public static boolean fileIsArchive(File file) { - return fileNameIsArchive(file.getName()); - } - - /** - * Return what should be the fully-qualified file name - * for the JRE runtime JAR; - * e.g. "C:\jdk1.4.2_04\jre\lib\rt.jar". - */ - public static String rtJarName() { - return locationFor(java.lang.Object.class); - } - - /** - * Return the location from where the specified class was loaded. - */ - public static String locationFor(Class javaClass) { - URL url = convertToResource(javaClass); - String path; - try { - path = FileTools.buildFile(url).getPath(); - } catch (URISyntaxException ex) { - throw new RuntimeException(ex); - } - String protocol = url.getProtocol().toLowerCase(); - if (protocol.equals("jar")) { //$NON-NLS-1$ - // if the class is in a JAR, the URL will look something like this: - // jar:file:/C:/jdk/1.4.2_04/jre/lib/rt.jar!/java/lang/String.class - return path.substring(0, path.indexOf('!')); - } else if (protocol.equals("file")) { //$NON-NLS-1$ - // if the class is in a directory, the URL will look something like this: - // file:/C:/dev/main/mwdev/class/org/eclipse/dali/utility/Classpath.class - return path.substring(0, path.length() - convertToClassFileName(javaClass).length() - 1); - } else if (protocol.equals("bundleresource")) { //$NON-NLS-1$ - // if the class is in a bundle resource (Eclipse?), the URL will look something like this: - // bundleresource://43/org/eclipse/dali/utility/Classpath.class - return path.substring(0, path.length() - convertToClassFileName(javaClass).length() - 1); - } - - throw new IllegalStateException(url.toString()); - } - - /** - * Return the directories used by the Java Extension Mechanism. - */ - public static File[] javaExtensionDirectories() { - return convertToFiles(javaExtensionDirectoryNames()); - } - - /** - * Return the directory names used by the Java Extension Mechanism. - */ - public static String[] javaExtensionDirectoryNames() { - return System.getProperty("java.ext.dirs").split(File.pathSeparator); //$NON-NLS-1$ - } - - - // ***** internal ***** - - private static File[] convertToFiles(String[] fileNames) { - File[] files = new File[fileNames.length]; - for (int i = fileNames.length; i-- > 0; ) { - files[i] = new File(fileNames[i]); - } - return files; - } - - private static void addJarFileNamesTo(File dir, List jarFileNames) { - File[] jarFiles = jarFilesIn(dir); - for (File jarFile : jarFiles) { - jarFileNames.add(FileTools.canonicalFile(jarFile).getPath()); - } - } - - private static File[] jarFilesIn(File directory) { - return directory.listFiles(jarFileFilter()); - } - - private static FileFilter jarFileFilter() { - return new FileFilter() { - public boolean accept(File file) { - return FileTools.extension(file.getName()).toLowerCase().equals(".jar"); //$NON-NLS-1$ - } - }; - } - - - // ********** constructors ********** - - /** - * Construct a classpath with the specified entries. - */ - private Classpath(Entry[] entries) { - super(); - this.entries = entries; - } - - /** - * Construct a classpath with the specified entries. - */ - public Classpath(String... fileNames) { - this(buildEntries(fileNames)); - } - - /** - * Skip empty file names because they will end up expanding to the current - * working directory, which is not what we want. Empty file names actually - * occur with some frequency; such as when the classpath has been built up - * dynamically with too many separators. For example:
-	 *     "C:\dev\foo.jar;;C:\dev\bar.jar"
-	 * 
will be parsed into three file names:
-	 *     { "C:\dev\foo.jar", "", "C:\dev\bar.jar" }
-	 * 
- */ - private static Entry[] buildEntries(String[] fileNames) { - List entries = new ArrayList(); - for (String fileName : fileNames) { - if ((fileName != null) && (fileName.length() != 0)) { - entries.add(new Entry(fileName)); - } - } - return entries.toArray(new Entry[entries.size()]); - } - - /** - * Construct a classpath with the specified path. - */ - public Classpath(String path) { - this(path.split(File.pathSeparator)); - } - - /** - * Construct a classpath with the specified entries. - */ - public Classpath(Iterable fileNames) { - this(ArrayTools.array(fileNames, StringTools.EMPTY_STRING_ARRAY)); - } - - /** - * Consolidate the specified classpaths into a single classpath. - */ - public Classpath(Classpath... classpaths) { - this(consolidateEntries(classpaths)); - } - - private static Entry[] consolidateEntries(Classpath[] classpaths) { - List entries = new ArrayList(); - for (Classpath classpath : classpaths) { - CollectionTools.addAll(entries, classpath.getEntries()); - } - return entries.toArray(new Entry[entries.size()]); - } - - - // ********** public API ********** - - /** - * Return the classpath's entries. - */ - public Iterable getEntries() { - return new ArrayIterable(this.entries); - } - - /** - * Return the classpath's path. - */ - public String getPath() { - int max = this.entries.length - 1; - if (max == -1) { - return ""; //$NON-NLS-1$ - } - StringBuilder sb = new StringBuilder(2000); - // stop one short of the end of the array - for (int i = 0; i < max; i++) { - sb.append(this.entries[i].getFileName()); - sb.append(File.pathSeparatorChar); - } - sb.append(this.entries[max].getFileName()); - return sb.toString(); - } - - /** - * Search the classpath for the specified (unqualified) file - * and return its entry. Return null if an entry is not found. - * For example, you could use this method to find the entry - * for "rt.jar" or "toplink.jar". - */ - public Entry getEntryForFileNamed(String shortFileName) { - for (Entry entry : this.entries) { - if (entry.getFile().getName().equals(shortFileName)) { - return entry; - } - } - return null; - } - - /** - * Return the first entry file in the classpath - * that contains the specified class. - * Return null if an entry is not found. - */ - public Entry getEntryForClassNamed(String className) { - String relativeClassFileName = convertToClassFileName(className); - String archiveEntryName = convertToArchiveClassFileEntryName(className); - for (Entry entry : this.entries) { - if (entry.contains(relativeClassFileName, archiveEntryName)) { - return entry; - } - } - return null; - } - - /** - * Return the names of all the classes discovered on the classpath, - * with duplicates removed. - * @see #classNames() - */ - public Iterable getClassNames() { - return this.getClassNames(Filter.Null.instance()); - } - - /** - * Return the names of all the classes discovered on the classpath - * and accepted by the specified filter, with duplicates removed. - * @see #classNames(Filter) - */ - public Iterable getClassNames(Filter filter) { - Collection classNames = new HashSet(10000); - this.addClassNamesTo(classNames, filter); - return classNames; - } - - /** - * Add the names of all the classes discovered on the classpath - * to the specified collection. - */ - public void addClassNamesTo(Collection classNames) { - this.addClassNamesTo(classNames, Filter.Null.instance()); - } - - /** - * Add the names of all the classes discovered on the classpath - * and accepted by the specified filter to the specified collection. - */ - public void addClassNamesTo(Collection classNames, Filter filter) { - for (Entry entry : this.entries) { - entry.addClassNamesTo(classNames, filter); - } - } - - /** - * Return the names of all the classes discovered on the classpath. - * Just a bit more performant than {@link #getClassNames()}. - */ - public Iterator classNames() { - return this.classNames(Filter.Null.instance()); - } - - /** - * Return the names of all the classes discovered on the classpath - * that are accepted by the specified filter. - * Just a bit more performant than {@link #getClassNames(Filter)}. - */ - public Iterator classNames(Filter filter) { - return new CompositeIterator(this.entryClassNamesIterators(filter)); - } - - private Iterator> entryClassNamesIterators(final Filter filter) { - return new TransformationIterator>(new ArrayIterator(this.entries)) { - @Override - protected Iterator transform(Entry entry) { - return entry.classNames(filter); - } - }; - } - - /** - * Return a "compressed" version of the classpath with its - * duplicate entries eliminated. - */ - public Classpath compressed() { - return new Classpath(ArrayTools.removeDuplicateElements(this.entries)); - } - - /** - * Convert the classpath to an array of URLs - * (that can be used to instantiate a {@link java.net.URLClassLoader}). - */ - public Iterable getURLs() { - int len = this.entries.length; - URL[] urls = new URL[len]; - for (int i = 0; i < len; i++) { - urls[i] = this.entries[i].getURL(); - } - return new ArrayIterable(urls); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.getPath()); - } - - - // ********** inner class ********** - - /** - * Entry models a Java classpath entry, which can be either a - * directory containing .class files or a JAR file (or, - * similarly, a .zip file). The entry can return the names of - * classes found in it etc. - */ - public static class Entry implements Serializable { - private final String fileName; - private final File file; - private final File canonicalFile; - - private static final long serialVersionUID = 1L; - - Entry(String fileName) { - super(); - if ((fileName == null) || (fileName.length() == 0)) { - throw new IllegalArgumentException("'fileName' must be non-empty"); //$NON-NLS-1$ - } - this.fileName = fileName; - this.file = new File(fileName); - this.canonicalFile = FileTools.canonicalFile(this.file); - } - - public String getFileName() { - return this.fileName; - } - - public File getFile() { - return this.file; - } - - public File getCanonicalFile() { - return this.canonicalFile; - } - - public String getCanonicalFileName() { - return this.canonicalFile.getAbsolutePath(); - } - - @Override - public boolean equals(Object o) { - if ( ! (o instanceof Entry)) { - return false; - } - return ((Entry) o).canonicalFile.equals(this.canonicalFile); - } - - @Override - public int hashCode() { - return this.canonicalFile.hashCode(); - } - - /** - * Return the entry's "canonical" URL. - */ - public URL getURL() { - try { - return this.canonicalFile.toURI().toURL(); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - - /** - * Return whether the entry contains the specified class. - */ - public boolean contains(Class javaClass) { - return this.contains(javaClass.getName()); - } - - /** - * Return whether the entry contains the specified class. - */ - public boolean contains(String className) { - return this.contains(convertToClassFileName(className), convertToArchiveClassFileEntryName(className)); - } - - /** - * Return whether the entry contains either the specified relative - * class file or the specified archive entry. - * Not the prettiest signature, but it's internal.... - */ - boolean contains(String relativeClassFileName, String archiveEntryName) { - if ( ! this.canonicalFile.exists()) { - return false; - } - if (this.canonicalFile.isDirectory() && (new File(this.canonicalFile, relativeClassFileName)).exists()) { - return true; - } - return (fileIsArchive(this.canonicalFile) && this.archiveContainsEntry(archiveEntryName)); - } - - /** - * Return whether the entry's archive contains the specified entry. - */ - private boolean archiveContainsEntry(String zipEntryName) { - ZipFile zipFile = null; - ZipEntry zipEntry = null; - try { - zipFile = new ZipFile(this.canonicalFile); - zipEntry = zipFile.getEntry(zipEntryName); - } catch (IOException ex) { - // something is wrong, leave the entry null - } finally { - try { - if (zipFile != null) { - zipFile.close(); - } - } catch (IOException ex) { - zipEntry = null; // something is wrong, clear out the entry - } - } - return zipEntry != null; - } - - /** - * Return the names of all the classes discovered in the entry. - * @see #classNames() - */ - public Iterable getClassNames() { - return this.getClassNames(Filter.Null.instance()); - } - - /** - * Return the names of all the classes discovered in the entry - * and accepted by the specified filter. - * @see #classNames(Filter) - */ - public Iterable getClassNames(Filter filter) { - Collection classNames = new ArrayList(2000); - this.addClassNamesTo(classNames, filter); - return classNames; - } - - /** - * Add the names of all the classes discovered in the entry - * to the specified collection. - */ - public void addClassNamesTo(Collection classNames) { - this.addClassNamesTo(classNames, Filter.Null.instance()); - } - - /** - * Add the names of all the classes discovered in the entry - * and accepted by the specified filter to the specified collection. - */ - public void addClassNamesTo(Collection classNames, Filter filter) { - if (this.canonicalFile.exists()) { - if (this.canonicalFile.isDirectory()) { - this.addClassNamesForDirectoryTo(classNames, filter); - } else if (fileIsArchive(this.canonicalFile)) { - this.addClassNamesForArchiveTo(classNames, filter); - } - } - } - - /** - * Add the names of all the classes discovered - * under the entry's directory and accepted by - * the specified filter to the specified collection. - */ - private void addClassNamesForDirectoryTo(Collection classNames, Filter filter) { - int start = this.canonicalFile.getAbsolutePath().length() + 1; - for (Iterator stream = this.classFilesForDirectory(); stream.hasNext(); ) { - String className = convertToClassName(stream.next().getAbsolutePath().substring(start)); - if (filter.accept(className)) { - classNames.add(className); - } - } - } - - /** - * Return an iterator on all the class files discovered - * under the entry's directory. - */ - private Iterator classFilesForDirectory() { - return new FilteringIterator(FileTools.filesInTree(this.canonicalFile)) { - @Override - protected boolean accept(File next) { - return Entry.this.fileNameMightBeForClassFile(next.getName()); - } - }; - } - - /** - * Add the names of all the classes discovered - * in the entry's archive file and accepted by the - * specified filter to the specified collection. - */ - private void addClassNamesForArchiveTo(Collection classNames, Filter filter) { - ZipFile zipFile = null; - try { - zipFile = new ZipFile(this.canonicalFile); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - for (Enumeration stream = zipFile.entries(); stream.hasMoreElements(); ) { - ZipEntry zipEntry = stream.nextElement(); - String zipEntryName = zipEntry.getName(); - if (this.fileNameMightBeForClassFile(zipEntryName)) { - String className = convertToClassName(zipEntryName); - if (filter.accept(className)) { - classNames.add(className); - } - } - } - try { - zipFile.close(); - } catch (IOException ex) { - return; - } - } - - /** - * Return whether the specified file might be a Java class file. - * The file name must at least end with ".class" and contain no spaces. - * (Neither class names nor package names may contain spaces.) - * Whether it actually is a class file will need to be determined by - * a class loader. - */ - boolean fileNameMightBeForClassFile(String name) { - return FileTools.extension(name).toLowerCase().equals(".class") //$NON-NLS-1$ - && (name.indexOf(' ') == -1); - } - - /** - * Return the names of all the classes discovered on the classpath. - * Just a bit more performant than {@link #getClassNames()}. - */ - public Iterator classNames() { - return this.classNames(Filter.Null.instance()); - } - - /** - * Return the names of all the classes discovered on the classpath - * that are accepted by the specified filter. - * Just a bit more performant than {@link #getClassNames(Filter)}. - */ - public Iterator classNames(Filter filter) { - if (this.canonicalFile.exists()) { - if (this.canonicalFile.isDirectory()) { - return this.classNamesForDirectory(filter); - } - if (fileIsArchive(this.canonicalFile)) { - return this.classNamesForArchive(filter); - } - } - return EmptyIterator.instance(); - } - - /** - * Return the names of all the classes discovered - * under the entry's directory and accepted by - * the specified filter. - */ - private Iterator classNamesForDirectory(Filter filter) { - return new FilteringIterator(this.classNamesForDirectory(), filter); - } - - /** - * Transform the class files to class names. - */ - private Iterator classNamesForDirectory() { - final int start = this.canonicalFile.getAbsolutePath().length() + 1; - return new TransformationIterator(this.classFilesForDirectory()) { - @Override - protected String transform(File f) { - return convertToClassName(f.getAbsolutePath().substring(start)); - } - }; - } - - /** - * Return the names of all the classes discovered - * in the entry's archive file and accepted by the - * specified filter. - */ - private Iterator classNamesForArchive(Filter filter) { - // we can't simply wrap iterators here because we need to close the archive file... - ZipFile zipFile = null; - try { - zipFile = new ZipFile(this.canonicalFile); - } catch (IOException ex) { - return EmptyIterator.instance(); - } - Collection classNames = new HashSet(zipFile.size()); - for (Enumeration stream = zipFile.entries(); stream.hasMoreElements(); ) { - ZipEntry zipEntry = stream.nextElement(); - String zipEntryName = zipEntry.getName(); - if (this.fileNameMightBeForClassFile(zipEntryName)) { - String className = convertToClassName(zipEntryName); - if (filter.accept(className)) { - classNames.add(className); - } - } - } - try { - zipFile.close(); - } catch (IOException ex) { - return EmptyIterator.instance(); - } - return classNames.iterator(); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CollectionTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CollectionTools.java deleted file mode 100644 index aca8d2c354..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CollectionTools.java +++ /dev/null @@ -1,1957 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.ListIterator; -import java.util.Random; -import java.util.RandomAccess; -import java.util.TreeSet; -import java.util.Vector; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.SuperIteratorWrapper; - -/** - * {@link Collection}-related utility methods. - */ -public final class CollectionTools { - - // ********** add all ********** - - /** - * Add all the elements returned by the specified iterable - * to the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.addAll(Iterable iterable) - */ - public static boolean addAll(Collection collection, Iterable iterable) { - return addAll(collection, iterable.iterator()); - } - - /** - * Add all the elements returned by the specified iterable - * to the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.addAll(Iterable iterable) - */ - public static boolean addAll(Collection collection, Iterable iterable, int size) { - return addAll(collection, iterable.iterator(), size); - } - - /** - * Add all the elements returned by the specified iterator - * to the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.addAll(Iterator iterator) - */ - public static boolean addAll(Collection collection, Iterator iterator) { - return iterator.hasNext() ? addAll_(collection, iterator) : false; - } - - /** - * assume the iterator is not empty - */ - private static boolean addAll_(Collection collection, Iterator iterator) { - boolean modified = false; - while (iterator.hasNext()) { - modified |= collection.add(iterator.next()); - } - return modified; - } - - /** - * Add all the elements returned by the specified iterator - * to the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.addAll(Iterator iterator) - */ - public static boolean addAll(Collection collection, Iterator iterator, int size) { - return iterator.hasNext() ? collection.addAll(list(iterator, size)) : false; - } - - /** - * Add all the elements in the specified array - * to the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.addAll(Object[] array) - */ - public static boolean addAll(Collection collection, E... array) { - return (array.length == 0) ? false : addAll_(collection, array); - } - - /** - * assume the array is not empty - */ - private static boolean addAll_(Collection collection, E... array) { - boolean modified = false; - for (E element : array) { - modified |= collection.add(element); - } - return modified; - } - - /** - * Add all the elements returned by the specified iterable - * to the specified list at the specified index. - * Return whether the list changed as a result. - *

- * List.addAll(Iterable iterable) - */ - public static boolean addAll(List list, int index, Iterable iterable) { - return addAll(list, index, iterable.iterator()); - } - - /** - * Add all the elements returned by the specified iterable - * to the specified list at the specified index. - * Return whether the list changed as a result. - *

- * List.addAll(Iterable iterable) - */ - public static boolean addAll(List list, int index, Iterable iterable, int size) { - return addAll(list, index, iterable.iterator(), size); - } - - /** - * Add all the elements returned by the specified iterator - * to the specified list at the specified index. - * Return whether the list changed as a result. - *

- * List.addAll(Iterator iterator) - */ - public static boolean addAll(List list, int index, Iterator iterator) { - return iterator.hasNext() ? list.addAll(index, list(iterator)) : false; - } - - /** - * Add all the elements returned by the specified iterator - * to the specified list at the specified index. - * Return whether the list changed as a result. - *

- * List.addAll(Iterator iterator) - */ - public static boolean addAll(List list, int index, Iterator iterator, int size) { - return iterator.hasNext() ? list.addAll(index, list(iterator, size)) : false; - } - - /** - * Add all the elements in the specified array - * to the specified list at the specified index. - * Return whether the list changed as a result. - *

- * List.addAll(Object[] array) - */ - public static boolean addAll(List list, int index, E... array) { - return (array.length == 0) ? false : list.addAll(index, Arrays.asList(array)); - } - - - // ********** bag ********** - - /** - * Return a bag corresponding to the specified enumeration. - *

- * HashBag(Enumeration enumeration) - */ - public static HashBag bag(Enumeration enumeration) { - return bag(enumeration, new HashBag()); - } - - /** - * Return a bag corresponding to the specified enumeration. - * The specified enumeration size is a performance hint. - *

- * HashBag(Enumeration enumeration) - */ - public static HashBag bag(Enumeration enumeration, int enumerationSize) { - return bag(enumeration, new HashBag(enumerationSize)); - } - - private static HashBag bag(Enumeration enumeration, HashBag bag) { - while (enumeration.hasMoreElements()) { - bag.add(enumeration.nextElement()); - } - return bag; - } - - /** - * Return a bag corresponding to the specified iterable. - *

- * HashBag(Iterable iterable) - */ - public static HashBag bag(Iterable iterable) { - return bag(iterable.iterator()); - } - - /** - * Return a bag corresponding to the specified iterable. - * The specified iterable size is a performance hint. - *

- * HashBag(Iterable iterable) - */ - public static HashBag bag(Iterable iterable, int iterableSize) { - return bag(iterable.iterator(), iterableSize); - } - - /** - * Return a bag corresponding to the specified iterator. - *

- * HashBag(Iterator iterator) - */ - public static HashBag bag(Iterator iterator) { - return bag(iterator, new HashBag()); - } - - /** - * Return a bag corresponding to the specified iterator. - * The specified iterator size is a performance hint. - *

- * HashBag(Iterator iterator) - */ - public static HashBag bag(Iterator iterator, int iteratorSize) { - return bag(iterator, new HashBag(iteratorSize)); - } - - private static HashBag bag(Iterator iterator, HashBag bag) { - while (iterator.hasNext()) { - bag.add(iterator.next()); - } - return bag; - } - - /** - * Return a bag corresponding to the specified array. - *

- * HashBag(Object[] array) - */ - public static HashBag bag(E... array) { - int len = array.length; - HashBag bag = new HashBag(len); - for (E item : array) { - bag.add(item); - } - return bag; - } - - - // ********** collection ********** - - /** - * Return a collection corresponding to the specified enumeration. - */ - public static HashBag collection(Enumeration enumeration) { - return bag(enumeration); - } - - /** - * Return a collection corresponding to the specified enumeration. - * The specified enumeration size is a performance hint. - */ - public static HashBag collection(Enumeration enumeration, int enumerationSize) { - return bag(enumeration, enumerationSize); - } - - /** - * Return a collection corresponding to the specified iterable. - */ - public static HashBag collection(Iterable iterable) { - return collection(iterable.iterator()); - } - - /** - * Return a collection corresponding to the specified iterable. - * The specified iterable size is a performance hint. - */ - public static HashBag collection(Iterable iterable, int iterableSize) { - return collection(iterable.iterator(), iterableSize); - } - - /** - * Return a collection corresponding to the specified iterator. - */ - public static HashBag collection(Iterator iterator) { - return bag(iterator); - } - - /** - * Return a collection corresponding to the specified iterator. - * The specified iterator size is a performance hint. - */ - public static HashBag collection(Iterator iterator, int iteratorSize) { - return bag(iterator, iteratorSize); - } - - /** - * Return a collection corresponding to the specified array. - */ - public static HashBag collection(E... array) { - return bag(array); - } - - - // ********** contains ********** - - /** - * Return whether the specified enumeration contains the - * specified element. - *

- * Enumeration.contains(Object o) - */ - public static boolean contains(Enumeration enumeration, Object value) { - if (value == null) { - while (enumeration.hasMoreElements()) { - if (enumeration.nextElement() == null) { - return true; - } - } - } else { - while (enumeration.hasMoreElements()) { - if (value.equals(enumeration.nextElement())) { - return true; - } - } - } - return false; - } - - /** - * Return whether the specified iterable contains the - * specified element. - *

- * Iterable.contains(Object o) - */ - public static boolean contains(Iterable iterable, Object value) { - return contains(iterable.iterator(), value); - } - - /** - * Return whether the specified iterator contains the - * specified element. - *

- * Iterator.contains(Object o) - */ - public static boolean contains(Iterator iterator, Object value) { - if (value == null) { - while (iterator.hasNext()) { - if (iterator.next() == null) { - return true; - } - } - } else { - while (iterator.hasNext()) { - if (value.equals(iterator.next())) { - return true; - } - } - } - return false; - } - - - // ********** contains all ********** - - /** - * Return whether the specified collection contains all of the - * elements in the specified iterable. - *

- * Collection.containsAll(Iterable iterable) - */ - public static boolean containsAll(Collection collection, Iterable iterable) { - return containsAll(collection, iterable.iterator()); - } - - /** - * Return whether the specified collection contains all of the - * elements in the specified iterator. - *

- * Collection.containsAll(Iterator iterator) - */ - public static boolean containsAll(Collection collection, Iterator iterator) { - while (iterator.hasNext()) { - if ( ! collection.contains(iterator.next())) { - return false; - } - } - return true; - } - - /** - * Return whether the specified collection contains all of the - * elements in the specified array. - *

- * Collection.containsAll(Object[] array) - */ - public static boolean containsAll(Collection collection, Object... array) { - for (int i = array.length; i-- > 0; ) { - if ( ! collection.contains(array[i])) { - return false; - } - } - return true; - } - - /** - * Return whether the specified iterable contains all of the - * elements in the specified collection. - *

- * Iterable.containsAll(Collection collection) - */ - public static boolean containsAll(Iterable iterable, Collection collection) { - return containsAll(iterable.iterator(), collection); - } - - /** - * Return whether the specified iterable contains all of the - * elements in the specified collection. - * The specified iterable size is a performance hint. - *

- * Iterable.containsAll(Collection collection) - */ - public static boolean containsAll(Iterable iterable, int iterableSize, Collection collection) { - return containsAll(iterable.iterator(), iterableSize, collection); - } - - /** - * Return whether the specified iterable 1 contains all of the - * elements in the specified iterable 2. - *

- * Iterable.containsAll(Iterable iterable) - */ - public static boolean containsAll(Iterable iterable1, Iterable iterable2) { - return containsAll(iterable1.iterator(), iterable2.iterator()); - } - - /** - * Return whether the specified iterable 1 contains all of the - * elements in the specified iterable 2. - * The specified iterable 1 size is a performance hint. - *

- * Iterable.containsAll(Iterable iterable) - */ - public static boolean containsAll(Iterable iterable1, int iterable1Size, Iterable iterable2) { - return containsAll(iterable1.iterator(), iterable1Size, iterable2.iterator()); - } - - /** - * Return whether the specified iterable contains all of the - * elements in the specified iterator. - *

- * Iterable.containsAll(Iterator iterator) - */ - public static boolean containsAll(Iterable iterable, Iterator iterator) { - return containsAll(iterable.iterator(), iterator); - } - - /** - * Return whether the specified iterable contains all of the - * elements in the specified iterator. - * The specified iterable size is a performance hint. - *

- * Iterable.containsAll(Iterator iterator) - */ - public static boolean containsAll(Iterable iterable, int iterableSize, Iterator iterator) { - return containsAll(iterable.iterator(), iterableSize, iterator); - } - - /** - * Return whether the specified iterable contains all of the - * elements in the specified array. - *

- * Iterable.containsAll(Object[] array) - */ - public static boolean containsAll(Iterable iterable, Object... array) { - return containsAll(iterable.iterator(), array); - } - - /** - * Return whether the specified iterable contains all of the - * elements in the specified array. - * The specified iterable size is a performance hint. - *

- * Iterable.containsAll(Object[] array) - */ - public static boolean containsAll(Iterable iterable, int iterableSize, Object... array) { - return containsAll(iterable.iterator(), iterableSize, array); - } - - /** - * Return whether the specified iterator contains all of the - * elements in the specified collection. - *

- * Iterator.containsAll(Collection collection) - */ - public static boolean containsAll(Iterator iterator, Collection collection) { - return set(iterator).containsAll(collection); - } - - /** - * Return whether the specified iterator contains all of the - * elements in the specified collection. - * The specified iterator size is a performance hint. - *

- * Iterator.containsAll(Collection collection) - */ - public static boolean containsAll(Iterator iterator, int iteratorSize, Collection collection) { - return set(iterator, iteratorSize).containsAll(collection); - } - - /** - * Return whether the specified iterator contains all of the - * elements in the specified iterable. - *

- * Iterator.containsAll(Iterable iterable) - */ - public static boolean containsAll(Iterator iterator, Iterable iterable) { - return containsAll(set(iterator), iterable); - } - - /** - * Return whether the specified iterator contains all of the - * elements in the specified iterable. - * The specified iterator size is a performance hint. - *

- * Iterator.containsAll(Iterable iterable) - */ - public static boolean containsAll(Iterator iterator, int iteratorSize, Iterable iterable) { - return containsAll(set(iterator, iteratorSize), iterable); - } - - /** - * Return whether the specified iterator 1 contains all of the - * elements in the specified iterator 2. - *

- * Iterator.containsAll(Iterator iterator) - */ - public static boolean containsAll(Iterator iterator1, Iterator iterator2) { - return containsAll(set(iterator1), iterator2); - } - - /** - * Return whether the specified iterator 1 contains all of the - * elements in the specified iterator 2. - * The specified iterator 1 size is a performance hint. - *

- * Iterator.containsAll(Iterator iterator) - */ - public static boolean containsAll(Iterator iterator1, int iterator1Size, Iterator iterator2) { - return containsAll(set(iterator1, iterator1Size), iterator2); - } - - /** - * Return whether the specified iterator contains all of the - * elements in the specified array. - *

- * Iterator.containsAll(Object[] array) - */ - public static boolean containsAll(Iterator iterator, Object... array) { - return containsAll(set(iterator), array); - } - - /** - * Return whether the specified iterator contains all of the - * elements in the specified array. - * The specified iterator size is a performance hint. - *

- * Iterator.containsAll(Object[] array) - */ - public static boolean containsAll(Iterator iterator, int iteratorSize, Object... array) { - return containsAll(set(iterator, iteratorSize), array); - } - - - // ********** diff ********** - - /** - * Return the index of the first elements in the specified - * lists that are different, beginning at the end. - * If the lists are identical, return -1. - * If the lists are different sizes, return the index of the - * last element in the longer list. - * Use the elements' {@link Object#equals(Object)} method to compare the - * elements. - *

- * Collections.diffEnd(List list1, List list2) - */ - public static int diffEnd(List list1, List list2) { - return ArrayTools.diffEnd(list1.toArray(), list2.toArray()); - } - - /** - * Return the range of elements in the specified - * arrays that are different. - * If the arrays are identical, return [size, -1]. - * Use the elements' {@link Object#equals(Object)} method to compare the - * elements. - *

- * Collections.diffRange(List list1, List list2) - * @see #diffStart(List, List) - * @see #diffEnd(List, List) - */ - public static Range diffRange(List list1, List list2) { - return ArrayTools.diffRange(list1.toArray(), list2.toArray()); - } - - /** - * Return the index of the first elements in the specified - * lists that are different. If the lists are identical, return - * the size of the two lists (i.e. one past the last index). - * If the lists are different sizes and all the elements in - * the shorter list match their corresponding elements in - * the longer list, return the size of the shorter list - * (i.e. one past the last index of the shorter list). - * Use the elements' {@link Object#equals(Object)} method to compare the - * elements. - *

- * Collections.diffStart(List list1, List list2) - */ - public static int diffStart(List list1, List list2) { - return ArrayTools.diffStart(list1.toArray(), list2.toArray()); - } - - - // ********** identity diff ********** - - /** - * Return the index of the first elements in the specified - * lists that are different, beginning at the end. - * If the lists are identical, return -1. - * If the lists are different sizes, return the index of the - * last element in the longer list. - * Use object identity to compare the elements. - *

- * Collections.identityDiffEnd(List list1, List list2) - */ - public static int identityDiffEnd(List list1, List list2) { - return ArrayTools.identityDiffEnd(list1.toArray(), list2.toArray()); - } - - /** - * Return the range of elements in the specified - * arrays that are different. - * If the arrays are identical, return [size, -1]. - * Use object identity to compare the elements. - *

- * Collections.identityDiffStart(List list1, List list2) - * @see #identityDiffStart(List, List) - * @see #identityDiffEnd(List, List) - */ - public static Range identityDiffRange(List list1, List list2) { - return ArrayTools.identityDiffRange(list1.toArray(), list2.toArray()); - } - - /** - * Return the index of the first elements in the specified - * lists that are different. If the lists are identical, return - * the size of the two lists (i.e. one past the last index). - * If the lists are different sizes and all the elements in - * the shorter list match their corresponding elements in - * the longer list, return the size of the shorter list - * (i.e. one past the last index of the shorter list). - * Use object identity to compare the elements. - *

- * Collections.identityDiffStart(List list1, List list2) - */ - public static int identityDiffStart(List list1, List list2) { - return ArrayTools.identityDiffStart(list1.toArray(), list2.toArray()); - } - - - // ********** elements are equal ********** - - /** - * Return whether the specified iterables do not return the same elements - * in the same order. - */ - public static boolean elementsAreDifferent(Iterable iterable1, Iterable iterable2) { - return elementsAreDifferent(iterable1.iterator(), iterable2.iterator()); - } - - /** - * Return whether the specified iterators do not return the same elements - * in the same order. - */ - public static boolean elementsAreDifferent(Iterator iterator1, Iterator iterator2) { - return ! elementsAreEqual(iterator1, iterator2); - } - - /** - * Return whether the specified iterables return equal elements - * in the same order. - *

- * Iterable.elementsAreEqual(Iterable iterable) - */ - public static boolean elementsAreEqual(Iterable iterable1, Iterable iterable2) { - return elementsAreEqual(iterable1.iterator(), iterable2.iterator()); - } - - /** - * Return whether the specified iterators return equal elements - * in the same order. - *

- * Iterator.elementsAreEqual(Iterator iterator) - */ - public static boolean elementsAreEqual(Iterator iterator1, Iterator iterator2) { - while (iterator1.hasNext() && iterator2.hasNext()) { - if (Tools.valuesAreDifferent(iterator1.next(), iterator2.next())) { - return false; - } - } - return ! (iterator1.hasNext() || iterator2.hasNext()); - } - - - // ********** elements are identical ********** - - /** - * Return whether the specified iterables return the same elements. - *

- * Iterable.identical(Iterable iterable) - */ - public static boolean elementsAreIdentical(Iterable iterable1, Iterable iterable2) { - return elementsAreIdentical(iterable1.iterator(), iterable2.iterator()); - } - - /** - * Return whether the specified iterators return the same elements. - *

- * Iterator.identical(Iterator iterator) - */ - public static boolean elementsAreIdentical(Iterator iterator1, Iterator iterator2) { - while (iterator1.hasNext() && iterator2.hasNext()) { - if (iterator1.next() != iterator2.next()) { - return false; - } - } - return ! (iterator1.hasNext() || iterator2.hasNext()); - } - - - // ********** get ********** - - /** - * Return the element corresponding to the specified index - * in the specified iterable. - *

- * Iterable.get(int index) - */ - public static E get(Iterable iterable, int index) { - return get(iterable.iterator(), index); - } - - /** - * Return the element corresponding to the specified index - * in the specified iterator. - *

- * Iterator.get(int index) - */ - public static E get(Iterator iterator, int index) { - int i = 0; - while (iterator.hasNext()) { - E next = iterator.next(); - if (i++ == index) { - return next; - } - } - throw new IndexOutOfBoundsException(String.valueOf(index) + ':' + String.valueOf(i)); - } - - - // ********** hash code ********** - - public static int hashCode(Iterable iterable) { - if (iterable == null) { - return 0; - } - int hash = 1; - for (Object element : iterable) { - hash = 31 * hash + (element == null ? 0 : element.hashCode()); - } - return hash; - } - - - // ********** index of ********** - - /** - * Return the index of the first occurrence of the - * specified element in the specified iterable; - * return -1 if there is no such index. - *

- * Iterable.indexOf(Object o) - */ - public static int indexOf(Iterable iterable, Object value) { - return indexOf(iterable.iterator(), value); - } - - /** - * Return the index of the first occurrence of the - * specified element in the specified iterator; - * return -1 if there is no such index. - *

- * Iterator.indexOf(Object o) - */ - public static int indexOf(Iterator iterator, Object value) { - if (value == null) { - for (int i = 0; iterator.hasNext(); i++) { - if (iterator.next() == null) { - return i; - } - } - } else { - for (int i = 0; iterator.hasNext(); i++) { - if (value.equals(iterator.next())) { - return i; - } - } - } - return -1; - } - - - // ********** insertion index of ********** - - /** - * Return an index of where the specified comparable object - * can be inserted into the specified sorted list and still keep - * the list sorted. If the specified sorted list is an instance of - * {@link RandomAccess} return the maximum insertion index; - * otherwise return the minimum insertion index. - */ - public static > int insertionIndexOf(List sortedList, Comparable value) { - if (sortedList instanceof RandomAccess) { - for (int i = sortedList.size(); i-- > 0; ) { - if (value.compareTo(sortedList.get(i)) >= 0) { - return i + 1; - } - } - return 0; - } - int i = 0; - for (E element : sortedList) { - if (value.compareTo(element) <= 0) { - return i; - } - i++; - } - return i; - } - - /** - * Return an index of where the specified comparable object - * can be inserted into the specified sorted list and still keep - * the list sorted. If the specified sorted list is an instance of - * {@link RandomAccess} return the maximum insertion index; - * otherwise return the minimum insertion index. - */ - public static int insertionIndexOf(List sortedList, E value, Comparator comparator) { - if (sortedList instanceof RandomAccess) { - for (int i = sortedList.size(); i-- > 0; ) { - if (comparator.compare(value, sortedList.get(i)) >= 0) { - return i + 1; - } - } - return 0; - } - int i = 0; - for (E element : sortedList) { - if (comparator.compare(value, element) <= 0) { - return i; - } - i++; - } - return i; - } - - - // ********** iterable/iterator ********** - - /** - * Return an iterable on the elements in the specified array. - *

- * Arrays.iterable(Object[] array) - */ - public static Iterable iterable(E... array) { - return new ArrayIterable(array); - } - - /** - * Return an iterator on the elements in the specified array. - *

- * Arrays.iterator(Object[] array) - */ - public static Iterator iterator(E... array) { - return new ArrayIterator(array); - } - - - // ********** last ********** - - /** - * Return the specified iterable's last element. - *

- * Iterable.last() - * - * @exception java.util.NoSuchElementException iterable is empty. - */ - public static E last(Iterable iterable) { - return last(iterable.iterator()); - } - - /** - * Return the specified iterator's last element. - *

- * Iterator.last() - * - * @exception java.util.NoSuchElementException iterator is empty. - */ - public static E last(Iterator iterator) { - E last; - do { - last = iterator.next(); - } while (iterator.hasNext()); - return last; - } - - - // ********** last index of ********** - - /** - * Return the index of the last occurrence of the - * specified element in the specified iterable; - * return -1 if there is no such index. - *

- * Iterable.lastIndexOf(Object o) - */ - public static int lastIndexOf(Iterable iterable, Object value) { - return lastIndexOf(iterable.iterator(), value); - } - - /** - * Return the index of the last occurrence of the - * specified element in the specified iterable; - * return -1 if there is no such index. - * The specified iterable size is a performance hint. - *

- * Iterable.lastIndexOf(Object o) - */ - public static int lastIndexOf(Iterable iterable, int iterableSize, Object value) { - return lastIndexOf(iterable.iterator(), iterableSize, value); - } - - /** - * Return the index of the last occurrence of the - * specified element in the specified iterator; - * return -1 if there is no such index. - *

- * Iterator.lastIndexOf(Object o) - */ - public static int lastIndexOf(Iterator iterator, Object value) { - return iterator.hasNext() ? list(iterator).lastIndexOf(value) : -1; - } - - /** - * Return the index of the last occurrence of the - * specified element in the specified iterator; - * return -1 if there is no such index. - * The specified iterator size is a performance hint. - *

- * Iterator.lastIndexOf(Object o) - */ - public static int lastIndexOf(Iterator iterator, int iteratorSize, Object value) { - return iterator.hasNext() ? list(iterator, iteratorSize).lastIndexOf(value) : -1; - } - - - // ********** list ********** - - /** - * Return a list corresponding to the specified iterable. - *

- * Iterable.toList() - */ - public static ArrayList list(Iterable iterable) { - return list(iterable.iterator()); - } - - /** - * Return a list corresponding to the specified iterable. - * The specified iterable size is a performance hint. - *

- * Iterable.toList() - */ - public static ArrayList list(Iterable iterable, int iterableSize) { - return list(iterable.iterator(), iterableSize); - } - - /** - * Return a list corresponding to the specified iterator. - *

- * Iterator.toList() - */ - public static ArrayList list(Iterator iterator) { - return list(iterator, new ArrayList()); - } - - /** - * Return a list corresponding to the specified iterator. - * The specified iterator size is a performance hint. - *

- * Iterator.toList() - */ - public static ArrayList list(Iterator iterator, int iteratorSize) { - return list(iterator, new ArrayList(iteratorSize)); - } - - private static ArrayList list(Iterator iterator, ArrayList list) { - while (iterator.hasNext()) { - list.add(iterator.next()); - } - return list; - } - - /** - * Return a list corresponding to the specified array. - * Unlike {@link Arrays#asList(Object[])}, the list - * is modifiable and is not backed by the array. - */ - public static ArrayList list(E... array) { - return new ArrayList(Arrays.asList(array)); - } - - /** - * Return a list iterator for the specified array. - *

- * Arrays.listIterator(Object[] array) - */ - public static ListIterator listIterator(E... array) { - return listIterator(array, 0); - } - - /** - * Return a list iterator for the specified array - * starting at the specified position in the array. - *

- * Arrays.listIterator(Object[] array, int index) - */ - public static ListIterator listIterator(E[] array, int start) { - return listIterator(array, start, array.length - start); - } - - /** - * Return a list iterator for the specified array - * starting at the specified position in the array. - *

- * Arrays.listIterator(Object[] array, int index, int length) - */ - public static ListIterator listIterator(E[] array, int start, int length) { - return new ArrayListIterator(array, start, length); - } - - - // ********** move ********** - - /** - * Move an element from the specified source index to the specified target - * index. Return the altered list. - *

- * List.move(int targetIndex, int sourceIndex) - */ - public static List move(List list, int targetIndex, int sourceIndex) { - return (targetIndex == sourceIndex) ? list : move_(list, targetIndex, sourceIndex); - } - - /** - * assume targetIndex != sourceIndex - */ - private static List move_(List list, int targetIndex, int sourceIndex) { - if (list instanceof RandomAccess) { - // move elements, leaving the list in place - E temp = list.get(sourceIndex); - if (targetIndex < sourceIndex) { - for (int i = sourceIndex; i-- > targetIndex; ) { - list.set(i + 1, list.get(i)); - } - } else { - for (int i = sourceIndex; i < targetIndex; i++) { - list.set(i, list.get(i + 1)); - } - } - list.set(targetIndex, temp); - } else { - // remove the element and re-add it at the target index - list.add(targetIndex, list.remove(sourceIndex)); - } - return list; - } - - /** - * Move elements from the specified source index to the specified target - * index. Return the altered list. - *

- * List.move(int targetIndex, int sourceIndex, int length) - */ - public static List move(List list, int targetIndex, int sourceIndex, int length) { - if ((targetIndex == sourceIndex) || (length == 0)) { - return list; - } - if (length == 1) { - return move_(list, targetIndex, sourceIndex); - } - if (list instanceof RandomAccess) { - // move elements, leaving the list in place - ArrayList temp = new ArrayList(list.subList(sourceIndex, sourceIndex + length)); - if (targetIndex < sourceIndex) { - for (int i = sourceIndex; i-- > targetIndex; ) { - list.set(i + length, list.get(i)); - } - } else { - for (int i = sourceIndex; i < targetIndex; i++) { - list.set(i, list.get(i + length)); - } - } - for (int i = 0; i < length; i++) { - list.set(targetIndex + i, temp.get(i)); - } - } else { - // remove the elements and re-add them at the target index - list.addAll(targetIndex, removeElementsAtIndex(list, sourceIndex, length)); - } - return list; - } - - - // ********** remove all ********** - - /** - * Remove all the elements returned by the specified iterable - * from the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.removeAll(Iterable iterable) - */ - public static boolean removeAll(Collection collection, Iterable iterable) { - return removeAll(collection, iterable.iterator()); - } - - /** - * Remove all the elements returned by the specified iterable - * from the specified collection. - * Return whether the collection changed as a result. - * The specified iterable size is a performance hint. - *

- * Collection.removeAll(Iterable iterable) - */ - public static boolean removeAll(Collection collection, Iterable iterable, int iterableSize) { - return removeAll(collection, iterable.iterator(), iterableSize); - } - - /** - * Remove all the elements returned by the specified iterator - * from the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.removeAll(Iterator iterator) - */ - public static boolean removeAll(Collection collection, Iterator iterator) { - return iterator.hasNext() ? collection.removeAll(set(iterator)) : false; - } - - /** - * Remove all the elements returned by the specified iterator - * from the specified collection. - * Return whether the collection changed as a result. - * The specified iterator size is a performance hint. - *

- * Collection.removeAll(Iterator iterator) - */ - public static boolean removeAll(Collection collection, Iterator iterator, int iteratorSize) { - return iterator.hasNext() ? collection.removeAll(set(iterator, iteratorSize)) : false; - } - - /** - * Remove all the elements in the specified array - * from the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.removeAll(Object[] array) - */ - public static boolean removeAll(Collection collection, Object... array) { - return (array.length == 0) ? false : collection.removeAll(set(array)); - } - - - // ********** remove all occurrences ********** - - /** - * Remove all occurrences of the specified element - * from the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.removeAllOccurrences(Object value) - */ - public static boolean removeAllOccurrences(Collection collection, Object value) { - boolean modified = false; - Iterator stream = collection.iterator(); - if (value == null) { - while (stream.hasNext()) { - if (stream.next() == null) { - stream.remove(); - modified = true; - } - } - } else { - while (stream.hasNext()) { - if (value.equals(stream.next())) { - stream.remove(); - modified = true; - } - } - } - return modified; - } - - - // ********** remove elements at index ********** - - /** - * Remove the elements at the specified index. - * Return the removed elements. - *

- * List.remove(int index, int length) - */ - public static ArrayList removeElementsAtIndex(List list, int index, int length) { - List subList = list.subList(index, index + length); - ArrayList result = new ArrayList(subList); - subList.clear(); - return result; - } - - - // ********** remove duplicate elements ********** - - /** - * Remove any duplicate elements from the specified list, - * while maintaining the order. - * Return whether the list changed as a result. - */ - public static boolean removeDuplicateElements(List list) { - int size = list.size(); - if ((size == 0) || (size == 1)) { - return false; - } - return removeDuplicateElements(list, size); - } - - /** - * assume list is non-empty - */ - static boolean removeDuplicateElements(List list, int size) { - LinkedHashSet temp = new LinkedHashSet(size); // take advantage of hashed look-up - boolean modified = false; - for (E item : list) { - if ( ! temp.add(item)) { - modified = true; // duplicate item - } - } - if (modified) { - int i = 0; - for (E e : temp) { - list.set(i, e); - i++; - } - int tempSize = temp.size(); - for (i = list.size(); i-- > tempSize; ) { - list.remove(i); // pull off the end - } - } - return modified; - } - - - // ********** retain all ********** - - /** - * Retain only the elements in the specified iterable - * in the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.retainAll(Iterable iterable) - */ - public static boolean retainAll(Collection collection, Iterable iterable) { - return retainAll(collection, iterable.iterator()); - } - - /** - * Retain only the elements in the specified iterable - * in the specified collection. - * Return whether the collection changed as a result. - * The specified iterable size is a performance hint. - *

- * Collection.retainAll(Iterable iterable) - */ - public static boolean retainAll(Collection collection, Iterable iterable, int iterableSize) { - return retainAll(collection, iterable.iterator(), iterableSize); - } - - /** - * Retain only the elements in the specified iterator - * in the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.retainAll(Iterator iterator) - */ - public static boolean retainAll(Collection collection, Iterator iterator) { - if (iterator.hasNext()) { - return collection.retainAll(set(iterator)); - } - if (collection.isEmpty()) { - return false; - } - collection.clear(); - return true; - } - - /** - * Retain only the elements in the specified iterator - * in the specified collection. - * Return whether the collection changed as a result. - * The specified iterator size is a performance hint. - *

- * Collection.retainAll(Iterator iterator) - */ - public static boolean retainAll(Collection collection, Iterator iterator, int iteratorSize) { - if (iterator.hasNext()) { - return collection.retainAll(set(iterator, iteratorSize)); - } - if (collection.isEmpty()) { - return false; - } - collection.clear(); - return true; - } - - /** - * Retain only the elements in the specified array - * in the specified collection. - * Return whether the collection changed as a result. - *

- * Collection.retainAll(Object[] array) - */ - public static boolean retainAll(Collection collection, Object... array) { - if (array.length > 0) { - return collection.retainAll(set(array)); - } - if (collection.isEmpty()) { - return false; - } - collection.clear(); - return true; - } - - - // ********** reverse list ********** - - /** - * Return a list with entries in reverse order from those - * returned by the specified iterable. - *

- * Iterable.reverseList() - */ - public static ArrayList reverseList(Iterable iterable) { - return reverseList(iterable.iterator()); - } - - /** - * Return a list with entries in reverse order from those - * returned by the specified iterable. - * The specified iterable size is a performance hint. - *

- * Iterable.reverseList() - */ - public static ArrayList reverseList(Iterable iterable, int iterableSize) { - return reverseList(iterable.iterator(), iterableSize); - } - - /** - * Return a list with entries in reverse order from those - * returned by the specified iterator. - *

- * Iterator.reverseList() - */ - public static ArrayList reverseList(Iterator iterator) { - return (ArrayList) reverse(list(iterator)); - } - - /** - * Return a list with entries in reverse order from those - * returned by the specified iterator. - * The specified iterator size is a performance hint. - *

- * Iterator.reverseList() - */ - public static ArrayList reverseList(Iterator iterator, int size) { - return (ArrayList) reverse(list(iterator, size)); - } - - - // ********** rotate ********** - - /** - * Return the list after it has been "rotated" by one position. - *

- * List.rotate() - */ - public static List rotate(List list) { - return rotate(list, 1); - } - - - // ********** set ********** - - /** - * Return a set corresponding to the specified iterable. - *

- * HashSet(Iterable iterable) - */ - public static HashSet set(Iterable iterable) { - return set(iterable.iterator()); - } - - /** - * Return a set corresponding to the specified iterable. - * The specified iterable size is a performance hint. - *

- * HashSet(Iterable iterable) - */ - public static HashSet set(Iterable iterable, int iterableSize) { - return set(iterable.iterator(), iterableSize); - } - - /** - * Return a set corresponding to the specified iterator. - *

- * HashSet(Iterator iterator) - */ - public static HashSet set(Iterator iterator) { - return set(iterator, new HashSet()); - } - - /** - * Return a set corresponding to the specified iterator. - * The specified iterator size is a performance hint. - *

- * HashSet(Iterator iterator) - */ - public static HashSet set(Iterator iterator, int iteratorSize) { - return set(iterator, new HashSet(iteratorSize)); - } - - private static HashSet set(Iterator iterator, HashSet set) { - while (iterator.hasNext()) { - set.add(iterator.next()); - } - return set; - } - - /** - * Return a set corresponding to the specified array. - *

- * HashSet(Object[] array) - */ - public static HashSet set(E... array) { - HashSet set = new HashSet(array.length); - for (int i = array.length; i-- > 0;) { - set.add(array[i]); - } - return set; - } - - - // ********** singleton iterator ********** - - /** - * Return an iterator that returns only the single, - * specified object. - *

- * Object.toIterator() - */ - public static Iterator singletonIterator(E value) { - return new SingleElementIterator(value); - } - - /** - * Return a list iterator that returns only the single, - * specified object. - *

- * Object.toListIterator() - */ - public static ListIterator singletonListIterator(E value) { - return new SingleElementListIterator(value); - } - - - // ********** size ********** - - /** - * Return the number of elements returned by the specified iterable. - *

- * Iterable.size() - */ - public static int size(Iterable iterable) { - return size(iterable.iterator()); - } - - /** - * Return the number of elements returned by the specified iterator. - *

- * Iterator.size() - */ - public static int size(Iterator iterator) { - int size = 0; - while (iterator.hasNext()) { - iterator.next(); - size++; - } - return size; - } - - /** - * Return whether the specified iterable is empty - * (Shortcuts the iterator rather than calculating the entire size) - */ - public static boolean isEmpty(Iterable iterable) { - return isEmpty(iterable.iterator()); - } - - /** - * Return whether the specified iterator is empty - * (Shortcuts the iterator rather than calculating the entire size) - */ - public static boolean isEmpty(Iterator iterator) { - return ! iterator.hasNext(); - } - - - // ********** sort ********** - - /** - * Return an iterable containing the sorted elements of the specified iterable. - *

- * Iterable.sort() - */ - public static > Iterable sort(Iterable iterable) { - return sort(iterable, null); - } - - /** - * Return an iterable containing the sorted elements of the specified iterable. - * The specified iterable size is a performance hint. - *

- * Iterable.sort() - */ - public static > Iterable sort(Iterable iterable, int iterableSize) { - return sort(iterable, null, iterableSize); - } - - /** - * Return an iterable containing the sorted elements of the specified iterable. - *

- * Iterable.sort(Comparator comparator) - */ - public static Iterable sort(Iterable iterable, Comparator comparator) { - return sort(list(iterable), comparator); - } - - /** - * Return an iterable containing the sorted elements of the specified iterable. - * The specified iterable size is a performance hint. - *

- * Iterable.sort(Comparator comparator) - */ - public static Iterable sort(Iterable iterable, Comparator comparator, int iterableSize) { - return sort(list(iterable, iterableSize), comparator); - } - - /** - * Return the iterator after it has been "sorted". - *

- * Iterator.sort() - */ - public static > ListIterator sort(Iterator iterator) { - return sort(iterator, null); - } - - /** - * Return the iterator after it has been "sorted". - * The specified iterator size is a performance hint. - *

- * Iterator.sort() - */ - public static > ListIterator sort(Iterator iterator, int iteratorSize) { - return sort(iterator, null, iteratorSize); - } - - /** - * Return the iterator after it has been "sorted". - *

- * Iterator.sort(Comparator comparator) - */ - public static ListIterator sort(Iterator iterator, Comparator comparator) { - return sort(list(iterator), comparator).listIterator(); - } - - /** - * Return the iterator after it has been "sorted". - * The specified iterator size is a performance hint. - *

- * Iterator.sort(Comparator comparator) - */ - public static ListIterator sort(Iterator iterator, Comparator comparator, int iteratorSize) { - return sort(list(iterator, iteratorSize), comparator).listIterator(); - } - - - // ********** sorted set ********** - - /** - * Return a sorted set corresponding to the specified iterable. - *

- * TreeSet(Iterable iterable) - */ - public static > TreeSet sortedSet(Iterable iterable) { - return sortedSet(iterable.iterator()); - } - - /** - * Return a sorted set corresponding to the specified iterable. - * The specified iterable size is a performance hint. - *

- * TreeSet(Iterable iterable) - */ - public static > TreeSet sortedSet(Iterable iterable, int iterableSize) { - return sortedSet(iterable.iterator(), iterableSize); - } - - /** - * Return a sorted set corresponding to the specified iterable - * and comparator. - *

- * TreeSet(Iterable iterable, Comparator c) - */ - public static TreeSet sortedSet(Iterable iterable, Comparator comparator) { - return sortedSet(iterable.iterator(), comparator); - } - - /** - * Return a sorted set corresponding to the specified iterable - * and comparator. - * The specified iterable size is a performance hint. - *

- * TreeSet(Iterable iterable, Comparator c) - */ - public static TreeSet sortedSet(Iterable iterable, Comparator comparator, int iterableSize) { - return sortedSet(iterable.iterator(), comparator, iterableSize); - } - - /** - * Return a sorted set corresponding to the specified iterator. - *

- * TreeSet(Iterator iterator) - */ - public static > TreeSet sortedSet(Iterator iterator) { - return sortedSet(iterator, null); - } - - /** - * Return a sorted set corresponding to the specified iterator. - * The specified iterator size is a performance hint. - *

- * TreeSet(Iterator iterator) - */ - public static > TreeSet sortedSet(Iterator iterator, int iteratorSize) { - return sortedSet(iterator, null, iteratorSize); - } - - /** - * Return a sorted set corresponding to the specified iterator - * and comparator. - *

- * TreeSet(Iterator iterator, Comparator c) - */ - public static TreeSet sortedSet(Iterator iterator, Comparator comparator) { - return sortedSet(list(iterator), comparator); - } - - /** - * Return a sorted set corresponding to the specified iterator - * and comparator. - * The specified iterator size is a performance hint. - *

- * TreeSet(Iterator iterator, Comparator c) - */ - public static TreeSet sortedSet(Iterator iterator, Comparator comparator, int iteratorSize) { - return sortedSet(list(iterator, iteratorSize), comparator); - } - - private static TreeSet sortedSet(List list, Comparator comparator) { - TreeSet sortedSet = new TreeSet(comparator); - sortedSet.addAll(list); - return sortedSet; - } - - /** - * Return a sorted set corresponding to the specified array. - *

- * TreeSet(Object[] array) - */ - public static > TreeSet sortedSet(E... array) { - return sortedSet(array, null); - } - - /** - * Return a sorted set corresponding to the specified array - * and comparator. - *

- * TreeSet(Object[] array, Comparator c) - */ - public static TreeSet sortedSet(E[] array, Comparator comparator) { - TreeSet sortedSet = new TreeSet(comparator); - sortedSet.addAll(Arrays.asList(array)); - return sortedSet; - } - - - // ********** Old School Vector ********** - - /** - * Return a vector corresponding to the specified iterable. - * This is useful for legacy code that requires a {@link Vector}. - *

- * Vector(Iterable iterable) - */ - public static Vector vector(Iterable iterable) { - return vector(iterable.iterator()); - } - - /** - * Return a vector corresponding to the specified iterable. - * This is useful for legacy code that requires a {@link Vector}. - *

- * Vector(Iterable iterable, int size) - */ - public static Vector vector(Iterable iterable, int size) { - return vector(iterable.iterator(), size); - } - - /** - * Return a vector corresponding to the specified iterator. - * This is useful for legacy code that requires a {@link Vector}. - *

- * Vector(Iterator iterator) - */ - public static Vector vector(Iterator iterator) { - return vector(iterator, new Vector()); - } - - /** - * Return a vector corresponding to the specified iterator. - * This is useful for legacy code that requires a {@link Vector}. - *

- * Vector(Iterator iterator, int size) - */ - public static Vector vector(Iterator iterator, int size) { - return vector(iterator, new Vector(size)); - } - - private static Vector vector(Iterator iterator, Vector v) { - while (iterator.hasNext()) { - v.addElement(iterator.next()); - } - return v; - } - - /** - * Return a vector corresponding to the specified array. - * This is useful for legacy code that requires a {@link Vector}. - *

- * Vector(Object... array) - */ - public static Vector vector(E... array) { - Vector v = new Vector(array.length); - for (E item : array) { - v.addElement(item); - } - return v; - } - - - // ********** single-use Iterable ********** - - /** - * Return a one-use {@link Iterable} for the specified {@link Iterator}. - * Throw an {@link IllegalStateException} if {@link Iterable#iterator()} - * is called more than once. - * As such, this utility should only be used in one-use situations, such as - * a foreach loop. - */ - public static Iterable iterable(Iterator iterator) { - return new SingleUseIterable(iterator); - } - - /** - * This is a one-time use iterable that can return a single iterator. - * Once the iterator is returned the iterable is no longer valid. - * As such, this utility should only be used in one-time use situations, - * such as a 'for-each' loop. - */ - public static class SingleUseIterable implements Iterable { - private Iterator iterator; - - public SingleUseIterable(Iterator iterator) { - super(); - if (iterator == null) { - throw new NullPointerException(); - } - this.iterator = new SuperIteratorWrapper(iterator); - } - - public Iterator iterator() { - if (this.iterator == null) { - throw new IllegalStateException("This method has already been called."); //$NON-NLS-1$ - } - Iterator result = this.iterator; - this.iterator = null; - return result; - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterator); - } - - } - - - // ********** java.util.Collections enhancements ********** - - /** - * Return the destination list after the source list has been copied into it. - * @see Collections#copy(List, List) - */ - public static List copy(List dest, List src) { - Collections.copy(dest, src); - return dest; - } - - /** - * Return the list after it has been "filled". - * @see Collections#fill(List, Object) - */ - public static List fill(List list, E value) { - Collections.fill(list, value); - return list; - } - - /** - * Return the list after it has been "reversed". - * @see Collections#reverse(List) - */ - public static List reverse(List list) { - Collections.reverse(list); - return list; - } - - /** - * Return the list after it has been "rotated". - * @see Collections#rotate(List, int) - */ - public static List rotate(List list, int distance) { - Collections.rotate(list, distance); - return list; - } - - /** - * Return the list after it has been "shuffled". - * @see Collections#shuffle(List) - */ - public static List shuffle(List list) { - Collections.shuffle(list); - return list; - } - - /** - * Return the list after it has been "shuffled". - * @see Collections#shuffle(List, Random) - */ - public static List shuffle(List list, Random random) { - Collections.shuffle(list, random); - return list; - } - - /** - * Return the list after it has been "sorted". - * NB: The list is sorted in place as a side-effect. - * @see Collections#sort(List) - */ - public static > List sort(List list) { - Collections.sort(list); - return list; - } - - /** - * Return the list after it has been "sorted". - * NB: The list is sorted in place as a side-effect. - * @see Collections#sort(List, Comparator) - */ - public static List sort(List list, Comparator comparator) { - Collections.sort(list, comparator); - return list; - } - - /** - * Return the list after the specified elements have been "swapped". - * @see Collections#swap(List, int, int) - */ - public static List swap(List list, int i, int j) { - Collections.swap(list, i, j); - return list; - } - - - // ********** constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private CollectionTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CommandRunnable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CommandRunnable.java deleted file mode 100644 index 8f66ef255c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CommandRunnable.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import org.eclipse.jpt.common.utility.Command; - -/** - * Wrap a Command so it can be used as a Runnable. - */ -public class CommandRunnable implements Runnable { - protected final Command command; - - public CommandRunnable(Command command) { - super(); - if (command == null) { - throw new NullPointerException(); - } - this.command = command; - } - - public void run() { - this.command.execute(); - } - - @Override - public String toString() { - return "Runnable[" + this.command.toString() +']'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeCommand.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeCommand.java deleted file mode 100644 index fce6610235..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeCommand.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; - -/** - * CompositeCommand provides support for treating a collection of - * {@link Command}s as a single command. - */ -public class CompositeCommand - implements Command -{ - private final Iterable commands; - - public CompositeCommand(Command... commands) { - this(new ArrayIterable(commands)); - } - - public CompositeCommand(Iterable commands) { - super(); - this.commands = commands; - } - - public void execute() { - for (Command command : this.commands) { - command.execute(); - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.commands); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeException.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeException.java deleted file mode 100644 index dcb51283cd..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/CompositeException.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.PrintStream; -import java.io.PrintWriter; -import java.util.Collection; - -/** - * Provide a way for multiple exceptions to be packaged and reported. - */ -public class CompositeException - extends RuntimeException -{ - private final Throwable[] exceptions; - private static final long serialVersionUID = 1L; - - - /** - * The specified exceptions list must not be empty. - */ - public CompositeException(Collection exceptions) { - this(exceptions.toArray(new Throwable[exceptions.size()])); - } - - /** - * The specified exceptions list must not be empty. - */ - public CompositeException(Throwable[] exceptions) { - // provide a list of the nested exceptions and - // grab the first exception and make it the "cause" - super(buildMessage(exceptions)); - this.exceptions = exceptions; - } - - public Throwable[] getExceptions() { - return this.exceptions; - } - - private static String buildMessage(Throwable[] exceptions) { - StringBuilder sb = new StringBuilder(); - sb.append(exceptions.length); - sb.append(" exceptions: "); //$NON-NLS-1$ - sb.append('['); - for (Throwable ex : exceptions) { - sb.append(ex.getClass().getSimpleName()); - sb.append(", "); //$NON-NLS-1$ - } - sb.setLength(sb.length() - 2); // chop off trailing comma - sb.append(']'); - return sb.toString(); - } - - @Override - public void printStackTrace(PrintStream s) { - synchronized (s) { - s.println(this); - for (StackTraceElement element : this.getStackTrace()) { - s.print("\tat "); //$NON-NLS-1$ - s.println(element); - } - int i = 1; - for (Throwable ex : this.exceptions) { - s.print("Nested exception "); //$NON-NLS-1$ - s.print(i++); - s.print(": "); //$NON-NLS-1$ - ex.printStackTrace(s); - } - } - } - - @Override - public void printStackTrace(PrintWriter s) { - synchronized (s) { - s.println(this); - for (StackTraceElement element : this.getStackTrace()) { - s.print("\tat "); //$NON-NLS-1$ - s.println(element); - } - int i = 1; - for (Throwable ex : this.exceptions) { - s.print("Nested exception "); //$NON-NLS-1$ - s.print(i++); - s.print(": "); //$NON-NLS-1$ - ex.printStackTrace(s); - } - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ConsumerThreadCoordinator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ConsumerThreadCoordinator.java deleted file mode 100644 index 8dc34e968d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ConsumerThreadCoordinator.java +++ /dev/null @@ -1,253 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.util.Vector; -import java.util.concurrent.ThreadFactory; - -/** - * A ConsumerThreadCoordinator controls the creation, - * starting, and stopping of a general purpose "consumer" thread. Construct - * the coordinator with a {@link Consumer} that both waits for the producer - * to "produce" something to "consume" and, once the wait is over, - * "consumes" whatever is available. - *

- * NB: The client-supplied consumer should handle any - * exception appropriately (e.g. log the exception and return gracefully) so - * the thread can continue executing. - */ -public class ConsumerThreadCoordinator { - /** - * The runnable passed to the consumer thread each time it is built. - */ - private final Runnable runnable; - - /** - * Client-supplied thread factory. Defaults to a straightforward - * implementation. - */ - private final ThreadFactory threadFactory; - - /** - * Optional, client-supplied name for the consumer thread. - * If null, the JDK assigns a name. - */ - private final String threadName; - - /** - * The consumer is executed on this thread. A new thread is built - * for every start/stop cycle (since a thread cannot be started more than - * once). - */ - private volatile Thread thread; - - /** - * A list of the uncaught exceptions thrown by the consumer - * during the current start/stop cycle. - */ - final Vector exceptions = new Vector(); - - - // ********** construction ********** - - /** - * Construct a consumer thread coordinator for the specified consumer. - * Use simple JDK thread(s) for the consumer thread(s). - * Allow the consumer thread(s) to be assigned JDK-generated names. - */ - public ConsumerThreadCoordinator(Consumer consumer) { - this(consumer, SimpleThreadFactory.instance()); - } - - /** - * Construct a consumer thread coordinator for the specified consumer. - * Use the specified thread factory to construct the consumer thread(s). - * Allow the consumer thread(s) to be assigned JDK-generated names. - */ - public ConsumerThreadCoordinator(Consumer consumer, ThreadFactory threadFactory) { - this(consumer, threadFactory, null); - } - - /** - * Construct a consumer thread coordinator for the specified consumer. - * Assign the consumer thread(s) the specified name. - * Use simple JDK thread(s) for the consumer thread(s). - */ - public ConsumerThreadCoordinator(Consumer consumer, String threadName) { - this(consumer, SimpleThreadFactory.instance(), threadName); - } - - /** - * Construct a consumer thread coordinator for the specified consumer. - * Use the specified thread factory to construct the consumer thread(s). - * Assign the consumer thread(s) the specified name. - */ - public ConsumerThreadCoordinator(Consumer consumer, ThreadFactory threadFactory, String threadName) { - super(); - this.runnable = this.buildRunnable(consumer); - this.threadFactory = threadFactory; - this.threadName = threadName; - } - - private Runnable buildRunnable(Consumer consumer) { - return new RunnableConsumer(consumer); - } - - - // ********** Lifecycle support ********** - - /** - * Build and start the consumer thread. - */ - public synchronized void start() { - if (this.thread != null) { - throw new IllegalStateException("Not stopped."); //$NON-NLS-1$ - } - this.thread = this.buildThread(); - this.thread.start(); - } - - private Thread buildThread() { - Thread t = this.threadFactory.newThread(this.runnable); - if (this.threadName != null) { - t.setName(this.threadName); - } - return t; - } - - /** - * Interrupt the consumer thread so that it stops executing at the - * end of its current iteration. Suspend the current thread until - * the consumer thread is finished executing. If any uncaught - * exceptions were thrown while the consumer thread was executing, - * wrap them in a composite exception and throw the composite exception. - */ - public synchronized void stop() { - if (this.thread == null) { - throw new IllegalStateException("Not started."); //$NON-NLS-1$ - } - this.thread.interrupt(); - try { - this.thread.join(); - } catch (InterruptedException ex) { - // the thread that called #stop() was interrupted while waiting to - // join the consumer thread - ignore; - // 'thread' is still "interrupted", so its #run() loop will still stop - // after its current execution - we just won't wait around for it... - } - this.thread = null; - - if (this.exceptions.size() > 0) { - Throwable[] temp = this.exceptions.toArray(new Throwable[this.exceptions.size()]); - this.exceptions.clear(); - throw new CompositeException(temp); - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.thread); - } - - - // ********** consumer thread runnable ********** - - /** - * This implementation of {@link Runnable} is a long-running consumer that - * will repeatedly execute the consumer {@link Consumer#execute()} method. - * With each iteration, the consumer thread will wait - * until the other consumer method, {@link Consumer#waitForProducer()}, allows the - * consumer thread to proceed (i.e. there is something for the consumer to - * consume). Once {@link Consumer#execute()} is finished, the thread will quiesce - * until {@link Consumer#waitForProducer()} returns again. - * Stop the thread by calling {@link Thread#interrupt()}. - */ - private class RunnableConsumer - implements Runnable - { - /** - * Client-supplied consumer that controls waiting for something to consume - * and the consuming itself. - */ - private final Consumer consumer; - - RunnableConsumer(Consumer consumer) { - super(); - this.consumer = consumer; - } - - /** - * Loop while this thread has not been interrupted by another thread. - * In each loop: Pause execution until {@link Consumer#waitForProducer()} - * allows us to proceed. - *

- * If this thread is interrupted during {@link Consumer#execute()}, - * the call to {@link Thread#interrupted()} will stop the loop. If this thread is - * interrupted during the call to {@link Consumer#waitForProducer()}, - * we will catch the {@link InterruptedException} and stop the loop also. - */ - public void run() { - while ( ! Thread.interrupted()) { - try { - this.consumer.waitForProducer(); - } catch (InterruptedException ex) { - // we were interrupted while waiting, must be Quittin' Time - return; - } - this.execute(); - } - } - - /** - * Execute the consumer {@link Consumer#execute()} method. - * Do not allow any unhandled exceptions to kill the thread. - * Store them up for later pain. - * @see ConsumerThreadCoordinator#stop() - */ - private void execute() { - try { - this.execute_(); - } catch (Throwable ex) { - ConsumerThreadCoordinator.this.exceptions.add(ex); - } - } - - /** - * Subclass-implemented behavior: consume stuff. - */ - private void execute_() { - this.consumer.execute(); - } - - } - - - // ********** consumer interface ********** - - /** - * Interface implemented by clients that controls:

    - *
  • when the consumer thread suspends, waiting for something to consume - *
  • the consuming of whatever is being produced - *
- */ - public interface Consumer { - /** - * Wait for something to consume. - * Throw an {@link InterruptedException} if the thread is interrupted. - */ - void waitForProducer() throws InterruptedException; - - /** - * Consume whatever is currently available. - */ - void execute(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ExceptionHandler.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ExceptionHandler.java deleted file mode 100644 index 9c32f555a9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ExceptionHandler.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * Simple interface for allowing clients to pass an exception handler to a - * service (e.g. to log the exception). This is particularly helpful if the - * service executes on another, possibly inaccessible, thread. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface ExceptionHandler { - - /** - * The specified exception was thrown. Handle it appropriately. - */ - void handleException(Throwable t); - - /** - * Singleton implementation of the exception handler interface that does - * nothing with the exception. - */ - final class Null implements ExceptionHandler, Serializable { - public static final ExceptionHandler INSTANCE = new Null(); - public static ExceptionHandler instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - public void handleException(Throwable t) { - // do nothing - } - @Override - public String toString() { - return "ExceptionHandler.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - /** - * Singleton implementation of the exception handler interface that - * wraps the exception in a runtime exception and throws it. - */ - final class Runtime implements ExceptionHandler, Serializable { - public static final ExceptionHandler INSTANCE = new Runtime(); - public static ExceptionHandler instance() { - return INSTANCE; - } - // ensure single instance - private Runtime() { - super(); - } - public void handleException(Throwable t) { - // re-throw the exception unchecked - throw new RuntimeException(t); - } - @Override - public String toString() { - return "ExceptionHandler.Runtime"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FileTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FileTools.java deleted file mode 100644 index cfe93a64b7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FileTools.java +++ /dev/null @@ -1,1002 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.File; -import java.io.FileFilter; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.nio.channels.FileChannel; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator; -import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; - -/** - * Assorted file tools: - * - delete entire trees of directories and files - * - build iterators on entire trees of directories and files - * - build a temporary directory - * - "canonize" files - */ -public final class FileTools { - - public static final String USER_HOME_DIRECTORY_NAME = System.getProperty("user.home"); //$NON-NLS-1$ - public static final String USER_TEMPORARY_DIRECTORY_NAME = System.getProperty("java.io.tmpdir"); //$NON-NLS-1$ - public static String DEFAULT_TEMPORARY_DIRECTORY_NAME = "tmpdir"; //$NON-NLS-1$ - public static final String CURRENT_WORKING_DIRECTORY_NAME = System.getProperty("user.dir"); //$NON-NLS-1$ - - /** A list of some invalid file name characters. - : is the filename separator in MacOS and the drive indicator in DOS - * is a DOS wildcard character - | is a DOS redirection character - & is our own escape character - / is the filename separator in Unix and the command option tag in DOS - \ is the filename separator in DOS/Windows and the escape character in Unix - ; is ??? - ? is a DOS wildcard character - [ is ??? - ] is ??? - = is ??? - + is ??? - < is a DOS redirection character - > is a DOS redirection character - " is used by DOS to delimit file names with spaces - , is ??? - */ - public static final char[] INVALID_FILENAME_CHARACTERS = { ':', '*', '|', '&', '/', '\\', ';', '?', '[', ']', '=', '+', '<', '>', '"', ',' }; - - /** This encoder will convert strings into valid file names. */ - public static final XMLStringEncoder FILE_NAME_ENCODER = new XMLStringEncoder(INVALID_FILENAME_CHARACTERS); - - /** Windows files that are redirected to devices etc. */ - @SuppressWarnings("nls") - private static final String[] WINDOWS_RESERVED_FILE_NAMES = { - "con", - "aux", - "com1", "com2", "com3", "com4", "com5", "com6", "com7", "com8", "com9", - "lpt1", "lpt2", "lpt3", "lpt4", "lpt5", "lpt6", "lpt7", "lpt8", "lpt9", - "prn", - "nul" - }; - - /** The default length of a shortened file name. */ - public static final int MAXIMUM_SHORTENED_FILE_NAME_LENGTH = 60; - - - // ********** deleting directories ********** - - /** - * Delete the specified directory and all of its contents. - * USE WITH CARE. - * File#deleteAll()? - */ - public static void deleteDirectory(String directoryName) { - deleteDirectory(new File(directoryName)); - } - - /** - * Delete the specified directory and all of its contents. - * USE WITH CARE. - * File#deleteAll()? - */ - public static void deleteDirectory(File directory) { - deleteDirectoryContents(directory); - if ( ! directory.delete()) { - throw new RuntimeException("unable to delete directory: " + directory.getAbsolutePath()); //$NON-NLS-1$ - } - } - - /** - * Delete the contents of the specified directory - * (but not the directory itself). - * USE WITH CARE. - * File#deleteFiles() - */ - public static void deleteDirectoryContents(String directoryName) { - deleteDirectoryContents(new File(directoryName)); - } - - /** - * Delete the contents of the specified directory - * (but not the directory itself). - * USE WITH CARE. - * File#deleteFiles() - */ - public static void deleteDirectoryContents(File directory) { - for (File file : directory.listFiles()) { - if (file.isDirectory()) { - deleteDirectory(file); // recurse through subdirectories - } else { - if ( ! file.delete()) { - throw new RuntimeException("unable to delete file: " + file.getAbsolutePath()); //$NON-NLS-1$ - } - } - } - } - - - // ********** copying files ********** - - /** - * Copies the content of the source file to the destination file. - * File#copy(File destinationFile) - */ - public static void copyToFile(File sourceFile, File destinationFile) - throws IOException - { - FileChannel sourceChannel = new FileInputStream(sourceFile).getChannel(); - FileChannel destinationChannel = new FileOutputStream(destinationFile).getChannel(); - try { - destinationChannel.transferFrom(sourceChannel, 0, sourceChannel.size()); - } finally { - sourceChannel.close(); - destinationChannel.close(); - } - } - - /** - * Copies the content of the source file to a file by - * the same name in the destination directory. - * File#copyToDirectory(File destinationDirectory) - */ - public static void copyToDirectory(File sourceFile, File destinationDirectory) - throws IOException - { - File destinationFile = new File(destinationDirectory, sourceFile.getName()); - if ( ! destinationFile.exists() && ! destinationFile.createNewFile()) { - throw new RuntimeException("createNewFile() failed: " + destinationFile); //$NON-NLS-1$ - } - copyToFile(sourceFile, destinationFile); - } - - - // ********** iteratoring over files and directories ********** - - /** - * Return an iterator on all the files in the specified directory. - * The iterator will skip over subdirectories. - * File#files() - */ - public static Iterator filesIn(String directoryName) { - return filesIn(new File(directoryName)); - } - - /** - * Return an iterator on all the files in the specified directory. - * The iterator will skip over subdirectories. - * File#files() - */ - public static Iterator filesIn(File directory) { - return filesIn(directory.listFiles()); - } - - private static Iterator filesIn(File[] files) { - return new FilteringIterator(new ArrayIterator(files)) { - @Override - protected boolean accept(File next) { - return next.isFile(); - } - }; - } - - /** - * Return an iterator on all the subdirectories - * in the specified directory. - * File#subDirectories() - */ - public static Iterator directoriesIn(String directoryName) { - return directoriesIn(new File(directoryName)); - } - - /** - * Return an iterator on all the subdirectories - * in the specified directory. - * File#subDirectories() - */ - public static Iterator directoriesIn(File directory) { - return directoriesIn(directory.listFiles()); - } - - private static Iterator directoriesIn(File[] files) { - return new FilteringIterator(new ArrayIterator(files)) { - @Override - protected boolean accept(File next) { - return next.isDirectory(); - } - }; - } - - /** - * Return an iterator on all the files under the specified - * directory, recursing into subdirectories. - * The iterator will skip over the subdirectories themselves. - * File#filesRecurse() - */ - public static Iterator filesInTree(String directoryName) { - return filesInTree(new File(directoryName)); - } - - /** - * Return an iterator on all the files under the specified - * directory, recursing into subdirectories. - * The iterator will skip over the subdirectories themselves. - * File#filesRecurse() - */ - public static Iterator filesInTree(File directory) { - return filesInTreeAsSet(directory).iterator(); - } - - private static Set filesInTreeAsSet(File directory) { - Set files = new HashSet(10000); - addFilesInTreeTo(directory, files); - return files; - } - - private static void addFilesInTreeTo(File directory, Collection allFiles) { - for (File file : directory.listFiles()) { - if (file.isFile()) { - allFiles.add(file); - } else if (file.isDirectory()) { - addFilesInTreeTo(file, allFiles); - } - } - } - - /** - * Return an iterator on all the directories under the specified - * directory, recursing into subdirectories. - * File#subDirectoriesRecurse() - */ - public static Iterator directoriesInTree(String directoryName) { - return directoriesInTree(new File(directoryName)); - } - - /** - * Return an iterator on all the directories under the specified - * directory, recursing into subdirectories. - * File#subDirectoriesRecurse() - */ - @SuppressWarnings("unchecked") - public static Iterator directoriesInTree(File directory) { - File[] files = directory.listFiles(); - return new CompositeIterator(directoriesIn(files), directoriesInTrees(directoriesIn(files))); - } - - private static Iterator directoriesInTrees(Iterator directories) { - return new CompositeIterator( - new TransformationIterator>(directories) { - @Override - protected Iterator transform(File next) { - return FileTools.directoriesInTree(next); - } - } - ); - } - - - // ********** short file name manipulation ********** - - /** - * Strip the extension from the specified file name - * and return the result. If the file name has no - * extension, it is returned unchanged - * File#basePath() - */ - public static String stripExtension(String fileName) { - int index = fileName.lastIndexOf('.'); - if (index == -1) { - return fileName; - } - return fileName.substring(0, index); - } - - /** - * Strip the extension from the specified file's name - * and return the result. If the file's name has no - * extension, it is returned unchanged - * File#basePath() - */ - public static String stripExtension(File file) { - return stripExtension(file.getPath()); - } - - /** - * Return the extension, including the dot, of the specified file name. - * If the file name has no extension, return an empty string. - * File#extension() - */ - public static String extension(String fileName) { - int index = fileName.lastIndexOf('.'); - if (index == -1) { - return ""; //$NON-NLS-1$ - } - return fileName.substring(index); - } - - /** - * Return the extension, including the dot, of the specified file's name. - * If the file's name has no extension, return an empty string. - * File#extension() - */ - public static String extension(File file) { - return extension(file.getPath()); - } - - - // ********** temporary directories ********** - - /** - * Build and return an empty temporary directory with the specified - * name. If the directory already exists, it will be cleared out. - * This directory will be a subdirectory of the Java temporary directory, - * as indicated by the System property "java.io.tmpdir". - */ - public static File emptyTemporaryDirectory(String name) { - File dir = new File(userTemporaryDirectory(), name); - if (dir.exists()) { - deleteDirectoryContents(dir); - } else { - mkdirs(dir); - } - return dir; - } - - private static void mkdirs(File dir) { - if ( ! dir.mkdirs()) { - throw new RuntimeException("mkdirs() failed: " + dir); //$NON-NLS-1$ - } - } - - /** - * Build and return an empty temporary directory with a - * name of "tmpdir". If the directory already exists, it will be cleared out. - * This directory will be a subdirectory of the Java temporary directory, - * as indicated by the System property "java.io.tmpdir". - */ - public static File emptyTemporaryDirectory() { - return emptyTemporaryDirectory(DEFAULT_TEMPORARY_DIRECTORY_NAME); - } - - /** - * Build and return a temporary directory with the specified - * name. If the directory already exists, it will be left unchanged; - * if it does not already exist, it will be created. - * This directory will be a subdirectory of the Java temporary directory, - * as indicated by the System property "java.io.tmpdir". - */ - public static File temporaryDirectory(String name) { - File dir = new File(userTemporaryDirectory(), name); - if ( ! dir.exists()) { - mkdirs(dir); - } - return dir; - } - - /** - * Build and return a temporary directory with a name of - * "tmpdir". If the directory already exists, it will be left unchanged; - * if it does not already exist, it will be created. - * This directory will be a subdirectory of the Java temporary directory, - * as indicated by the System property "java.io.tmpdir". - */ - public static File temporaryDirectory() { - return temporaryDirectory(DEFAULT_TEMPORARY_DIRECTORY_NAME); - } - - /** - * Build and return a *new* temporary directory with the specified - * prefix. The prefix will be appended with a number that - * is incremented, starting with 1, until a non-pre-existing directory - * is found and successfully created. This directory will be a - * subdirectory of the Java temporary directory, as indicated by - * the System property "java.io.tmpdir". - */ - public static File newTemporaryDirectory(String prefix) { - if ( ! prefix.endsWith(".")) { //$NON-NLS-1$ - prefix = prefix + '.'; - } - File dir; - int i = 0; - do { - i++; - dir = new File(userTemporaryDirectory(), prefix + i); - } while ( ! dir.mkdirs()); - return dir; - } - - /** - * Build and return a *new* temporary directory with a - * prefix of "tmpdir". This prefix will be appended with a number that - * is incremented, starting with 1, until a non-pre-existing directory - * is found and successfully created. This directory will be a - * subdirectory of the Java temporary directory, as indicated by - * the System property "java.io.tmpdir". - */ - public static File newTemporaryDirectory() { - return newTemporaryDirectory(DEFAULT_TEMPORARY_DIRECTORY_NAME); - } - - - // ********** resource files ********** - - /** - * Build and return a file for the specified resource. - * The resource name must be fully-qualified, i.e. it cannot be relative - * to the package name/directory. - * NB: There is a bug in jdk1.4.x the prevents us from getting - * a resource that has spaces (or other special characters) in - * its name.... (see Sun's Java bug 4466485) - */ - public static File resourceFile(String resourceName) throws URISyntaxException { - if ( ! resourceName.startsWith("/")) { //$NON-NLS-1$ - throw new IllegalArgumentException(resourceName); - } - return resourceFile(resourceName, FileTools.class); - } - - /** - * Build and return a file for the specified resource. - * NB: There is a bug in jdk1.4.x the prevents us from getting - * a resource that has spaces (or other special characters) in - * its name.... (see Sun's Java bug 4466485) - */ - public static File resourceFile(String resourceName, Class javaClass) throws URISyntaxException { - URL url = javaClass.getResource(resourceName); - return buildFile(url); - } - - /** - * Build and return a file for the specified URL. - * NB: There is a bug in jdk1.4.x the prevents us from getting - * a resource that has spaces (or other special characters) in - * its name.... (see Sun's Java bug 4466485) - */ - public static File buildFile(URL url) throws URISyntaxException { - return buildFile(url.getFile()); - } - - /** - * Build and return a file for the specified file name. - * NB: There is a bug in jdk1.4.x the prevents us from getting - * a resource that has spaces (or other special characters) in - * its name.... (see Sun's Java bug 4466485) - */ - public static File buildFile(String fileName) throws URISyntaxException { - URI uri = new URI(fileName); - File file = new File(uri.getPath()); - return file; - } - - - // ********** "canonical" files ********** - - /** - * Convert the specified file into a "canonical" file. - */ - public static File canonicalFile(File file) { - try { - return file.getCanonicalFile(); - } catch (IOException ioexception) { - // settle for the absolute file - return file.getAbsoluteFile(); - } - } - - /** - * Build an iterator that will convert the specified files - * into "canonical" files. - */ - public static Iterator canonicalFiles(Iterator files) { - return new TransformationIterator(files) { - @Override - protected File transform(File next) { - return canonicalFile(next); - } - }; - } - - /** - * Build an iterator that will convert the specified files - * into "canonical" files. - */ - public static Iterator canonicalFiles(Collection files) { - return canonicalFiles(files.iterator()); - } - - /** - * Convert the specified file name into a "canonical" file name. - */ - public static String canonicalFileName(String fileName) { - return canonicalFile(new File(fileName)).getAbsolutePath(); - } - - /** - * Build an iterator that will convert the specified file names - * into "canonical" file names. - */ - public static Iterator canonicalFileNames(Iterator fileNames) { - return new TransformationIterator(fileNames) { - @Override - protected String transform(String next) { - return canonicalFileName(next); - } - }; - } - - /** - * Build an iterator that will convert the specified file names - * into "canonical" file names. - */ - public static Iterator canonicalFileNames(Collection fileNames) { - return canonicalFileNames(fileNames.iterator()); - } - - - // ********** file name validation ********** - - /** - * Return whether the specified file name is invalid. - */ - public static boolean fileNameIsInvalid(String filename) { - return ! fileNameIsValid(filename); - } - - /** - * Return whether the specified file name is valid. - */ - public static boolean fileNameIsValid(String filename) { - int len = filename.length(); - for (int i = 0; i < len; i++) { - char filenameChar = filename.charAt(i); - if (ArrayTools.contains(INVALID_FILENAME_CHARACTERS, filenameChar)) { - return false; - } - } - return true; - } - - /** - * Convert the illegal characters in the specified file name to - * the specified character and return the result. - */ - public static String convertToValidFileName(String filename, char replacementChar) { - int len = filename.length(); - StringBuilder sb = new StringBuilder(len); - for (int i = 0; i < len; i++) { - char filenameChar = filename.charAt(i); - if (ArrayTools.contains(INVALID_FILENAME_CHARACTERS, filenameChar)) { - sb.append(replacementChar); - } else { - sb.append(filenameChar); - } - } - return sb.toString(); - } - - /** - * Convert the illegal characters in the specified file name to - * periods ('.') and return the result. - */ - public static String convertToValidFileName(String filename) { - return convertToValidFileName(filename, '.'); - } - - /** - * Return whether the specified file name is "reserved" - * (i.e. it cannot be used for "user" files). Windows reserves - * a number of file names (e.g. CON, AUX, PRN). - */ - public static boolean fileNameIsReserved(String fileName) { - // Unix/Linux does not have any "reserved" file names (I think...) - return Tools.osIsWindows() && ArrayTools.contains(WINDOWS_RESERVED_FILE_NAMES, fileName.toLowerCase()); - } - - /** - * Return whether the specified file contains any "reserved" - * components. - * Windows reserves a number of file names (e.g. CON, AUX, PRN); - * and these file names cannot be used for either the names of - * files or directories. - */ - public static boolean fileHasAnyReservedComponents(File file) { - File temp = file; - while (temp != null) { - if (fileNameIsReserved(temp.getName())) { - return true; - } - temp = temp.getParentFile(); - } - return false; - } - - - // ********** shortened file names ********** - - /** - * Return a shorter version of the absolute file name for the specified file. - * The shorter version will not be longer than the maximum length. - * The first directory (usually the drive letter) and the file name or the - * last directory will always be added to the generated string regardless of - * the maximum length allowed. - */ - public static String shortenFileName(URL url) { - return shortenFileName(url, MAXIMUM_SHORTENED_FILE_NAME_LENGTH); - } - - /** - * Return a shorter version of the absolute file name for the specified file. - * The shorter version will not be longer than the maximum length. - * The first directory (usually the drive letter) and the file name or the - * last directory will always be added to the generated string regardless of - * the maximum length allowed. - */ - public static String shortenFileName(URL url, int maxLength) { - File file; - try { - file = buildFile(url); - } catch (URISyntaxException e) { - file = new File(url.getFile()); - } - return shortenFileName(file, maxLength); - } - - /** - * Return a shorter version of the absolute file name for the specified file. - * The shorter version will not be longer than the maximum length. - * The first directory (usually the drive letter) and the file name or the - * last directory will always be added to the generated string regardless of - * the maximum length allowed. - */ - public static String shortenFileName(File file) { - return shortenFileName(file, MAXIMUM_SHORTENED_FILE_NAME_LENGTH); - } - - /** - * Return a shorter version of the absolute file name for the specified file. - * The shorter version will not be longer than the maximum length. - * The first directory (usually the drive letter) and the file name or the - * last directory will always be added to the generated string regardless of - * the maximum length allowed. - */ - public static String shortenFileName(File file, int maxLength) { - String absoluteFileName = canonicalFile(file).getAbsolutePath(); - if (absoluteFileName.length() <= maxLength) { - // no need to shorten - return absoluteFileName; - } - - // break down the path into its components - String fs = File.separator; - String[] paths = absoluteFileName.split('\\' + fs); - - if (paths.length <= 1) { - // e.g. "C:\" - return paths[0]; - } - - if (paths.length == 2) { - // e.g. "C:\MyReallyLongFileName.ext" or "C:\MyReallyLongDirectoryName" - // return the complete file name since this is a minimum requirement, - // regardless of the maximum length allowed - return absoluteFileName; - } - - StringBuilder sb = new StringBuilder(); - sb.append(paths[0]); // always add the first directory, which is usually the drive letter - - // Keep the index of insertion into the string buffer - int insertIndex = sb.length(); - - sb.append(fs); - sb.append(paths[paths.length - 1]); // append the file name or the last directory - - maxLength -= 4; // -4 for "/..." - - int currentLength = sb.length() - 4; // -4 for "/..." - int leftIndex = 1; // 1 to skip the root directory - int rightIndex = paths.length - 2; // -1 for the file name or the last directory - - boolean canAddFromLeft = true; - boolean canAddFromRight = true; - - // Add each directory, the insertion is going in both direction: left and - // right, once a side can't be added, the other side is still continuing - // until both can't add anymore - while (true) { - if (!canAddFromLeft && !canAddFromRight) - break; - - if (canAddFromRight) { - String rightDirectory = paths[rightIndex]; - int rightLength = rightDirectory.length(); - - // Add the directory on the right side of the loop - if (currentLength + rightLength + 1 <= maxLength) { - sb.insert(insertIndex, fs); - sb.insert(insertIndex + 1, rightDirectory); - - currentLength += rightLength + 1; - rightIndex--; - - // The right side is now overlapping the left side, that means - // we can't add from the right side anymore - if (leftIndex >= rightIndex) { - canAddFromRight = false; - } - } else { - canAddFromRight = false; - } - } - - if (canAddFromLeft) { - String leftDirectory = paths[leftIndex]; - int leftLength = leftDirectory.length(); - - // Add the directory on the left side of the loop - if (currentLength + leftLength + 1 <= maxLength) { - sb.insert(insertIndex, fs); - sb.insert(insertIndex + 1, leftDirectory); - - insertIndex += leftLength + 1; - currentLength += leftLength + 1; - leftIndex++; - - // The left side is now overlapping the right side, that means - // we can't add from the left side anymore - if (leftIndex >= rightIndex) { - canAddFromLeft = false; - } - } else { - canAddFromLeft = false; - } - } - } - - if (leftIndex <= rightIndex) { - sb.insert(insertIndex, fs); - sb.insert(insertIndex + 1, "..."); //$NON-NLS-1$ - } - - return sb.toString(); - } - - - // ********** system properties ********** - - /** - * Return a file representing the user's home directory. - */ - public static File userHomeDirectory() { - return new File(USER_HOME_DIRECTORY_NAME); - } - - /** - * Return a file representing the user's temporary directory. - */ - public static File userTemporaryDirectory() { - return new File(USER_TEMPORARY_DIRECTORY_NAME); - } - - /** - * Return a file representing the current working directory. - */ - public static File currentWorkingDirectory() { - return new File(CURRENT_WORKING_DIRECTORY_NAME); - } - - - // ********** miscellaneous ********** - - /** - * Return only the files that fit the filter. - * File#files(FileFilter fileFilter) - */ - public static Iterator filter(Iterator files, final FileFilter fileFilter) { - return new FilteringIterator(files) { - @Override - protected boolean accept(File next) { - return fileFilter.accept(next); - } - }; - } - - /** - * Return a file that is a re-specification of the specified - * file, relative to the specified directory. - * Linux/Unix/Mac: - * convertToRelativeFile(/foo/bar/baz.java, /foo) - * => bar/baz.java - * Windows: - * convertToRelativeFile(C:\foo\bar\baz.java, C:\foo) - * => bar/baz.java - * The file can be either a file or a directory; the directory - * *should* be a directory. - * If the file is already relative or it cannot be made relative - * to the directory, it will be returned unchanged. - * - * NB: This method has been tested on Windows and Linux, - * but not Mac (but the Mac is Unix-based these days, so - * it shouldn't be a problem...). - */ - public static File convertToRelativeFile(final File file, final File dir) { - // check whether the file is already relative - if ( ! file.isAbsolute()) { - return file; // return unchanged - } - - File cFile = canonicalFile(file); - File cDir = canonicalFile(dir); - - // the two are the same directory - if (cFile.equals(cDir)) { - return new File("."); //$NON-NLS-1$ - } - - File[] filePathFiles = pathFiles(cFile); - File[] dirPathFiles = pathFiles(cDir); - - // Windows only (?): the roots are different - e.g. D:\ vs. C:\ - if ( ! dirPathFiles[0].equals(filePathFiles[0])) { - return file; // return unchanged - } - - // at this point we know the root is the same, now find how much is in common - int i = 0; // this will point at the first miscompare - while ((i < dirPathFiles.length) && (i < filePathFiles.length)) { - if (dirPathFiles[i].equals(filePathFiles[i])) { - i++; - } else { - break; - } - } - // save our current position - int firstMismatch = i; - - // check whether the file is ABOVE the directory: ../.. - if (firstMismatch == filePathFiles.length) { - return relativeParentFile(dirPathFiles.length - firstMismatch); - } - - // build a new file from the path beyond the matching portions - File diff = new File(filePathFiles[i].getName()); - while (++i < filePathFiles.length) { - diff = new File(diff, filePathFiles[i].getName()); - } - - // check whether the file is BELOW the directory: subdir1/subdir2/file.ext - if (firstMismatch == dirPathFiles.length) { - return diff; - } - - // the file must be a PEER of the directory: ../../subdir1/subdir2/file.ext - return new File(relativeParentFile(dirPathFiles.length - firstMismatch), diff.getPath()); - } - - /** - * Return a file that is a re-specification of the specified - * file, relative to the current working directory. - * Linux/Unix/Mac (CWD = /foo): - * convertToRelativeFile(/foo/bar/baz.java) - * => bar/baz.java - * Windows (CWD = C:\foo): - * convertToRelativeFile(C:\foo\bar\baz.java) - * => bar/baz.java - * The file can be either a file or a directory. - * If the file is already relative or it cannot be made relative - * to the directory, it will be returned unchanged. - * - * NB: This method has been tested on Windows and Linux, - * but not Mac (but the Mac is Unix-based these days, so - * it shouldn't be a problem...). - */ - public static File convertToRelativeFile(final File file) { - return convertToRelativeFile(file, currentWorkingDirectory()); - } - - /** - * Return an array of files representing the path to the specified - * file. For example: - * C:/foo/bar/baz.txt => - * { C:/, C:/foo, C:/foo/bar, C:/foo/bar/baz.txt } - */ - private static File[] pathFiles(File file) { - List path = new ArrayList(); - for (File f = file; f != null; f = f.getParentFile()) { - path.add(f); - } - Collections.reverse(path); - return path.toArray(new File[path.size()]); - } - - /** - * Return a file with the specified (non-zero) number of relative - * file names, e.g. xxx(3) => ../../.. - */ - private static File relativeParentFile(int len) { - if (len <= 0) { - throw new IllegalArgumentException("length must be greater than zero: " + len); //$NON-NLS-1$ - } - File result = new File(".."); //$NON-NLS-1$ - for (int i = len - 1; i-- > 0; ) { - result = new File(result, ".."); //$NON-NLS-1$ - } - return result; - } - - /** - * Return a file that is a re-specification of the specified - * file, absolute to the specified directory. - * Linux/Unix/Mac: - * convertToAbsoluteFile(bar/baz.java, /foo) - * => /foo/bar/baz.java - * Windows: - * convertToAbsoluteFile(bar/baz.java, C:\foo) - * => C:\foo\bar\baz.java - * The file can be either a file or a directory; the directory - * *should* be a directory. - * If the file is already absolute, it will be returned unchanged. - * - * NB: This method has been tested on Windows and Linux, - * but not Mac (but the Mac is Unix-based these days, so - * it shouldn't be a problem...). - */ - public static File convertToAbsoluteFile(final File file, final File dir) { - // check whether the file is already absolute - if (file.isAbsolute()) { - return file; // return unchanged - } - return canonicalFile(new File(dir, file.getPath())); - } - - /** - * Return a file that is a re-specification of the specified - * file, absolute to the current working directory. - * Linux/Unix/Mac (CWD = /foo): - * convertToAbsoluteFile(bar/baz.java) - * => /foo/bar/baz.java - * Windows (CWD = C:\foo): - * convertToAbsoluteFile(bar/baz.java) - * => C:\foo\bar\baz.java - * The file can be either a file or a directory. - * If the file is already absolute, it will be returned unchanged. - * - * NB: This method has been tested on Windows and Linux, - * but not Mac (but the Mac is Unix-based these days, so - * it shouldn't be a problem...). - */ - public static File convertToAbsoluteFile(final File file) { - return convertToAbsoluteFile(file, currentWorkingDirectory()); - } - - - // ********** constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private FileTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FlaggedObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FlaggedObjectReference.java deleted file mode 100644 index 84d06c6552..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/FlaggedObjectReference.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Provide a container for passing an object that can be changed by the - * recipient. If the value is set at any time after construction of the - * reference, the reference is marked "set". This allows the client to - * detect whether the server/recipient ever set the value, even if it remains - * unchanged. This is particularly useful when the value can be set to - * null. - *

- * The reference can be set multiple times, but it can - * never be "unset" once it is "set". - */ -public class FlaggedObjectReference - extends SimpleObjectReference -{ - private volatile boolean set = false; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Create an object reference with the specified initial value. - */ - public FlaggedObjectReference(V value) { - super(value); - } - - /** - * Create an object reference with an initial value of - * null. - */ - public FlaggedObjectReference() { - super(); - } - - - // ********** set ********** - - public boolean isSet() { - return this.set; - } - - - // ********** overrides ********** - - @Override - public V setValue(V value) { - this.set = true; - return super.setValue(value); - } - - @Override - public String toString() { - String s = super.toString(); - return (this.set) ? '*' + s : s; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/HashBag.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/HashBag.java deleted file mode 100644 index d394bbb286..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/HashBag.java +++ /dev/null @@ -1,877 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.AbstractCollection; -import java.util.Collection; -import java.util.ConcurrentModificationException; -import java.util.Iterator; -import java.util.NoSuchElementException; - -/** - * This class implements the {@link Bag} interface, backed by a - * hash table. It makes no guarantees as to the iteration order of - * the bag's elements; in particular, it does not guarantee the order - * will remain constant over time. This class permits the null - * element. - *

- * This class offers constant time performance for the basic operations - * (add, remove, contains and - * size), assuming the hash function disperses the elements - * properly among the buckets. Iterating over this bag requires time - * proportional to the sum of the bag's size (the number of elements) plus the - * "capacity" of the backing hash table (the number of buckets). Thus, it is - * important not to set the initial capacity too high (or the load factor too - * low) if iteration performance is important. - *

- * Note that this implementation is not synchronized. If multiple - * threads access a bag concurrently, and at least one of the threads modifies - * the bag, it must be synchronized externally. This is typically - * accomplished by synchronizing on some object that naturally encapsulates - * the bag. If no such object exists, the bag should be "wrapped" using the - * Collections.synchronizedCollection method. This is - * best done at creation time, to prevent accidental unsynchronized access - * to the bag: - *

- * Collection c = Collections.synchronizedCollection(new HashBag(...));
- * 
- *

- * The iterators returned by this class's iterator method are - * fail-fast: if the bag is modified at any time after the iterator is - * created, in any way except through the iterator's own remove - * method, the iterator throws a {@link ConcurrentModificationException}. - * Thus, in the face of concurrent modification, the iterator fails quickly - * and cleanly, rather than risking arbitrary, non-deterministic behavior at - * an undetermined time in the future. - *

- * Note that the fail-fast behavior of an iterator cannot be guaranteed - * as it is, generally speaking, impossible to make any hard guarantees in the - * presence of unsynchronized concurrent modification. Fail-fast iterators - * throw ConcurrentModificationException on a best-effort basis. - * Therefore, it would be wrong to write a program that depended on this - * exception for its correctness: the fail-fast behavior of iterators - * should be used only to detect bugs. - * - * @param the type of elements maintained by the bag - * - * @see Collection - * @see Bag - * @see SynchronizedBag - * @see Collections#synchronizedCollection(Collection) - * @see IdentityHashBag - */ -public class HashBag - extends AbstractCollection - implements Bag, Cloneable, Serializable -{ - /** The hash table. Resized as necessary. Length MUST Always be a power of two. */ - transient Entry[] table; - - /** The total number of entries in the bag. */ - transient int size = 0; - - /** The number of UNIQUE entries in the bag. */ - transient int uniqueCount = 0; - - /** - * The hash table is rehashed when its size exceeds this threshold. (The - * value of this field is (int) (capacity * loadFactor).) - * - * @serial - */ - private int threshold; - - /** - * The load factor for the hash table. - * - * @serial - */ - private final float loadFactor; - - /** - * The number of times this bag has been structurally modified. - * Structural modifications are those that change the number of entries in - * the bag or otherwise modify its internal structure (e.g. rehash). - * This field is used to make iterators on this bag fail-fast. - * - * @see java.util.ConcurrentModificationException - */ - transient int modCount = 0; - - /** - * The default initial capacity - MUST be a power of two. - */ - private static final int DEFAULT_INITIAL_CAPACITY = 16; - - /** - * The maximum capacity, used if a higher value is implicitly specified - * by either of the constructors with arguments. - * MUST be a power of two <= (1 << 30). - */ - private static final int MAXIMUM_CAPACITY = 1 << 30; - - /** - * The load factor used when none specified in constructor. - */ - private static final float DEFAULT_LOAD_FACTOR = 0.75f; - - /** - * Construct a new, empty bag with the - * default capacity, which is 16, and load factor, which is 0.75. - */ - public HashBag() { - this(DEFAULT_INITIAL_CAPACITY); - } - - /** - * Construct a new, empty bag with the specified initial capacity - * and the default load factor, which is 0.75. - * - * @param initialCapacity the initial capacity - * @throws IllegalArgumentException if the initial capacity is less - * than zero - */ - public HashBag(int initialCapacity) { - this(initialCapacity, DEFAULT_LOAD_FACTOR, false); // false = do not validate parms - } - - /** - * Construct a new, empty bag with - * the specified initial capacity and load factor. - * - * @param initialCapacity the initial capacity - * @param loadFactor the load factor - * @throws IllegalArgumentException if the initial capacity is less - * than zero or if the load factor is non-positive - */ - public HashBag(int initialCapacity, float loadFactor) { - this(initialCapacity, loadFactor, true); // true = validate parms - } - - private HashBag(int initialCapacity, float loadFactor, boolean validateParms) { - super(); - int capacity = initialCapacity; - if (validateParms) { - if (capacity < 0) { - throw new IllegalArgumentException("Illegal Initial Capacity: " + capacity); //$NON-NLS-1$ - } - if (capacity > MAXIMUM_CAPACITY) { - capacity = MAXIMUM_CAPACITY; - } - if (loadFactor <= 0 || Float.isNaN(loadFactor)) { - throw new IllegalArgumentException("Illegal Load factor: " + loadFactor); //$NON-NLS-1$ - } - - // find a power of 2 >= 'initialCapacity' - capacity = 1; - while (capacity < initialCapacity) { - capacity <<= 1; - } - } - - this.loadFactor = loadFactor; - this.table = this.buildTable(capacity); - this.threshold = (int) (capacity * loadFactor); - } - - /** - * Construct a new bag containing the elements in the specified - * collection. The bag's load factor will be the default, which is 0.75, - * and its initial capacity will be sufficient to hold all the elements in - * the specified collection. - * - * @param c the collection whose elements are to be placed into this bag. - */ - public HashBag(Collection c) { - this(Math.max((int) (c.size() / DEFAULT_LOAD_FACTOR) + 1, DEFAULT_INITIAL_CAPACITY), DEFAULT_LOAD_FACTOR); - this.addAll_(c); - } - - /** - * Return a hash for the specified object. - */ - private int hash(Object o) { - return (o == null) ? 0 : this.tweakHash(o.hashCode()); - } - - /** - * Tweak the specified hash, to defend against poor implementations - * of {@link Object#hashCode()}. - */ - private int tweakHash(int h) { - h ^= (h >>> 20) ^ (h >>> 12); - return h ^ (h >>> 7) ^ (h >>> 4); - } - - /** - * Return the index for the specified hash. - */ - private int index(int hash) { - return this.index(hash, this.table.length); - } - - /** - * Return the index for the specified hash - * within a table with the specified length. - */ - int index(int hash, int length) { - return hash & (length - 1); - } - - /** - * Internal {@link #addAll(Collection)} for construction and cloning. - * (No check for re-hash; no change to mod count; no return value.) - */ - private void addAll_(Iterable c) { - for (E e : c) { - this.add_(e); - } - } - - /** - * Internal {@link #add(Object)} for construction and cloning. - * (No check for re-hash; no change to mod count; no return value.) - */ - private void add_(E o) { - this.add_(o, 1); - } - - /** - * Internal {@link #add(Object, int)} for construction, cloning, and serialization. - * (No check for re-hash; no change to mod count; no return value.) - */ - private void add_(E o, int cnt) { - int hash = this.hash(o); - int index = this.index(hash); - for (Entry e = this.table[index]; e != null; e = e.next) { - Object eo; - if ((e.hash == hash) && (((eo = e.object) == o) || ((o != null) && o.equals(eo)))) { - e.count += cnt; - this.size += cnt; - return; - } - } - - // create the new entry and put it in the table - Entry e = this.buildEntry(hash, o, cnt, this.table[index]); - this.table[index] = e; - this.size += cnt; - this.uniqueCount++; - } - - /** - * This implementation simply returns the maintained size. - */ - @Override - public int size() { - return this.size; - } - - /** - * This implementation simply compares the maintained size to zero. - */ - @Override - public boolean isEmpty() { - return this.size == 0; - } - - /** - * Search for the object's entry in the hash table by calculating - * the object's hash code and examining the entries in the corresponding hash - * table bucket. - */ - private Entry getEntry(Object o) { - int hash = this.hash(o); - for (Entry e = this.table[this.index(hash)]; e != null; e = e.next) { - Object eo; - if ((e.hash == hash) && (((eo = e.object) == o) || ((o != null) && o.equals(eo)))) { - return e; - } - } - return null; - } - - @Override - public boolean contains(Object o) { - return this.getEntry(o) != null; - } - - public int count(Object o) { - Entry e = this.getEntry(o); - return (e == null) ? 0 : e.count; - } - - /** - * Rehash the contents of the bag into a new hash table - * with a larger capacity. This method is called when the - * number of different elements in the bag exceeds its - * capacity and load factor. - */ - private void rehash() { - Entry[] oldTable = this.table; - int oldCapacity = oldTable.length; - - if (oldCapacity == MAXIMUM_CAPACITY) { - this.threshold = Integer.MAX_VALUE; - return; - } - - int newCapacity = 2 * oldCapacity; - Entry[] newTable = this.buildTable(newCapacity); - - for (int i = oldCapacity; i-- > 0; ) { - for (Entry old = oldTable[i]; old != null; ) { - Entry e = old; - old = old.next; - - int index = this.index(e.hash, newCapacity); - e.next = newTable[index]; - newTable[index] = e; - } - } - - this.table = newTable; - this.threshold = (int) (newCapacity * this.loadFactor); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - private Entry[] buildTable(int capacity) { - return new Entry[capacity]; - } - - /** - * This implementation searches for the object in the hash table by calculating - * the object's hash code and examining the entries in the corresponding hash - * table bucket. - */ - @Override - public boolean add(E o) { - return this.add(o, 1); - } - - /** - * This implementation searches for the object in the hash table by calculating - * the object's hash code and examining the entries in the corresponding hash - * table bucket. - */ - public boolean add(E o, int cnt) { - if (cnt <= 0) { - return false; - } - this.modCount++; - int hash = this.hash(o); - int index = this.index(hash); - - // if the object is already in the bag, simply bump its count - for (Entry e = this.table[index]; e != null; e = e.next) { - Object eo; - if ((e.hash == hash) && (((eo = e.object) == o) || ((o != null) && o.equals(eo)))) { - e.count += cnt; - this.size += cnt; - return true; - } - } - - // rehash the table if we are going to exceed the threshold - if (this.uniqueCount >= this.threshold) { - this.rehash(); - index = this.index(hash); // need to re-calculate the index - } - - // create the new entry and put it in the table - Entry e = this.buildEntry(hash, o, cnt, this.table[index]); - this.table[index] = e; - this.size += cnt; - this.uniqueCount++; - return true; - } - - // minimize scope of suppressed warnings - @SuppressWarnings({ "rawtypes", "unchecked" } ) - private Entry buildEntry(int hash, Object o, int cnt, Entry next) { - return new Entry(hash, (E) o, cnt, (Entry) next); - } - - /** - * This implementation searches for the object in the hash table by calculating - * the object's hash code and examining the entries in the corresponding hash - * table bucket. - */ - @Override - public boolean remove(Object o) { - return this.remove(o, 1); - } - - /** - * This implementation searches for the object in the hash table by calculating - * the object's hash code and examining the entries in the corresponding hash - * table bucket. - */ - public boolean remove(Object o, int cnt) { - if (cnt <= 0) { - return false; - } - int hash = this.hash(o); - int index = this.index(hash); - - for (Entry e = this.table[index], prev = null; e != null; prev = e, e = e.next) { - Object eo; - if ((e.hash == hash) && (((eo = e.object) == o) || ((o != null) && o.equals(eo)))) { - this.modCount++; - cnt = (cnt < e.count) ? cnt : e.count; - e.count -= cnt; - // if we are removing the last element(s), remove the entry from the table - if (e.count == 0) { - if (prev == null) { - this.table[index] = e.next; - } else { - prev.next = e.next; - } - this.uniqueCount--; - } - this.size -= cnt; - return true; - } - } - - return false; - } - - /** - * This implementation simply clears out all of the hash table buckets. - */ - @Override - public void clear() { - Entry[] tab = this.table; - this.modCount++; - for (int i = tab.length; i-- > 0; ) { - tab[i] = null; - } - this.size = 0; - this.uniqueCount = 0; - } - - /** - * Returns a shallow copy of this bag: the elements - * themselves are not cloned. - * - * @return a shallow copy of this bag. - */ - @Override - public HashBag clone() { - try { - @SuppressWarnings("unchecked") - HashBag clone = (HashBag) super.clone(); - clone.table = this.buildTable(this.table.length); - clone.size = 0; - clone.uniqueCount = 0; - clone.modCount = 0; - clone.addAll_(this); - return clone; - } catch (CloneNotSupportedException e) { - throw new InternalError(); - } - } - - - /** - * Hash table collision list entry. - */ - private static class Entry implements Bag.Entry { - final int hash; - final E object; - int count; - Entry next; - - Entry(int hash, E object, int count, Entry next) { - this.hash = hash; - this.object = object; - this.count = count; - this.next = next; - } - - // ***** Bag.Entry implementation - public E getElement() { - return this.object; - } - - public int getCount() { - return this.count; - } - - public int setCount(int count) { - if (count <= 0) { - throw new IllegalArgumentException("count must be greater than zero: " + count); //$NON-NLS-1$ - } - int old = this.count; - this.count = count; - return old; - } - - @Override - public boolean equals(Object o) { - if ( ! (o instanceof Bag.Entry)) { - return false; - } - @SuppressWarnings("rawtypes") - Bag.Entry e = (Bag.Entry) o; - return (this.count == e.getCount()) && - Tools.valuesAreEqual(this.object, e.getElement()); - } - - @Override - public int hashCode() { - E o = this.object; - return (o == null) ? 0 : (this.count * o.hashCode()); - } - - @Override - public String toString() { - return this.object + "=>" + this.count; //$NON-NLS-1$ - } - } - - - @Override - @SuppressWarnings("unchecked") - public Iterator iterator() { - return (this.size == 0) ? EMPTY_ITERATOR : new HashIterator(); - } - - @SuppressWarnings("unchecked") - public Iterator uniqueIterator() { - return (this.size == 0) ? EMPTY_ITERATOR : new UniqueIterator(); - } - - public int uniqueCount() { - return this.uniqueCount; - } - - @SuppressWarnings("unchecked") - public Iterator> entries() { - return (this.size == 0) ? EMPTY_ITERATOR : new EntryIterator(); - } - - - /** - * Empty iterator that does just about nothing. - */ - @SuppressWarnings("rawtypes") - private static final Iterator EMPTY_ITERATOR = new EmptyIterator(); - - @SuppressWarnings("rawtypes") - private static class EmptyIterator implements Iterator { - - EmptyIterator() { - super(); - } - - public boolean hasNext() { - return false; - } - - public Object next() { - throw new NoSuchElementException(); - } - - public void remove() { - throw new IllegalStateException(); - } - } - - - private class HashIterator implements Iterator { - private int index = HashBag.this.table.length; // start at the end of the table - private Entry nextEntry = null; - private int nextEntryCount = 0; - private Entry lastReturnedEntry = null; - - /** - * The modCount value that the iterator believes that the backing - * bag should have. If this expectation is violated, the iterator - * has detected a concurrent modification. - */ - private int expectedModCount = HashBag.this.modCount; - - HashIterator() { - super(); - } - - public boolean hasNext() { - Entry e = this.nextEntry; - int i = this.index; - Entry[] tab = HashBag.this.table; - // Use locals for faster loop iteration - while ((e == null) && (i > 0)) { - e = tab[--i]; // move backwards through the table - } - this.nextEntry = e; - this.index = i; - return e != null; - } - - public E next() { - if (HashBag.this.modCount != this.expectedModCount) { - throw new ConcurrentModificationException(); - } - Entry et = this.nextEntry; - int i = this.index; - Entry[] tab = HashBag.this.table; - // Use locals for faster loop iteration - while ((et == null) && (i > 0)) { - et = tab[--i]; // move backwards through the table - } - this.nextEntry = et; - this.index = i; - if (et == null) { - throw new NoSuchElementException(); - } - Entry e = this.lastReturnedEntry = this.nextEntry; - this.nextEntryCount++; - if (this.nextEntryCount == e.count) { - this.nextEntry = e.next; - this.nextEntryCount = 0; - } - return e.object; - } - - public void remove() { - if (this.lastReturnedEntry == null) { - throw new IllegalStateException(); - } - if (HashBag.this.modCount != this.expectedModCount) { - throw new ConcurrentModificationException(); - } - int slot = HashBag.this.index(this.lastReturnedEntry.hash, HashBag.this.table.length); - for (Entry e = HashBag.this.table[slot], prev = null; e != null; prev = e, e = e.next) { - if (e == this.lastReturnedEntry) { - HashBag.this.modCount++; - this.expectedModCount++; - e.count--; - if (e.count == 0) { - // if we are removing the last one, remove the entry from the table - if (prev == null) { - HashBag.this.table[slot] = e.next; - } else { - prev.next = e.next; - } - HashBag.this.uniqueCount--; - } else { - // slide back the count to account for the just-removed element - this.nextEntryCount--; - } - HashBag.this.size--; - this.lastReturnedEntry = null; // it cannot be removed again - return; - } - } - throw new ConcurrentModificationException(); - } - - } - - - private class EntryIterator implements Iterator> { - private int index = HashBag.this.table.length; // start at the end of the table - private Entry nextEntry = null; - private Entry lastReturnedEntry = null; - - /** - * The modCount value that the iterator believes that the backing - * bag should have. If this expectation is violated, the iterator - * has detected a concurrent modification. - */ - private int expectedModCount = HashBag.this.modCount; - - EntryIterator() { - super(); - } - - public boolean hasNext() { - Entry e = this.nextEntry; - int i = this.index; - Entry[] tab = HashBag.this.table; - // Use locals for faster loop iteration - while ((e == null) && (i > 0)) { - e = tab[--i]; // move backwards through the table - } - this.nextEntry = e; - this.index = i; - return e != null; - } - - public Entry next() { - if (HashBag.this.modCount != this.expectedModCount) { - throw new ConcurrentModificationException(); - } - Entry et = this.nextEntry; - int i = this.index; - Entry[] tab = HashBag.this.table; - // Use locals for faster loop iteration - while ((et == null) && (i > 0)) { - et = tab[--i]; // move backwards through the table - } - this.nextEntry = et; - this.index = i; - if (et == null) { - throw new NoSuchElementException(); - } - Entry e = this.lastReturnedEntry = this.nextEntry; - this.nextEntry = e.next; - return e; - } - - public void remove() { - if (this.lastReturnedEntry == null) { - throw new IllegalStateException(); - } - if (HashBag.this.modCount != this.expectedModCount) { - throw new ConcurrentModificationException(); - } - int slot = HashBag.this.index(this.lastReturnedEntry.hash, HashBag.this.table.length); - for (Entry e = HashBag.this.table[slot], prev = null; e != null; prev = e, e = e.next) { - if (e == this.lastReturnedEntry) { - HashBag.this.modCount++; - this.expectedModCount++; - // remove the entry from the table - if (prev == null) { - HashBag.this.table[slot] = e.next; - } else { - prev.next = e.next; - } - HashBag.this.uniqueCount--; - HashBag.this.size -= this.lastReturnedEntry.count; - this.lastReturnedEntry = null; // it cannot be removed again - return; - } - } - throw new ConcurrentModificationException(); - } - - } - - - private class UniqueIterator implements Iterator { - private EntryIterator entryIterator = new EntryIterator(); - - UniqueIterator() { - super(); - } - - public boolean hasNext() { - return this.entryIterator.hasNext(); - } - - public E next() { - return this.entryIterator.next().object; - } - - public void remove() { - this.entryIterator.remove(); - } - - } - - - @Override - public boolean equals(Object o) { - if (o == this) { - return true; - } - if ( ! (o instanceof Bag)) { - return false; - } - @SuppressWarnings("unchecked") - Bag b = (Bag) o; - if (b.size() != this.size()) { - return false; - } - if (b.uniqueCount() != this.uniqueCount()) { - return false; - } - for (Iterator> stream = b.entries(); stream.hasNext(); ) { - Bag.Entry entry = stream.next(); - if (entry.getCount() != this.count(entry.getElement())) { - return false; - } - } - return true; - } - - @Override - public int hashCode() { - int h = 0; - for (E o : this) { - if (o != null) { - h += o.hashCode(); - } - } - return h; - } - - /** - * Save the state of this bag to a stream (i.e. serialize it). - * - * @serialData Emit the capacity of the bag (int), - * followed by the number of unique elements in the bag (int), - * followed by all of the bag's elements (each an Object) and - * their counts (each an int), in no particular order. - */ - private void writeObject(java.io.ObjectOutputStream s) - throws java.io.IOException { - // write out the threshold, load factor, and any hidden stuff - s.defaultWriteObject(); - - // write out number of buckets - s.writeInt(this.table.length); - - // write out number of unique elements - s.writeInt(this.uniqueCount); - - // write out elements and counts (alternating) - if (this.uniqueCount > 0) { - for (Entry entry : this.table) { - while (entry != null) { - s.writeObject(entry.object); - s.writeInt(entry.count); - entry = entry.next; - } - } - } - } - - private static final long serialVersionUID = 1L; - - /** - * Reconstitute the bag from a stream (i.e. deserialize it). - */ - private void readObject(java.io.ObjectInputStream s) - throws java.io.IOException, ClassNotFoundException { - // read in the threshold, loadfactor, and any hidden stuff - s.defaultReadObject(); - - // read in number of buckets and allocate the bucket array - this.table = this.buildTable(s.readInt()); - - // read in number of unique elements - int unique = s.readInt(); - - // read the elements and counts, and put the elements in the bag - for (int i = 0; i < unique; i++) { - @SuppressWarnings("unchecked") - E element = (E) s.readObject(); - int elementCount = s.readInt(); - this.add_(element, elementCount); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IdentityHashBag.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IdentityHashBag.java deleted file mode 100644 index 7c2fbc4a5c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IdentityHashBag.java +++ /dev/null @@ -1,924 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.AbstractCollection; -import java.util.Collection; -import java.util.ConcurrentModificationException; -import java.util.Iterator; -import java.util.NoSuchElementException; - -/** - * This class implements the {@link Bag} interface with a - * hash table, using object-identity in place of object-equality when - * comparing elements. In other words, in an IdentityHashBag, - * two objects o1 and o2 are considered - * equal if and only if (o1 == o2). (In normal {@link Bag} - * implementations (like {@link HashBag}) two objects o1 - * and o2 are considered equal if and only if - * (o1 == null ? o2 == null : o1.equals(o2)).) - *

- * - * This class is not a general-purpose {@link Bag} - * implementation! While this class implements the {@link Bag} interface, it - * intentionally violates {@link Bag}'s general contract, which mandates the - * use of the equals method when comparing objects. This class is - * designed for use only in the rare cases wherein object-identity - * semantics are required. - * - *

- * This class makes no guarantees as to the iteration order of - * the bag's elements; in particular, it does not guarantee that the order - * will remain constant over time. This class permits the null - * element. - *

- * This class offers constant time performance for the basic operations - * (add, remove, contains and - * size), assuming the system identity hash function - * ({@link System#identityHashCode(Object)}) disperses elements properly - * among the buckets. Iterating over this bag requires time - * proportional to the sum of the bag's size (the number of elements) plus the - * "capacity" of the backing hash table (the number of buckets). Thus, it is - * important not to set the initial capacity too high (or the load factor too - * low) if iteration performance is important. - *

- * Note that this implementation is not synchronized. If multiple - * threads access a bag concurrently, and at least one of the threads modifies - * the bag, it must be synchronized externally. This is typically - * accomplished by synchronizing on some object that naturally encapsulates - * the bag. If no such object exists, the bag should be "wrapped" using the - * Collections.synchronizedCollection method. This is - * best done at creation time, to prevent accidental unsynchronized access - * to the bag: - *

- * Collection c = Collections.synchronizedCollection(new IdentityHashBag(...));
- * 
- *

- * The iterators returned by this class's iterator method are - * fail-fast: if the bag is modified at any time after the iterator is - * created, in any way except through the iterator's own remove - * method, the iterator throws a {@link ConcurrentModificationException}. - * Thus, in the face of concurrent modification, the iterator fails quickly - * and cleanly, rather than risking arbitrary, non-deterministic behavior at - * an undetermined time in the future. - *

- * Note that the fail-fast behavior of an iterator cannot be guaranteed - * as it is, generally speaking, impossible to make any hard guarantees in the - * presence of unsynchronized concurrent modification. Fail-fast iterators - * throw ConcurrentModificationException on a best-effort basis. - * Therefore, it would be wrong to write a program that depended on this - * exception for its correctness: the fail-fast behavior of iterators - * should be used only to detect bugs. - * - * @param the type of elements maintained by the bag - * - * @see Collection - * @see Bag - * @see SynchronizedBag - * @see Collections#synchronizedCollection(Collection) - * @see HashBag - */ -public class IdentityHashBag - extends AbstractCollection - implements Bag, Cloneable, Serializable -{ - /** The hash table. Resized as necessary. Length MUST Always be a power of two. */ - transient Entry[] table; - - /** The total number of entries in the bag. */ - transient int size = 0; - - /** The number of UNIQUE entries in the bag. */ - transient int uniqueCount = 0; - - /** - * The hash table is rehashed when its size exceeds this threshold. (The - * value of this field is (int) (capacity * loadFactor).) - * - * @serial - */ - private int threshold; - - /** - * The load factor for the hash table. - * - * @serial - */ - private final float loadFactor; - - /** - * The number of times this bag has been structurally modified. - * Structural modifications are those that change the number of entries in - * the bag or otherwise modify its internal structure (e.g. rehash). - * This field is used to make iterators on this bag fail-fast. - * - * @see java.util.ConcurrentModificationException - */ - transient int modCount = 0; - - /** - * The default initial capacity - MUST be a power of two. - */ - private static final int DEFAULT_INITIAL_CAPACITY = 16; - - /** - * The maximum capacity, used if a higher value is implicitly specified - * by either of the constructors with arguments. - * MUST be a power of two <= (1 << 30). - */ - private static final int MAXIMUM_CAPACITY = 1 << 30; - - /** - * The load factor used when none specified in constructor. - */ - private static final float DEFAULT_LOAD_FACTOR = 0.75f; - - /** - * Construct a new, empty bag with the - * default capacity, which is 16, and load factor, which is 0.75. - */ - public IdentityHashBag() { - this(DEFAULT_INITIAL_CAPACITY); - } - - /** - * Construct a new, empty bag with the specified initial capacity - * and the default load factor, which is 0.75. - * - * @param initialCapacity the initial capacity - * @throws IllegalArgumentException if the initial capacity is less - * than zero - */ - public IdentityHashBag(int initialCapacity) { - this(initialCapacity, DEFAULT_LOAD_FACTOR, false); // false = do not validate parms - } - - /** - * Construct a new, empty bag with - * the specified initial capacity and load factor. - * - * @param initialCapacity the initial capacity - * @param loadFactor the load factor - * @throws IllegalArgumentException if the initial capacity is less - * than zero or if the load factor is non-positive - */ - public IdentityHashBag(int initialCapacity, float loadFactor) { - this(initialCapacity, loadFactor, true); // true = validate parms - } - - private IdentityHashBag(int initialCapacity, float loadFactor, boolean validateParms) { - super(); - int capacity = initialCapacity; - if (validateParms) { - if (capacity < 0) { - throw new IllegalArgumentException("Illegal Initial Capacity: " + capacity); //$NON-NLS-1$ - } - if (capacity > MAXIMUM_CAPACITY) { - capacity = MAXIMUM_CAPACITY; - } - if (loadFactor <= 0 || Float.isNaN(loadFactor)) { - throw new IllegalArgumentException("Illegal Load factor: " + loadFactor); //$NON-NLS-1$ - } - - // find a power of 2 >= 'initialCapacity' - capacity = 1; - while (capacity < initialCapacity) { - capacity <<= 1; - } - } - - this.loadFactor = loadFactor; - this.table = this.buildTable(capacity); - this.threshold = (int) (capacity * loadFactor); - } - - /** - * Construct a new bag containing the elements in the specified - * collection. The bag's load factor will be the default, which is 0.75, - * and its initial capacity will be sufficient to hold all the elements in - * the specified collection. - * - * @param c the collection whose elements are to be placed into this bag. - */ - public IdentityHashBag(Collection c) { - this(Math.max((int) (c.size() / DEFAULT_LOAD_FACTOR) + 1, DEFAULT_INITIAL_CAPACITY), DEFAULT_LOAD_FACTOR); - this.addAll_(c); - } - - /** - * Return a index for the specified object. - */ - private int index(Object o) { - return this.index(this.hash(o)); - } - - /** - * Return a hash for the specified object. - */ - private int hash(Object o) { - return (o == null) ? 0 : this.tweakHash(System.identityHashCode(o)); - } - - /** - * Tweak the specified hash. - */ - private int tweakHash(int h) { - return h; -// h ^= (h >>> 20) ^ (h >>> 12); -// return h ^ (h >>> 7) ^ (h >>> 4); - } - - /** - * Return the index for the specified hash. - */ - private int index(int hash) { - return this.index(hash, this.table.length); - } - - /** - * Return the index for the specified hash - * within a table with the specified length. - */ - int index(int hash, int length) { - return hash & (length - 1); - } - - /** - * Internal {@link #addAll(Collection)} for construction and cloning. - * (No check for re-hash; no change to mod count; no return value.) - */ - private void addAll_(Iterable c) { - for (E e : c) { - this.add_(e); - } - } - - /** - * Internal {@link #add(Object)} for construction and cloning. - * (No check for re-hash; no change to mod count; no return value.) - */ - private void add_(E o) { - this.add_(o, 1); - } - - /** - * Internal {@link #add(Object, int)} for construction, cloning, and serialization. - * (No check for re-hash; no change to mod count; no return value.) - */ - private void add_(E o, int cnt) { - int hash = this.hash(o); - int index = this.index(hash); - for (Entry e = this.table[index]; e != null; e = e.next) { - if (e.object == o) { - e.count += cnt; - this.size += cnt; - return; - } - } - - // create the new entry and put it in the table - Entry e = this.buildEntry(hash, o, cnt, this.table[index]); - this.table[index] = e; - this.size += cnt; - this.uniqueCount++; - } - - /** - * This implementation simply returns the maintained size. - */ - @Override - public int size() { - return this.size; - } - - /** - * This implementation simply compares the maintained size to zero. - */ - @Override - public boolean isEmpty() { - return this.size == 0; - } - - /** - * Search for the object's entry in the hash table by calculating - * the object's identity hash code and examining the entries in the corresponding hash - * table bucket. - */ - private Entry getEntry(Object o) { - for (Entry e = this.table[this.index(o)]; e != null; e = e.next) { - if (e.object == o) { - return e; - } - } - return null; - } - - @Override - public boolean contains(Object o) { - return this.getEntry(o) != null; - } - - public int count(Object o) { - Entry e = this.getEntry(o); - return (e == null) ? 0 : e.count; - } - - /** - * Rehash the contents of the bag into a new hash table - * with a larger capacity. This method is called when the - * number of different elements in the bag exceeds its - * capacity and load factor. - */ - private void rehash() { - Entry[] oldTable = this.table; - int oldCapacity = oldTable.length; - - if (oldCapacity == MAXIMUM_CAPACITY) { - this.threshold = Integer.MAX_VALUE; - return; - } - - int newCapacity = 2 * oldCapacity; - Entry[] newTable = this.buildTable(newCapacity); - - for (int i = oldCapacity; i-- > 0; ) { - for (Entry old = oldTable[i]; old != null; ) { - Entry e = old; - old = old.next; - - int index = this.index(e.hash, newCapacity); - e.next = newTable[index]; - newTable[index] = e; - } - } - - this.table = newTable; - this.threshold = (int) (newCapacity * this.loadFactor); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - private Entry[] buildTable(int capacity) { - return new Entry[capacity]; - } - - /** - * This implementation searches for the object in the hash table by calculating - * the object's identity hash code and examining the entries in the corresponding hash - * table bucket. - */ - @Override - public boolean add(E o) { - return this.add(o, 1); - } - - /** - * This implementation searches for the object in the hash table by calculating - * the object's identity hash code and examining the entries in the corresponding hash - * table bucket. - */ - public boolean add(E o, int cnt) { - if (cnt <= 0) { - return false; - } - this.modCount++; - int hash = this.hash(o); - int index = this.index(hash); - - // if the object is already in the bag, simply bump its count - for (Entry e = this.table[index]; e != null; e = e.next) { - if (e.object == o) { - e.count += cnt; - this.size += cnt; - return true; - } - } - - // rehash the table if we are going to exceed the threshold - if (this.uniqueCount >= this.threshold) { - this.rehash(); - index = this.index(hash); // need to re-calculate the index - } - - // create the new entry and put it in the table - Entry e = this.buildEntry(hash, o, cnt, this.table[index]); - this.table[index] = e; - this.size += cnt; - this.uniqueCount++; - return true; - } - - // minimize scope of suppressed warnings - @SuppressWarnings({ "unchecked", "rawtypes" }) - private Entry buildEntry(int hash, Object o, int cnt, Entry next) { - return new Entry(hash, (E) o, cnt, (Entry) next); - } - - /** - * This implementation searches for the object in the hash table by calculating - * the object's identity hash code and examining the entries in the corresponding hash - * table bucket. - */ - @Override - public boolean remove(Object o) { - return this.remove(o, 1); - } - - /** - * This implementation searches for the object in the hash table by calculating - * the object's identity hash code and examining the entries in the corresponding hash - * table bucket. - */ - public boolean remove(Object o, int cnt) { - if (cnt <= 0) { - return false; - } - int index = this.index(o); - - for (Entry e = this.table[index], prev = null; e != null; prev = e, e = e.next) { - if (e.object == o) { - this.modCount++; - cnt = (cnt < e.count) ? cnt : e.count; - e.count -= cnt; - // if we are removing the last element(s), remove the entry from the table - if (e.count == 0) { - if (prev == null) { - this.table[index] = e.next; - } else { - prev.next = e.next; - } - this.uniqueCount--; - } - this.size -= cnt; - return true; - } - } - - return false; - } - - /** - * This implementation uses object-identity to determine whether the - * specified collection contains a particular element. - */ - @Override - public boolean removeAll(Collection c) { - return super.removeAll(new IdentityHashBag(c)); - } - - /** - * This implementation uses object-identity to determine whether the - * specified collection contains a particular element. - */ - @Override - public boolean retainAll(Collection c) { - return super.retainAll(new IdentityHashBag(c)); - } - - /** - * This implementation simply clears out all of the hash table buckets. - */ - @Override - public void clear() { - Entry[] tab = this.table; - this.modCount++; - for (int i = tab.length; i-- > 0; ) { - tab[i] = null; - } - this.size = 0; - this.uniqueCount = 0; - } - - /** - * Returns a shallow copy of this bag: the elements - * themselves are not cloned. - * - * @return a shallow copy of this bag. - */ - @Override - public IdentityHashBag clone() { - try { - @SuppressWarnings("unchecked") - IdentityHashBag clone = (IdentityHashBag) super.clone(); - clone.table = this.buildTable(this.table.length); - clone.size = 0; - clone.uniqueCount = 0; - clone.modCount = 0; - clone.addAll_(this); - return clone; - } catch (CloneNotSupportedException e) { - throw new InternalError(); - } - } - - - /** - * Hash table collision list entry. - */ - private static class Entry implements Bag.Entry { - final int hash; // cache the hash for re-hashes - final E object; - int count; - Entry next; - - Entry(int hash, E object, int count, Entry next) { - this.hash = hash; - this.object = object; - this.count = count; - this.next = next; - } - - // ***** Bag.Entry implementation - public E getElement() { - return this.object; - } - - public int getCount() { - return this.count; - } - - public int setCount(int count) { - if (count <= 0) { - throw new IllegalArgumentException("count must be greater than zero: " + count); //$NON-NLS-1$ - } - int old = this.count; - this.count = count; - return old; - } - - @Override - public boolean equals(Object o) { - if ( ! (o instanceof Bag.Entry)) { - return false; - } - @SuppressWarnings("rawtypes") - Bag.Entry e = (Bag.Entry) o; - return (this.object == e.getElement()) - && (this.count == e.getCount()); - } - - @Override - public int hashCode() { - E o = this.object; - return (o == null) ? 0 : (this.count * o.hashCode()); - } - - @Override - public String toString() { - return this.object + "=>" + this.count; //$NON-NLS-1$ - } - } - - - @Override - @SuppressWarnings("unchecked") - public Iterator iterator() { - return (this.size == 0) ? EMPTY_ITERATOR : new HashIterator(); - } - - @SuppressWarnings("unchecked") - public Iterator uniqueIterator() { - return (this.size == 0) ? EMPTY_ITERATOR : new UniqueIterator(); - } - - public int uniqueCount() { - return this.uniqueCount; - } - - @SuppressWarnings("unchecked") - public Iterator> entries() { - return (this.size == 0) ? EMPTY_ITERATOR : new EntryIterator(); - } - - - /** - * Empty iterator that does just about nothing. - */ - @SuppressWarnings("rawtypes") - private static final Iterator EMPTY_ITERATOR = new EmptyIterator(); - - @SuppressWarnings("rawtypes") - private static class EmptyIterator implements Iterator { - - EmptyIterator() { - super(); - } - - public boolean hasNext() { - return false; - } - - public Object next() { - throw new NoSuchElementException(); - } - - public void remove() { - throw new IllegalStateException(); - } - } - - - private class HashIterator implements Iterator { - private int index = IdentityHashBag.this.table.length; // start at the end of the table - private Entry nextEntry = null; - private int nextEntryCount = 0; - private Entry lastReturnedEntry = null; - - /** - * The modCount value that the iterator believes that the backing - * bag should have. If this expectation is violated, the iterator - * has detected a concurrent modification. - */ - private int expectedModCount = IdentityHashBag.this.modCount; - - HashIterator() { - super(); - } - - public boolean hasNext() { - Entry e = this.nextEntry; - int i = this.index; - Entry[] tab = IdentityHashBag.this.table; - // Use locals for faster loop iteration - while ((e == null) && (i > 0)) { - e = tab[--i]; // move backwards through the table - } - this.nextEntry = e; - this.index = i; - return e != null; - } - - public E next() { - if (IdentityHashBag.this.modCount != this.expectedModCount) { - throw new ConcurrentModificationException(); - } - Entry et = this.nextEntry; - int i = this.index; - Entry[] tab = IdentityHashBag.this.table; - // Use locals for faster loop iteration - while ((et == null) && (i > 0)) { - et = tab[--i]; // move backwards through the table - } - this.nextEntry = et; - this.index = i; - if (et == null) { - throw new NoSuchElementException(); - } - Entry e = this.lastReturnedEntry = this.nextEntry; - this.nextEntryCount++; - if (this.nextEntryCount == e.count) { - this.nextEntry = e.next; - this.nextEntryCount = 0; - } - return e.object; - } - - public void remove() { - if (this.lastReturnedEntry == null) { - throw new IllegalStateException(); - } - if (IdentityHashBag.this.modCount != this.expectedModCount) { - throw new ConcurrentModificationException(); - } - int slot = IdentityHashBag.this.index(this.lastReturnedEntry.hash, IdentityHashBag.this.table.length); - for (Entry e = IdentityHashBag.this.table[slot], prev = null; e != null; prev = e, e = e.next) { - if (e == this.lastReturnedEntry) { - IdentityHashBag.this.modCount++; - this.expectedModCount++; - e.count--; - if (e.count == 0) { - // if we are removing the last one, remove the entry from the table - if (prev == null) { - IdentityHashBag.this.table[slot] = e.next; - } else { - prev.next = e.next; - } - IdentityHashBag.this.uniqueCount--; - } else { - // slide back the count to account for the just-removed element - this.nextEntryCount--; - } - IdentityHashBag.this.size--; - this.lastReturnedEntry = null; // it cannot be removed again - return; - } - } - throw new ConcurrentModificationException(); - } - - } - - - private class EntryIterator implements Iterator> { - private int index = IdentityHashBag.this.table.length; // start at the end of the table - private Entry nextEntry = null; - private Entry lastReturnedEntry = null; - - /** - * The modCount value that the iterator believes that the backing - * bag should have. If this expectation is violated, the iterator - * has detected a concurrent modification. - */ - private int expectedModCount = IdentityHashBag.this.modCount; - - EntryIterator() { - super(); - } - - public boolean hasNext() { - Entry e = this.nextEntry; - int i = this.index; - Entry[] tab = IdentityHashBag.this.table; - // Use locals for faster loop iteration - while ((e == null) && (i > 0)) { - e = tab[--i]; // move backwards through the table - } - this.nextEntry = e; - this.index = i; - return e != null; - } - - public Entry next() { - if (IdentityHashBag.this.modCount != this.expectedModCount) { - throw new ConcurrentModificationException(); - } - Entry et = this.nextEntry; - int i = this.index; - Entry[] tab = IdentityHashBag.this.table; - // Use locals for faster loop iteration - while ((et == null) && (i > 0)) { - et = tab[--i]; // move backwards through the table - } - this.nextEntry = et; - this.index = i; - if (et == null) { - throw new NoSuchElementException(); - } - Entry e = this.lastReturnedEntry = this.nextEntry; - this.nextEntry = e.next; - return e; - } - - public void remove() { - if (this.lastReturnedEntry == null) { - throw new IllegalStateException(); - } - if (IdentityHashBag.this.modCount != this.expectedModCount) { - throw new ConcurrentModificationException(); - } - int slot = IdentityHashBag.this.index(this.lastReturnedEntry.hash, IdentityHashBag.this.table.length); - for (Entry e = IdentityHashBag.this.table[slot], prev = null; e != null; prev = e, e = e.next) { - if (e == this.lastReturnedEntry) { - IdentityHashBag.this.modCount++; - this.expectedModCount++; - // remove the entry from the table - if (prev == null) { - IdentityHashBag.this.table[slot] = e.next; - } else { - prev.next = e.next; - } - IdentityHashBag.this.uniqueCount--; - IdentityHashBag.this.size -= this.lastReturnedEntry.count; - this.lastReturnedEntry = null; // it cannot be removed again - return; - } - } - throw new ConcurrentModificationException(); - } - - } - - - private class UniqueIterator implements Iterator { - private EntryIterator entryIterator = new EntryIterator(); - - UniqueIterator() { - super(); - } - - public boolean hasNext() { - return this.entryIterator.hasNext(); - } - - public E next() { - return this.entryIterator.next().object; - } - - public void remove() { - this.entryIterator.remove(); - } - - } - - - @Override - public boolean equals(Object o) { - if (o == this) { - return true; - } else if (o instanceof IdentityHashBag) { - @SuppressWarnings("unchecked") - IdentityHashBag b = (IdentityHashBag) o; - if (b.size() != this.size()) { - return false; - } - if (b.uniqueCount() != this.uniqueCount()) { - return false; - } - for (Iterator> stream = b.entries(); stream.hasNext(); ) { - Bag.Entry entry = stream.next(); - if (entry.getCount() != this.count(entry.getElement())) { - return false; - } - } - return true; - } else { - return this.equals_(o); - } -// } else if (o instanceof Bag) { -// // hmmm... -// return new HashBag(this).equals(o); -// } else { -// return false; -// } - } - - private boolean equals_(Object o) { - // hmmm... - return (o instanceof Bag) && - new HashBag(this).equals(o); - } - - @Override - public int hashCode() { - int h = 0; - for (E o : this) { - h += System.identityHashCode(o); - } - return h; - } - - /** - * Save the state of this bag to a stream (i.e. serialize it). - * - * @serialData Emit the capacity of the bag (int), - * followed by the number of unique elements in the bag (int), - * followed by all of the bag's elements (each an Object) and - * their counts (each an int), in no particular order. - */ - private void writeObject(java.io.ObjectOutputStream s) - throws java.io.IOException { - // write out the threshold, load factor, and any hidden stuff - s.defaultWriteObject(); - - // write out number of buckets - s.writeInt(this.table.length); - - // write out number of unique elements - s.writeInt(this.uniqueCount); - - // write out elements and counts (alternating) - if (this.uniqueCount > 0) { - for (Entry entry : this.table) { - while (entry != null) { - s.writeObject(entry.object); - s.writeInt(entry.count); - entry = entry.next; - } - } - } - } - - private static final long serialVersionUID = 1L; - - /** - * Reconstitute the bag from a stream (i.e. deserialize it). - */ - private void readObject(java.io.ObjectInputStream s) - throws java.io.IOException, ClassNotFoundException { - // read in the threshold, loadfactor, and any hidden stuff - s.defaultReadObject(); - - // read in number of buckets and allocate the bucket array - this.table = this.buildTable(s.readInt()); - - // read in number of unique elements - int unique = s.readInt(); - - // read the elements and counts, and put the elements in the bag - for (int i = 0; i < unique; i++) { - @SuppressWarnings("unchecked") - E element = (E) s.readObject(); - int elementCount = s.readInt(); - this.add_(element, elementCount); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IntReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IntReference.java deleted file mode 100644 index ad989b4fda..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/IntReference.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Interface for a container for passing an integer that can be changed by - * the recipient. - */ -public interface IntReference - extends ReadOnlyIntReference -{ - /** - * Set the int value. - * Return the previous value. - */ - int setValue(int value); - - /** - * Set the int value to zero. - * Return the previous value. - */ - int setZero(); - - /** - * Increment and return the int value. - */ - int increment(); - - /** - * Decrement and return the int value. - */ - int decrement(); -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCTools.java deleted file mode 100644 index 1663a8e493..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCTools.java +++ /dev/null @@ -1,349 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.sql.Types; -import java.util.HashMap; -import org.eclipse.jpt.common.utility.JavaType; - -/** - * Helper methods for dealing with the JDBC API. - */ -public final class JDBCTools { - - - /** - * Return the JDBC type corresponding to the specified class. - * @see java.sql.Types - */ - public static JDBCType jdbcTypeForClassNamed(String className) { - JavaToJDBCTypeMapping mapping = javaToJDBCTypeMapping(className); - return (mapping == null) ? DEFAULT_JDBC_TYPE : mapping.getJDBCType(); - } - - /** - * Return the JDBC type corresponding to the specified class. - * @see java.sql.Types - */ - public static JDBCType jdbcTypeFor(Class javaClass) { - return jdbcTypeForClassNamed(javaClass.getName()); - } - - /** - * Return the JDBC type corresponding to the specified class. - * @see java.sql.Types - */ - public static JDBCType jdbcTypeFor(JavaType javaType) { - return jdbcTypeForClassNamed(javaType.getJavaClassName()); - } - - /** - * Return the Java type corresponding to the specified JDBC type. - * @see java.sql.Types - */ - public static JavaType javaTypeForJDBCTypeNamed(String jdbcTypeName) { - JDBCToJavaTypeMapping mapping = jdbcToJavaTypeMapping(jdbcTypeName); - return (mapping == null) ? DEFAULT_JAVA_TYPE : mapping.getJavaType(); - } - - /** - * Return the Java type corresponding to the specified JDBC type. - * @see java.sql.Types - */ - public static JavaType javaTypeFor(JDBCType jdbcType) { - return javaTypeForJDBCTypeNamed(jdbcType.name()); - } - - /** - * Return the Java type corresponding to the specified JDBC type. - * @see java.sql.Types - */ - public static JavaType javaTypeForJDBCTypeCode(int jdbcTypeCode) { - return javaTypeFor(JDBCType.type(jdbcTypeCode)); - } - - - // ********** internal stuff ********** - - - // ********** JDBC => Java ********** - - /** - * JDBC => Java type mappings, keyed by JDBC type name (e.g. "VARCHAR") - */ - private static HashMap JDBC_TO_JAVA_TYPE_MAPPINGS; // pseudo 'final' - lazy-initialized - private static final JavaType DEFAULT_JAVA_TYPE = new SimpleJavaType(java.lang.Object.class); // TODO Object is the default? - - - private static JDBCToJavaTypeMapping jdbcToJavaTypeMapping(String jdbcTypeName) { - return jdbcToJavaTypeMappings().get(jdbcTypeName); - } - - private static synchronized HashMap jdbcToJavaTypeMappings() { - if (JDBC_TO_JAVA_TYPE_MAPPINGS == null) { - JDBC_TO_JAVA_TYPE_MAPPINGS = buildJDBCToJavaTypeMappings(); - } - return JDBC_TO_JAVA_TYPE_MAPPINGS; - } - - private static HashMap buildJDBCToJavaTypeMappings() { - HashMap mappings = new HashMap(); - addJDBCToJavaTypeMappingsTo(mappings); - return mappings; - } - - /** - * hard code the default mappings from the JDBC types to the - * appropriate Java types - * @see java.sql.Types - * see "JDBC 3.0 Specification" Appendix B - */ - private static void addJDBCToJavaTypeMappingsTo(HashMap mappings) { - addJDBCToJavaTypeMappingTo(Types.ARRAY, java.sql.Array.class, mappings); - addJDBCToJavaTypeMappingTo(Types.BIGINT, long.class, mappings); - addJDBCToJavaTypeMappingTo(Types.BINARY, byte[].class, mappings); - addJDBCToJavaTypeMappingTo(Types.BIT, boolean.class, mappings); - addJDBCToJavaTypeMappingTo(Types.BLOB, java.sql.Blob.class, mappings); - addJDBCToJavaTypeMappingTo(Types.BOOLEAN, boolean.class, mappings); - addJDBCToJavaTypeMappingTo(Types.CHAR, java.lang.String.class, mappings); - addJDBCToJavaTypeMappingTo(Types.CLOB, java.sql.Clob.class, mappings); - addJDBCToJavaTypeMappingTo(Types.DATALINK, java.net.URL.class, mappings); - addJDBCToJavaTypeMappingTo(Types.DATE, java.sql.Date.class, mappings); - addJDBCToJavaTypeMappingTo(Types.DECIMAL, java.math.BigDecimal.class, mappings); - addJDBCToJavaTypeMappingTo(Types.DISTINCT, java.lang.Object.class, mappings); // ??? - addJDBCToJavaTypeMappingTo(Types.DOUBLE, double.class, mappings); - addJDBCToJavaTypeMappingTo(Types.FLOAT, double.class, mappings); - addJDBCToJavaTypeMappingTo(Types.INTEGER, int.class, mappings); - addJDBCToJavaTypeMappingTo(Types.JAVA_OBJECT, java.lang.Object.class, mappings); // ??? - addJDBCToJavaTypeMappingTo(Types.LONGVARBINARY, byte[].class, mappings); - addJDBCToJavaTypeMappingTo(Types.LONGVARCHAR, java.lang.String.class, mappings); - // not sure why this is defined in java.sql.Types -// addJDBCToJavaTypeMappingTo(Types.NULL, java.lang.Object.class, mappings); - addJDBCToJavaTypeMappingTo(Types.NUMERIC, java.math.BigDecimal.class, mappings); - addJDBCToJavaTypeMappingTo(Types.OTHER, java.lang.Object.class, mappings); // ??? - addJDBCToJavaTypeMappingTo(Types.REAL, float.class, mappings); - addJDBCToJavaTypeMappingTo(Types.REF, java.sql.Ref.class, mappings); - addJDBCToJavaTypeMappingTo(Types.SMALLINT, short.class, mappings); - addJDBCToJavaTypeMappingTo(Types.STRUCT, java.sql.Struct.class, mappings); - addJDBCToJavaTypeMappingTo(Types.TIME, java.sql.Time.class, mappings); - addJDBCToJavaTypeMappingTo(Types.TIMESTAMP, java.sql.Timestamp.class, mappings); - addJDBCToJavaTypeMappingTo(Types.TINYINT, byte.class, mappings); - addJDBCToJavaTypeMappingTo(Types.VARBINARY, byte[].class, mappings); - addJDBCToJavaTypeMappingTo(Types.VARCHAR, java.lang.String.class, mappings); - } - - private static void addJDBCToJavaTypeMappingTo(int jdbcTypeCode, Class javaClass, HashMap mappings) { - // check for duplicates - JDBCType jdbcType = JDBCType.type(jdbcTypeCode); - Object prev = mappings.put(jdbcType.name(), buildJDBCToJavaTypeMapping(jdbcType, javaClass)); - if (prev != null) { - throw new IllegalArgumentException("duplicate JDBC type: " + jdbcType.name()); //$NON-NLS-1$ - } - } - - private static JDBCToJavaTypeMapping buildJDBCToJavaTypeMapping(JDBCType jdbcType, Class javaClass) { - return new JDBCToJavaTypeMapping(jdbcType, new SimpleJavaType(javaClass)); - } - - - // ********** Java => JDBC ********** - - /** - * Java => JDBC type mappings, keyed by Java class name (e.g. "java.lang.Object") - */ - private static HashMap JAVA_TO_JDBC_TYPE_MAPPINGS; // pseudo 'final' - lazy-initialized - private static final JDBCType DEFAULT_JDBC_TYPE = JDBCType.type(Types.VARCHAR); // TODO VARCHAR is the default? - - - private static JavaToJDBCTypeMapping javaToJDBCTypeMapping(String className) { - return javaToJDBCTypeMappings().get(className); - } - - private static synchronized HashMap javaToJDBCTypeMappings() { - if (JAVA_TO_JDBC_TYPE_MAPPINGS == null) { - JAVA_TO_JDBC_TYPE_MAPPINGS = buildJavaToJDBCTypeMappings(); - } - return JAVA_TO_JDBC_TYPE_MAPPINGS; - } - - private static HashMap buildJavaToJDBCTypeMappings() { - HashMap mappings = new HashMap(); - addJavaToJDBCTypeMappingsTo(mappings); - return mappings; - } - - /** - * hard code the default mappings from the Java types to the - * appropriate JDBC types - * @see java.sql.Types - * see "JDBC 3.0 Specification" Appendix B - */ - private static void addJavaToJDBCTypeMappingsTo(HashMap mappings) { - // primitives - addJavaToJDBCTypeMappingTo(boolean.class, Types.BIT, mappings); - addJavaToJDBCTypeMappingTo(byte.class, Types.TINYINT, mappings); - addJavaToJDBCTypeMappingTo(double.class, Types.DOUBLE, mappings); - addJavaToJDBCTypeMappingTo(float.class, Types.REAL, mappings); - addJavaToJDBCTypeMappingTo(int.class, Types.INTEGER, mappings); - addJavaToJDBCTypeMappingTo(long.class, Types.BIGINT, mappings); - addJavaToJDBCTypeMappingTo(short.class, Types.SMALLINT, mappings); - - // reference classes - addJavaToJDBCTypeMappingTo(java.lang.Boolean.class, Types.BIT, mappings); - addJavaToJDBCTypeMappingTo(java.lang.Byte.class, Types.TINYINT, mappings); - addJavaToJDBCTypeMappingTo(java.lang.Double.class, Types.DOUBLE, mappings); - addJavaToJDBCTypeMappingTo(java.lang.Float.class, Types.REAL, mappings); - addJavaToJDBCTypeMappingTo(java.lang.Integer.class, Types.INTEGER, mappings); - addJavaToJDBCTypeMappingTo(java.lang.Long.class, Types.BIGINT, mappings); - addJavaToJDBCTypeMappingTo(java.lang.Short.class, Types.SMALLINT, mappings); - addJavaToJDBCTypeMappingTo(java.lang.String.class, Types.VARCHAR, mappings); - addJavaToJDBCTypeMappingTo(java.math.BigDecimal.class, Types.NUMERIC, mappings); - addJavaToJDBCTypeMappingTo(java.net.URL.class, Types.DATALINK, mappings); - addJavaToJDBCTypeMappingTo(java.sql.Array.class, Types.ARRAY, mappings); - addJavaToJDBCTypeMappingTo(java.sql.Blob.class, Types.BLOB, mappings); - addJavaToJDBCTypeMappingTo(java.sql.Clob.class, Types.CLOB, mappings); - addJavaToJDBCTypeMappingTo(java.sql.Date.class, Types.DATE, mappings); - addJavaToJDBCTypeMappingTo(java.sql.Ref.class, Types.REF, mappings); - addJavaToJDBCTypeMappingTo(java.sql.Struct.class, Types.STRUCT, mappings); - addJavaToJDBCTypeMappingTo(java.sql.Time.class, Types.TIME, mappings); - addJavaToJDBCTypeMappingTo(java.sql.Timestamp.class, Types.TIMESTAMP, mappings); - - // arrays - addJavaToJDBCTypeMappingTo(byte[].class, Types.VARBINARY, mappings); - addJavaToJDBCTypeMappingTo(java.lang.Byte[].class, Types.VARBINARY, mappings); - } - - private static void addJavaToJDBCTypeMappingTo(Class javaClass, int jdbcTypeCode, HashMap mappings) { - // check for duplicates - Object prev = mappings.put(javaClass.getName(), buildJavaToJDBCTypeMapping(javaClass, jdbcTypeCode)); - if (prev != null) { - throw new IllegalArgumentException("duplicate Java class: " + ((JavaToJDBCTypeMapping) prev).getJavaType().declaration()); //$NON-NLS-1$ - } - } - - private static JavaToJDBCTypeMapping buildJavaToJDBCTypeMapping(Class javaClass, int jdbcTypeCode) { - return new JavaToJDBCTypeMapping(new SimpleJavaType(javaClass), JDBCType.type(jdbcTypeCode)); - } - - - // ********** constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private JDBCTools() { - super(); - throw new UnsupportedOperationException(); - } - - - // ********** member classes ********** - - /** - * JDBC => Java - */ - static class JDBCToJavaTypeMapping { - private final JDBCType jdbcType; - private final JavaType javaType; - - JDBCToJavaTypeMapping(JDBCType jdbcType, JavaType javaType) { - super(); - this.jdbcType = jdbcType; - this.javaType = javaType; - } - - public JDBCType getJDBCType() { - return this.jdbcType; - } - - public JavaType getJavaType() { - return this.javaType; - } - - public boolean maps(int jdbcTypeCode) { - return this.jdbcType.code() == jdbcTypeCode; - } - - public boolean maps(String jdbcTypeName) { - return this.jdbcType.name().equals(jdbcTypeName); - } - - public boolean maps(JDBCType type) { - return this.jdbcType == type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - this.appendTo(sb); - return sb.toString(); - } - - public void appendTo(StringBuilder sb) { - this.jdbcType.appendTo(sb); - sb.append(" => "); //$NON-NLS-1$ - this.javaType.appendDeclarationTo(sb); - } - - } - - /** - * Java => JDBC - */ - static class JavaToJDBCTypeMapping { - private final JavaType javaType; - private final JDBCType jdbcType; - - JavaToJDBCTypeMapping(JavaType javaType, JDBCType jdbcType) { - super(); - this.javaType = javaType; - this.jdbcType = jdbcType; - } - - public JavaType getJavaType() { - return this.javaType; - } - - public JDBCType getJDBCType() { - return this.jdbcType; - } - - public boolean maps(JavaType jt) { - return this.javaType.equals(jt); - } - - public boolean maps(String elementTypeName, int arrayDepth) { - return this.javaType.equals(elementTypeName, arrayDepth); - } - - public boolean maps(String javaClassName) { - return this.javaType.describes(javaClassName); - } - - public boolean maps(Class javaClass) { - return this.javaType.describes(javaClass); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - this.appendTo(sb); - return sb.toString(); - } - - public void appendTo(StringBuilder sb) { - this.javaType.appendDeclarationTo(sb); - sb.append(" => "); //$NON-NLS-1$ - this.jdbcType.appendTo(sb); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCType.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCType.java deleted file mode 100644 index 96fd283a7d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/JDBCType.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.lang.reflect.Field; -import java.sql.Types; - -/** - * Associate the Java constant and the JDBC type name. - * These are derived from java.sql.Types. - * - * @see java.sql.Types - */ -public final class JDBCType - implements Cloneable, Serializable -{ - - /** - * the constant name (e.g. VARCHAR) - */ - private final String name; - - /** - * the JDBC code used by JDBC drivers - */ - private final int code; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a JDBC type with the specified name and type code. - * This is private because all the possible JDBC types are built and - * stored in the static array TYPES. - * @see #types() - */ - private JDBCType(String name, int code) { - super(); - this.name = name; - this.code = code; - } - - - // ********** accessors ********** - - /** - * Return the name of the type, as defined in java.sql.Types. - */ - public String name() { - return this.name; - } - - - /** - * Return the type code, as defined in java.sql.Types. - */ - public int code() { - return this.code; - } - - - // ********** printing and displaying ********** - - public void appendTo(StringBuilder sb) { - sb.append(this.name); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(this.getClass().getSimpleName()); - sb.append('('); - this.appendTo(sb); - sb.append(')'); - return sb.toString(); - } - - @Override - public JDBCType clone() { - try { - return (JDBCType) super.clone(); - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - - // ********** static stuff ********** - - /** - * all the JDBC type defined in java.sql.Types - */ - private static JDBCType[] TYPES; // pseudo 'final' - lazy-initialized - - - public synchronized static JDBCType[] types() { - if (TYPES == null) { - TYPES = buildTypes(); - } - return TYPES; - } - - /** - * Return the JDBC type for the specified type code (e.g. Types.VARCHAR). - * @see java.sql.Types - */ - public static JDBCType type(int code) { - JDBCType[] types = types(); - for (int i = types.length; i-- > 0; ) { - if (types[i].code() == code) { - return types[i]; - } - } - throw new IllegalArgumentException("invalid JDBC type code: " + code); //$NON-NLS-1$ - } - - /** - * Return the JDBC type for the specified type name (e.g. "VARCHAR"). - * @see java.sql.Types - */ - public static JDBCType type(String name) { - JDBCType[] types = types(); - for (int i = types.length; i-- > 0; ) { - if (types[i].name().equals(name)) { - return types[i]; - } - } - throw new IllegalArgumentException("invalid JDBC type name: " + name); //$NON-NLS-1$ - } - - /** - * build up the JDBC types via reflection - * @see java.sql.Types - */ - private static JDBCType[] buildTypes() { - Field[] fields = Types.class.getDeclaredFields(); - int len = fields.length; - JDBCType[] types = new JDBCType[len]; - for (int i = len; i-- > 0; ) { - String name = fields[i].getName(); - int code; - try { - code = ((Integer) fields[i].get(null)).intValue(); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex); // shouldn't happen... - } - types[i] = new JDBCType(name, code); - } - return types; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/KeyedSet.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/KeyedSet.java deleted file mode 100644 index cf471f4bb8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/KeyedSet.java +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * This class maintains a {@link Set} of items, and a {@link Map} of keys to those items. - * An item may have multiple keys, but an item may have no keys and remain in the set. Once an - * item's last key is removed, the item is also removed. - */ -public class KeyedSet { - - private final Set itemSet; - private final Set unmodifiableItemSet; - private final Map map; - - - public KeyedSet() { - this.itemSet = new HashSet(); - this.unmodifiableItemSet = Collections.unmodifiableSet(this.itemSet); - this.map = new HashMap(); - } - - /** - * Return an unmodifiable representation of the set of items. - */ - public Set getItemSet() { - return this.unmodifiableItemSet; - } - - /** - * Return the item stored under the given key. - */ - public V getItem(K key) { - return this.map.get(key); - } - - /** - * Return whether an item is stored under the given key. - */ - public boolean containsKey(K key) { - return this.map.containsKey(key); - } - - /** - * Return whether the item is stored under *any* key. - */ - public boolean containsItem(V item) { - return this.itemSet.contains(item); - } - - /** - * Add an item to be stored under the given key. - * The item must not already be stored. - */ - public void addItem(K key, V item) { - addItem(item); - addKey(key, item); - } - - private void addItem(V item) { - if (item == null) { - throw new IllegalArgumentException(); - } - this.itemSet.add(item); - } - - /** - * Add an additional key to an item already stored under an alternate key. - */ - public void addKey(K key, V item) { - if (key == null || item == null) { - throw new IllegalArgumentException(); - } - if (! this.itemSet.contains(item)) { - throw new IllegalArgumentException(); - } - this.map.put(key, item); - } - - /** - * Remove the given item and remove any key-to-item mapping it may have. - */ - public boolean removeItem(V item) { - if (this.itemSet.remove(item)) { - for (Map.Entry entry : CollectionTools.collection(this.map.entrySet())) { - if (entry.getValue() == item) { - map.remove(entry.getKey()); - } - } - return true; - } - return false; - } - - /** - * Remove the key-to-item mapping for the given key. - * If it is the last key to the item, also remove the item. - */ - public boolean removeKey(K key) { - final V item = this.map.get(key); - if (item != null) { - this.map.remove(key); - boolean otherKey = false; - for (Map.Entry entry : CollectionTools.collection(this.map.entrySet())) { - if (otherKey | entry.getValue() == item) { - otherKey = true; - } - } - if (! otherKey) { - removeItem(item); - } - return true; - } - return false; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/LazyReadOnlyObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/LazyReadOnlyObjectReference.java deleted file mode 100644 index 84d01e34c3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/LazyReadOnlyObjectReference.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import org.eclipse.jpt.common.utility.ReadOnlyObjectReference; - -/** - * Provide a thread-safe, reasonably performing container for holding an - * object that will be "lazy-initialized" upon its first reference. This is - * also useful for preventing direct references (accidental or otherwise) to - * lazy-initialized state. - *

- * There are some penalties:

    - *
  • The reference's use of generics will require casting (and the requisite - * VM testing) with every access - *
  • If the value calculated during lazy initialization is null, - * access will be synchronized every time. - *
- * @see SimpleObjectReference - * @see SynchronizedObject - */ -public abstract class LazyReadOnlyObjectReference - implements ReadOnlyObjectReference, Cloneable, Serializable -{ - /** Backing value. */ - private volatile V value = null; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Create a lazy object reference. - */ - public LazyReadOnlyObjectReference() { - super(); - } - - - // ********** value ********** - - /** - * In JDK 5 and later, this "double-checked locking" idiom works as long - * as the instance variable is marked volatile. - */ - public V getValue() { - V result = this.value; - if (result == null) { - synchronized (this) { - result = this.value; - if (result == null) { - this.value = result = this.buildValue(); - } - } - } - return result; - } - - protected abstract V buildValue(); - - public boolean valueEquals(Object object) { - return Tools.valuesAreEqual(this.getValue(), object); - } - - public boolean valueNotEqual(Object object) { - return Tools.valuesAreDifferent(this.getValue(), object); - } - - public boolean isNull() { - return this.getValue() == null; - } - - public boolean isNotNull() { - return this.getValue() != null; - } - - - // ********** standard methods ********** - - @Override - public LazyReadOnlyObjectReference clone() { - try { - @SuppressWarnings("unchecked") - LazyReadOnlyObjectReference clone = (LazyReadOnlyObjectReference) super.clone(); - return clone; - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - /** - * This method will not trigger the "lazy-initialization". - */ - @Override - public String toString() { - return '[' + String.valueOf(this.value) + ']'; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ListenerList.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ListenerList.java deleted file mode 100644 index 632b3fd5df..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ListenerList.java +++ /dev/null @@ -1,171 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; -import java.util.EventListener; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; - -/** - * Maintain a thread-safe list of listeners that does not allow adding - * duplicate listeners or removing non-listeners. - */ -public class ListenerList - implements Serializable -{ - /** - * We can mark this volatile and not synchronize the read methods because - * we never change the contents of the array. - */ - private transient volatile L[] listeners; - - private static final long serialVersionUID = 1L; - - - /** - * Construct a listener list for listeners of the specified type. - */ - public ListenerList(Class listenerClass) { - super(); - this.listeners = this.buildListenerArray(listenerClass, 0); - } - - /** - * Construct a listener list for listeners of the specified type. - * Add the specified listener to the list. - */ - public ListenerList(Class listenerClass, L listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listeners = this.buildListenerArray(listenerClass, 1); - this.listeners[0] = listener; - } - - @SuppressWarnings("unchecked") - private L[] buildListenerArray(Class listenerClass, int length) { - return (L[]) Array.newInstance(listenerClass, length); - } - - /** - * Return the listeners. - */ - public Iterable getListeners() { - return new ArrayIterable(this.listeners); - } - - /** - * Return the number of listeners. - */ - public int size() { - return this.listeners.length; - } - - /** - * Return whether the listener list has no listeners. - */ - public boolean isEmpty() { - return this.listeners.length == 0; - } - - /** - * Add the specified listener to the listener list. - * Duplicate listeners are not allowed. - */ - public synchronized void add(L listener) { - if (listener == null) { - throw new NullPointerException(); - } - if (ArrayTools.contains(this.listeners, listener)) { - throw new IllegalArgumentException("duplicate listener: " + listener); //$NON-NLS-1$ - } - this.listeners = ArrayTools.add(this.listeners, listener); - } - - /** - * Remove the specified listener from the listener list. - * Removing a listener that is not on the list is not allowed. - */ - public synchronized void remove(L listener) { - if (listener == null) { - throw new NullPointerException(); - } - int index = ArrayTools.indexOf(this.listeners, listener); - if (index == -1) { - throw new IllegalArgumentException("unregistered listener: " + listener); //$NON-NLS-1$ - } - this.listeners = ArrayTools.removeElementAtIndex(this.listeners, index); - } - - /** - * Clear the listener list. - */ - public synchronized void clear() { - this.listeners = ArrayTools.clear(this.listeners); - } - - /** - * Return the type of listeners held by the listener list. - */ - @SuppressWarnings("unchecked") - public Class getListenerType() { - return (Class) this.listeners.getClass().getComponentType(); - } - - @Override - public String toString() { - return Arrays.toString(this.listeners); - } - - - // ********** serialization ********** - - /** - * Silently drop any non-serializable listeners. - */ - private synchronized void writeObject(ObjectOutputStream s) throws IOException { - // write out any hidden stuff - s.defaultWriteObject(); - - @SuppressWarnings("unchecked") - Class listenerClass = (Class) this.listeners.getClass().getComponentType(); - s.writeObject(listenerClass); - - // only write out serializable listeners - for (L listener : this.listeners) { - if (listener instanceof Serializable) { - s.writeObject(listener); - } - } - - s.writeObject(null); - } - - @SuppressWarnings("unchecked") - private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException { - // read in any hidden stuff - s.defaultReadObject(); - - Class listenerClass = (Class) s.readObject(); - this.listeners = this.buildListenerArray(listenerClass, 0); - Object o; - while ((o = s.readObject()) != null) { - this.listeners = ArrayTools.add(this.listeners, (L) o); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NameTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NameTools.java deleted file mode 100644 index 11cf1ea5e3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NameTools.java +++ /dev/null @@ -1,377 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.beans.Introspector; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.SortedSet; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; - -/** - * Various helper methods for generating names. - */ -public final class NameTools { - - /** - * Given a "root" name and a set of existing names, generate a unique - * name that is either the "root" name or some variation on the "root" - * name (e.g. "root2", "root3",...). The names are case-sensitive - * (i.e. "Root" and "root" are both allowed). - */ - public static String uniqueNameFor(String rootName, Iterator existingNames) { - return uniqueNameFor(rootName, CollectionTools.set(existingNames)); - } - - /** - * Given a "root" name and a set of existing names, generate a unique - * name that is either the "root" name or some variation on the "root" - * name (e.g. "root2", "root3",...). The names are case-sensitive - * (i.e. "Root" and "root" are both allowed). - */ - public static String uniqueNameFor(String rootName, Collection existingNames) { - return uniqueNameFor(rootName, existingNames, rootName); - } - - /** - * Given a "root" name and a set of existing names, generate a unique - * name that is either the "root" name or some variation on the "root" - * name (e.g. "root2", "root3",...). The names are NOT case-sensitive - * (i.e. "Root" and "root" are NOT both allowed). - */ - public static String uniqueNameForIgnoreCase(String rootName, Iterator existingNames) { - return uniqueNameForIgnoreCase(rootName, CollectionTools.set(existingNames)); - } - - /** - * Given a "root" name and a set of existing names, generate a unique - * name that is either the "root" name or some variation on the "root" - * name (e.g. "root2", "root3",...). The names are NOT case-sensitive - * (i.e. "Root" and "root" are NOT both allowed). - */ - public static String uniqueNameForIgnoreCase(String rootName, Collection existingNames) { - return uniqueNameFor(rootName, convertToLowerCase(existingNames), rootName.toLowerCase()); - } - - /** - * use the suffixed "template" name to perform the comparisons, but RETURN - * the suffixed "root" name; this allows case-insensitive comparisons - * (i.e. the "template" name has been morphed to the same case as - * the "existing" names, while the "root" name has not, but the "root" name - * is what the client wants morphed to be unique) - */ - private static String uniqueNameFor(String rootName, Collection existingNames, String templateName) { - if ( ! existingNames.contains(templateName)) { - return rootName; - } - String uniqueName = templateName; - for (int suffix = 2; true; suffix++) { - if ( ! existingNames.contains(uniqueName + suffix)) { - return rootName.concat(String.valueOf(suffix)); - } - } - } - - /** - * Convert the specified collection of strings to a collection of the same - * strings converted to lower case. - */ - private static HashSet convertToLowerCase(Collection strings) { - HashSet result = new HashSet(strings.size()); - for (String string : strings) { - result.add(string.toLowerCase()); - } - return result; - } - - /** - * Build a fully-qualified name for the specified database object. - * Variations: - * catalog.schema.name - * catalog..name - * schema.name - * name - */ - public static String buildQualifiedDatabaseObjectName(String catalog, String schema, String name) { - if (name == null) { - return null; - } - if ((catalog == null) && (schema == null)) { - return name; - } - - StringBuilder sb = new StringBuilder(100); - if (catalog != null) { - sb.append(catalog); - sb.append('.'); - } - if (schema != null) { - sb.append(schema); - } - sb.append('.'); - sb.append(name); - return sb.toString(); - } - - /** - * The set of reserved words in the Java programming language. - * These words cannot be used as identifiers (i.e. names). - * http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html - */ - @SuppressWarnings("nls") - public static final String[] JAVA_RESERVED_WORDS = new String[] { - "abstract", - "assert", // jdk 1.4 - "boolean", - "break", - "byte", - "case", - "catch", - "char", - "class", - "const", // unused - "continue", - "default", - "do", - "double", - "else", - "enum", // jdk 1.5 - "extends", - "false", - "final", - "finally", - "float", - "for", - "goto", // unused - "if", - "implements", - "import", - "instanceof", - "int", - "interface", - "long", - "native", - "new", - "null", - "package", - "private", - "protected", - "public", - "return", - "short", - "static", - "strictfp", // jdk 1.2 - "super", - "switch", - "synchronized", - "this", - "throw", - "throws", - "transient", - "true", - "try", - "void", - "volatile", - "while" - }; - - /** - * The set of reserved words in the Java programming language. - * These words cannot be used as identifiers (i.e. names). - * http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html - */ - public static final SortedSet JAVA_RESERVED_WORDS_SET = - Collections.unmodifiableSortedSet(CollectionTools.sortedSet(JAVA_RESERVED_WORDS)); - - /** - * Return the set of Java programming language reserved words. - * These words cannot be used as identifiers (i.e. names). - * http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html - */ - public static Iterator javaReservedWords() { - return new ArrayIterator(JAVA_RESERVED_WORDS); - } - - /** - * Return whether the specified string consists of Java identifier - * characters (but may be a reserved word). - */ - public static boolean stringConsistsOfJavaIdentifierCharacters(String string) { - if (string.length() == 0) { - return false; - } - return stringConsistsOfJavaIdentifierCharacters_(string.toCharArray()); - } - - /** - * Return whether the specified string consists of Java identifier - * characters (but may be a reserved word). - */ - public static boolean stringConsistsOfJavaIdentifierCharacters(char[] string) { - if (string.length == 0) { - return false; - } - return stringConsistsOfJavaIdentifierCharacters_(string); - } - - /** - * The specified string must not be empty. - */ - private static boolean stringConsistsOfJavaIdentifierCharacters_(char[] string) { - if ( ! Character.isJavaIdentifierStart(string[0])) { - return false; - } - for (int i = string.length; i-- > 1; ) { // NB: end with 1 - if ( ! Character.isJavaIdentifierPart(string[i])) { - return false; - } - } - return true; - } - - /** - * Return whether the specified string is a valid Java identifier. - */ - public static boolean stringIsLegalJavaIdentifier(String string) { - return stringConsistsOfJavaIdentifierCharacters(string) - && ! JAVA_RESERVED_WORDS_SET.contains(string); - } - - /** - * Return whether the specified string is a valid Java identifier. - */ - public static boolean stringIsLegalJavaIdentifier(char[] string) { - return stringConsistsOfJavaIdentifierCharacters(string) - && ! JAVA_RESERVED_WORDS_SET.contains(new String(string)); - } - - /** - * Convert the specified string to a valid Java identifier - * by substituting an underscore '_' for any invalid characters - * in the string and appending an underscore '_' to the string if - * it is a Java reserved word. - */ - public static String convertToJavaIdentifier(String string) { - return convertToJavaIdentifier(string, '_'); - } - - /** - * Convert the specified string to a valid Java identifier - * by substituting the specified character for any invalid characters - * in the string and, if necessary, appending the specified character - * to the string until it is not a Java reserved word. - */ - public static String convertToJavaIdentifier(String string, char c) { - if (string.length() == 0) { - return string; - } - if (JAVA_RESERVED_WORDS_SET.contains(string)) { - // a reserved word is a valid identifier, we just need to tweak it a bit - checkCharIsJavaIdentifierPart(c); - return convertToJavaIdentifier(string + c, c); - } - char[] array = string.toCharArray(); - return convertToJavaIdentifier_(array, c) ? new String(array) : string; - } - - /** - * Convert the specified string to a valid Java identifier - * by substituting an underscore '_' for any invalid characters - * in the string and appending an underscore '_' to the string if - * it is a Java reserved word. - */ - public static char[] convertToJavaIdentifier(char[] string) { - return convertToJavaIdentifier(string, '_'); - } - - /** - * Convert the specified string to a valid Java identifier - * by substituting the specified character for any invalid characters - * in the string and, if necessary, appending the specified character - * to the string until it is not a Java reserved word. - */ - public static char[] convertToJavaIdentifier(char[] string, char c) { - if (string.length == 0) { - return string; - } - if (JAVA_RESERVED_WORDS_SET.contains(new String(string))) { - // a reserved word is a valid identifier, we just need to tweak it a bit - checkCharIsJavaIdentifierPart(c); - return convertToJavaIdentifier(ArrayTools.add(string, c), c); - } - convertToJavaIdentifier_(string, c); - return string; - } - - /** - * The specified string must not be empty. - * Return whether the string was modified. - */ - private static boolean convertToJavaIdentifier_(char[] string, char c) { - boolean mod = false; - if ( ! Character.isJavaIdentifierStart(string[0])) { - checkCharIsJavaIdentifierStart(c); - string[0] = c; - mod = true; - } - checkCharIsJavaIdentifierPart(c); - for (int i = string.length; i-- > 1; ) { // NB: end with 1 - if ( ! Character.isJavaIdentifierPart(string[i])) { - string[i] = c; - mod = true; - } - } - return mod; - } - - private static void checkCharIsJavaIdentifierStart(char c) { - if ( ! Character.isJavaIdentifierStart(c)) { - throw new IllegalArgumentException("invalid Java identifier start char: '" + c + '\''); //$NON-NLS-1$ - } - } - - private static void checkCharIsJavaIdentifierPart(char c) { - if ( ! Character.isJavaIdentifierPart(c)) { - throw new IllegalArgumentException("invalid Java identifier part char: '" + c + '\''); //$NON-NLS-1$ - } - } - - /** - * Convert the specified method name to a property name. - * @see Introspector#decapitalize(String) - */ - public static String convertGetterSetterMethodNameToPropertyName(String methodName) { - int beginIndex = 0; - if (methodName.startsWith("get")) { //$NON-NLS-1$ - beginIndex = 3; - } else if (methodName.startsWith("set")) { //$NON-NLS-1$ - beginIndex = 3; - } else if (methodName.startsWith("is")) { //$NON-NLS-1$ - beginIndex = 2; - } else { - return methodName; // return method name unchanged? - } - return Introspector.decapitalize(methodName.substring(beginIndex)); - } - - - // ********** constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private NameTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NonNullBooleanTransformer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NonNullBooleanTransformer.java deleted file mode 100644 index 0c9749fcd3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NonNullBooleanTransformer.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * A NonNullBooleanTransformer will transform a possibly-null - * {@link Boolean} to a non-null {@link Boolean}:
    - *
  • When the original {@link Boolean} is not null, - * the transformer will return it unchanged. - *
  • When the original {@link Boolean} is null, - * the transformer will return its client-specified "null value" - * ({@link Boolean#TRUE} or {@link Boolean#FALSE}). - *
- */ -public final class NonNullBooleanTransformer - implements Transformer -{ - // not null - private final Boolean nullValue; - - /** - * A {@link Transformer} that will return the original {@link Boolean} when - * it is non-null; otherwise the {@link Transformer} will return - * {@link Boolean#TRUE}. - */ - public static final Transformer TRUE = new NonNullBooleanTransformer(Boolean.TRUE); - - /** - * A {@link Transformer} that will return the original {@link Boolean} when - * it is non-null; otherwise the {@link Transformer} will return - * {@link Boolean#FALSE}. - */ - public static final Transformer FALSE = new NonNullBooleanTransformer(Boolean.FALSE); - - /** - * Return a transformer that will return the specified value if the original - * value is null. Throw a {@link NullPointerException} if the - * specified value is null. - */ - public Transformer valueOf(Boolean b) { - return valueOf(b.booleanValue()); - } - - /** - * Return a transformer that will return the {@link Boolean} corresponding - * to the specified value if the original value is null. - */ - public Transformer valueOf(boolean b) { - return b ? TRUE : FALSE; - } - - /** - * Ensure only 2 constant versions. - */ - private NonNullBooleanTransformer(Boolean nullValue) { - super(); - if (nullValue == null) { - throw new NullPointerException(); - } - this.nullValue = nullValue; - } - - public Boolean transform(Boolean b) { - return (b != null) ? b : this.nullValue; - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.nullValue); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotBooleanTransformer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotBooleanTransformer.java deleted file mode 100644 index c234ac7f73..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotBooleanTransformer.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * A NotBooleanTransformer will transform a - * {@link Boolean} to its NOT value:
    - *
  • If the original {@link Boolean} is {@link Boolean#TRUE}, - * the transformer will return {@link Boolean#FALSE}. - *
  • If the original {@link Boolean} is {@link Boolean#FALSE}, - * the transformer will return {@link Boolean#TRUE}. - *
  • If the original {@link Boolean} is null, - * the transformer will return null. - *
- */ -public class NotBooleanTransformer - implements BidiTransformer -{ - public static final BidiTransformer INSTANCE = new NotBooleanTransformer(); - - public static BidiTransformer instance() { - return INSTANCE; - } - - // ensure single instance - private NotBooleanTransformer() { - super(); - } - - public Boolean transform(Boolean b) { - return (b == null) ? null : BooleanTools.not(b); - } - - public Boolean reverseTransform(Boolean b) { - return (b == null) ? null : BooleanTools.not(b); - } - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotNullFilter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotNullFilter.java deleted file mode 100644 index c1e27e45b9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NotNullFilter.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -import org.eclipse.jpt.common.utility.Filter; - -/** - * This filter accepts only non-null objects. - */ -public final class NotNullFilter - implements Filter, Serializable -{ - @SuppressWarnings("rawtypes") - public static final Filter INSTANCE = new NotNullFilter(); - - @SuppressWarnings("unchecked") - public static Filter instance() { - return INSTANCE; - } - - // ensure single instance - private NotNullFilter() { - super(); - } - - // accept only non-null objects - public boolean accept(T o) { - return o != null; - } - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NullList.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NullList.java deleted file mode 100644 index 826593db6b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/NullList.java +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator; - -/** - * A "null" list is a bit different from an "empty" list: it allows clients to - * add/remove elements to/from it but never changes. This is useful - * for passing to methods that require a "collecting parameter" but the - * client will ignore the resulting "collection". - */ -public final class NullList - implements List, Serializable -{ - // singleton - @SuppressWarnings("rawtypes") - private static final NullList INSTANCE = new NullList(); - - /** - * Return the singleton. - */ - @SuppressWarnings("unchecked") - public static List instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private NullList() { - super(); - } - - public boolean add(E o) { - return false; // the list did not change - } - - public void add(int index, E element) { - // ignore - } - - public boolean addAll(Collection c) { - return false; // the list did not change - } - - public boolean addAll(int index, Collection c) { - return false; // the list did not change - } - - public void clear() { - // ignore - } - - public boolean contains(Object o) { - return false; - } - - public boolean containsAll(Collection c) { - return c.isEmpty(); - } - - public E get(int index) { - throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - public int indexOf(Object o) { - return -1; - } - - public boolean isEmpty() { - return true; - } - - public Iterator iterator() { - return EmptyIterator.instance(); - } - - public int lastIndexOf(Object o) { - return -1; - } - - public ListIterator listIterator() { - return EmptyListIterator.instance(); - } - - public ListIterator listIterator(int index) { - return EmptyListIterator.instance(); - } - - public boolean remove(Object o) { - return false; // the list did not change - } - - public E remove(int index) { - throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - public boolean removeAll(Collection c) { - return false; // the list did not change - } - - public boolean retainAll(Collection c) { - return false; // the list did not change - } - - public E set(int index, E element) { - throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - public int size() { - return 0; - } - - public List subList(int fromIndex, int toIndex) { - return this; - } - - private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0]; - public Object[] toArray() { - return EMPTY_OBJECT_ARRAY; - } - - public T[] toArray(T[] a) { - return a; - } - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Queue.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Queue.java deleted file mode 100644 index 9cc4bc5ce3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Queue.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.NoSuchElementException; - -/** - * Interface defining the classic queue behavior, - * without the backdoors allowed by {@link java.util.Queue}. - * - * @param the type of elements contained by the queue - */ -public interface Queue { - - /** - * "Enqueue" the specified item to the tail of the queue. - */ - void enqueue(E o); - - /** - * "Dequeue" an item from the head of the queue. - */ - E dequeue(); - - /** - * Return the item on the head of the queue - * without removing it from the queue. - */ - E peek(); - - /** - * Return whether the queue is empty. - */ - boolean isEmpty(); - - - final class Empty implements Queue, Serializable { - @SuppressWarnings("rawtypes") - public static final Queue INSTANCE = new Empty(); - @SuppressWarnings("unchecked") - public static Queue instance() { - return INSTANCE; - } - // ensure single instance - private Empty() { - super(); - } - public void enqueue(E o) { - throw new UnsupportedOperationException(); - } - public E dequeue() { - throw new NoSuchElementException(); - } - public E peek() { - throw new NoSuchElementException(); - } - public boolean isEmpty() { - return true; - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Range.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Range.java deleted file mode 100644 index bc66046c0a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Range.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * This simple container class simply puts a bit of semantics - * around a pair of numbers. - */ -public class Range - implements Cloneable, Serializable -{ - /** The starting index of the range. */ - public final int start; - - /** The ending index of the range. */ - public final int end; - - /** - * The size can be negative if the ending index - * is less than the starting index. - */ - public final int size; - - private static final long serialVersionUID = 1L; - - - /** - * Construct with the specified start and end, - * both of which are immutable. - */ - public Range(int start, int end) { - super(); - this.start = start; - this.end = end; - this.size = end - start + 1; - } - - /** - * Return whether the range includes the specified - * index. - */ - public boolean includes(int index) { - return (this.start <= index) && (index <= this.end); - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if ( ! (o instanceof Range)) { - return false; - } - Range otherRange = (Range) o; - return (this.start == otherRange.start) - && (this.end == otherRange.end); - } - - @Override - public int hashCode() { - return this.start ^ this.end; - } - - @Override - public Range clone() { - try { - return (Range) super.clone(); - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public String toString() { - return '[' + this.start + ", " + this.end + ']'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyBooleanReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyBooleanReference.java deleted file mode 100644 index 0d2c56a3bf..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyBooleanReference.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Interface for a container for holding a boolean that cannot be - * changed by clients. - */ -public interface ReadOnlyBooleanReference -{ - /** - * Return the current boolean value. - */ - boolean getValue(); - - /** - * Return whether the current boolean value is equal to the - * specified value. - */ - boolean is(boolean value); - - /** - * Return whether the current boolean value is not equal to - * the specified value. - */ - boolean isNot(boolean value); - - /** - * Return whether the current boolean value is - * true. - */ - boolean isTrue(); - - /** - * Return whether the current boolean value is - * false. - */ - boolean isFalse(); -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyIntReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyIntReference.java deleted file mode 100644 index 50e5154669..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReadOnlyIntReference.java +++ /dev/null @@ -1,145 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Interface for a container for holding an int that cannot be - * changed by clients. - */ -public interface ReadOnlyIntReference - extends Comparable -{ - /** - * Return the current int value. - */ - int getValue(); - - /** - * Return whether the current int value is equal to the - * specified value. - */ - boolean equals(int v); - - /** - * Return whether the current int value is not equal to - * the specified value. - */ - boolean notEqual(int v); - - /** - * Return whether the current int value is zero. - */ - boolean isZero(); - - /** - * Return whether the current int value is not zero. - */ - boolean isNotZero(); - - /** - * Return whether the current int value is greater than - * the specified value. - */ - boolean isGreaterThan(int v); - - /** - * Return whether the current int value is greater than - * or equal to the specified value. - */ - boolean isGreaterThanOrEqual(int v); - - /** - * Return whether the current int value is less than - * the specified value. - */ - boolean isLessThan(int v); - - /** - * Return whether the current int value is less than - * or equal to the specified value. - */ - boolean isLessThanOrEqual(int v); - - /** - * Return whether the current int value is positive. - */ - boolean isPositive(); - - /** - * Return whether the current int value is not positive - * (i.e. negative or zero). - */ - boolean isNotPositive(); - - /** - * Return whether the current int value is negative. - */ - boolean isNegative(); - - /** - * Return whether the current int value is not negative - * (i.e. zero or positive). - */ - boolean isNotNegative(); - - /** - * Return the absolute value of the current int value. - */ - int abs(); - - /** - * Return the negative value of the current int value. - */ - int neg(); - - /** - * Return the current int value plus the specified value. - */ - int add(int v); - - /** - * Return current int value minus the specified value. - */ - int subtract(int v); - - /** - * Return current int value multiplied by the specified value. - */ - int multiply(int v); - - /** - * Return current int value divided by the specified value. - */ - int divide(int v); - - /** - * Return the remainder of the current int value divided by - * the specified value. - */ - int remainder(int v); - - /** - * Return the minimum of the current int value and - * the specified value. - */ - int min(int v); - - /** - * Return the maximum of the current int value and - * the specified value. - */ - int max(int v); - - /** - * Return the current int value raised to the power - * of the specified value. - */ - double pow(int v); -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReflectionTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReflectionTools.java deleted file mode 100644 index 6fb33c7f8c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReflectionTools.java +++ /dev/null @@ -1,1544 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.ArrayList; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; - -/** - * Convenience methods related to the java.lang.reflect package. - * These methods provide shortcuts for manipulating objects via - * reflection; particularly when dealing with fields and/or methods that - * are not publicly accessible or are inherited. - *

- * In most cases, all exceptions are handled and wrapped in - * {@link java.lang.RuntimeException}s; so these methods should - * be used when there should be no problems using reflection (i.e. - * the referenced members are presumably present etc.). - *

- * There are also a number of methods whose names - * end with an underscore. These methods declare the expected checked - * exceptions (e.g. {@link NoSuchMethodException}, {@link NoSuchFieldException}). - * These methods can be used to probe - * for methods, fields, etc. that should be present but might not be. - */ -public final class ReflectionTools { - - public static final Class[] ZERO_PARAMETER_TYPES = new Class[0]; - public static final Object[] ZERO_ARGUMENTS = new Object[0]; - private static final String CR = StringTools.CR; - - public static final Class VOID_CLASS = void.class; - public static final Class VOID_WRAPPER_CLASS = java.lang.Void.class; - - - // ********** fields ********** - - /** - * Get a field value, given the containing object and field name. - * Return its result. - * Useful for accessing private, package, or protected fields. - *

- * Object.getFieldValue(String fieldName) - */ - public static Object getFieldValue(Object object, String fieldName) { - try { - return getFieldValue_(object, fieldName); - } catch (NoSuchFieldException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex); - } - } - - /** - * Get a field value, given the containing object and field name. - * Return its result. - * Useful for accessing private, package, or protected fields. - *

- * Object.getFieldValue(String fieldName) - */ - public static Object getFieldValue_(Object object, String fieldName) - throws NoSuchFieldException, IllegalAccessException - { - return getField_(object, fieldName).get(object); - } - - /** - * Get a static field value, given the containing class and field name. - * Return its result. - * Useful for accessing private, package, or protected fields. - *

- * Class.getStaticFieldValue(String fieldName) - */ - public static Object getStaticFieldValue(Class javaClass, String fieldName) { - try { - return getStaticFieldValue_(javaClass, fieldName); - } catch (NoSuchFieldException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex); - } - } - - /** - * Get a static field value, given the containing class and field name. - * Return its result. - * Useful for accessing private, package, or protected fields. - *

- * Class.getStaticFieldValue(String fieldName) - */ - public static Object getStaticFieldValue_(Class javaClass, String fieldName) - throws NoSuchFieldException, IllegalAccessException - { - return getField_(javaClass, fieldName).get(null); - } - - /** - * Set a field value, given the containing object, field name, and new value. - * Useful for accessing private, package, or protected fields. - *

- * Object.setFieldValue(String fieldName, Object value) - */ - public static void setFieldValue(Object object, String fieldName, Object value) { - try { - setFieldValue_(object, fieldName, value); - } catch (NoSuchFieldException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex); - } - } - - /** - * Set a field value, given the containing object, field name, and new value. - * Useful for accessing private, package, or protected fields. - *

- * Object.setFieldValue(String fieldName, Object value) - */ - public static void setFieldValue_(Object object, String fieldName, Object value) - throws NoSuchFieldException, IllegalAccessException - { - getField_(object, fieldName).set(object, value); - } - - /** - * Set a static field value, given the containing class, field name, and new value. - * Useful for accessing private, package, or protected fields. - *

- * Class.setStaticFieldValue(String fieldName, Object value) - */ - public static void setStaticFieldValue(Class javaClass, String fieldName, Object value) { - try { - setStaticFieldValue_(javaClass, fieldName, value); - } catch (NoSuchFieldException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex); - } - } - - /** - * Set a static field value, given the containing class, field name, and new value. - * Useful for accessing private, package, or protected fields. - *

- * Class.setStaticFieldValue(String fieldName, Object value) - */ - public static void setStaticFieldValue_(Class javaClass, String fieldName, Object value) - throws NoSuchFieldException, IllegalAccessException - { - getField_(javaClass, fieldName).set(null, value); - } - - /** - * Convenience method. - * Return a field for the specified object and field name. - * If the object's class does not directly - * define the field, look for it in the class's superclasses. - * Make any private/package/protected field accessible. - *

- * Object.getField(String fieldName) - */ - public static Field getField(Object object, String fieldName) { - try { - return getField_(object, fieldName); - } catch (NoSuchFieldException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(object, fieldName), ex); - } - } - - /** - * Convenience method. - * Return a field for the specified object and field name. - * If the object's class does not directly - * define the field, look for it in the class's superclasses. - * Make any private/package/protected field accessible. - *

- * Object.getField(String fieldName) - */ - public static Field getField_(Object object, String fieldName) - throws NoSuchFieldException - { - return getField_(object.getClass(), fieldName); - } - - /** - * Return a field for the specified class and field name. - * If the class does not directly - * define the field, look for it in the class's superclasses. - * Make any private/package/protected field accessible. - */ - public static Field getField(Class javaClass, String fieldName) { - try { - return getField_(javaClass, fieldName); - } catch (NoSuchFieldException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedFieldName(javaClass, fieldName), ex); - } - } - - /** - * Return a field for the specified class and field name. - * If the class does not directly - * define the field, look for it in the class's superclasses. - * Make any private/package/protected field accessible. - */ - public static Field getField_(Class javaClass, String fieldName) - throws NoSuchFieldException - { - Field field = null; - try { - field = javaClass.getDeclaredField(fieldName); - } catch (NoSuchFieldException ex) { - Class superclass = javaClass.getSuperclass(); - if (superclass == null) { - throw ex; - } - return getField_(superclass, fieldName); // recurse - } - field.setAccessible(true); - return field; - } - - /** - * Return all the fields for the - * specified class, including inherited fields. - * Make any private/package/protected fields accessible. - *

- * Class.getAllFields() - */ - public static Iterable getAllFields(Class javaClass) { - ArrayList fields = new ArrayList(); - for (Class tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) { - addDeclaredFieldsTo(tempClass, fields); - } - return fields; - } - - /* - * Add the declared fields for the specified class - * to the specified list. - */ - private static void addDeclaredFieldsTo(Class javaClass, ArrayList fields) { - for (Field field : getDeclaredFields(javaClass)) { - fields.add(field); - } - } - - /** - * Return the declared fields for the specified class. - * Make any private/package/protected fields accessible. - *

- * Class.getAccessibleDeclaredFields() - */ - public static Iterable getDeclaredFields(Class javaClass) { - Field[] fields = javaClass.getDeclaredFields(); - for (Field field : fields) { - field.setAccessible(true); - } - return new ArrayIterable(fields); - } - - - // ********** methods ********** - - /** - * Convenience method. - * Execute a zero-argument method, given the receiver and method name. - * Return its result. - * Useful for invoking private, package, or protected methods. - *

- * Object.execute(String methodName) - */ - public static Object executeMethod(Object receiver, String methodName) { - return executeMethod(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS); - } - - /** - * Convenience method. - * Execute a one-argument method, given the receiver, - * method name, parameter type, and argument. - * Return its result. - * Useful for invoking private, package, or protected methods. - *

- * Object.execute(String methodName, Class parameterType, Object argument) - */ - public static Object executeMethod(Object receiver, String methodName, Class parameterType, Object argument) { - return executeMethod(receiver, methodName, new Class[] {parameterType}, new Object[] {argument}); - } - - /** - * Execute a method, given the receiver, - * method name, parameter types, and arguments. - * Return its result. - * Useful for invoking private, package, or protected methods. - *

- * Object.execute(String methodName, Class[] parameterTypes, Object[] arguments) - */ - public static Object executeMethod(Object receiver, String methodName, Class[] parameterTypes, Object[] arguments) { - return executeMethod(getMethod(receiver, methodName, parameterTypes), receiver, arguments); - } - - /** - * Execute the specified method, given the receiver and arguments. - * Return its result. - * Useful for invoking cached methods. - */ - public static Object executeMethod(Method method, Object receiver, Object[] arguments) { - try { - return method.invoke(receiver, arguments); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex + CR + method, ex); - } catch (InvocationTargetException ex) { - throw new RuntimeException(method + CR + ex.getTargetException(), ex); - } - } - - /** - * Convenience method. - * Execute a zero-argument method, - * given the receiver and method name. - * Return its result. - * Throw an exception if the method is not defined. - * Useful for invoking private, package, or protected methods. - *

- * Object.execute(String methodName) - */ - public static Object executeMethod_(Object receiver, String methodName) - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException - { - return executeMethod_(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS); - } - - /** - * Convenience method. - * Execute a method, given the receiver, - * method name, parameter type, and argument. - * Return its result. - * Throw an exception if the method is not defined. - * Useful for invoking private, package, or protected methods. - *

- * Object.execute(String methodName, Class parameterType, Object argument) - */ - public static Object executeMethod_(Object receiver, String methodName, Class parameterType, Object argument) - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException - { - return executeMethod_(receiver, methodName, new Class[] {parameterType}, new Object[] {argument}); - } - - /** - * Execute a method, given the receiver, - * method name, parameter types, and arguments. - * Return its result. - * Throw an exception if the method is not defined. - * Useful for invoking private, package, or protected methods. - *

- * Object.execute(String methodName, Class[] parameterTypes, Object[] arguments) - */ - public static Object executeMethod_(Object receiver, String methodName, Class[] parameterTypes, Object[] arguments) - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException - { - return getMethod_(receiver, methodName, parameterTypes).invoke(receiver, arguments); - } - - /** - * Convenience method. - * Execute a zero-argument static method, - * given the class and method name. - * Return its result. - * Useful for invoking private, package, or protected methods. - *

- * Class.executeStaticMethod(String methodName) - */ - public static Object executeStaticMethod(Class javaClass, String methodName) { - return executeStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS); - } - - /** - * Convenience method. - * Execute a static method, given the class, - * method name, parameter type, and argument. - * Return its result. - * Useful for invoking private, package, or protected methods. - *

- * Class.executeStaticMethod(String methodName, Class parameterType, Object argument) - */ - public static Object executeStaticMethod(Class javaClass, String methodName, Class parameterType, Object argument) { - return executeStaticMethod(javaClass, methodName, new Class[] {parameterType}, new Object[] {argument}); - } - - /** - * Execute a static method, given the class, - * method name, parameter types, and arguments. - * Return its result. - * Useful for invoking private, package, or protected methods. - *

- * Class.executeStaticMethod(String methodName, Class[] parameterTypes, Object[] arguments) - */ - public static Object executeStaticMethod(Class javaClass, String methodName, Class[] parameterTypes, Object[] arguments) { - try { - return executeStaticMethod_(javaClass, methodName, parameterTypes, arguments); - } catch (NoSuchMethodException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), ex); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), ex); - } catch (InvocationTargetException ex) { - throw new RuntimeException(buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes) + CR + ex.getTargetException(), ex); - } - } - - /** - * Convenience method. - * Execute a zero-argument static method, - * given the class and method name. - * Return its result. - * Useful for invoking private, package, or protected methods. - *

- * Class.executeStaticMethod(String methodName) - */ - public static Object executeStaticMethod_(Class javaClass, String methodName) - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException - { - return executeStaticMethod_(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS); - } - - /** - * Convenience method. - * Execute a static method, given the class, - * method name, parameter type, and argument. - * Return its result. - * Useful for invoking private, package, or protected methods. - *

- * Class.executeStaticMethod(String methodName, Class parameterType, Object argument) - */ - public static Object executeStaticMethod_(Class javaClass, String methodName, Class parameterType, Object argument) - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException - { - return executeStaticMethod_(javaClass, methodName, new Class[] {parameterType}, new Object[] {argument}); - } - - /** - * Execute a static method, given the class, - * method name, parameter types, and arguments. - * Return its result. - * Useful for invoking private, package, or protected methods. - *

- * Class.executeStaticMethod(String methodName, Class[] parameterTypes, Object[] arguments) - */ - public static Object executeStaticMethod_(Class javaClass, String methodName, Class[] parameterTypes, Object[] arguments) - throws NoSuchMethodException, IllegalAccessException, InvocationTargetException - { - return getStaticMethod_(javaClass, methodName, parameterTypes).invoke(null, arguments); - } - - /** - * Convenience method. - * Return a zero-argument method for the specified class - * and method name. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod(Class javaClass, String methodName) { - return getMethod(javaClass, methodName, ZERO_PARAMETER_TYPES); - } - - /** - * Convenience method. - * Return a zero-argument method for the specified class - * and method name. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod_(Class javaClass, String methodName) - throws NoSuchMethodException - { - return getMethod_(javaClass, methodName, ZERO_PARAMETER_TYPES); - } - - /** - * Convenience method. - * Return a method for the specified class, method name, - * and formal parameter type. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod(Class javaClass, String methodName, Class parameterType) { - return getMethod(javaClass, methodName, new Class[] {parameterType}); - } - - /** - * Convenience method. - * Return a method for the specified class, method name, - * and formal parameter type. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod_(Class javaClass, String methodName, Class parameterType) - throws NoSuchMethodException - { - return getMethod_(javaClass, methodName, new Class[] {parameterType}); - } - - /** - * Return a method for the specified class, method name, - * and formal parameter types. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod(Class javaClass, String methodName, Class[] parameterTypes) { - try { - return getMethod_(javaClass, methodName, parameterTypes); - } catch (NoSuchMethodException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), ex); - } - } - - /** - * Return a method for the specified class, method name, - * and formal parameter types. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod_(Class javaClass, String methodName, Class[] parameterTypes) - throws NoSuchMethodException - { - Method method = null; - try { - method = javaClass.getDeclaredMethod(methodName, parameterTypes); - } catch (NoSuchMethodException ex) { - Class superclass = javaClass.getSuperclass(); - if (superclass == null) { - throw ex; - } - // recurse - return getMethod_(superclass, methodName, parameterTypes); - } - method.setAccessible(true); - return method; - } - - /** - * Convenience method. - * Return a zero-argument method for the specified object - * and method name. If the object's class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod(Object object, String methodName) { - return getMethod(object.getClass(), methodName); - } - - /** - * Convenience method. - * Return a zero-argument method for the specified object - * and method name. If the object's class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod_(Object object, String methodName) - throws NoSuchMethodException - { - return getMethod_(object.getClass(), methodName); - } - - /** - * Convenience method. - * Return a method for the specified object, method name, - * and formal parameter types. If the object's class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod(Object object, String methodName, Class[] parameterTypes) { - return getMethod(object.getClass(), methodName, parameterTypes); - } - - /** - * Convenience method. - * Return a method for the specified object, method name, - * and formal parameter types. If the object's class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod_(Object object, String methodName, Class[] parameterTypes) - throws NoSuchMethodException - { - return getMethod_(object.getClass(), methodName, parameterTypes); - } - - /** - * Convenience method. - * Return a method for the specified object, method name, - * and formal parameter type. If the object's class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod(Object object, String methodName, Class parameterType) { - return getMethod(object.getClass(), methodName, parameterType); - } - - /** - * Convenience method. - * Return a method for the specified object, method name, - * and formal parameter type. If the object's class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getMethod_(Object object, String methodName, Class parameterType) - throws NoSuchMethodException - { - return getMethod_(object.getClass(), methodName, parameterType); - } - - /** - * Convenience method. - * Return a zero-argument static method for the specified class - * and method name. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getStaticMethod(Class javaClass, String methodName) { - return getStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES); - } - - /** - * Convenience method. - * Return a static method for the specified class, method name, - * and formal parameter type. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getStaticMethod(Class javaClass, String methodName, Class parameterTypes) { - return getStaticMethod(javaClass, methodName, new Class[] {parameterTypes}); - } - - /** - * Return a static method for the specified class, method name, - * and formal parameter types. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getStaticMethod(Class javaClass, String methodName, Class[] parameterTypes) { - try { - return getStaticMethod_(javaClass, methodName, parameterTypes); - } catch (NoSuchMethodException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), ex); - } - } - - /** - * Convenience method. - * Return a zero-argument static method for the specified class - * and method name. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getStaticMethod_(Class javaClass, String methodName) - throws NoSuchMethodException - { - return getStaticMethod_(javaClass, methodName, ZERO_PARAMETER_TYPES); - } - - /** - * Convenience method. - * Return a static method for the specified class, method name, - * and formal parameter type. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getStaticMethod_(Class javaClass, String methodName, Class parameterTypes) - throws NoSuchMethodException - { - return getStaticMethod_(javaClass, methodName, new Class[] {parameterTypes}); - } - - /** - * Return a static method for the specified class, method name, - * and formal parameter types. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Make any private/package/protected method accessible. - */ - public static Method getStaticMethod_(Class javaClass, String methodName, Class[] parameterTypes) - throws NoSuchMethodException - { - Method method = getMethod_(javaClass, methodName, parameterTypes); - if (Modifier.isStatic(method.getModifiers())) { - return method; - } - throw new NoSuchMethodException(buildFullyQualifiedMethodSignature(javaClass, methodName, parameterTypes)); - } - - /** - * Return all the methods for the - * specified class, including inherited methods. - * Make any private/package/protected methods accessible. - *

- * Class.getAllMethods() - */ - public static Iterable getAllMethods(Class javaClass) { - ArrayList methods = new ArrayList(); - for (Class tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) { - addDeclaredMethodsTo(tempClass, methods); - } - return methods; - } - - /* - * Add the declared methods for the specified class - * to the specified list. - */ - private static void addDeclaredMethodsTo(Class javaClass, ArrayList methods) { - for (Method method : getDeclaredMethods(javaClass)) { - methods.add(method); - } - } - - /** - * Return the declared methods for the specified class. - * Make any private/package/protected methods accessible. - *

- * Class.getAccessibleDeclaredMethods() - */ - public static Iterable getDeclaredMethods(Class javaClass) { - Method[] methods = javaClass.getDeclaredMethods(); - for (Method method : methods) { - method.setAccessible(true); - } - return new ArrayIterable(methods); - } - - - // ********** constructors ********** - - /** - * Return the default (zero-argument) constructor - * for the specified class. - * Make any private/package/protected constructor accessible. - *

- * Class.getDefaultConstructor() - */ - public static Constructor getDefaultConstructor(Class javaClass) { - return getConstructor(javaClass); - } - - /** - * Convenience method. - * Return the default (zero-argument) constructor - * for the specified class. - * Make any private/package/protected constructor accessible. - *

- * Class.getConstructor() - */ - public static Constructor getConstructor(Class javaClass) { - return getConstructor(javaClass, ZERO_PARAMETER_TYPES); - } - - /** - * Convenience method. - * Return the constructor for the specified class - * and formal parameter type. - * Make any private/package/protected constructor accessible. - *

- * Class.getConstructor(Class parameterType) - */ - public static Constructor getConstructor(Class javaClass, Class parameterType) { - return getConstructor(javaClass, new Class[] {parameterType}); - } - - /** - * Return the constructor for the specified class - * and formal parameter types. - * Make any private/package/protected constructor accessible. - *

- * Class.getConstructor(Class[] parameterTypes) - */ - public static Constructor getConstructor(Class javaClass, Class[] parameterTypes) { - try { - return getConstructor_(javaClass, parameterTypes); - } catch (NoSuchMethodException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedConstructorSignature(javaClass, parameterTypes), ex); - } - } - - /** - * Return the default (zero-argument) constructor - * for the specified class. - * Make any private/package/protected constructor accessible. - *

- * Class.getDefaultConstructor() - */ - public static Constructor getDefaultConstructor_(Class javaClass) - throws NoSuchMethodException - { - return getConstructor_(javaClass); - } - - /** - * Convenience method. - * Return the default (zero-argument) constructor - * for the specified class. - * Make any private/package/protected constructor accessible. - *

- * Class.getConstructor() - */ - public static Constructor getConstructor_(Class javaClass) - throws NoSuchMethodException - { - return getConstructor_(javaClass, ZERO_PARAMETER_TYPES); - } - - /** - * Convenience method. - * Return the constructor for the specified class - * and formal parameter type. - * Make any private/package/protected constructor accessible. - *

- * Class.getConstructor(Class parameterType) - */ - public static Constructor getConstructor_(Class javaClass, Class parameterType) - throws NoSuchMethodException - { - return getConstructor_(javaClass, new Class[] {parameterType}); - } - - /** - * Return the constructor for the specified class - * and formal parameter types. - * Make any private/package/protected constructor accessible. - *

- * Class.getConstructor(Class[] parameterTypes) - */ - public static Constructor getConstructor_(Class javaClass, Class[] parameterTypes) - throws NoSuchMethodException - { - Constructor constructor = javaClass.getDeclaredConstructor(parameterTypes); - constructor.setAccessible(true); - return constructor; - } - - /** - * Return the declared constructors for the specified class. - * Make any private/package/protected constructors accessible. - *

- * Class.getAccessibleDeclaredConstructors() - */ - public static Iterable> getDeclaredConstructors(Class javaClass) { - @SuppressWarnings("unchecked") - Constructor[] constructors = (Constructor[]) javaClass.getDeclaredConstructors(); - for (Constructor constructor : constructors) { - constructor.setAccessible(true); - } - return new ArrayIterable>(constructors); - } - - - // ********** classes ********** - - /** - * Convenience method. - * Return the specified class (without the checked exception). - */ - public static Class classForName(String className) { - try { - return Class.forName(className); - } catch (ClassNotFoundException ex) { - throw new RuntimeException(className, ex); - } - } - - /** - * Convenience method. - * Return the specified class (without the checked exception). - */ - public static Class classForName(String className, boolean initialize, ClassLoader classLoader) { - try { - return Class.forName(className, initialize, classLoader); - } catch (ClassNotFoundException ex) { - throw new RuntimeException(className, ex); - } - } - - /** - * Return the "array depth" of the specified class. - * The depth is the number of dimensions for an array type. - * Non-array types have a depth of zero. - *

- * Class.getArrayDepth() - */ - public static int getArrayDepth(Class javaClass) { - int depth = 0; - while (javaClass.isArray()) { - depth++; - javaClass = javaClass.getComponentType(); - } - return depth; - } - - /** - * Return the "element type" of the specified class. - * The element type is the base type held by an array type. - * A non-array type simply returns itself. - *

- * Class.getElementType() - */ - public static Class getElementType(Class javaClass) { - while (javaClass.isArray()) { - javaClass = javaClass.getComponentType(); - } - return javaClass; - } - - /** - * Return the wrapper class corresponding to the specified - * primitive class. Return null if the specified class - * is not a primitive class. - *

- * Class.getWrapperClass() - */ - public static Class getWrapperClass(Class primitiveClass) { - for (Primitive primitive : PRIMITIVES) { - if (primitive.javaClass == primitiveClass) { - return primitive.wrapperClass; - } - } - return null; - } - - /** - * Return whether the specified class is a primitive wrapper - * class (i.e. java.lang.Void or one of the primitive - * variable wrapper classes, java.lang.Boolean, - * java.lang.Integer, java.lang.Float, etc.). - *

- * NB: void.class.isPrimitive() == true - *

- * Class.isPrimitiveWrapper() - */ - public static boolean classIsPrimitiveWrapper(Class javaClass) { - if (javaClass.isArray() || (javaClass.getName().length() > MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH)) { - return false; // performance tweak - } - for (Primitive primitive : PRIMITIVES) { - if (javaClass == primitive.wrapperClass) { - return true; - } - } - return false; - } - - /** - * Return whether the specified class is a "variable" primitive wrapper - * class (i.e. java.lang.Boolean, - * java.lang.Integer, java.lang.Float, etc., - * but not java.lang.Void). - *

- * NB: void.class.isPrimitive() == true - *

- * Class.isVariablePrimitiveWrapper() - */ - public static boolean classIsVariablePrimitiveWrapper(Class javaClass) { - return classIsPrimitiveWrapper(javaClass) - && (javaClass != VOID_WRAPPER_CLASS); - } - - /** - * Return whether the specified class is a "variable" primitive - * class (i.e. boolean, int, - * float, etc., but not void). - *

- * NB: void.class.isPrimitive() == true - *

- * Class.isVariablePrimitive() - */ - public static boolean classIsVariablePrimitive(Class javaClass) { - return javaClass.isPrimitive() && (javaClass != VOID_CLASS); - } - - /** - * Return the primitive class for the specified primitive class code. - * Return null if the specified code - * is not a primitive class code. - * @see java.lang.Class#getName() - */ - public static Class getClassForCode(int classCode) { - return getClassForCode((char) classCode); - } - - /** - * Return the primitive class for the specified primitive class code. - * Return null if the specified code - * is not a primitive class code. - * @see java.lang.Class#getName() - */ - public static Class getClassForCode(char classCode) { - for (Primitive primitive : PRIMITIVES) { - if (primitive.code == classCode) { - return primitive.javaClass; - } - } - return null; - } - - /** - * Return the class code for the specified primitive class. - * Return 0 if the specified class - * is not a primitive class. - * @see java.lang.Class#getName() - */ - public static char getCodeForClass(Class primitiveClass) { - if (( ! primitiveClass.isArray()) && (primitiveClass.getName().length() <= MAX_PRIMITIVE_CLASS_NAME_LENGTH)) { - for (Primitive primitive : PRIMITIVES) { - if (primitive.javaClass == primitiveClass) { - return primitive.code; - } - } - } - return 0; - } - - - // ********** instantiation ********** - - /** - * Convenience method. - * Return a new instance of the specified class, - * using the class's default (zero-argument) constructor. - *

- * Class.newInstance() - */ - public static Object newInstance(String className) { - return newInstance(className, null); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter type and argument. - *

- * Class.newInstance(Class parameterType, Object argument) - */ - public static Object newInstance(String className, Class parameterType, Object argument) { - return newInstance(className, parameterType, argument, null); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter types and arguments. - *

- * Class.newInstance(Class[] parameterTypes, Object[] arguments) - */ - public static Object newInstance(String className, Class[] parameterTypes, Object[] arguments) { - return newInstance(className, parameterTypes, arguments, null); - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * using the class's default (zero-argument) constructor. - * Use the specified class loader to load the class. - *

- * Class.newInstance() - */ - public static Object newInstance(String className, ClassLoader classLoader) { - return newInstance(classForName(className, false, classLoader)); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter type and argument. - *

- * Class.newInstance(Class parameterType, Object argument) - */ - public static Object newInstance(String className, Class parameterType, Object argument, ClassLoader classLoader) { - return newInstance(classForName(className, false, classLoader), parameterType, argument); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter types and arguments. - *

- * Class.newInstance(Class[] parameterTypes, Object[] arguments) - */ - public static Object newInstance(String className, Class[] parameterTypes, Object[] arguments, ClassLoader classLoader) { - return newInstance(classForName(className, false, classLoader), parameterTypes, arguments); - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * using the class's default (zero-argument) constructor. - *

- * Class.newInstance() - */ - public static T newInstance(Class javaClass) { - return newInstance(javaClass, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS); - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * given the constructor parameter type and argument. - *

- * Class.newInstance(Class parameterType, Object argument) - */ - public static T newInstance(Class javaClass, Class parameterType, Object argument) { - return newInstance(javaClass, new Class[] {parameterType}, new Object[] {argument}); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter types and arguments. - *

- * Class.newInstance(Class[] parameterTypes, Object[] arguments) - */ - public static T newInstance(Class javaClass, Class[] parameterTypes, Object[] arguments) { - try { - return newInstance_(javaClass, parameterTypes, arguments); - } catch (InstantiationException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedConstructorSignature(javaClass, parameterTypes), ex); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedConstructorSignature(javaClass, parameterTypes), ex); - } catch (InvocationTargetException ex) { - throw new RuntimeException(buildFullyQualifiedConstructorSignature(javaClass, parameterTypes) + CR + ex.getTargetException(), ex); - } catch (NoSuchMethodException ex) { - throw new RuntimeException(ex + CR + buildFullyQualifiedConstructorSignature(javaClass, parameterTypes), ex); - } - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * using the class's default (zero-argument) constructor. - *

- * Class.newInstance() - */ - public static T newInstance_(Class javaClass) - throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException - { - return newInstance_(javaClass, ZERO_PARAMETER_TYPES, ZERO_ARGUMENTS); - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * given the constructor parameter type and argument. - *

- * Class.newInstance(Class parameterType, Object argument) - */ - public static T newInstance_(Class javaClass, Class parameterType, Object argument) - throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException - { - return newInstance_(javaClass, new Class[] {parameterType}, new Object[] {argument}); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter types and arguments. - *

- * Class.newInstance(Class[] parameterTypes, Object[] arguments) - */ - public static T newInstance_(Class javaClass, Class[] parameterTypes, Object[] arguments) - throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException - { - return getConstructor_(javaClass, parameterTypes).newInstance(arguments); - } - - - // ********** type declarations ********** - - /** - * Return the class for the specified "type declaration". - */ - public static Class getClassForTypeDeclaration(String typeDeclaration) { - return getClassForTypeDeclaration(typeDeclaration, null); - } - - /** - * Return the class for the specified "type declaration". - */ - public static Class getClassForTypeDeclaration_(String typeDeclaration) - throws ClassNotFoundException - { - return getClassForTypeDeclaration_(typeDeclaration, null); - } - - /** - * Return the class for the specified "type declaration", - * using the specified class loader. - */ - public static Class getClassForTypeDeclaration(String typeDeclaration, ClassLoader classLoader) { - TypeDeclaration td = buildTypeDeclaration(typeDeclaration); - return getClassForTypeDeclaration(td.elementTypeName, td.arrayDepth, classLoader); - } - - /** - * Return the class for the specified "type declaration", - * using the specified class loader. - */ - public static Class getClassForTypeDeclaration_(String typeDeclaration, ClassLoader classLoader) - throws ClassNotFoundException - { - TypeDeclaration td = buildTypeDeclaration(typeDeclaration); - return getClassForTypeDeclaration_(td.elementTypeName, td.arrayDepth, classLoader); - } - - private static TypeDeclaration buildTypeDeclaration(String typeDeclaration) { - typeDeclaration = StringTools.removeAllWhitespace(typeDeclaration); - int arrayDepth = getArrayDepthForTypeDeclaration_(typeDeclaration); - String elementTypeName = getElementTypeNameForTypeDeclaration_(typeDeclaration, arrayDepth); - return new TypeDeclaration(elementTypeName, arrayDepth); - } - - /** - * Return the array depth for the specified "type declaration"; e.g.

    - *
  • "int[]" returns 1 - *
  • "java.lang.String[][][]" returns 3 - *
- */ - public static int getArrayDepthForTypeDeclaration(String typeDeclaration) { - return getArrayDepthForTypeDeclaration_(StringTools.removeAllWhitespace(typeDeclaration)); - } - - /** - * pre-condition: no whitespace in the type declaration. - */ - private static int getArrayDepthForTypeDeclaration_(String typeDeclaration) { - int last = typeDeclaration.length() - 1; - int depth = 0; - int close = last; - while (typeDeclaration.charAt(close) == ']') { - if (typeDeclaration.charAt(close - 1) == '[') { - depth++; - } else { - throw new IllegalArgumentException("invalid type declaration: " + typeDeclaration); //$NON-NLS-1$ - } - close = last - (depth * 2); - } - return depth; - } - - /** - * Return the element type name for the specified "type declaration"; e.g.
    - *
  • "int[]" returns "int" - *
  • "java.lang.String[][][]" returns "java.lang.String" - *
- */ - public static String getElementTypeNameForTypeDeclaration(String typeDeclaration) { - typeDeclaration = StringTools.removeAllWhitespace(typeDeclaration); - return getElementTypeNameForTypeDeclaration_(typeDeclaration, getArrayDepthForTypeDeclaration_(typeDeclaration)); - } - - /** - * Return the element type name for the specified "type declaration"; e.g.
    - *
  • "int[]" returns "int" - *
  • "java.lang.String[][][]" returns "java.lang.String" - *
- * Useful for clients that have already queried the type declaration's array depth. - */ - public static String getElementTypeNameForTypeDeclaration(String typeDeclaration, int arrayDepth) { - return getElementTypeNameForTypeDeclaration_(StringTools.removeAllWhitespace(typeDeclaration), arrayDepth); - } - - /** - * pre-condition: no whitespace in the type declaration. - */ - private static String getElementTypeNameForTypeDeclaration_(String typeDeclaration, int arrayDepth) { - return typeDeclaration.substring(0, typeDeclaration.length() - (arrayDepth * 2)); - } - - /** - * Return the class for the specified "type declaration". - */ - public static Class getClassForTypeDeclaration(String elementTypeName, int arrayDepth) { - return getClassForTypeDeclaration(elementTypeName, arrayDepth, null); - } - - /** - * Return the class for the specified "type declaration". - */ - public static Class getClassForTypeDeclaration_(String elementTypeName, int arrayDepth) - throws ClassNotFoundException - { - return getClassForTypeDeclaration_(elementTypeName, arrayDepth, null); - } - - /** - * Return the class for the specified "type declaration", - * using the specified class loader. - */ - public static Class getClassForTypeDeclaration(String elementTypeName, int arrayDepth, ClassLoader classLoader) { - try { - return getClassForTypeDeclaration_(elementTypeName, arrayDepth, classLoader); - } catch (ClassNotFoundException ex) { - throw new RuntimeException(ex); - } - } - - /** - * Return the class for the specified "type declaration", - * using the specified class loader. - */ - // see the "Evaluation" of JDK bug 6446627 for a discussion of loading classes - public static Class getClassForTypeDeclaration_(String elementTypeName, int arrayDepth, ClassLoader classLoader) - throws ClassNotFoundException - { - // primitives cannot be loaded via Class.forName(), - // so check for a primitive class name first - Primitive pcc = null; - if (elementTypeName.length() <= MAX_PRIMITIVE_CLASS_NAME_LENGTH) { // performance tweak - for (Primitive primitive : PRIMITIVES) { - if (primitive.javaClass.getName().equals(elementTypeName)) { - pcc = primitive; - break; - } - } - } - - // non-array - if (arrayDepth == 0) { - return (pcc == null) ? Class.forName(elementTypeName, false, classLoader) : pcc.javaClass; - } - - // array - StringBuilder sb = new StringBuilder(100); - for (int i = arrayDepth; i-- > 0; ) { - sb.append('['); - } - if (pcc == null) { - ClassName.append(elementTypeName, sb); - } else { - sb.append(pcc.code); - } - return Class.forName(sb.toString(), false, classLoader); - } - - /** - * Return the class name for the specified "type declaration"; e.g.
    - *
  • "int" returns "int" - *
  • "int[]" returns "[I" - *
  • "java.lang.String" returns "java.lang.String" - *
  • "java.lang.String[][][]" returns "[[[Ljava.lang.String;" - *
- * @see java.lang.Class#getName() - */ - public static String getClassNameForTypeDeclaration(String typeDeclaration) { - TypeDeclaration td = buildTypeDeclaration(typeDeclaration); - return getClassNameForTypeDeclaration(td.elementTypeName, td.arrayDepth); - } - - /** - * Return the class name for the specified "type declaration". - * @see java.lang.Class#getName() - */ - public static String getClassNameForTypeDeclaration(String elementTypeName, int arrayDepth) { - // non-array - if (arrayDepth == 0) { - return elementTypeName; - } - - if (elementTypeName.equals(ClassName.VOID_CLASS_NAME)) { - throw new IllegalArgumentException('\'' + ClassName.VOID_CLASS_NAME + "' must have an array depth of zero: " + arrayDepth + '.'); //$NON-NLS-1$ - } - // array - StringBuilder sb = new StringBuilder(100); - for (int i = arrayDepth; i-- > 0; ) { - sb.append('['); - } - - // look for a primitive first - Primitive pcc = null; - if (elementTypeName.length() <= MAX_PRIMITIVE_CLASS_NAME_LENGTH) { // performance tweak - for (Primitive primitive : PRIMITIVES) { - if (primitive.javaClass.getName().equals(elementTypeName)) { - pcc = primitive; - break; - } - } - } - - if (pcc == null) { - ClassName.append(elementTypeName, sb); - } else { - sb.append(pcc.code); - } - - return sb.toString(); - } - - - // ********** exception messages ********** - - /** - * Return a string representation of the specified constructor. - */ - private static String buildFullyQualifiedConstructorSignature(Class javaClass, Class[] parameterTypes) { - return buildFullyQualifiedMethodSignature(javaClass, null, parameterTypes); - } - - /** - * Return a string representation of the specified field. - */ - private static String buildFullyQualifiedFieldName(Class javaClass, String fieldName) { - StringBuilder sb = new StringBuilder(200); - sb.append(javaClass.getName()); - sb.append('.'); - sb.append(fieldName); - return sb.toString(); - } - - /** - * Return a string representation of the specified field. - */ - private static String buildFullyQualifiedFieldName(Object object, String fieldName) { - return buildFullyQualifiedFieldName(object.getClass(), fieldName); - } - - /** - * Return a string representation of the specified method. - */ - private static String buildFullyQualifiedMethodSignature(Class javaClass, String methodName, Class[] parameterTypes) { - StringBuilder sb = new StringBuilder(200); - sb.append(javaClass.getName()); - // this check allows us to use this code for constructors, where the methodName is null - if (methodName != null) { - sb.append('.'); - sb.append(methodName); - } - sb.append('('); - int max = parameterTypes.length - 1; - if (max != -1) { - // stop one short of the end of the array - for (int i = 0; i < max; i++) { - sb.append(parameterTypes[i].getName()); - sb.append(", "); //$NON-NLS-1$ - } - sb.append(parameterTypes[max].getName()); - } - sb.append(')'); - return sb.toString(); - } - - - // ********** primitive constants ********** - - static final Iterable PRIMITIVES = buildPrimitives(); - - public static final char BYTE_CODE = 'B'; - public static final char CHAR_CODE = 'C'; - public static final char DOUBLE_CODE = 'D'; - public static final char FLOAT_CODE = 'F'; - public static final char INT_CODE = 'I'; - public static final char LONG_CODE = 'J'; - public static final char SHORT_CODE = 'S'; - public static final char BOOLEAN_CODE = 'Z'; - public static final char VOID_CODE = 'V'; - - static final int MAX_PRIMITIVE_CLASS_NAME_LENGTH = calculateMaxPrimitiveClassNameLength(); - static final int MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH = calculateMaxPrimitiveWrapperClassNameLength(); - - private static int calculateMaxPrimitiveClassNameLength() { - int max = -1; - for (Primitive primitive : PRIMITIVES) { - int len = primitive.javaClass.getName().length(); - if (len > max) { - max = len; - } - } - return max; - } - - private static int calculateMaxPrimitiveWrapperClassNameLength() { - int max = -1; - for (Primitive primitive : PRIMITIVES) { - int len = primitive.wrapperClass.getName().length(); - if (len > max) { - max = len; - } - } - return max; - } - - /** - * NB: void.class.isPrimitive() == true - */ - private static Iterable buildPrimitives() { - Primitive[] array = new Primitive[9]; - array[0] = new Primitive(BYTE_CODE, java.lang.Byte.class); - array[1] = new Primitive(CHAR_CODE, java.lang.Character.class); - array[2] = new Primitive(DOUBLE_CODE, java.lang.Double.class); - array[3] = new Primitive(FLOAT_CODE, java.lang.Float.class); - array[4] = new Primitive(INT_CODE, java.lang.Integer.class); - array[5] = new Primitive(LONG_CODE, java.lang.Long.class); - array[6] = new Primitive(SHORT_CODE, java.lang.Short.class); - array[7] = new Primitive(BOOLEAN_CODE, java.lang.Boolean.class); - array[8] = new Primitive(VOID_CODE, java.lang.Void.class); - return new ArrayIterable(array); - } - - - // ********** member classes ********** - - static class Primitive { - final char code; - final Class javaClass; - final Class wrapperClass; - private static final String WRAPPER_CLASS_TYPE_FIELD_NAME = "TYPE"; //$NON-NLS-1$ - // e.g. java.lang.Boolean.TYPE => boolean.class - Primitive(char code, Class wrapperClass) { - this.code = code; - this.wrapperClass = wrapperClass; - this.javaClass = (Class) getStaticFieldValue(wrapperClass, WRAPPER_CLASS_TYPE_FIELD_NAME); - } - } - - private static class TypeDeclaration { - final String elementTypeName; - final int arrayDepth; - TypeDeclaration(String elementTypeName, int arrayDepth) { - this.elementTypeName = elementTypeName; - this.arrayDepth = arrayDepth; - } - } - - - // ********** suppressed constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private ReflectionTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReverseComparator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReverseComparator.java deleted file mode 100644 index 948b8588e4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ReverseComparator.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.Comparator; - -/** - * This comparator will reverse the order of the specified comparator. - * If the comparator is null, the natural ordering of the objects will be used. - */ -public class ReverseComparator> - implements Comparator, Serializable -{ - private final Comparator comparator; - - public ReverseComparator() { - this(null); - } - - public ReverseComparator(Comparator comparator) { - super(); - this.comparator = comparator; - } - - public int compare(E e1, E e2) { - return (this.comparator == null) ? - e2.compareTo(e1) - : - this.comparator.compare(e2, e1); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/RunnableCommand.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/RunnableCommand.java deleted file mode 100644 index 997996b5ff..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/RunnableCommand.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import org.eclipse.jpt.common.utility.Command; - -/** - * Wrap a Runnable so it can be used as a Command. - */ -public class RunnableCommand implements Command { - protected final Runnable runnable; - - public RunnableCommand(Runnable runnable) { - super(); - if (runnable == null) { - throw new NullPointerException(); - } - this.runnable = runnable; - } - - public void execute() { - this.runnable.run(); - } - - @Override - public String toString() { - return "Command[" + this.runnable.toString() +']'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleAssociation.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleAssociation.java deleted file mode 100644 index 8490c267b4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleAssociation.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * Straightforward implementation of {@link Association}. - */ -public class SimpleAssociation - extends AbstractAssociation - implements Cloneable, Serializable -{ - private final K key; - private V value; - - private static final long serialVersionUID = 1L; - - - /** - * Construct an association with the specified key - * and a null value. - */ - public SimpleAssociation(K key) { - super(); - this.key = key; - } - - /** - * Construct an association with the specified key and value. - */ - public SimpleAssociation(K key, V value) { - this(key); - this.value = value; - } - - - public K getKey() { - return this.key; - } - - public synchronized V getValue() { - return this.value; - } - - public synchronized V setValue(V value) { - V old = this.value; - this.value = value; - return old; - } - - @Override - @SuppressWarnings("unchecked") - public synchronized SimpleAssociation clone() { - try { - return (SimpleAssociation) super.clone(); - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleBooleanReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleBooleanReference.java deleted file mode 100644 index 9dabf58f59..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleBooleanReference.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * Provide a container for passing a flag that can be changed by the recipient. - * - * @see SynchronizedBoolean - */ -public class SimpleBooleanReference - implements BooleanReference, Cloneable, Serializable -{ - /** Backing boolean. */ - protected volatile boolean value; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Create a boolean reference with the specified initial value. - */ - public SimpleBooleanReference(boolean value) { - super(); - this.value = value; - } - - /** - * Create a boolean reference with an initial value of - * false. - */ - public SimpleBooleanReference() { - this(false); - } - - - // ********** accessors ********** - - public boolean getValue() { - return this.value; - } - - public boolean is(boolean v) { - return this.value == v; - } - - public boolean isNot(boolean v) { - return this.value != v; - } - - public boolean isTrue() { - return this.value; - } - - public boolean isFalse() { - return ! this.value; - } - - public boolean setValue(boolean value) { - boolean old = this.value; - this.value = value; - return old; - } - - public boolean flip() { - return this.value = ! this.value; - } - - public boolean setNot(boolean v) { - return this.setValue( ! v); - } - - public boolean setTrue() { - return this.setValue(true); - } - - public boolean setFalse() { - return this.setValue(false); - } - - - // ********** standard methods ********** - - @Override - public SimpleBooleanReference clone() { - try { - return (SimpleBooleanReference) super.clone(); - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public String toString() { - return '[' + String.valueOf(this.value) + ']'; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleCommandExecutor.java deleted file mode 100644 index 169654a766..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleCommandExecutor.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import org.eclipse.jpt.common.utility.Command; - -/** - * Straightforward implementation of {@link StatefulCommandExecutor}. - */ -public class SimpleCommandExecutor - implements StatefulCommandExecutor -{ - private boolean active = false; - - public SimpleCommandExecutor() { - super(); - } - - public void start() { - if (this.active) { - throw new IllegalStateException("Not stopped."); //$NON-NLS-1$ - } - this.active = true; - } - - public void execute(Command command) { - if (this.active) { - command.execute(); - } - } - - public void stop() { - if ( ! this.active) { - throw new IllegalStateException("Not started."); //$NON-NLS-1$ - } - this.active = false; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleFilter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleFilter.java deleted file mode 100644 index 7cff1214c6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleFilter.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import org.eclipse.jpt.common.utility.Filter; - -/** - * Simple, abstract implementation of Filter - * that holds on to a criterion object that can be used in the - * accept(Object) or reject(Object) - * methods. Subclasses can override either of these methods, - * depending on which is easier to implement. Note that at least - * one of these methods must be overridden or - * an infinite loop will occur. If both of them are overridden, - * only the accept(Object) method will be used. - *

- * Simplifies the implementation of straightforward inner classes. - * Here is an example of a filter that can be used by a - * FilteringIterator to return only those strings - * in the nested iterator start with "prefix": - *

- *	Filter filter = new SimpleFilter("prefix") {
- *		public boolean accept(String o) {
- *			return o.startsWith((String) criterion);
- *		}
- *	};
- * 
- */ -public abstract class SimpleFilter - implements Filter, Cloneable, Serializable -{ - protected final S criterion; - - private static final long serialVersionUID = 1L; - - - /** - * More useful constructor. The specified criterion can - * be used by a subclass to "accept" or "reject" objects. - */ - protected SimpleFilter(S criterion) { - super(); - this.criterion = criterion; - } - - /** - * Construct a simple filter with a null criterion - */ - protected SimpleFilter() { - this(null); - } - - /** - * Return whether the the specified object should be "rejected". - * The semantics of "rejected" is determined by the client. - */ - protected boolean reject(T o) { - return ! this.accept(o); - } - - /** - * Return whether the the specified object should be "accepted". - * The semantics of "accepted" is determined by the client. - */ - public boolean accept(T o) { - return ! this.reject(o); - } - - @Override - @SuppressWarnings("unchecked") - public SimpleFilter clone() { - try { - return (SimpleFilter) super.clone(); - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public boolean equals(Object o) { - if ( ! (o instanceof SimpleFilter)) { - return false; - } - SimpleFilter other = (SimpleFilter) o; - return (this.criterion == null) ? - (other.criterion == null) : this.criterion.equals(other.criterion); - } - - @Override - public int hashCode() { - return (this.criterion == null) ? 0 : this.criterion.hashCode(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.criterion); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleIntReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleIntReference.java deleted file mode 100644 index fa7a3b452d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleIntReference.java +++ /dev/null @@ -1,186 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * This class can be used wherever a mutable integer object is needed. - * It is a cross between an int and an {@link Integer}. - * It can be stored in a standard container (e.g. {@link java.util.Collection}) - * but can be modified. It is also useful passing a value that can be changed - * by the recipient. - * - * @see SynchronizedInt - */ -public final class SimpleIntReference - implements IntReference, Cloneable, Serializable -{ - /** Backing int. */ - private volatile int value = 0; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a int reference with the specified initial value. - */ - public SimpleIntReference(int count) { - super(); - this.value = count; - } - - /** - * Construct a int reference with an initial value of zero. - */ - public SimpleIntReference() { - this(0); - } - - - // ********** methods ********** - - public int getValue() { - return this.value; - } - - public boolean equals(int v) { - return this.value == v; - } - - public boolean notEqual(int v) { - return this.value != v; - } - - public boolean isZero() { - return this.value == 0; - } - - public boolean isNotZero() { - return this.value != 0; - } - - public boolean isGreaterThan(int v) { - return this.value > v; - } - - public boolean isGreaterThanOrEqual(int v) { - return this.value >= v; - } - - public boolean isLessThan(int v) { - return this.value < v; - } - - public boolean isLessThanOrEqual(int v) { - return this.value <= v; - } - - public boolean isPositive() { - return this.isGreaterThan(0); - } - - public boolean isNotPositive() { - return this.isLessThanOrEqual(0); - } - - public boolean isNegative() { - return this.isLessThan(0); - } - - public boolean isNotNegative() { - return this.isGreaterThanOrEqual(0); - } - - public int abs() { - return Math.abs(this.value); - } - - public int neg() { - return -this.value; - } - - public int add(int v) { - return this.value + v; - } - - public int subtract(int v) { - return this.value - v; - } - - public int multiply(int v) { - return this.value * v; - } - - public int divide(int v) { - return this.value / v; - } - - public int remainder(int v) { - return this.value % v; - } - - public int min(int v) { - return Math.min(this.value, v); - } - - public int max(int v) { - return Math.max(this.value, v); - } - - public double pow(int v) { - return Math.pow(this.value, v); - } - - public int setValue(int value) { - int old = this.value; - this.value = value; - return old; - } - - public int setZero() { - return this.setValue(0); - } - - public int increment() { - return ++this.value; - } - - public int decrement() { - return --this.value; - } - - - // ********** Comparable implementation ********** - - public int compareTo(ReadOnlyIntReference ref) { - int v = ref.getValue(); - return (this.value < v) ? -1 : ((this.value == v) ? 0 : 1); - } - - - // ********** standard methods ********** - - @Override - public SimpleIntReference clone() { - try { - return (SimpleIntReference) super.clone(); - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public String toString() { - return '[' + String.valueOf(this.value) + ']'; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleJavaType.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleJavaType.java deleted file mode 100644 index ef47ba3097..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleJavaType.java +++ /dev/null @@ -1,213 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.PrintWriter; -import java.io.Serializable; - -import org.eclipse.jpt.common.utility.JavaType; - -/** - * Straightforward implementation of the {@link JavaType} interface. - */ -public final class SimpleJavaType - implements JavaType, Cloneable, Serializable -{ - - /** - * store the type as a name, so we can reference classes - * that are not loaded - */ - private final String elementTypeName; - - /** - * non-array types have an array depth of zero - */ - private final int arrayDepth; - - private static final String BRACKETS = "[]"; //$NON-NLS-1$ - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a Java type with the specified element type and array depth. - */ - public SimpleJavaType(String elementTypeName, int arrayDepth) { - super(); - if ((elementTypeName == null) || (elementTypeName.length() == 0)) { - throw new IllegalArgumentException("The element type name is required."); //$NON-NLS-1$ - } - if (ClassName.getArrayDepth(elementTypeName) != 0) { // e.g. "[Ljava.lang.Object;" - throw new IllegalArgumentException("The element type must not be an array: " + elementTypeName + '.'); //$NON-NLS-1$ - } - if (arrayDepth < 0) { - throw new IllegalArgumentException("The array depth must be greater than or equal to zero: " + arrayDepth + '.'); //$NON-NLS-1$ - } - if (elementTypeName.equals(void.class.getName()) && (arrayDepth != 0)) { - throw new IllegalArgumentException("'void' must have an array depth of zero: " + arrayDepth + '.'); //$NON-NLS-1$ - } - this.elementTypeName = elementTypeName; - this.arrayDepth = arrayDepth; - } - - /** - * Construct a Java type for the specified class. - * The class name can be in one of the following forms:
    - *
  • java.lang.Object - *
  • int - *
  • java.util.Map$Entry - *
  • [Ljava.lang.Object; - *
  • [I - *
  • [Ljava.util.Map$Entry; - *
- */ - public SimpleJavaType(String javaClassName) { - this(ClassName.getElementTypeName(javaClassName), ClassName.getArrayDepth(javaClassName)); - } - - /** - * Construct a Java type for the specified class. - */ - public SimpleJavaType(Class javaClass) { - this(javaClass.getName()); - } - - - // ********** accessors ********** - - public String getElementTypeName() { - return this.elementTypeName; - } - - public int getArrayDepth() { - return this.arrayDepth; - } - - - // ********** queries ********** - - public boolean isArray() { - return this.arrayDepth > 0; - } - - public boolean isPrimitive() { - return (this.arrayDepth == 0) && ClassName.isPrimitive(this.elementTypeName); - } - - public boolean isPrimitiveWrapper() { - return (this.arrayDepth == 0) && ClassName.isPrimitiveWrapper(this.elementTypeName); - } - - public boolean isVariablePrimitive() { - return (this.arrayDepth == 0) && ClassName.isVariablePrimitive(this.elementTypeName); - } - - public boolean isVariablePrimitiveWrapper() { - return (this.arrayDepth == 0) && ClassName.isVariablePrimitiveWrapper(this.elementTypeName); - } - - public Class getJavaClass() throws ClassNotFoundException { - return ReflectionTools.getClassForTypeDeclaration(this.elementTypeName, this.arrayDepth); - } - - public String getJavaClassName() { - return ReflectionTools.getClassNameForTypeDeclaration(this.elementTypeName, this.arrayDepth); - } - - - // ********** comparison ********** - - public boolean equals(String otherElementTypeName, int otherArrayDepth) { - return (this.arrayDepth == otherArrayDepth) - && this.elementTypeName.equals(otherElementTypeName); - } - - public boolean describes(String className) { - return this.equals(ClassName.getElementTypeName(className), ClassName.getArrayDepth(className)); - } - - public boolean describes(Class javaClass) { - return this.describes(javaClass.getName()); - } - - public boolean equals(JavaType other) { - return this.equals(other.getElementTypeName(), other.getArrayDepth()); - } - - @Override - public boolean equals(Object o) { - return (this == o) ? true : (o instanceof JavaType) ? this.equals((JavaType) o) : false; - } - - @Override - public int hashCode() { - return this.elementTypeName.hashCode() ^ this.arrayDepth; - } - - - // ********** printing and displaying ********** - - public String declaration() { - if (this.arrayDepth == 0) { - return this.getElementTypeNameDeclaration(); - } - StringBuilder sb = new StringBuilder(this.elementTypeName.length() + (2 * this.arrayDepth)); - this.appendDeclarationTo(sb); - return sb.toString(); - } - - public void appendDeclarationTo(StringBuilder sb) { - sb.append(this.getElementTypeNameDeclaration()); - for (int i = this.arrayDepth; i-- > 0; ) { - sb.append(BRACKETS); - } - } - - public void printDeclarationOn(PrintWriter pw) { - pw.print(this.getElementTypeNameDeclaration()); - for (int i = this.arrayDepth; i-- > 0; ) { - pw.print(BRACKETS); - } - } - - /** - * The '$' version of the name is used in {@link Class#forName(String)}, - * but the '.' version of the name is used in source code. - * Very irritating.... - */ - private String getElementTypeNameDeclaration() { - return this.elementTypeName.replace('$', '.'); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(this.getClass().getSimpleName()); - sb.append('('); - this.appendDeclarationTo(sb); - sb.append(')'); - return sb.toString(); - } - - - // ********** cloning ********** - - @Override - public Object clone() { - try { - return super.clone(); - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleMethodSignature.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleMethodSignature.java deleted file mode 100644 index 0a4b523c3e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleMethodSignature.java +++ /dev/null @@ -1,240 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.PrintWriter; -import java.io.Serializable; -import java.lang.reflect.Method; -import java.util.Arrays; - -import org.eclipse.jpt.common.utility.JavaType; -import org.eclipse.jpt.common.utility.MethodSignature; - -/** - * Straightforward implementation of the MethodSignature interface. - */ -public final class SimpleMethodSignature - implements MethodSignature, Cloneable, Serializable -{ - private final String name; - - /** - * store the parameter types as names, so we can reference classes - * that are not loaded - */ - private final JavaType[] parameterTypes; - - public static final JavaType[] EMPTY_PARAMETER_TYPES = new JavaType[0]; - - private static final String PARAMETER_SEPARATOR = ", "; //$NON-NLS-1$ - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a method signature with the specified name and - * no parameter types. - */ - public SimpleMethodSignature(String name) { - this(name, EMPTY_PARAMETER_TYPES); - } - - /** - * Construct a method signature with the specified name and parameter - * types. - */ - public SimpleMethodSignature(String name, JavaType... parameterTypes) { - super(); - if ((name == null) || (name.length() == 0)) { - throw new IllegalArgumentException("The name is required."); //$NON-NLS-1$ - } - if (parameterTypes == null) { - throw new IllegalArgumentException("The parameter types are required."); //$NON-NLS-1$ - } - checkParameterTypes(parameterTypes); - this.name = name; - this.parameterTypes = parameterTypes; - } - - private static void checkParameterTypes(JavaType[] parameterTypes) { - for (int i = 0; i < parameterTypes.length; i++) { - if (parameterTypes[i] == null) { - throw new IllegalArgumentException("Missing parameter type: " + i); //$NON-NLS-1$ - } - if (parameterTypes[i].getElementTypeName().equals(void.class.getName())) { - throw new IllegalArgumentException("A parameter type of 'void' is not allowed: " + i); //$NON-NLS-1$ - } - } - } - - /** - * Construct a method signature with the specified name and parameter - * types. - */ - public SimpleMethodSignature(String name, String... parameterTypeNames) { - this(name, buildParameterTypes(parameterTypeNames)); - } - - private static JavaType[] buildParameterTypes(String[] parameterTypeNames) { - if (parameterTypeNames == null) { - throw new IllegalArgumentException("The parameter type names are required."); //$NON-NLS-1$ - } - JavaType[] parameterTypes = new JavaType[parameterTypeNames.length]; - for (int i = 0; i < parameterTypeNames.length; i++) { - if (parameterTypeNames[i] == null) { - throw new IllegalArgumentException("Missing parameter type name: " + i); //$NON-NLS-1$ - } - parameterTypes[i] = new SimpleJavaType(parameterTypeNames[i]); - } - return parameterTypes; - } - - /** - * Construct a method signature with the specified name and parameter - * types. - */ - public SimpleMethodSignature(String name, Class... parameterJavaClasses) { - this(name, buildParameterTypeNames(parameterJavaClasses)); - } - - private static String[] buildParameterTypeNames(Class[] parameterJavaClasses) { - if (parameterJavaClasses == null) { - throw new IllegalArgumentException("The parameter Java classes are required."); //$NON-NLS-1$ - } - String[] parameterTypeNames = new String[parameterJavaClasses.length]; - for (int i = 0; i < parameterJavaClasses.length; i++) { - if (parameterJavaClasses[i] == null) { - throw new IllegalArgumentException("Missing parameter Java class: " + i); //$NON-NLS-1$ - } - parameterTypeNames[i] = parameterJavaClasses[i].getName(); - } - return parameterTypeNames; - } - - /** - * Construct a method signature for the specified Java method. - */ - public SimpleMethodSignature(Method method) { - this(method.getName(), method.getParameterTypes()); - } - - - // ********** accessors ********** - - public String getName() { - return this.name; - } - - public JavaType[] getParameterTypes() { - return this.parameterTypes; - } - - - // ********** comparison ********** - - public boolean describes(Method method) { - return this.name.equals(method.getName()) - && this.parameterTypesDescribe(method.getParameterTypes()); - } - - private boolean parameterTypesDescribe(Class[] otherParameterTypes) { - JavaType[] localParameterTypes = this.parameterTypes; - int len = localParameterTypes.length; - if (otherParameterTypes.length != len) { - return false; - } - for (int i = len; i-- > 0; ) { - if ( ! localParameterTypes[i].describes(otherParameterTypes[i])) { - return false; - } - } - return true; - } - - public boolean equals(String otherName, JavaType[] otherParameterTypes) { - return this.name.equals(otherName) - && Arrays.equals(this.parameterTypes, otherParameterTypes); - } - - public boolean equals(MethodSignature other) { - return this.equals(other.getName(), other.getParameterTypes()); - } - - @Override - public boolean equals(Object o) { - return (this == o) ? true : (o instanceof MethodSignature) ? this.equals((MethodSignature) o) : false; - } - - @Override - public int hashCode() { - return this.name.hashCode() ^ Arrays.hashCode(this.parameterTypes); - } - - - // ********** printing and displaying ********** - - public String getSignature() { - StringBuilder sb = new StringBuilder(200); - this.appendSignatureTo(sb); - return sb.toString(); - } - - public void appendSignatureTo(StringBuilder sb) { - sb.append(this.name); - sb.append('('); - JavaType[] localParameterTypes = this.parameterTypes; - int len = localParameterTypes.length; - for (int i = 0; i < len; i++) { - if (i != 0) { - sb.append(PARAMETER_SEPARATOR); - } - localParameterTypes[i].appendDeclarationTo(sb); - } - sb.append(')'); - } - - public void printSignatureOn(PrintWriter pw) { - pw.print(this.name); - pw.print('('); - JavaType[] localParameterTypes = this.parameterTypes; - int len = localParameterTypes.length; - for (int i = 0; i < len; i++) { - if (i != 0) { - pw.print(PARAMETER_SEPARATOR); - } - localParameterTypes[i].printDeclarationOn(pw); - } - pw.print(')'); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(200); - sb.append(this.getClass().getSimpleName()); - sb.append('('); - this.appendSignatureTo(sb); - sb.append(')'); - return sb.toString(); - } - - - // ********** cloning ********** - - @Override - public Object clone() { - try { - return super.clone(); - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleObjectReference.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleObjectReference.java deleted file mode 100644 index 5134aa98a3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleObjectReference.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import org.eclipse.jpt.common.utility.ObjectReference; - -/** - * Provide a container for passing an object that can be changed by the recipient. - * - * @see SynchronizedObject - */ -public class SimpleObjectReference - implements ObjectReference, Cloneable, Serializable -{ - /** Backing value. */ - private volatile V value; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Create an object reference with the specified initial value. - */ - public SimpleObjectReference(V value) { - super(); - this.value = value; - } - - /** - * Create an object reference with an initial value of - * null. - */ - public SimpleObjectReference() { - this(null); - } - - - // ********** value ********** - - public V getValue() { - return this.value; - } - - public boolean valueEquals(Object object) { - return Tools.valuesAreEqual(this.value, object); - } - - public boolean valueNotEqual(Object object) { - return Tools.valuesAreDifferent(this.value, object); - } - - public boolean isNull() { - return this.value == null; - } - - public boolean isNotNull() { - return this.value != null; - } - - public V setValue(V value) { - V old = this.value; - this.value = value; - return old; - } - - public V setNull() { - return this.setValue(null); - } - - - // ********** standard methods ********** - - @Override - public SimpleObjectReference clone() { - try { - @SuppressWarnings("unchecked") - SimpleObjectReference clone = (SimpleObjectReference) super.clone(); - return clone; - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public String toString() { - return '[' + String.valueOf(this.value) + ']'; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleQueue.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleQueue.java deleted file mode 100644 index 02e026c7db..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleQueue.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.Collection; -import java.util.LinkedList; - -/** - * Straightforward implementation of the {@link Queue} interface. - */ -public class SimpleQueue - implements Queue, Cloneable, Serializable -{ - private LinkedList elements; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct an empty queue. - */ - public SimpleQueue() { - super(); - this.elements = new LinkedList(); - } - - /** - * Construct a queue containing the elements of the specified - * collection. The queue will dequeue its elements in the same - * order they are returned by the collection's iterator (i.e. the - * first element returned by the collection's iterator will be the - * first element returned by {@link #dequeue()}). - */ - public SimpleQueue(Collection c) { - super(); - this.elements = new LinkedList(c); - } - - - // ********** Queue implementation ********** - - public void enqueue(E o) { - this.elements.addLast(o); - } - - public E dequeue() { - return this.elements.removeFirst(); - } - - public E peek() { - return this.elements.getFirst(); - } - - public boolean isEmpty() { - return this.elements.isEmpty(); - } - - - // ********** Cloneable implementation ********** - - @Override - public SimpleQueue clone() { - try { - @SuppressWarnings("unchecked") - SimpleQueue clone = (SimpleQueue) super.clone(); - @SuppressWarnings("unchecked") - LinkedList ll = (LinkedList) this.elements.clone(); - clone.elements = ll; - return clone; - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.peek()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStack.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStack.java deleted file mode 100644 index 3816b49a87..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStack.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.Collection; -import java.util.EmptyStackException; -import java.util.LinkedList; -import java.util.NoSuchElementException; - -/** - * Straightforward implementation of the {@link Stack} interface. - */ -public class SimpleStack - implements Stack, Cloneable, Serializable -{ - private LinkedList elements; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct an empty stack. - */ - public SimpleStack() { - super(); - this.elements = new LinkedList(); - } - - /** - * Construct a stack containing the elements of the specified - * collection. The stack will pop its elements in reverse of the - * order they are returned by the collection's iterator (i.e. the - * last element returned by the collection's iterator will be the - * first element returned by {@link #pop()}). - */ - public SimpleStack(Collection collection) { - super(); - this.elements = new LinkedList(collection); - } - - - // ********** Stack implementation ********** - - public void push(E element) { - this.elements.addLast(element); - } - - public E pop() { - try { - return this.elements.removeLast(); - } catch (NoSuchElementException ex) { - throw new EmptyStackException(); - } - } - - public E peek() { - try { - return this.elements.getLast(); - } catch (NoSuchElementException ex) { - throw new EmptyStackException(); - } - } - - public boolean isEmpty() { - return this.elements.isEmpty(); - } - - - // ********** standard methods ********** - - @Override - public SimpleStack clone() { - try { - @SuppressWarnings("unchecked") - SimpleStack clone = (SimpleStack) super.clone(); - @SuppressWarnings("unchecked") - LinkedList ll = (LinkedList) this.elements.clone(); - clone.elements = ll; - return clone; - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.peek()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStringMatcher.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStringMatcher.java deleted file mode 100644 index 5f85f7895c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleStringMatcher.java +++ /dev/null @@ -1,259 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.regex.Pattern; -import org.eclipse.jpt.common.utility.Filter; - -// TODO the regex code is not very fast - we could probably do better, -// hand-coding the matching algorithm (eclipse StringMatcher?) -/** - * This class implements a simple string-matching algorithm that is a little - * more user-friendly than standard regular expressions. Instantiate a - * string matcher with a filter pattern and then you can use the matcher - * to determine whether another string (or object) matches the pattern. - * You can also specify whether the matching should be case-sensitive. - * - * The pattern can contain two "meta-characters": - * '*' will match any set of zero or more characters - * '?' will match any single character - * - * Subclasses can override #prefix() and/or #suffix() to change what - * strings are prepended or appended to the original pattern string. - * This can offer a slight performance improvement over concatenating - * strings before calling #setPatternString(String). - * By default, a '*' is appended to every string. - * - * This class also uses the string-matching algorithm to "filter" objects - * (and, as a result, also implements the Filter interface). - * A string converter is used to determine what string aspect of the - * object is compared to the pattern. By default the string returned - * by the object's #toString() method is passed to the pattern matcher. - */ -public class SimpleStringMatcher - implements StringMatcher, Filter, Serializable -{ - - /** An adapter that converts the objects into strings to be matched with the pattern. */ - private StringConverter stringConverter; - - /** The string used to construct the regular expression pattern. */ - private String patternString; - - /** Whether the matcher ignores case - the default is true. */ - private boolean ignoresCase; - - /** The regular expression pattern built from the pattern string. */ - private Pattern pattern; - - /** A list of the meta-characters we need to escape if found in the pattern string. */ - public static final char[] REG_EX_META_CHARS = { '(', '[', '{', '\\', '^', '$', '|', ')', '?', '*', '+', '.' }; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a string matcher with an pattern that will match - * any string and ignore case. - */ - public SimpleStringMatcher() { - this("*"); //$NON-NLS-1$ - } - - /** - * Construct a string matcher with the specified pattern - * that will ignore case. - */ - public SimpleStringMatcher(String patternString) { - this(patternString, true); - } - - /** - * Construct a string matcher with the specified pattern that will - * ignore case as specified. - */ - public SimpleStringMatcher(String patternString, boolean ignoresCase) { - super(); - this.patternString = patternString; - this.ignoresCase = ignoresCase; - this.initialize(); - } - - - // ********** initialization ********** - - protected void initialize() { - this.stringConverter = StringConverter.Default.instance(); - this.rebuildPattern(); - } - - /** - * Given the current pattern string and case-sensitivity setting, - * re-build the regular expression pattern. - */ - protected synchronized void rebuildPattern() { - this.pattern = this.buildPattern(); - } - - /** - * Given the current pattern string and case-sensitivity setting, - * build and return a regular expression pattern that can be used - * to match strings. - */ - protected Pattern buildPattern() { - int patternFlags = 0x0; - if (this.ignoresCase) { - patternFlags = Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE; - } - return Pattern.compile(this.convertToRegEx(this.patternString), patternFlags); - } - - - // ********** StringMatcher implementation ********** - - public synchronized void setPatternString(String patternString) { - this.patternString = patternString; - this.rebuildPattern(); - } - - /** - * Return whether the specified string matches the pattern. - */ - public synchronized boolean matches(String string) { - return this.pattern.matcher(string).matches(); - } - - - // ********** Filter implementation ********** - - public synchronized boolean accept(T o) { - return this.matches(this.stringConverter.convertToString(o)); - } - - - // ********** accessors ********** - - /** - * Return the string converter used to convert the objects - * passed to the matcher into strings. - */ - public synchronized StringConverter stringConverter() { - return this.stringConverter; - } - - /** - * Set the string converter used to convert the objects - * passed to the matcher into strings. - */ - public synchronized void setStringConverter(StringConverter stringConverter) { - this.stringConverter = stringConverter; - } - - /** - * Return the original pattern string. - */ - public synchronized String patternString() { - return this.patternString; - } - - /** - * Return whether the matcher ignores case. - */ - public synchronized boolean ignoresCase() { - return this.ignoresCase; - } - - /** - * Set whether the matcher ignores case. - */ - public synchronized void setIgnoresCase(boolean ignoresCase) { - this.ignoresCase = ignoresCase; - this.rebuildPattern(); - } - - /** - * Return the regular expression pattern. - */ - public synchronized Pattern pattern() { - return this.pattern; - } - - - // ********** other public API ********** - - /** - * Return the regular expression corresponding to - * the original pattern string. - */ - public synchronized String regularExpression() { - return this.convertToRegEx(this.patternString); - } - - - // ********** converting ********** - - /** - * Convert the specified string to a regular expression. - */ - protected String convertToRegEx(String string) { - StringBuffer sb = new StringBuffer(string.length() + 10); - this.convertToRegExOn(this.prefix(), sb); - this.convertToRegExOn(string, sb); - this.convertToRegExOn(this.suffix(), sb); - return sb.toString(); - } - - /** - * Return any prefix that should be prepended to the original - * string. By default, there is no prefix. - */ - protected String prefix() { - return ""; //$NON-NLS-1$ - } - - /** - * Return any suffix that should be appended to the original - * string. Since this class is typically used in UI situation where - * the user is typing in a pattern used to filter a list, the default - * suffix is a wildcard character. - */ - protected String suffix() { - return "*"; //$NON-NLS-1$ - } - - /** - * Convert the specified string to a regular expression. - */ - protected void convertToRegExOn(String string, StringBuffer sb) { - char[] charArray = string.toCharArray(); - int length = charArray.length; - for (int i = 0; i < length; i++) { - char c = charArray[i]; - // convert user-friendly meta-chars into regex meta-chars - if (c == '*') { - sb.append(".*"); //$NON-NLS-1$ - continue; - } - if (c == '?') { - sb.append('.'); - continue; - } - // escape regex meta-chars - if (ArrayTools.contains(REG_EX_META_CHARS, c)) { - sb.append('\\'); - } - sb.append(c); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleThreadFactory.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleThreadFactory.java deleted file mode 100644 index 4c2bbb037d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SimpleThreadFactory.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.util.concurrent.ThreadFactory; - -/** - * A SimpleThreadFactory is a straightforward implementation of - * the JDK {@link ThreadFactory}. - */ -public class SimpleThreadFactory - implements ThreadFactory -{ - // singleton - private static final SimpleThreadFactory INSTANCE = new SimpleThreadFactory(); - - /** - * Return the singleton. - */ - public static ThreadFactory instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private SimpleThreadFactory() { - super(); - } - - public Thread newThread(Runnable r) { - return new Thread(r); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Stack.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Stack.java deleted file mode 100644 index 88186bffe3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Stack.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.EmptyStackException; - -/** - * Interface defining the classic stack behavior, - * without the backdoors allowed by {@link java.util.Stack}. - * - * @param the type of elements contained by the stack - */ -public interface Stack { - - /** - * "Push" the specified item on to the top of the stack. - */ - void push(E element); - - /** - * "Pop" an item from the top of the stack. - */ - E pop(); - - /** - * Return the item on the top of the stack - * without removing it from the stack. - */ - E peek(); - - /** - * Return whether the stack is empty. - */ - boolean isEmpty(); - - - final class Empty implements Stack, Serializable { - @SuppressWarnings("rawtypes") - public static final Stack INSTANCE = new Empty(); - @SuppressWarnings("unchecked") - public static Stack instance() { - return INSTANCE; - } - // ensure single instance - private Empty() { - super(); - } - public void push(E element) { - throw new UnsupportedOperationException(); - } - public E pop() { - throw new EmptyStackException(); - } - public E peek() { - throw new EmptyStackException(); - } - public boolean isEmpty() { - return true; - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StatefulCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StatefulCommandExecutor.java deleted file mode 100644 index 97e99de81c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StatefulCommandExecutor.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import org.eclipse.jpt.common.utility.CommandExecutor; - -/** - * This interface allows clients to control how a command is executed. - * This is useful when the server provides the command but the client provides - * the context (e.g. the client would like to dispatch the command to the UI - * thread). - */ -public interface StatefulCommandExecutor - extends CommandExecutor -{ - /** - * Start the command executor. - */ - void start(); - - /** - * Stop the command executor. - */ - void stop(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringCollator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringCollator.java deleted file mode 100644 index eefb0b0a33..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringCollator.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.text.Collator; -import java.util.Comparator; -import java.util.Locale; - -/** - * This collator simply wraps a Java text collator and implements a - * {@link String} {@link Comparator} (instead of an {@link Object} - * {@link Comparator}, which is what {@link Collator} does, possibly for - * backward-compatibility reasons(?)). - * - * @see Collator - */ -public class StringCollator - implements Comparator -{ - private final Collator collator; - - - /** - * Wrap the default collator. - * @see Collator#getInstance() - */ - public StringCollator() { - this(Collator.getInstance()); - } - - /** - * Wrap the collator for the specified locale. - * @see Collator#getInstance(Locale) - */ - public StringCollator(Locale locale) { - this(Collator.getInstance(locale)); - } - - /** - * Wrap the specified collator. - */ - public StringCollator(Collator collator) { - super(); - this.collator = collator; - } - - public int compare(String string1, String string2) { - return this.collator.compare(string1, string2); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.collator); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringConverter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringConverter.java deleted file mode 100644 index 412c9c199f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringConverter.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * Used by various "pluggable" classes to transform objects - * into strings. - */ -public interface StringConverter { - - /** - * Convert the specified object into a string. - * The semantics of "convert" is determined by the - * contract between the client and the server. - */ - String convertToString(T o); - - - final class Default implements StringConverter, Serializable { - @SuppressWarnings("rawtypes") - public static final StringConverter INSTANCE = new Default(); - @SuppressWarnings("unchecked") - public static StringConverter instance() { - return INSTANCE; - } - // ensure single instance - private Default() { - super(); - } - // simply return the object's #toString() result - public String convertToString(S o) { - return (o == null) ? null : o.toString(); - } - @Override - public String toString() { - return "StringConverter.Default"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - final class Disabled implements StringConverter, Serializable { - @SuppressWarnings("rawtypes") - public static final StringConverter INSTANCE = new Disabled(); - @SuppressWarnings("unchecked") - public static StringConverter instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public String convertToString(S o) { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "StringConverter.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringMatcher.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringMatcher.java deleted file mode 100644 index c66900e3cb..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringMatcher.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * This interface defines a simple API for allowing "pluggable" - * string matchers that can be configured with a pattern string - * then used to determine what strings match the pattern. - */ -public interface StringMatcher { - - /** - * Set the pattern string used to determine future - * matches. The format and semantics of the pattern - * string are determined by the contract between the - * client and the server. - */ - void setPatternString(String patternString); - - /** - * Return whether the specified string matches the - * established pattern string. The semantics of a match - * is determined by the contract between the - * client and the server. - */ - boolean matches(String string); - - - final class Null implements StringMatcher, Serializable { - public static final StringMatcher INSTANCE = new Null(); - public static StringMatcher instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - public void setPatternString(String patternString) { - // ignore the pattern string - } - public boolean matches(String string) { - // everything is a match - return true; - } - @Override - public String toString() { - return "StringMatcher.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringTools.java deleted file mode 100644 index 0eab3b6e26..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/StringTools.java +++ /dev/null @@ -1,4708 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.IOException; -import java.io.Writer; -import java.util.Arrays; -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; - -/** - * Convenience methods related to the java.lang.String class. - * - * As of jdk 1.5, it's tempting to convert all of these methods to use - * java.lang.Appendable (instead of StringBuffer, StringBuilder, and Writer); - * but all the Appendable methods throw java.io.IOException (yech) and we - * [might?] get a bit better performance invoking methods on classes than - * we get on interfaces. :-) - */ -public final class StringTools { - - /** carriage return */ - public static final String CR = System.getProperty("line.separator"); //$NON-NLS-1$ - - /** double quote */ - public static final char QUOTE = '"'; - - /** parenthesis */ - public static final char OPEN_PARENTHESIS = '('; - public static final char CLOSE_PARENTHESIS = ')'; - - /** brackets */ - public static final char OPEN_BRACKET = '['; - public static final char CLOSE_BRACKET = ']'; - - /** brackets */ - public static final char OPEN_BRACE = '{'; - public static final char CLOSE_BRACE = '}'; - - /** brackets */ - public static final char OPEN_CHEVRON = '<'; - public static final char CLOSE_CHEVRON = '>'; - - /** empty string */ - public static final String EMPTY_STRING = ""; //$NON-NLS-1$ - - /** empty char array */ - public static final char[] EMPTY_CHAR_ARRAY = new char[0]; - - /** empty string array */ - public static final String[] EMPTY_STRING_ARRAY = new String[0]; - - - - // ********** padding/truncating ********** - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#pad(int) - */ - public static String pad(String string, int length) { - return pad(string, length, ' '); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOn(int, Writer) - */ - public static void padOn(String string, int length, Writer writer) { - padOn(string, length, ' ', writer); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOn(int, StringBuffer) - */ - public static void padOn(String string, int length, StringBuffer sb) { - padOn(string, length, ' ', sb); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOn(int, StringBuilder) - */ - public static void padOn(String string, int length, StringBuilder sb) { - padOn(string, length, ' ', sb); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#pad(int, char) - */ - public static String pad(String string, int length, char c) { - int stringLength = string.length(); - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - return string; - } - return pad_(string, length, c); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOn(int, char, Writer) - */ - public static void padOn(String string, int length, char c, Writer writer) { - int stringLength = string.length(); - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - writeStringOn(string, writer); - } else { - padOn_(string, length, c, writer); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOn(int, char, StringBuffer) - */ - public static void padOn(String string, int length, char c, StringBuffer sb) { - int stringLength = string.length(); - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - sb.append(string); - } else { - padOn_(string, length, c, sb); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOn(int, char, StringBuilder) - */ - public static void padOn(String string, int length, char c, StringBuilder sb) { - int stringLength = string.length(); - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - sb.append(string); - } else { - padOn_(string, length, c, sb); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#pad(int) - */ - public static char[] pad(char[] string, int length) { - return pad(string, length, ' '); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOn(int, writer) - */ - public static void padOn(char[] string, int length, Writer writer) { - padOn(string, length, ' ', writer); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOn(int, StringBuffer) - */ - public static void padOn(char[] string, int length, StringBuffer sb) { - padOn(string, length, ' ', sb); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOn(int, StringBuilder) - */ - public static void padOn(char[] string, int length, StringBuilder sb) { - padOn(string, length, ' ', sb); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#pad(int, char) - */ - public static char[] pad(char[] string, int length, char c) { - int stringLength = string.length; - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - return string; - } - return pad_(string, length, c); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOn(int, char, Writer) - */ - public static void padOn(char[] string, int length, char c, Writer writer) { - int stringLength = string.length; - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - writeStringOn(string, writer); - } else { - padOn_(string, length, c, writer); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOn(int, char, StringBuffer) - */ - public static void padOn(char[] string, int length, char c, StringBuffer sb) { - int stringLength = string.length; - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - sb.append(string); - } else { - padOn_(string, length, c, sb); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOn(int, char, StringBuilder) - */ - public static void padOn(char[] string, int length, char c, StringBuilder sb) { - int stringLength = string.length; - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - sb.append(string); - } else { - padOn_(string, length, c, sb); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOrTruncate(int) - */ - public static String padOrTruncate(String string, int length) { - return padOrTruncate(string, length, ' '); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOrTruncateOn(int, Writer) - */ - public static void padOrTruncateOn(String string, int length, Writer writer) { - padOrTruncateOn(string, length, ' ', writer); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOrTruncateOn(int, StringBuffer) - */ - public static void padOrTruncateOn(String string, int length, StringBuffer sb) { - padOrTruncateOn(string, length, ' ', sb); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOrTruncateOn(int, StringBuilder) - */ - public static void padOrTruncateOn(String string, int length, StringBuilder sb) { - padOrTruncateOn(string, length, ' ', sb); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOrTruncate(int, char) - */ - public static String padOrTruncate(String string, int length, char c) { - int stringLength = string.length(); - if (stringLength == length) { - return string; - } - if (stringLength > length) { - return string.substring(0, length); - } - return pad_(string, length, c); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOrTruncateOn(int, char, Writer) - */ - public static void padOrTruncateOn(String string, int length, char c, Writer writer) { - int stringLength = string.length(); - if (stringLength == length) { - writeStringOn(string, writer); - } else if (stringLength > length) { - writeStringOn(string.substring(0, length), writer); - } else { - padOn_(string, length, c, writer); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOrTruncateOn(int, char, StringBuffer) - */ - public static void padOrTruncateOn(String string, int length, char c, StringBuffer sb) { - int stringLength = string.length(); - if (stringLength == length) { - sb.append(string); - } else if (stringLength > length) { - sb.append(string.substring(0, length)); - } else { - padOn_(string, length, c, sb); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOrTruncateOn(int, char, StringBuilder) - */ - public static void padOrTruncateOn(String string, int length, char c, StringBuilder sb) { - int stringLength = string.length(); - if (stringLength == length) { - sb.append(string); - } else if (stringLength > length) { - sb.append(string.substring(0, length)); - } else { - padOn_(string, length, c, sb); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOrTruncate(int) - */ - public static char[] padOrTruncate(char[] string, int length) { - return padOrTruncate(string, length, ' '); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOrTruncateOn(int, Writer) - */ - public static void padOrTruncateOn(char[] string, int length, Writer writer) { - padOrTruncateOn(string, length, ' ', writer); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOrTruncateOn(int, StringBuffer) - */ - public static void padOrTruncate(char[] string, int length, StringBuffer sb) { - padOrTruncateOn(string, length, ' ', sb); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with spaces at the end. - * String#padOrTruncateOn(int, StringBuilder) - */ - public static void padOrTruncate(char[] string, int length, StringBuilder sb) { - padOrTruncateOn(string, length, ' ', sb); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOrTruncate(int, char) - */ - public static char[] padOrTruncate(char[] string, int length, char c) { - int stringLength = string.length; - if (stringLength == length) { - return string; - } - if (stringLength > length) { - char[] result = new char[length]; - System.arraycopy(string, 0, result, 0, length); - return result; - } - return pad_(string, length, c); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOrTruncateOn(int, char, Writer) - */ - public static void padOrTruncateOn(char[] string, int length, char c, Writer writer) { - int stringLength = string.length; - if (stringLength == length) { - writeStringOn(string, writer); - } else if (stringLength > length) { - writeStringOn(string, 0, length, writer); - } else { - padOn_(string, length, c, writer); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOrTruncateOn(int, char, StringBuffer) - */ - public static void padOrTruncateOn(char[] string, int length, char c, StringBuffer sb) { - int stringLength = string.length; - if (stringLength == length) { - sb.append(string); - } else if (stringLength > length) { - sb.append(string, 0, length); - } else { - padOn_(string, length, c, sb); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, it is truncated. - * If it is shorter than the specified length, it is padded with the - * specified character at the end. - * String#padOrTruncateOn(int, char, StringBuilder) - */ - public static void padOrTruncateOn(char[] string, int length, char c, StringBuilder sb) { - int stringLength = string.length; - if (stringLength == length) { - sb.append(string); - } else if (stringLength > length) { - sb.append(string, 0, length); - } else { - padOn_(string, length, c, sb); - } - } - - /* - * Pad the specified string without validating the parms. - */ - private static String pad_(String string, int length, char c) { - return new String(pad_(string.toCharArray(), length, c)); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void padOn_(String string, int length, char c, Writer writer) { - writeStringOn(string, writer); - fill_(string, length, c, writer); - } - - /* - * Add enough characters to the specified writer to compensate for - * the difference between the specified string and specified length. - */ - private static void fill_(String string, int length, char c, Writer writer) { - fill_(string.length(), length, c, writer); - } - - /* - * Add enough characters to the specified writer to compensate for - * the difference between the specified string and specified length. - */ - private static void fill_(char[] string, int length, char c, Writer writer) { - fill_(string.length, length, c, writer); - } - - /* - * Add enough characters to the specified writer to compensate for - * the difference between the specified string and specified length. - */ - private static void fill_(int stringLength, int length, char c, Writer writer) { - writeStringOn(ArrayTools.fill(new char[length - stringLength], c), writer); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void padOn_(String string, int length, char c, StringBuffer sb) { - sb.append(string); - fill_(string, length, c, sb); - } - - /* - * Add enough characters to the specified string buffer to compensate for - * the difference between the specified string and specified length. - */ - private static void fill_(String string, int length, char c, StringBuffer sb) { - fill_(string.length(), length, c, sb); - } - - /* - * Add enough characters to the specified string buffer to compensate for - * the difference between the specified string and specified length. - */ - private static void fill_(char[] string, int length, char c, StringBuffer sb) { - fill_(string.length, length, c, sb); - } - - /* - * Add enough characters to the specified string buffer to compensate for - * the difference between the specified string and specified length. - */ - private static void fill_(int stringLength, int length, char c, StringBuffer sb) { - sb.append(ArrayTools.fill(new char[length - stringLength], c)); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void padOn_(String string, int length, char c, StringBuilder sb) { - sb.append(string); - fill_(string, length, c, sb); - } - - /* - * Add enough characters to the specified string builder to compensate for - * the difference between the specified string and specified length. - */ - private static void fill_(String string, int length, char c, StringBuilder sb) { - fill_(string.length(), length, c, sb); - } - - /* - * Add enough characters to the specified string builder to compensate for - * the difference between the specified string and specified length. - */ - private static void fill_(char[] string, int length, char c, StringBuilder sb) { - fill_(string.length, length, c, sb); - } - - /* - * Add enough characters to the specified string builder to compensate for - * the difference between the specified string and specified length. - */ - private static void fill_(int stringLength, int length, char c, StringBuilder sb) { - sb.append(ArrayTools.fill(new char[length - stringLength], c)); - } - - /* - * Pad the specified string without validating the parms. - */ - private static char[] pad_(char[] string, int length, char c) { - char[] result = new char[length]; - int stringLength = string.length; - System.arraycopy(string, 0, result, 0, stringLength); - Arrays.fill(result, stringLength, length, c); - return result; - } - - /* - * Pad the specified string without validating the parms. - */ - private static void padOn_(char[] string, int length, char c, Writer writer) { - writeStringOn(string, writer); - fill_(string, length, c, writer); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void padOn_(char[] string, int length, char c, StringBuffer sb) { - sb.append(string); - fill_(string, length, c, sb); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void padOn_(char[] string, int length, char c, StringBuilder sb) { - sb.append(string); - fill_(string, length, c, sb); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPad(int) - */ - public static String zeroPad(String string, int length) { - return frontPad(string, length, '0'); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOn(int, Writer) - */ - public static void zeroPadOn(String string, int length, Writer writer) { - frontPadOn(string, length, '0', writer); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOn(int, StringBuffer) - */ - public static void zeroPadOn(String string, int length, StringBuffer sb) { - frontPadOn(string, length, '0', sb); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOn(int, StringBuilder) - */ - public static void zeroPadOn(String string, int length, StringBuilder sb) { - frontPadOn(string, length, '0', sb); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPad(int, char) - */ - public static String frontPad(String string, int length, char c) { - int stringLength = string.length(); - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - return string; - } - return frontPad_(string, length, c); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOn(int, char, Writer) - */ - public static void frontPadOn(String string, int length, char c, Writer writer) { - int stringLength = string.length(); - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - writeStringOn(string, writer); - } else { - frontPadOn_(string, length, c, writer); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOn(int, char, StringBuffer) - */ - public static void frontPadOn(String string, int length, char c, StringBuffer sb) { - int stringLength = string.length(); - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - sb.append(string); - } else { - frontPadOn_(string, length, c, sb); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOn(int, char, StringBuilder) - */ - public static void frontPadOn(String string, int length, char c, StringBuilder sb) { - int stringLength = string.length(); - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - sb.append(string); - } else { - frontPadOn_(string, length, c, sb); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPad(int) - */ - public static char[] zeroPad(char[] string, int length) { - return frontPad(string, length, '0'); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOn(int, Writer) - */ - public static void zeroPadOn(char[] string, int length, Writer writer) { - frontPadOn(string, length, '0', writer); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOn(int, StringBuffer) - */ - public static void zeroPadOn(char[] string, int length, StringBuffer sb) { - frontPadOn(string, length, '0', sb); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOn(int, StringBuilder) - */ - public static void zeroPadOn(char[] string, int length, StringBuilder sb) { - frontPadOn(string, length, '0', sb); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPad(int, char) - */ - public static char[] frontPad(char[] string, int length, char c) { - int stringLength = string.length; - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - return string; - } - return frontPad_(string, length, c); - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOn(int, char, Writer) - */ - public static void frontPadOn(char[] string, int length, char c, Writer writer) { - int stringLength = string.length; - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - writeStringOn(string, writer); - } else { - frontPadOn_(string, length, c, writer); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOn(int, char, StringBuffer) - */ - public static void frontPadOn(char[] string, int length, char c, StringBuffer sb) { - int stringLength = string.length; - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - sb.append(string); - } else { - frontPadOn_(string, length, c, sb); - } - } - - /** - * Pad the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, an IllegalArgumentException is thrown. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOn(int, char, StringBuilder) - */ - public static void frontPadOn(char[] string, int length, char c, StringBuilder sb) { - int stringLength = string.length; - if (stringLength > length) { - throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (stringLength == length) { - sb.append(string); - } else { - frontPadOn_(string, length, c, sb); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOrTruncate(int) - */ - public static String zeroPadOrTruncate(String string, int length) { - return frontPadOrTruncate(string, length, '0'); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOrTruncateOn(int, Writer) - */ - public static void zeroPadOrTruncateOn(String string, int length, Writer writer) { - frontPadOrTruncateOn(string, length, '0', writer); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOrTruncateOn(int, StringBuffer) - */ - public static void zeroPadOrTruncateOn(String string, int length, StringBuffer sb) { - frontPadOrTruncateOn(string, length, '0', sb); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOrTruncateOn(int, StringBuilder) - */ - public static void zeroPadOrTruncateOn(String string, int length, StringBuilder sb) { - frontPadOrTruncateOn(string, length, '0', sb); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOrTruncate(int, char) - */ - public static String frontPadOrTruncate(String string, int length, char c) { - int stringLength = string.length(); - if (stringLength == length) { - return string; - } - if (stringLength > length) { - return string.substring(stringLength - length); - } - return frontPad_(string, length, c); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOrTruncateOn(int, char, Writer) - */ - public static void frontPadOrTruncateOn(String string, int length, char c, Writer writer) { - int stringLength = string.length(); - if (stringLength == length) { - writeStringOn(string, writer); - } else if (stringLength > length) { - writeStringOn(string.substring(stringLength - length), writer); - } else { - frontPadOn_(string, length, c, writer); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOrTruncateOn(int, char, StringBuffer) - */ - public static void frontPadOrTruncateOn(String string, int length, char c, StringBuffer sb) { - int stringLength = string.length(); - if (stringLength == length) { - sb.append(string); - } else if (stringLength > length) { - sb.append(string.substring(stringLength - length)); - } else { - frontPadOn_(string, length, c, sb); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOrTruncateOn(int, char, StringBuilder) - */ - public static void frontPadOrTruncateOn(String string, int length, char c, StringBuilder sb) { - int stringLength = string.length(); - if (stringLength == length) { - sb.append(string); - } else if (stringLength > length) { - sb.append(string.substring(stringLength - length)); - } else { - frontPadOn_(string, length, c, sb); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOrTruncate(int) - */ - public static char[] zeroPadOrTruncate(char[] string, int length) { - return frontPadOrTruncate(string, length, '0'); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOrTruncateOn(int, Writer) - */ - public static void zeroPadOrTruncateOn(char[] string, int length, Writer writer) { - frontPadOrTruncateOn(string, length, '0', writer); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOrTruncateOn(int, StringBuffer) - */ - public static void zeroPadOrTruncateOn(char[] string, int length, StringBuffer sb) { - frontPadOrTruncateOn(string, length, '0', sb); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with zeros at the front. - * String#zeroPadOrTruncateOn(int, StringBuilder) - */ - public static void zeroPadOrTruncateOn(char[] string, int length, StringBuilder sb) { - frontPadOrTruncateOn(string, length, '0', sb); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOrTruncate(int, char) - */ - public static char[] frontPadOrTruncate(char[] string, int length, char c) { - int stringLength = string.length; - if (stringLength == length) { - return string; - } - if (stringLength > length) { - char[] result = new char[length]; - System.arraycopy(string, stringLength - length, result, 0, length); - return result; - } - return frontPad_(string, length, c); - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOrTruncateOn(int, char, Writer) - */ - public static void frontPadOrTruncateOn(char[] string, int length, char c, Writer writer) { - int stringLength = string.length; - if (stringLength == length) { - writeStringOn(string, writer); - } else if (stringLength > length) { - writeStringOn(string, stringLength - length, length, writer); - } else { - frontPadOn_(string, length, c, writer); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOrTruncateOn(int, char, StringBuffer) - */ - public static void frontPadOrTruncateOn(char[] string, int length, char c, StringBuffer sb) { - int stringLength = string.length; - if (stringLength == length) { - sb.append(string); - } else if (stringLength > length) { - sb.append(string, stringLength - length, length); - } else { - frontPadOn_(string, length, c, sb); - } - } - - /** - * Pad or truncate the specified string to the specified length. - * If the string is already the specified length, it is returned unchanged. - * If it is longer than the specified length, only the last part of the string is returned. - * If it is shorter than the specified length, it is padded with the - * specified character at the front. - * String#frontPadOrTruncateOn(int, char, StringBuilder) - */ - public static void frontPadOrTruncateOn(char[] string, int length, char c, StringBuilder sb) { - int stringLength = string.length; - if (stringLength == length) { - sb.append(string); - } else if (stringLength > length) { - sb.append(string, stringLength - length, length); - } else { - frontPadOn_(string, length, c, sb); - } - } - - /* - * Front-pad the specified string without validating the parms. - */ - private static String frontPad_(String string, int length, char c) { - return new String(frontPad_(string.toCharArray(), length, c)); - } - - /* - * Zero-pad the specified string without validating the parms. - */ - private static char[] frontPad_(char[] string, int length, char c) { - char[] result = new char[length]; - int stringLength = string.length; - int padLength = length - stringLength; - System.arraycopy(string, 0, result, padLength, stringLength); - Arrays.fill(result, 0, padLength, c); - return result; - } - - /* - * Pad the specified string without validating the parms. - */ - private static void frontPadOn_(String string, int length, char c, Writer writer) { - fill_(string, length, c, writer); - writeStringOn(string, writer); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void frontPadOn_(char[] string, int length, char c, Writer writer) { - fill_(string, length, c, writer); - writeStringOn(string, writer); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void frontPadOn_(String string, int length, char c, StringBuffer sb) { - fill_(string, length, c, sb); - sb.append(string); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void frontPadOn_(char[] string, int length, char c, StringBuffer sb) { - fill_(string, length, c, sb); - sb.append(string); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void frontPadOn_(String string, int length, char c, StringBuilder sb) { - fill_(string, length, c, sb); - sb.append(string); - } - - /* - * Pad the specified string without validating the parms. - */ - private static void frontPadOn_(char[] string, int length, char c, StringBuilder sb) { - fill_(string, length, c, sb); - sb.append(string); - } - - - // ********** separating ********** - - /** - * Separate the segments of the specified string with the specified - * separator:
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * 
- */ - public static String separate(String string, char separator, int segmentSize) { - if (segmentSize <= 0) { - throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$ - } - int len = string.length(); - return (len <= segmentSize) ? string : new String(separate(string.toCharArray(), separator, segmentSize, len)); - } - - /** - * Separate the segments of the specified string with the specified - * separator:
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * 
- */ - public static void separateOn(String string, char separator, int segmentSize, Writer writer) { - if (segmentSize <= 0) { - throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$ - } - if (string.length() <= segmentSize) { - writeStringOn(string, writer); - } else { - separateOn_(string.toCharArray(), separator, segmentSize, writer); - } - } - - /** - * Separate the segments of the specified string with the specified - * separator:
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * 
- */ - public static void separateOn(String string, char separator, int segmentSize, StringBuffer sb) { - if (segmentSize <= 0) { - throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$ - } - if (string.length() <= segmentSize) { - sb.append(string); - } else { - separateOn_(string.toCharArray(), separator, segmentSize, sb); - } - } - - /** - * Separate the segments of the specified string with the specified - * separator:
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * 
- */ - public static void separateOn(String string, char separator, int segmentSize, StringBuilder sb) { - if (segmentSize <= 0) { - throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$ - } - if (string.length() <= segmentSize) { - sb.append(string); - } else { - separateOn_(string.toCharArray(), separator, segmentSize, sb); - } - } - - /** - * Separate the segments of the specified string with the specified - * separator:
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * 
- */ - public static char[] separate(char[] string, char separator, int segmentSize) { - if (segmentSize <= 0) { - throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$ - } - int len = string.length; - return (len <= segmentSize) ? string : separate(string, separator, segmentSize, len); - } - - /** - * pre-conditions: string is longer than segment size; segment size is positive - */ - private static char[] separate(char[] string, char separator, int segmentSize, int len) { - int resultLen = len + (len / segmentSize); - if ((len % segmentSize) == 0) { - resultLen--; // no separator after the final segment if nothing following it - } - char[] result = new char[resultLen]; - int j = 0; - int segCount = 0; - for (char c : string) { - if (segCount == segmentSize) { - result[j++] = separator; - segCount = 0; - } - segCount++; - result[j++] = c; - } - return result; - } - - /** - * Separate the segments of the specified string with the specified - * separator:
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * 
- */ - public static void separateOn(char[] string, char separator, int segmentSize, Writer writer) { - if (segmentSize <= 0) { - throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$ - } - if (string.length <= segmentSize) { - writeStringOn(string, writer); - } else { - separateOn_(string, separator, segmentSize, writer); - } - } - - /** - * pre-conditions: string is longer than segment size; segment size is positive - */ - private static void separateOn_(char[] string, char separator, int segmentSize, Writer writer) { - int segCount = 0; - for (char c : string) { - if (segCount == segmentSize) { - writeCharOn(separator, writer); - segCount = 0; - } - segCount++; - writeCharOn(c, writer); - } - } - - /** - * Separate the segments of the specified string with the specified - * separator:
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * 
- */ - public static void separateOn(char[] string, char separator, int segmentSize, StringBuffer sb) { - if (segmentSize <= 0) { - throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$ - } - if (string.length <= segmentSize) { - sb.append(string); - } else { - separateOn_(string, separator, segmentSize, sb); - } - } - - /** - * pre-conditions: string is longer than segment size; segment size is positive - */ - private static void separateOn_(char[] string, char separator, int segmentSize, StringBuffer sb) { - int segCount = 0; - for (char c : string) { - if (segCount == segmentSize) { - sb.append(separator); - segCount = 0; - } - segCount++; - sb.append(c); - } - } - - /** - * Separate the segments of the specified string with the specified - * separator:
-	 *     separate("012345", '-', 2) => "01-23-45"
-	 * 
- */ - public static void separateOn(char[] string, char separator, int segmentSize, StringBuilder sb) { - if (segmentSize <= 0) { - throw new IllegalArgumentException("segment size must be positive: " + segmentSize); //$NON-NLS-1$ - } - if (string.length <= segmentSize) { - sb.append(string); - } else { - separateOn_(string, separator, segmentSize, sb); - } - } - - /** - * pre-conditions: string is longer than segment size; segment size is positive - */ - private static void separateOn_(char[] string, char separator, int segmentSize, StringBuilder sb) { - int segCount = 0; - for (char c : string) { - if (segCount == segmentSize) { - sb.append(separator); - segCount = 0; - } - segCount++; - sb.append(c); - } - } - - - // ********** delimiting/quoting ********** - - /** - * Delimit the specified string with double quotes. - * Escape any occurrences of a double quote in the string with another - * double quote. - */ - public static String quote(String string) { - return delimit(string, QUOTE); - } - - /** - * Delimit the specified string with double quotes. - * Escape any occurrences of a double quote in the string with another - * double quote. - */ - public static void quoteOn(String string, Writer writer) { - delimitOn(string, QUOTE, writer); - } - - /** - * Delimit the specified string with double quotes. - * Escape any occurrences of a double quote in the string with another - * double quote. - */ - public static void quoteOn(String string, StringBuffer sb) { - delimitOn(string, QUOTE, sb); - } - - /** - * Delimit the specified string with double quotes. - * Escape any occurrences of a double quote in the string with another - * double quote. - */ - public static void quoteOn(String string, StringBuilder sb) { - delimitOn(string, QUOTE, sb); - } - - /** - * Delimit each of the specified strings with double quotes. - * Escape any occurrences of a double quote in a string with another - * double quote. - */ - public static Iterator quote(Iterator strings) { - return delimit(strings, QUOTE); - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in the string with another delimiter. - */ - public static String delimit(String string, char delimiter) { - return new String(delimit(string.toCharArray(), delimiter)); - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in the string with another delimiter. - */ - public static void delimitOn(String string, char delimiter, Writer writer) { - delimitOn(string.toCharArray(), delimiter, writer); - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in the string with another delimiter. - */ - public static void delimitOn(String string, char delimiter, StringBuffer sb) { - delimitOn(string.toCharArray(), delimiter, sb); - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in the string with another delimiter. - */ - public static void delimitOn(String string, char delimiter, StringBuilder sb) { - delimitOn(string.toCharArray(), delimiter, sb); - } - - /** - * Delimit each of the specified strings with the specified delimiter; i.e. put a - * copy of the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in a string with another delimiter. - */ - public static Iterable delimit(Iterable strings, char delimiter) { - return new TransformationIterable(strings, new CharStringDelimiter(delimiter)); - } - - /** - * Delimit each of the specified strings with the specified delimiter; i.e. put a - * copy of the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in a string with another delimiter. - */ - public static Iterator delimit(Iterator strings, char delimiter) { - return new TransformationIterator(strings, new CharStringDelimiter(delimiter)); - } - - private static class CharStringDelimiter implements Transformer { - private char delimiter; - CharStringDelimiter(char delimiter) { - super(); - this.delimiter = delimiter; - } - public String transform(String string) { - return StringTools.delimit(string, this.delimiter); - } - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in the string with - * another delimiter. - */ - public static String delimit(String string, String delimiter) { - if (delimiter.length() == 1) { - return delimit(string, delimiter.charAt(0)); - } - return new String(delimit(string.toCharArray(), delimiter.toCharArray())); - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in the string with - * another delimiter. - */ - public static void delimitOn(String string, String delimiter, Writer writer) { - if (delimiter.length() == 1) { - delimitOn(string, delimiter.charAt(0), writer); - } else { - delimitOn(string.toCharArray(), delimiter.toCharArray(), writer); - } - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in the string with - * another delimiter. - */ - public static void delimitOn(String string, String delimiter, StringBuffer sb) { - if (delimiter.length() == 1) { - delimitOn(string, delimiter.charAt(0), sb); - } else { - delimitOn(string.toCharArray(), delimiter.toCharArray(), sb); - } - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in the string with - * another delimiter. - */ - public static void delimitOn(String string, String delimiter, StringBuilder sb) { - if (delimiter.length() == 1) { - delimitOn(string, delimiter.charAt(0), sb); - } else { - delimitOn(string.toCharArray(), delimiter.toCharArray(), sb); - } - } - - /** - * Delimit each of the specified strings with the specified delimiter; i.e. put a - * copy of the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in a string with - * another delimiter. - */ - public static Iterable delimit(Iterable strings, String delimiter) { - return (delimiter.length() == 1) ? - delimit(strings, delimiter.charAt(0)) : - new TransformationIterable(strings, new StringStringDelimiter(delimiter)); - } - - /** - * Delimit each of the specified strings with the specified delimiter; i.e. put a - * copy of the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in a string with - * another delimiter. - */ - public static Iterator delimit(Iterator strings, String delimiter) { - return (delimiter.length() == 1) ? - delimit(strings, delimiter.charAt(0)) : - new TransformationIterator(strings, new StringStringDelimiter(delimiter)); - } - - private static class StringStringDelimiter implements Transformer { - private String delimiter; - StringStringDelimiter(String delimiter) { - super(); - this.delimiter = delimiter; - } - public String transform(String string) { - return StringTools.delimit(string, this.delimiter); - } - } - - /** - * Delimit the specified string with double quotes. - * Escape any occurrences of a double quote in the string with another - * double quote. - */ - public static char[] quote(char[] string) { - return delimit(string, QUOTE); - } - - /** - * Delimit the specified string with double quotes. - * Escape any occurrences of a double quote in the string with another - * double quote. - */ - public static void quoteOn(char[] string, Writer writer) { - delimitOn(string, QUOTE, writer); - } - - /** - * Delimit the specified string with double quotes. - * Escape any occurrences of a double quote in the string with another - * double quote. - */ - public static void quoteOn(char[] string, StringBuffer sb) { - delimitOn(string, QUOTE, sb); - } - - /** - * Delimit the specified string with double quotes. - * Escape any occurrences of a double quote in the string with another - * double quote. - */ - public static void quoteOn(char[] string, StringBuilder sb) { - delimitOn(string, QUOTE, sb); - } - - /** - * Delimit each of the specified strings with double quotes. - * Escape any occurrences of a double quote in a string with another - * double quote. - */ - // cannot name method simply 'quote' because of type-erasure... - public static Iterator quoteCharArrays(Iterator strings) { - return delimitCharArrays(strings, QUOTE); - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in the string with another delimiter. - */ - public static char[] delimit(char[] string, char delimiter) { - StringBuilder sb = new StringBuilder(string.length + 2); - delimitOn(string, delimiter, sb); - return convertToCharArray(sb); - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in the string with another delimiter. - */ - public static void delimitOn(char[] string, char delimiter, Writer writer) { - writeCharOn(delimiter, writer); - writeStringOn(string, delimiter, writer); - writeCharOn(delimiter, writer); - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in the string with another delimiter. - */ - public static void delimitOn(char[] string, char delimiter, StringBuffer sb) { - sb.append(delimiter); - for (char c : string) { - if (c == delimiter) { - sb.append(c); - } - sb.append(c); - } - sb.append(delimiter); - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in the string with another delimiter. - */ - public static void delimitOn(char[] string, char delimiter, StringBuilder sb) { - sb.append(delimiter); - for (char c : string) { - if (c == delimiter) { - sb.append(c); - } - sb.append(c); - } - sb.append(delimiter); - } - - /** - * Delimit each of the specified strings with the specified delimiter; i.e. put a - * copy of the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in a string with another delimiter. - */ - // cannot name method simply 'delimit' because of type-erasure... - public static Iterable delimitCharArrays(Iterable strings, char delimiter) { - return new TransformationIterable(strings, new CharCharArrayDelimiter(delimiter)); - } - - /** - * Delimit each of the specified strings with the specified delimiter; i.e. put a - * copy of the delimiter at the front and back of the resulting string. - * Escape any occurrences of the delimiter in a string with another delimiter. - */ - // cannot name method simply 'delimit' because of type-erasure... - public static Iterator delimitCharArrays(Iterator strings, char delimiter) { - return new TransformationIterator(strings, new CharCharArrayDelimiter(delimiter)); - } - - private static class CharCharArrayDelimiter implements Transformer { - private char delimiter; - CharCharArrayDelimiter(char delimiter) { - super(); - this.delimiter = delimiter; - } - public char[] transform(char[] string) { - return StringTools.delimit(string, this.delimiter); - } - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in the string with - * another delimiter. - */ - public static char[] delimit(char[] string, char[] delimiter) { - int delimiterLength = delimiter.length; - if (delimiterLength == 1) { - return delimit(string, delimiter[0]); - } - int stringLength = string.length; - char[] result = new char[stringLength+(2*delimiterLength)]; - System.arraycopy(delimiter, 0, result, 0, delimiterLength); - System.arraycopy(string, 0, result, delimiterLength, stringLength); - System.arraycopy(delimiter, 0, result, stringLength+delimiterLength, delimiterLength); - return result; - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in the string with - * another delimiter. - */ - public static void delimitOn(char[] string, char[] delimiter, Writer writer) { - if (delimiter.length == 1) { - delimitOn(string, delimiter[0], writer); - } else { - writeStringOn(delimiter, writer); - writeStringOn(string, writer); - writeStringOn(delimiter, writer); - } - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in the string with - * another delimiter. - */ - public static void delimitOn(char[] string, char[] delimiter, StringBuffer sb) { - if (delimiter.length == 1) { - delimitOn(string, delimiter[0], sb); - } else { - sb.append(delimiter); - sb.append(string); - sb.append(delimiter); - } - } - - /** - * Delimit the specified string with the specified delimiter; i.e. put a copy of - * the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in the string with - * another delimiter. - */ - public static void delimitOn(char[] string, char[] delimiter, StringBuilder sb) { - if (delimiter.length == 1) { - delimitOn(string, delimiter[0], sb); - } else { - sb.append(delimiter); - sb.append(string); - sb.append(delimiter); - } - } - - /** - * Delimit each of the specified strings with the specified delimiter; i.e. put a - * copy of the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in a string with - * another delimiter. - */ - // cannot name method simply 'delimit' because of type-erasure... - public static Iterable delimitCharArrays(Iterable strings, char[] delimiter) { - return new TransformationIterable(strings, new CharArrayCharArrayDelimiter(delimiter)); - } - - /** - * Delimit each of the specified strings with the specified delimiter; i.e. put a - * copy of the delimiter at the front and back of the resulting string. - * Escape any occurrences of a single-character delimiter in a string with - * another delimiter. - */ - // cannot name method simply 'delimit' because of type-erasure... - public static Iterator delimitCharArrays(Iterator strings, char[] delimiter) { - return new TransformationIterator(strings, new CharArrayCharArrayDelimiter(delimiter)); - } - - private static class CharArrayCharArrayDelimiter implements Transformer { - private char[] delimiter; - CharArrayCharArrayDelimiter(char[] delimiter) { - super(); - this.delimiter = delimiter; - } - public char[] transform(char[] string) { - return StringTools.delimit(string, this.delimiter); - } - } - - - // ********** delimiting queries ********** - - /** - * Return whether the specified string is quoted: "\"foo\"". - */ - public static boolean stringIsQuoted(String string) { - return stringIsDelimited(string, QUOTE); - } - - /** - * Return whether the specified string is parenthetical: "(foo)". - */ - public static boolean stringIsParenthetical(String string) { - return stringIsDelimited(string, OPEN_PARENTHESIS, CLOSE_PARENTHESIS); - } - - /** - * Return whether the specified string is bracketed: "[foo]". - */ - public static boolean stringIsBracketed(String string) { - return stringIsDelimited(string, OPEN_BRACKET, CLOSE_BRACKET); - } - - /** - * Return whether the specified string is braced: "{foo}". - */ - public static boolean stringIsBraced(String string) { - return stringIsDelimited(string, OPEN_BRACE, CLOSE_BRACE); - } - - /** - * Return whether the specified string is chevroned: "". - */ - public static boolean stringIsChevroned(String string) { - return stringIsDelimited(string, OPEN_CHEVRON, CLOSE_CHEVRON); - } - - /** - * Return whether the specified string is delimited by the specified - * character. - */ - public static boolean stringIsDelimited(String string, char c) { - return stringIsDelimited(string, c, c); - } - - /** - * Return whether the specified string is delimited by the specified - * characters. - */ - public static boolean stringIsDelimited(String string, char start, char end) { - int len = string.length(); - if (len < 2) { - return false; - } - return stringIsDelimited(string.toCharArray(), start, end, len); - } - - /** - * Return whether the specified string is quoted: "\"foo\"". - */ - public static boolean stringIsQuoted(char[] string) { - return stringIsDelimited(string, QUOTE); - } - - /** - * Return whether the specified string is parenthetical: "(foo)". - */ - public static boolean stringIsParenthetical(char[] string) { - return stringIsDelimited(string, OPEN_PARENTHESIS, CLOSE_PARENTHESIS); - } - - /** - * Return whether the specified string is bracketed: "[foo]". - */ - public static boolean stringIsBracketed(char[] string) { - return stringIsDelimited(string, OPEN_BRACKET, CLOSE_BRACKET); - } - - /** - * Return whether the specified string is braced: "{foo}". - */ - public static boolean stringIsBraced(char[] string) { - return stringIsDelimited(string, OPEN_BRACE, CLOSE_BRACE); - } - - /** - * Return whether the specified string is chevroned: "". - */ - public static boolean stringIsChevroned(char[] string) { - return stringIsDelimited(string, OPEN_CHEVRON, CLOSE_CHEVRON); - } - - /** - * Return whether the specified string is delimited by the specified - * character. - */ - public static boolean stringIsDelimited(char[] string, char c) { - return stringIsDelimited(string, c, c); - } - - /** - * Return whether the specified string is delimited by the specified - * characters. - */ - public static boolean stringIsDelimited(char[] string, char start, char end) { - int len = string.length; - if (len < 2) { - return false; - } - return stringIsDelimited(string, start, end, len); - } - - private static boolean stringIsDelimited(char[] s, char start, char end, int len) { - return (s[0] == start) && (s[len - 1] == end); - } - - - // ********** undelimiting ********** - - /** - * Remove the delimiters from the specified string, removing any escape - * characters. Throw an IllegalArgumentException if the string is too short - * to undelimit (i.e. length < 2). - */ - public static String undelimit(String string) { - int len = string.length() - 2; - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return EMPTY_STRING; - } - return new String(undelimit_(string.toCharArray(), len)); - } - - /** - * Remove the first and last count characters from the specified string. - * If the string is too short to be undelimited, throw an - * IllegalArgumentException. - * Use this method to undelimit strings that do not escape embedded - * delimiters. - */ - public static String undelimit(String string, int count) { - int len = string.length() - (2 * count); - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return EMPTY_STRING; - } - return new String(undelimit(string.toCharArray(), len, count)); - } - - /** - * Remove the delimiters from the specified string, removing any escape - * characters. Throw an IllegalArgumentException if the string is too short - * to undelimit (i.e. length < 2). - */ - public static char[] undelimit(char[] string) { - int len = string.length - 2; - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return EMPTY_CHAR_ARRAY; - } - return undelimit_(string, len); - } - - private static char[] undelimit_(char[] string, int length) { - StringBuilder sb = new StringBuilder(length); - undelimitOn_(string, sb); - return convertToCharArray(sb); - } - - /** - * Remove the first and last count characters from the specified string. - * If the string is too short to be undelimited, throw an - * IllegalArgumentException. - * Use this method to undelimit strings that do not escape embedded - * delimiters. - */ - public static char[] undelimit(char[] string, int count) { - int len = string.length - (2 * count); - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return EMPTY_CHAR_ARRAY; - } - return undelimit(string, len, count); - } - - private static char[] undelimit(char[] string, int len, int count) { - char[] result = new char[len]; - System.arraycopy(string, count, result, 0, len); - return result; - } - - /** - * Remove the delimiters from the specified string, removing any escape - * characters. Throw an IllegalArgumentException if the string is too short - * to undelimit (i.e. length < 2). - */ - public static void undelimitOn(String string, Writer writer) { - undelimitOn(string.toCharArray(), writer); - } - - /** - * Remove the first and last count characters from the specified string. - * If the string is too short to be undelimited, throw an - * IllegalArgumentException. - * Use this method to undelimit strings that do not escape embedded - * delimiters. - */ - public static void undelimitOn(String string, int count, Writer writer) { - int len = string.length() - (2 * count); - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return; - } - writeStringOn(string, count, len, writer); - } - - /** - * Remove the delimiters from the specified string, removing any escape - * characters. Throw an IllegalArgumentException if the string is too short - * to undelimit (i.e. length < 2). - */ - public static void undelimitOn(String string, StringBuffer sb) { - undelimitOn(string.toCharArray(), sb); - } - - /** - * Remove the first and last count characters from the specified string. - * If the string is too short to be undelimited, throw an - * IllegalArgumentException. - * Use this method to undelimit strings that do not escape embedded - * delimiters. - */ - public static void undelimitOn(String string, int count, StringBuffer sb) { - int len = string.length() - (2 * count); - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return; - } - sb.append(string, count, count + len); - } - - /** - * Remove the delimiters from the specified string, removing any escape - * characters. Throw an IllegalArgumentException if the string is too short - * to undelimit (i.e. length < 2). - */ - public static void undelimitOn(String string, StringBuilder sb) { - undelimitOn(string.toCharArray(), sb); - } - - /** - * Remove the first and last count characters from the specified string. - * If the string is too short to be undelimited, throw an - * IllegalArgumentException. - * Use this method to undelimit strings that do not escape embedded - * delimiters. - */ - public static void undelimitOn(String string, int count, StringBuilder sb) { - int len = string.length() - (2 * count); - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return; - } - sb.append(string, count, count + len); - } - - /** - * Remove the delimiters from the specified string, removing any escape - * characters. Throw an IllegalArgumentException if the string is too short - * to undelimit (i.e. length < 2). - */ - public static void undelimitOn(char[] string, Writer writer) { - int len = string.length - 2; - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return; - } - undelimitOn_(string, writer); - } - - /** - * pre-condition: string is at least 3 characters long - */ - private static void undelimitOn_(char[] string, Writer writer) { - char delimiter = string[0]; // the first char is the delimiter - char c = string[0]; - char next = string[1]; - int i = 1; - int last = string.length - 1; - do { - c = next; - writeCharOn(c, writer); - i++; - next = string[i]; - if (c == delimiter) { - if ((next != delimiter) || (i == last)) { - // an embedded delimiter must be followed by another delimiter - return; - } - i++; - next = string[i]; - } - } while (i != last); - } - - /** - * Remove the first and last count characters from the specified string. - * If the string is too short to be undelimited, throw an - * IllegalArgumentException. - * Use this method to undelimit strings that do not escape embedded - * delimiters. - */ - public static void undelimitOn(char[] string, int count, Writer writer) { - int len = string.length - (2 * count); - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return; - } - writeStringOn(string, count, len, writer); - } - - /** - * Remove the delimiters from the specified string, removing any escape - * characters. Throw an IllegalArgumentException if the string is too short - * to undelimit (i.e. length < 2). - */ - public static void undelimitOn(char[] string, StringBuffer sb) { - int len = string.length - 2; - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return; - } - undelimitOn_(string, sb); - } - - /** - * pre-condition: string is at least 3 characters long - */ - private static void undelimitOn_(char[] string, StringBuffer sb) { - char delimiter = string[0]; // the first char is the delimiter - char c = string[0]; - char next = string[1]; - int i = 1; - int last = string.length - 1; - do { - c = next; - sb.append(c); - i++; - next = string[i]; - if (c == delimiter) { - if ((next != delimiter) || (i == last)) { - // an embedded delimiter must be followed by another delimiter - return; - } - i++; - next = string[i]; - } - } while (i != last); - } - - /** - * Remove the first and last count characters from the specified string. - * If the string is too short to be undelimited, throw an - * IllegalArgumentException. - * Use this method to undelimit strings that do not escape embedded - * delimiters. - */ - public static void undelimitOn(char[] string, int count, StringBuffer sb) { - int len = string.length - (2 * count); - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return; - } - sb.append(string, count, len); - } - - /** - * Remove the delimiters from the specified string, removing any escape - * characters. Throw an IllegalArgumentException if the string is too short - * to undelimit (i.e. length < 2). - */ - public static void undelimitOn(char[] string, StringBuilder sb) { - int len = string.length - 2; - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return; - } - undelimitOn_(string, sb); - } - - /** - * pre-condition: string is at least 3 characters long - */ - private static void undelimitOn_(char[] string, StringBuilder sb) { - char delimiter = string[0]; // the first char is the delimiter - char c = string[0]; - char next = string[1]; - int i = 1; - int last = string.length - 1; - do { - c = next; - sb.append(c); - i++; - next = string[i]; - if (c == delimiter) { - if ((next != delimiter) || (i == last)) { - // an embedded delimiter must be followed by another delimiter - return; - } - i++; - next = string[i]; - } - } while (i != last); - } - - /** - * Remove the first and last count characters from the specified string. - * If the string is too short to be undelimited, throw an - * IllegalArgumentException. - * Use this method to undelimit strings that do not escape embedded - * delimiters. - */ - public static void undelimitOn(char[] string, int count, StringBuilder sb) { - int len = string.length - (2 * count); - if (len < 0) { - throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$ - } - if (len == 0) { - return; - } - sb.append(string, count, len); - } - - - // ********** removing characters ********** - - /** - * Remove the first occurrence of the specified character - * from the specified string and return the result. - * String#removeFirstOccurrence(char) - */ - public static String removeFirstOccurrence(String string, char c) { - int index = string.indexOf(c); - if (index == -1) { - // character not found - return string; - } - if (index == 0) { - // character found at the front of string - return string.substring(1); - } - int last = string.length() - 1; - if (index == last) { - // character found at the end of string - return string.substring(0, last); - } - // character found somewhere in the middle of the string - return string.substring(0, index).concat(string.substring(index + 1)); - } - - /** - * Remove the first occurrence of the specified character - * from the specified string and print the result on the specified stream. - * String#removeFirstOccurrenceOn(char, Writer) - */ - public static void removeFirstOccurrenceOn(String string, char c, Writer writer) { - int index = string.indexOf(c); - if (index == -1) { - writeStringOn(string, writer); - } else { - removeCharAtIndexOn(string.toCharArray(), index, writer); - } - } - - /** - * Remove the first occurrence of the specified character - * from the specified string and print the result on the specified stream. - * String#removeFirstOccurrenceOn(char, StringBuffer) - */ - public static void removeFirstOccurrenceOn(String string, char c, StringBuffer sb) { - int index = string.indexOf(c); - if (index == -1) { - sb.append(string); - } else { - removeCharAtIndexOn(string.toCharArray(), index, sb); - } - } - - /** - * Remove the first occurrence of the specified character - * from the specified string and print the result on the specified stream. - * String#removeFirstOccurrenceOn(char, StringBuilder) - */ - public static void removeFirstOccurrenceOn(String string, char c, StringBuilder sb) { - int index = string.indexOf(c); - if (index == -1) { - sb.append(string); - } else { - removeCharAtIndexOn(string.toCharArray(), index, sb); - } - } - - /** - * Remove the first occurrence of the specified character - * from the specified string and return the result. - * String#removeFirstOccurrence(char) - */ - public static char[] removeFirstOccurrence(char[] string, char c) { - int index = ArrayTools.indexOf(string, c); - if (index == -1) { - // character not found - return string; - } - int last = string.length - 1; - char[] result = new char[last]; - if (index == 0) { - // character found at the front of string - System.arraycopy(string, 1, result, 0, last); - } else if (index == last) { - // character found at the end of string - System.arraycopy(string, 0, result, 0, last); - } else { - // character found somewhere in the middle of the string - System.arraycopy(string, 0, result, 0, index); - System.arraycopy(string, index + 1, result, index, last - index); - } - return result; - } - - /** - * Remove the first occurrence of the specified character - * from the specified string and print the result on the specified stream. - * String#removeFirstOccurrenceOn(char, Writer) - */ - public static void removeFirstOccurrenceOn(char[] string, char c, Writer writer) { - int index = ArrayTools.indexOf(string, c); - if (index == -1) { - writeStringOn(string, writer); - } else { - removeCharAtIndexOn(string, index, writer); - } - } - - private static void removeCharAtIndexOn(char[] string, int index, Writer writer) { - int last = string.length - 1; - if (index == 0) { - // character found at the front of string - writeStringOn(string, 1, last, writer); - } else if (index == last) { - // character found at the end of string - writeStringOn(string, 0, last, writer); - } else { - // character found somewhere in the middle of the string - writeStringOn(string, 0, index, writer); - writeStringOn(string, index + 1, last - index, writer); - } - } - - /** - * Remove the first occurrence of the specified character - * from the specified string and print the result on the specified stream. - * String#removeFirstOccurrenceOn(char, StringBuffer) - */ - public static void removeFirstOccurrenceOn(char[] string, char c, StringBuffer sb) { - int index = ArrayTools.indexOf(string, c); - if (index == -1) { - sb.append(string); - } else { - removeCharAtIndexOn(string, index, sb); - } - } - - private static void removeCharAtIndexOn(char[] string, int index, StringBuffer sb) { - int last = string.length - 1; - if (index == 0) { - // character found at the front of string - sb.append(string, 1, last); - } else if (index == last) { - // character found at the end of string - sb.append(string, 0, last); - } else { - // character found somewhere in the middle of the string - sb.append(string, 0, index); - sb.append(string, index + 1, last - index); - } - } - - /** - * Remove the first occurrence of the specified character - * from the specified string and print the result on the specified stream. - * String#removeFirstOccurrenceOn(char, StringBuilder) - */ - public static void removeFirstOccurrenceOn(char[] string, char c, StringBuilder sb) { - int index = ArrayTools.indexOf(string, c); - if (index == -1) { - sb.append(string); - } else { - removeCharAtIndexOn(string, index, sb); - } - } - - private static void removeCharAtIndexOn(char[] string, int index, StringBuilder sb) { - int last = string.length - 1; - if (index == 0) { - // character found at the front of string - sb.append(string, 1, last); - } else if (index == last) { - // character found at the end of string - sb.append(string, 0, last); - } else { - // character found somewhere in the middle of the string - sb.append(string, 0, index); - sb.append(string, index + 1, last - index); - } - } - - /** - * Remove all occurrences of the specified character - * from the specified string and return the result. - * String#removeAllOccurrences(char) - */ - public static String removeAllOccurrences(String string, char c) { - int first = string.indexOf(c); - return (first == -1) ? string : new String(removeAllOccurrences_(string.toCharArray(), c, first)); - } - - /** - * Remove all occurrences of the specified character - * from the specified string and write the result to the specified stream. - * String#removeAllOccurrencesOn(char, Writer) - */ - public static void removeAllOccurrencesOn(String string, char c, Writer writer) { - int first = string.indexOf(c); - if (first == -1) { - writeStringOn(string, writer); - } else { - removeAllOccurrencesOn_(string.toCharArray(), c, first, writer); - } - } - - /** - * Remove all occurrences of the specified character - * from the specified string and write the result to the specified stream. - * String#removeAllOccurrencesOn(char, StringBuffer) - */ - public static void removeAllOccurrencesOn(String string, char c, StringBuffer sb) { - int first = string.indexOf(c); - if (first == -1) { - sb.append(string); - } else { - removeAllOccurrencesOn_(string.toCharArray(), c, first, sb); - } - } - - /** - * Remove all occurrences of the specified character - * from the specified string and write the result to the specified stream. - * String#removeAllOccurrencesOn(char, StringBuilder) - */ - public static void removeAllOccurrencesOn(String string, char c, StringBuilder sb) { - int first = string.indexOf(c); - if (first == -1) { - sb.append(string); - } else { - removeAllOccurrencesOn_(string.toCharArray(), c, first, sb); - } - } - - /** - * Remove all occurrences of the specified character - * from the specified string and return the result. - * String#removeAllOccurrences(char) - */ - public static char[] removeAllOccurrences(char[] string, char c) { - int first = ArrayTools.indexOf(string, c); - return (first == -1) ? string : removeAllOccurrences_(string, c, first); - } - - /* - * The index of the first matching character is passed in. - */ - private static char[] removeAllOccurrences_(char[] string, char c, int first) { - StringBuilder sb = new StringBuilder(string.length); - removeAllOccurrencesOn_(string, c, first, sb); - return convertToCharArray(sb); - } - - /** - * Remove all occurrences of the specified character - * from the specified string and write the result to the - * specified writer. - * String#removeAllOccurrencesOn(char, Writer) - */ - public static void removeAllOccurrencesOn(char[] string, char c, Writer writer) { - int first = ArrayTools.indexOf(string, c); - if (first == -1) { - writeStringOn(string, writer); - } else { - removeAllOccurrencesOn_(string, c, first, writer); - } - } - - /* - * The index of the first matching character is passed in. - */ - private static void removeAllOccurrencesOn_(char[] string, char c, int first, Writer writer) { - writeStringOn(string, 0, first, writer); - int len = string.length; - for (int i = first; i < len; i++) { - char d = string[i]; - if (d != c) { - writeCharOn(d, writer); - } - } - } - - /** - * Remove all occurrences of the specified character - * from the specified string and append the result to the - * specified string buffer. - * String#removeAllOccurrencesOn(char, StringBuffer) - */ - public static void removeAllOccurrencesOn(char[] string, char c, StringBuffer sb) { - int first = ArrayTools.indexOf(string, c); - if (first == -1) { - sb.append(string); - } else { - removeAllOccurrencesOn_(string, c, first, sb); - } - } - - /* - * The index of the first matching character is passed in. - */ - private static void removeAllOccurrencesOn_(char[] string, char c, int first, StringBuffer sb) { - sb.append(string, 0, first); - int len = string.length; - for (int i = first; i < len; i++) { - char d = string[i]; - if (d != c) { - sb.append(d); - } - } - } - - /** - * Remove all occurrences of the specified character - * from the specified string and append the result to the - * specified string builder. - * String#removeAllOccurrencesOn(char, StringBuilder) - */ - public static void removeAllOccurrencesOn(char[] string, char c, StringBuilder sb) { - int first = ArrayTools.indexOf(string, c); - if (first == -1) { - sb.append(string); - } else { - removeAllOccurrencesOn_(string, c, first, sb); - } - } - - /* - * The index of the first matching character is passed in. - */ - private static void removeAllOccurrencesOn_(char[] string, char c, int first, StringBuilder sb) { - sb.append(string, 0, first); - int len = string.length; - for (int i = first; i < len; i++) { - char d = string[i]; - if (d != c) { - sb.append(d); - } - } - } - - /** - * Remove all the spaces from the specified string and return the result. - * String#removeAllSpaces() - */ - public static String removeAllSpaces(String string) { - return removeAllOccurrences(string, ' '); - } - - /** - * Remove all the spaces - * from the specified string and write the result to the specified writer. - * String#removeAllSpacesOn(Writer) - */ - public static void removeAllSpacesOn(String string, Writer writer) { - removeAllOccurrencesOn(string, ' ', writer); - } - - /** - * Remove all the spaces - * from the specified string and write the result to the specified - * string buffer. - * String#removeAllSpacesOn(StringBuffer) - */ - public static void removeAllSpacesOn(String string, StringBuffer sb) { - removeAllOccurrencesOn(string, ' ', sb); - } - - /** - * Remove all the spaces - * from the specified string and write the result to the specified - * string builder. - * String#removeAllSpacesOn(StringBuilder) - */ - public static void removeAllSpacesOn(String string, StringBuilder sb) { - removeAllOccurrencesOn(string, ' ', sb); - } - - /** - * Remove all the spaces from the specified string and return the result. - * String#removeAllSpaces() - */ - public static char[] removeAllSpaces(char[] string) { - return removeAllOccurrences(string, ' '); - } - - /** - * Remove all the spaces - * from the specified string and write the result to the - * specified writer. - * String#removeAllSpacesOn(Writer) - */ - public static void removeAllSpacesOn(char[] string, Writer writer) { - removeAllOccurrencesOn(string, ' ', writer); - } - - /** - * Remove all the spaces - * from the specified string and append the result to the - * specified string buffer. - * String#removeAllSpacesOn(StringBuffer) - */ - public static void removeAllSpacesOn(char[] string, StringBuffer sb) { - removeAllOccurrencesOn(string, ' ', sb); - } - - /** - * Remove all the spaces - * from the specified string and append the result to the - * specified string builder. - * String#removeAllSpacesOn(StringBuilder) - */ - public static void removeAllSpacesOn(char[] string, StringBuilder sb) { - removeAllOccurrencesOn(string, ' ', sb); - } - - /** - * Remove all the whitespace from the specified string and return the result. - * String#removeAllWhitespace() - */ - public static String removeAllWhitespace(String string) { - char[] string2 = string.toCharArray(); - int first = indexOfWhitespace_(string2); - return (first == -1) ? string : new String(removeAllWhitespace_(string2, first)); - } - - /** - * Remove all the whitespace - * from the specified string and append the result to the - * specified writer. - * String#removeAllWhitespaceOn(Writer) - */ - public static void removeAllWhitespaceOn(String string, Writer writer) { - char[] string2 = string.toCharArray(); - int first = indexOfWhitespace_(string2); - if (first == -1) { - writeStringOn(string, writer); - } else { - removeAllWhitespaceOn_(string2, first, writer); - } - } - - /** - * Remove all the whitespace - * from the specified string and append the result to the - * specified string buffer. - * String#removeAllWhitespaceOn(StringBuffer) - */ - public static void removeAllWhitespaceOn(String string, StringBuffer sb) { - char[] string2 = string.toCharArray(); - int first = indexOfWhitespace_(string2); - if (first == -1) { - sb.append(string); - } else { - removeAllWhitespaceOn_(string2, first, sb); - } - } - - /** - * Remove all the whitespace - * from the specified string and append the result to the - * specified string builder. - * String#removeAllWhitespaceOn(StringBuilder) - */ - public static void removeAllWhitespaceOn(String string, StringBuilder sb) { - char[] string2 = string.toCharArray(); - int first = indexOfWhitespace_(string2); - if (first == -1) { - sb.append(string); - } else { - removeAllWhitespaceOn_(string2, first, sb); - } - } - - /** - * Remove all the whitespace from the specified string and return the result. - * String#removeAllWhitespace() - */ - public static char[] removeAllWhitespace(char[] string) { - int first = indexOfWhitespace_(string); - return (first == -1) ? string : removeAllWhitespace_(string, first); - } - - private static int indexOfWhitespace_(char[] string) { - int len = string.length; - for (int i = 0; i < len; i++) { - if (Character.isWhitespace(string[i])) { - return i; - } - } - return -1; - } - - /* - * The index of the first non-whitespace character is passed in. - */ - private static char[] removeAllWhitespace_(char[] string, int first) { - StringBuilder sb = new StringBuilder(string.length); - removeAllWhitespaceOn_(string, first, sb); - return convertToCharArray(sb); - } - - /** - * Remove all the whitespace - * from the specified string and append the result to the - * specified writer. - * String#removeAllWhitespaceOn(Writer) - */ - public static void removeAllWhitespaceOn(char[] string, Writer writer) { - int first = indexOfWhitespace_(string); - if (first == -1) { - writeStringOn(string, writer); - } else { - removeAllWhitespaceOn_(string, first, writer); - } - } - - /* - * The index of the first whitespace character is passed in. - */ - private static void removeAllWhitespaceOn_(char[] string, int first, Writer writer) { - writeStringOn(string, 0, first, writer); - int len = string.length; - for (int i = first; i < len; i++) { - char c = string[i]; - if ( ! Character.isWhitespace(c)) { - writeCharOn(c, writer); - } - } - } - - /** - * Remove all the whitespace - * from the specified string and append the result to the - * specified string buffer. - * String#removeAllWhitespaceOn(StringBuffer) - */ - public static void removeAllWhitespaceOn(char[] string, StringBuffer sb) { - int first = indexOfWhitespace_(string); - if (first == -1) { - sb.append(string); - } else { - removeAllWhitespaceOn_(string, first, sb); - } - } - - /* - * The index of the first whitespace character is passed in. - */ - private static void removeAllWhitespaceOn_(char[] string, int first, StringBuffer sb) { - sb.append(string, 0, first); - int len = string.length; - for (int i = first; i < len; i++) { - char c = string[i]; - if ( ! Character.isWhitespace(c)) { - sb.append(c); - } - } - } - - /** - * Remove all the whitespace - * from the specified string and append the result to the - * specified string builder. - * String#removeAllWhitespaceOn(StringBuilder) - */ - public static void removeAllWhitespaceOn(char[] string, StringBuilder sb) { - int first = indexOfWhitespace_(string); - if (first == -1) { - sb.append(string); - } else { - removeAllWhitespaceOn_(string, first, sb); - } - } - - /* - * The index of the first whitespace character is passed in. - */ - private static void removeAllWhitespaceOn_(char[] string, int first, StringBuilder sb) { - sb.append(string, 0, first); - int len = string.length; - for (int i = first; i < len; i++) { - char c = string[i]; - if ( ! Character.isWhitespace(c)) { - sb.append(c); - } - } - } -//=============================== - /** - * Compress the whitespace in the specified string and return the result. - * The whitespace is compressed by replacing any occurrence of one or more - * whitespace characters with a single space. - * String#compressWhitespace() - */ - public static String compressWhitespace(String string) { - char[] string2 = string.toCharArray(); - int first = indexOfWhitespace_(string2); - return (first == -1) ? string : new String(compressWhitespace_(string2, first)); - } - - /** - * Compress the whitespace - * in the specified string and append the result to the - * specified writer. - * The whitespace is compressed by replacing any occurrence of one or more - * whitespace characters with a single space. - * String#compressWhitespaceOn(Writer) - */ - public static void compressWhitespaceOn(String string, Writer writer) { - char[] string2 = string.toCharArray(); - int first = indexOfWhitespace_(string2); - if (first == -1) { - writeStringOn(string, writer); - } else { - compressWhitespaceOn_(string2, first, writer); - } - } - - /** - * Compress the whitespace - * in the specified string and append the result to the - * specified string buffer. - * The whitespace is compressed by replacing any occurrence of one or more - * whitespace characters with a single space. - * String#compressWhitespaceOn(StringBuffer) - */ - public static void compressWhitespaceOn(String string, StringBuffer sb) { - char[] string2 = string.toCharArray(); - int first = indexOfWhitespace_(string2); - if (first == -1) { - sb.append(string); - } else { - compressWhitespaceOn_(string2, first, sb); - } - } - - /** - * Compress the whitespace - * in the specified string and append the result to the - * specified string builder. - * The whitespace is compressed by replacing any occurrence of one or more - * whitespace characters with a single space. - * String#compressWhitespaceOn(StringBuilder) - */ - public static void compressWhitespaceOn(String string, StringBuilder sb) { - char[] string2 = string.toCharArray(); - int first = indexOfWhitespace_(string2); - if (first == -1) { - sb.append(string); - } else { - compressWhitespaceOn_(string2, first, sb); - } - } - - /** - * Compress the whitespace in the specified string and return the result. - * The whitespace is compressed by replacing any occurrence of one or more - * whitespace characters with a single space. - * String#compressWhitespace() - */ - public static char[] compressWhitespace(char[] string) { - int first = indexOfWhitespace_(string); - return (first == -1) ? string : compressWhitespace_(string, first); - } - - /* - * The index of the first whitespace character is passed in. - */ - private static char[] compressWhitespace_(char[] string, int first) { - StringBuilder sb = new StringBuilder(string.length); - compressWhitespaceOn_(string, first, sb); - return convertToCharArray(sb); - } - - /** - * Compress the whitespace - * in the specified string and append the result to the - * specified writer. - * The whitespace is compressed by replacing any occurrence of one or more - * whitespace characters with a single space. - * String#compressWhitespaceOn(Writer) - */ - public static void compressWhitespaceOn(char[] string, Writer writer) { - int first = indexOfWhitespace_(string); - if (first == -1) { - writeStringOn(string, writer); - } else { - compressWhitespaceOn_(string, first, writer); - } - } - - /* - * The index of the first whitespace character is passed in. - */ - private static void compressWhitespaceOn_(char[] string, int first, Writer writer) { - writeStringOn(string, 0, first, writer); - boolean spaceWritten = false; - int len = string.length; - for (int i = first; i < len; i++) { - char c = string[i]; - if (Character.isWhitespace(c)) { - if (spaceWritten) { - // skip subsequent whitespace characters - } else { - // replace first whitespace character with a space - spaceWritten = true; - writeCharOn(' ', writer); - } - } else { - spaceWritten = false; - writeCharOn(c, writer); - } - } - } - - /** - * Compress the whitespace - * in the specified string and append the result to the - * specified string buffer. - * The whitespace is compressed by replacing any occurrence of one or more - * whitespace characters with a single space. - * String#compressWhitespaceOn(StringBuffer) - */ - public static void compressWhitespaceOn(char[] string, StringBuffer sb) { - int first = indexOfWhitespace_(string); - if (first == -1) { - sb.append(string); - } else { - compressWhitespaceOn_(string, first, sb); - } - } - - /* - * The index of the first whitespace character is passed in. - */ - private static void compressWhitespaceOn_(char[] string, int first, StringBuffer sb) { - sb.append(string, 0, first); - boolean spaceWritten = false; - int len = string.length; - for (int i = first; i < len; i++) { - char c = string[i]; - if (Character.isWhitespace(c)) { - if (spaceWritten) { - // skip subsequent whitespace characters - } else { - // replace first whitespace character with a space - spaceWritten = true; - sb.append(' '); - } - } else { - spaceWritten = false; - sb.append(c); - } - } - } - - /** - * Compress the whitespace - * in the specified string and append the result to the - * specified string builder. - * The whitespace is compressed by replacing any occurrence of one or more - * whitespace characters with a single space. - * String#compressWhitespaceOn(StringBuilder) - */ - public static void compressWhitespaceOn(char[] string, StringBuilder sb) { - int first = indexOfWhitespace_(string); - if (first == -1) { - sb.append(string); - } else { - compressWhitespaceOn_(string, first, sb); - } - } - - /* - * The index of the first whitespace character is passed in. - */ - private static void compressWhitespaceOn_(char[] string, int first, StringBuilder sb) { - sb.append(string, 0, first); - boolean spaceWritten = false; - int len = string.length; - for (int i = first; i < len; i++) { - char c = string[i]; - if (Character.isWhitespace(c)) { - if (spaceWritten) { - // skip subsequent whitespace characters - } else { - // replace first whitespace character with a space - spaceWritten = true; - sb.append(' '); - } - } else { - spaceWritten = false; - sb.append(c); - } - } - } - - - // ********** common prefix ********** - - /** - * Return the length of the common prefix shared by the specified strings. - * String#commonPrefixLength(String) - */ - public static int commonPrefixLength(String s1, String s2) { - return commonPrefixLength(s1.toCharArray(), s2.toCharArray()); - } - - /** - * Return the length of the common prefix shared by the specified strings. - */ - public static int commonPrefixLength(char[] s1, char[] s2) { - return commonPrefixLength_(s1, s2, Math.min(s1.length, s2.length)); - } - - /** - * Return the length of the common prefix shared by the specified strings; - * but limit the length to the specified maximum. - * String#commonPrefixLength(String, int) - */ - public static int commonPrefixLength(String s1, String s2, int max) { - return commonPrefixLength(s1.toCharArray(), s2.toCharArray(), max); - } - - /** - * Return the length of the common prefix shared by the specified strings; - * but limit the length to the specified maximum. - */ - public static int commonPrefixLength(char[] s1, char[] s2, int max) { - return commonPrefixLength_(s1, s2, Math.min(max, Math.min(s1.length, s2.length))); - } - - /* - * Return the length of the common prefix shared by the specified strings; - * but limit the length to the specified maximum. Assume the specified - * maximum is less than the lengths of the specified strings. - */ - private static int commonPrefixLength_(char[] s1, char[] s2, int max) { - for (int i = 0; i < max; i++) { - if (s1[i] != s2[i]) { - return i; - } - } - return max; // all the characters up to 'max' are the same - } - - - // ********** capitalization ********** - - /* - * no zero-length check or lower case check - */ - private static char[] capitalize_(char[] string) { - string[0] = Character.toUpperCase(string[0]); - return string; - } - - /** - * Modify and return the specified string with - * its first letter capitalized. - */ - public static char[] capitalize(char[] string) { - if ((string.length == 0) || Character.isUpperCase(string[0])) { - return string; - } - return capitalize_(string); - } - - /** - * Return the specified string with its first letter capitalized. - * String#capitalize() - */ - public static String capitalize(String string) { - if ((string.length() == 0) || Character.isUpperCase(string.charAt(0))) { - return string; - } - return new String(capitalize_(string.toCharArray())); - } - - /** - * Modify each of the specified strings, capitalizing the first letter of - * each. - */ - public static Iterable capitalize(Iterable strings) { - return new TransformationIterable(strings, STRING_CAPITALIZER); - } - - /** - * Modify each of the specified strings, capitalizing the first letter of - * each. - */ - public static Iterator capitalize(Iterator strings) { - return new TransformationIterator(strings, STRING_CAPITALIZER); - } - - private static final Transformer STRING_CAPITALIZER = new Transformer() { - public String transform(String string) { - return StringTools.capitalize(string); - } - }; - - /** - * Modify each of the specified strings, capitalizing the first letter of - * each. - */ - // cannot name method simply 'capitalize' because of type-erasure... - public static Iterable capitalizeCharArrays(Iterable strings) { - return new TransformationIterable(strings, CHAR_ARRAY_CAPITALIZER); - } - - /** - * Modify each of the specified strings, capitalizing the first letter of - * each. - */ - // cannot name method simply 'capitalize' because of type-erasure... - public static Iterator capitalizeCharArrays(Iterator strings) { - return new TransformationIterator(strings, CHAR_ARRAY_CAPITALIZER); - } - - private static final Transformer CHAR_ARRAY_CAPITALIZER = new Transformer() { - public char[] transform(char[] string) { - return StringTools.capitalize(string); - } - }; - - /* - * no zero-length check or upper case check - */ - private static void capitalizeOn_(char[] string, StringBuffer sb) { - sb.append(Character.toUpperCase(string[0])); - sb.append(string, 1, string.length - 1); - } - - /** - * Append the specified string to the specified string buffer - * with its first letter capitalized. - */ - public static void capitalizeOn(char[] string, StringBuffer sb) { - if (string.length == 0) { - return; - } - if (Character.isUpperCase(string[0])) { - sb.append(string); - } else { - capitalizeOn_(string, sb); - } - } - - /** - * Append the specified string to the specified string buffer - * with its first letter capitalized. - * String#capitalizeOn(StringBuffer) - */ - public static void capitalizeOn(String string, StringBuffer sb) { - if (string.length() == 0) { - return; - } - if (Character.isUpperCase(string.charAt(0))) { - sb.append(string); - } else { - capitalizeOn_(string.toCharArray(), sb); - } - } - - /* - * no zero-length check or upper case check - */ - private static void capitalizeOn_(char[] string, StringBuilder sb) { - sb.append(Character.toUpperCase(string[0])); - sb.append(string, 1, string.length - 1); - } - - /** - * Append the specified string to the specified string builder - * with its first letter capitalized. - */ - public static void capitalizeOn(char[] string, StringBuilder sb) { - if (string.length == 0) { - return; - } - if (Character.isUpperCase(string[0])) { - sb.append(string); - } else { - capitalizeOn_(string, sb); - } - } - - /** - * Append the specified string to the specified string builder - * with its first letter capitalized. - * String#capitalizeOn(StringBuffer) - */ - public static void capitalizeOn(String string, StringBuilder sb) { - if (string.length() == 0) { - return; - } - if (Character.isUpperCase(string.charAt(0))) { - sb.append(string); - } else { - capitalizeOn_(string.toCharArray(), sb); - } - } - - /* - * no zero-length check or upper case check - */ - private static void capitalizeOn_(char[] string, Writer writer) { - writeCharOn(Character.toUpperCase(string[0]), writer); - writeStringOn(string, 1, string.length - 1, writer); - } - - /** - * Append the specified string to the specified string buffer - * with its first letter capitalized. - */ - public static void capitalizeOn(char[] string, Writer writer) { - if (string.length == 0) { - return; - } - if (Character.isUpperCase(string[0])) { - writeStringOn(string, writer); - } else { - capitalizeOn_(string, writer); - } - } - - /** - * Append the specified string to the specified string buffer - * with its first letter capitalized. - * String#capitalizeOn(Writer) - */ - public static void capitalizeOn(String string, Writer writer) { - if (string.length() == 0) { - return; - } - if (Character.isUpperCase(string.charAt(0))) { - writeStringOn(string, writer); - } else { - capitalizeOn_(string.toCharArray(), writer); - } - } - - /* - * no zero-length check or lower case check - */ - private static char[] uncapitalize_(char[] string) { - string[0] = Character.toLowerCase(string[0]); - return string; - } - - private static boolean stringNeedNotBeUncapitalized_(char[] string) { - if (string.length == 0) { - return true; - } - if (Character.isLowerCase(string[0])) { - return true; - } - // if both the first and second characters are capitalized, - // return the string unchanged - if ((string.length > 1) - && Character.isUpperCase(string[1]) - && Character.isUpperCase(string[0])){ - return true; - } - return false; - } - - /** - * Modify and return the specified string with its - * first letter converted to lower case. - * (Unless both the first and second letters are upper case, - * in which case the string is returned unchanged.) - */ - public static char[] uncapitalize(char[] string) { - if (stringNeedNotBeUncapitalized_(string)) { - return string; - } - return uncapitalize_(string); - } - - private static boolean stringNeedNotBeUncapitalized_(String string) { - if (string.length() == 0) { - return true; - } - if (Character.isLowerCase(string.charAt(0))) { - return true; - } - // if both the first and second characters are capitalized, - // return the string unchanged - if ((string.length() > 1) - && Character.isUpperCase(string.charAt(1)) - && Character.isUpperCase(string.charAt(0))){ - return true; - } - return false; - } - - /** - * Return the specified string with its first letter converted to lower case. - * (Unless both the first and second letters are upper case, - * in which case the string is returned unchanged.) - * String#uncapitalize() - */ - public static String uncapitalize(String string) { - if (stringNeedNotBeUncapitalized_(string)) { - return string; - } - return new String(uncapitalize_(string.toCharArray())); - } - - /* - * no zero-length check or lower case check - */ - private static void uncapitalizeOn_(char[] string, StringBuffer sb) { - sb.append(Character.toLowerCase(string[0])); - sb.append(string, 1, string.length - 1); - } - - /** - * Append the specified string to the specified string buffer - * with its first letter converted to lower case. - * (Unless both the first and second letters are upper case, - * in which case the string is returned unchanged.) - */ - public static void uncapitalizeOn(char[] string, StringBuffer sb) { - if (stringNeedNotBeUncapitalized_(string)) { - sb.append(string); - } else { - uncapitalizeOn_(string, sb); - } - } - - /** - * Append the specified string to the specified string buffer - * with its first letter converted to lower case. - * (Unless both the first and second letters are upper case, - * in which case the string is returned unchanged.) - * String#uncapitalizeOn(StringBuffer) - */ - public static void uncapitalizeOn(String string, StringBuffer sb) { - if (stringNeedNotBeUncapitalized_(string)) { - sb.append(string); - } else { - uncapitalizeOn_(string.toCharArray(), sb); - } - } - - /* - * no zero-length check or lower case check - */ - private static void uncapitalizeOn_(char[] string, StringBuilder sb) { - sb.append(Character.toLowerCase(string[0])); - sb.append(string, 1, string.length - 1); - } - - /** - * Append the specified string to the specified string builder - * with its first letter converted to lower case. - * (Unless both the first and second letters are upper case, - * in which case the string is returned unchanged.) - */ - public static void uncapitalizeOn(char[] string, StringBuilder sb) { - if (stringNeedNotBeUncapitalized_(string)) { - sb.append(string); - } else { - uncapitalizeOn_(string, sb); - } - } - - /** - * Append the specified string to the specified string builder - * with its first letter converted to lower case. - * (Unless both the first and second letters are upper case, - * in which case the string is returned unchanged.) - * String#uncapitalizeOn(StringBuffer) - */ - public static void uncapitalizeOn(String string, StringBuilder sb) { - if (stringNeedNotBeUncapitalized_(string)) { - sb.append(string); - } else { - uncapitalizeOn_(string.toCharArray(), sb); - } - } - - /* - * no zero-length check or upper case check - */ - private static void uncapitalizeOn_(char[] string, Writer writer) { - writeCharOn(Character.toLowerCase(string[0]), writer); - writeStringOn(string, 1, string.length - 1, writer); - } - - /** - * Append the specified string to the specified string buffer - * with its first letter converted to lower case. - * (Unless both the first and second letters are upper case, - * in which case the string is returned unchanged.) - */ - public static void uncapitalizeOn(char[] string, Writer writer) { - if (stringNeedNotBeUncapitalized_(string)) { - writeStringOn(string, writer); - } else { - uncapitalizeOn_(string, writer); - } - } - - /** - * Append the specified string to the specified string buffer - * with its first letter converted to lower case. - * (Unless both the first and second letters are upper case, - * in which case the string is returned unchanged.) - * String#uncapitalizeOn(Writer) - */ - public static void uncapitalizeOn(String string, Writer writer) { - if (stringNeedNotBeUncapitalized_(string)) { - writeStringOn(string, writer); - } else { - uncapitalizeOn_(string.toCharArray(), writer); - } - } - - - // ********** #toString() helper methods ********** - - /** - * Build a "standard" {@link Object#toString() toString()} result for the - * specified object and additional information:
-	 *     ClassName[00-F3-EE-42](add'l info)
-	 * 
- */ - public static String buildToStringFor(Object o, Object additionalInfo) { - StringBuilder sb = new StringBuilder(); - buildSimpleToStringOn(o, sb); - sb.append('('); - sb.append(additionalInfo); - sb.append(')'); - return sb.toString(); - } - - /** - * Build a "standard" {@link Object#toString() toString()} result for the - * specified object:
-	 *     ClassName[00-F3-EE-42]
-	 * 
- */ - public static String buildToStringFor(Object o) { - StringBuilder sb = new StringBuilder(); - buildSimpleToStringOn(o, sb); - return sb.toString(); - } - - /** - * Append a "standard" {@link Object#toString() toString()} result for the - * specified object to the specified buffer:
-	 *     ClassName[00-F3-EE-42]
-	 * 
- */ - public static void buildSimpleToStringOn(Object o, StringBuffer sb) { - sb.append(buildToStringClassName(o.getClass())); - sb.append('['); - separateOn(buildHashCode(o), '-', 2, sb); - sb.append(']'); - } - - private static String buildHashCode(Object o) { - // use System#identityHashCode(Object), since Object#hashCode() may be overridden - return zeroPad(Integer.toHexString(System.identityHashCode(o)).toUpperCase(), 8); - } - - /** - * Append a "standard" {@link Object#toString() toString()} result for the - * specified object to the specified string builder:
-	 *     ClassName[00-F3-EE-42]
-	 * 
- */ - public static void buildSimpleToStringOn(Object o, StringBuilder sb) { - sb.append(buildToStringClassName(o.getClass())); - sb.append('['); - separateOn(buildHashCode(o), '-', 2, sb); - sb.append(']'); - } - - /** - * Return a name suitable for a {@link Object#toString() toString()} implementation. - * {@link Class#getSimpleName()} isn't quite good enough for anonymous - * classes; since it returns an empty string. This method will return the - * name of the anonymous class's super class, which is a bit more helpful. - */ - public static String buildToStringClassName(Class javaClass) { - String simpleName = javaClass.getSimpleName(); - return simpleName.equals("") ? //$NON-NLS-1$ - buildToStringClassName(javaClass.getSuperclass()) : // recurse - simpleName; - } - - /** - * Append the string representations of the objects in the specified array - * to the specified string builder:
-	 *     ["foo", "bar", "baz"]
-	 * 
- */ - public static String append(StringBuilder sb, T[] array) { - return append(sb, new ArrayListIterator(array)); - } - - /** - * Append the string representations of the objects in the specified iterable - * to the specified string builder:
-	 *     ["foo", "bar", "baz"]
-	 * 
- */ - public static String append(StringBuilder sb, Iterable iterable) { - return append(sb, iterable.iterator()); - } - - /** - * Append the string representations of the objects in the specified iterator - * to the specified string builder:
-	 *     ["foo", "bar", "baz"]
-	 * 
- */ - public static String append(StringBuilder sb, Iterator iterator) { - sb.append('['); - while (iterator.hasNext()) { - sb.append(iterator.next()); - if (iterator.hasNext()) { - sb.append(", "); //$NON-NLS-1$ - } - } - sb.append(']'); - return sb.toString(); - } - - - // ********** queries ********** - - /** - * Return whether the specified string is null, empty, or contains - * only whitespace characters. - */ - public static boolean stringIsEmpty(String string) { - if (string == null) { - return true; - } - int len = string.length(); - if (len == 0) { - return true; - } - return stringIsEmpty_(string.toCharArray(), len); - } - - /** - * Return whether the specified string is null, empty, or contains - * only whitespace characters. - */ - public static boolean stringIsEmpty(char[] string) { - if (string == null) { - return true; - } - int len = string.length; - if (len == 0) { - return true; - } - return stringIsEmpty_(string, len); - } - - private static boolean stringIsEmpty_(char[] s, int len) { - for (int i = len; i-- > 0; ) { - if ( ! Character.isWhitespace(s[i])) { - return false; - } - } - return true; - } - - /** - * Return whether the specified string is non-null, non-empty, and does - * not contain only whitespace characters. - */ - public static boolean stringIsNotEmpty(String string) { - return ! stringIsEmpty(string); - } - - /** - * Return whether the specified string is non-null, non-empty, and does - * not contain only whitespace characters. - */ - public static boolean stringIsNotEmpty(char[] string) { - return ! stringIsEmpty(string); - } - - /** - * Return whether the specified strings are equal. - * Check for nulls. - */ - public static boolean stringsAreEqual(String s1, String s2) { - return Tools.valuesAreEqual(s1, s2); - } - - /** - * Return whether the specified strings are equal. - * Check for nulls. - */ - public static boolean stringsAreEqual(char[] s1, char[] s2) { - return (s1 == null) ? - (s2 == null) : - ((s2 != null) && stringsAreEqual_(s1, s2)); - } - - /** - * no null checks - */ - private static boolean stringsAreEqual_(char[] s1, char[] s2) { - int len = s1.length; - if (len != s2.length) { - return false; - } - for (int i = len; i-- > 0; ) { - if (s1[i] != s2[i]) { - return false; - } - } - return true; - } - - /** - * Return whether the specified strings are equal, ignoring case. - * Check for nulls. - */ - public static boolean stringsAreEqualIgnoreCase(String s1, String s2) { - return (s1 == null) ? - (s2 == null) : - ((s2 != null) && s1.equalsIgnoreCase(s2)); - } - - /** - * Return whether the specified strings are equal, ignoring case. - * Check for nulls. - */ - public static boolean stringsAreEqualIgnoreCase(char[] s1, char[] s2) { - return (s1 == null) ? - (s2 == null) : - ((s2 != null) && stringsAreEqualIgnoreCase_(s1, s2)); - } - - /** - * no null checks - */ - private static boolean stringsAreEqualIgnoreCase_(char[] s1, char[] s2) { - int len = s1.length; - if (len != s2.length) { - return false; - } - for (int i = len; i-- > 0; ) { - if ( ! charactersAreEqualIgnoreCase(s1[i], s2[i])) { - return false; - } - } - return true; - } - - /** - * Return whether the specified string starts with the specified prefix, - * ignoring case. - */ - public static boolean stringStartsWithIgnoreCase(char[] string, char[] prefix) { - int prefixLength = prefix.length; - if (string.length < prefixLength) { - return false; - } - for (int i = prefixLength; i-- > 0; ) { - if ( ! charactersAreEqualIgnoreCase(string[i], prefix[i])) { - return false; - } - } - return true; - } - - /** - * Return whether the specified string starts with the specified prefix, - * ignoring case. - */ - public static boolean stringStartsWithIgnoreCase(String string, String prefix) { - return string.regionMatches(true, 0, prefix, 0, prefix.length()); - } - - /** - * Return whether the specified characters are are equal, ignoring case. - * @see java.lang.String#regionMatches(boolean, int, String, int, int) - */ - public static boolean charactersAreEqualIgnoreCase(char c1, char c2) { - // something about the Georgian alphabet requires us to check lower case also - return (c1 == c2) - || (Character.toUpperCase(c1) == Character.toUpperCase(c2)) - || (Character.toLowerCase(c1) == Character.toLowerCase(c2)); - } - - /** - * Return whether the specified string is uppercase. - */ - public static boolean stringIsUppercase(String string) { - return (string.length() == 0) ? false : stringIsUppercase_(string); - } - - /** - * Return whether the specified string is uppercase. - */ - public static boolean stringIsUppercase(char[] string) { - return (string.length == 0) ? false : stringIsUppercase_(new String(string)); - } - - private static boolean stringIsUppercase_(String string) { - return string.equals(string.toUpperCase()); - } - - /** - * Return whether the specified string is lowercase. - */ - public static boolean stringIsLowercase(String string) { - return (string.length() == 0) ? false : stringIsLowercase_(string); - } - - /** - * Return whether the specified string is lowercase. - */ - public static boolean stringIsLowercase(char[] string) { - return (string.length == 0) ? false : stringIsLowercase_(new String(string)); - } - - private static boolean stringIsLowercase_(String string) { - return string.equals(string.toLowerCase()); - } - - - // ********** convert camel case to all caps ********** - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - */ - public static String convertCamelCaseToAllCaps(String camelCaseString) { - int len = camelCaseString.length(); - if (len == 0) { - return camelCaseString; - } - return new String(convertCamelCaseToAllCaps_(camelCaseString.toCharArray(), len)); - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - */ - public static char[] convertCamelCaseToAllCaps(char[] camelCaseString) { - int len = camelCaseString.length; - if (len == 0) { - return camelCaseString; - } - return convertCamelCaseToAllCaps_(camelCaseString, len); - } - - private static char[] convertCamelCaseToAllCaps_(char[] camelCaseString, int len) { - StringBuilder sb = new StringBuilder(len * 2); - convertCamelCaseToAllCapsOn_(camelCaseString, len, sb); - return convertToCharArray(sb); - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - */ - public static void convertCamelCaseToAllCapsOn(String camelCaseString, StringBuffer sb) { - int len = camelCaseString.length(); - if (len != 0) { - convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), len, sb); - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - */ - public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, StringBuffer sb) { - int len = camelCaseString.length; - if (len != 0) { - convertCamelCaseToAllCapsOn_(camelCaseString, len, sb); - } - } - - private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int len, StringBuffer sb) { - char prev = 0; // assume 0 is not a valid char - char c = 0; - char next = camelCaseString[0]; - for (int i = 1; i <= len; i++) { // NB: start at 1 and end at len! - c = next; - next = ((i == len) ? 0 : camelCaseString[i]); - if (camelCaseWordBreak_(prev, c, next)) { - sb.append('_'); - } - sb.append(Character.toUpperCase(c)); - prev = c; - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - */ - public static void convertCamelCaseToAllCapsOn(String camelCaseString, StringBuilder sb) { - int len = camelCaseString.length(); - if (len != 0) { - convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), len, sb); - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - */ - public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, StringBuilder sb) { - int len = camelCaseString.length; - if (len != 0) { - convertCamelCaseToAllCapsOn_(camelCaseString, len, sb); - } - } - - private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int len, StringBuilder sb) { - char prev = 0; // assume 0 is not a valid char - char c = 0; - char next = camelCaseString[0]; - for (int i = 1; i <= len; i++) { // NB: start at 1 and end at len! - c = next; - next = ((i == len) ? 0 : camelCaseString[i]); - if (camelCaseWordBreak_(prev, c, next)) { - sb.append('_'); - } - sb.append(Character.toUpperCase(c)); - prev = c; - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - */ - public static void convertCamelCaseToAllCapsOn(String camelCaseString, Writer writer) { - int len = camelCaseString.length(); - if (len != 0) { - convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), len, writer); - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - */ - public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, Writer writer) { - int len = camelCaseString.length; - if (len != 0) { - convertCamelCaseToAllCapsOn_(camelCaseString, len, writer); - } - } - - private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int len, Writer writer) { - char prev = 0; // assume 0 is not a valid char - char c = 0; - char next = camelCaseString[0]; - for (int i = 1; i <= len; i++) { // NB: start at 1 and end at len! - c = next; - next = ((i == len) ? 0 : camelCaseString[i]); - if (camelCaseWordBreak_(prev, c, next)) { - writeCharOn('_', writer); - } - writeCharOn(Character.toUpperCase(c), writer); - prev = c; - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - * Limit the resulting string to the specified maximum length. - */ - public static String convertCamelCaseToAllCaps(String camelCaseString, int maxLength) { - int len = camelCaseString.length(); - if ((len == 0) || (maxLength == 0)) { - return camelCaseString; - } - return new String(convertCamelCaseToAllCaps_(camelCaseString.toCharArray(), maxLength, len)); - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - * Limit the resulting string to the specified maximum length. - */ - public static char[] convertCamelCaseToAllCaps(char[] camelCaseString, int maxLength) { - int len = camelCaseString.length; - if ((len == 0) || (maxLength == 0)) { - return camelCaseString; - } - return convertCamelCaseToAllCaps_(camelCaseString, maxLength, len); - } - - private static char[] convertCamelCaseToAllCaps_(char[] camelCaseString, int maxLength, int len) { - StringBuilder sb = new StringBuilder(maxLength); - convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, sb); - return convertToCharArray(sb); - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - * Limit the resulting string to the specified maximum length. - */ - public static void convertCamelCaseToAllCapsOn(String camelCaseString, int maxLength, StringBuffer sb) { - int len = camelCaseString.length(); - if ((len != 0) && (maxLength != 0)) { - convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), maxLength, len, sb); - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - * Limit the resulting string to the specified maximum length. - */ - public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, int maxLength, StringBuffer sb) { - int len = camelCaseString.length; - if ((len != 0) && (maxLength != 0)) { - convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, sb); - } - } - - private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int maxLength, int len, StringBuffer sb) { - char prev = 0; // assume 0 is not a valid char - char c = 0; - char next = camelCaseString[0]; - for (int i = 1; i <= len; i++) { // NB: start at 1 and end at len! - c = next; - next = ((i == len) ? 0 : camelCaseString[i]); - if (camelCaseWordBreak_(prev, c, next)) { - sb.append('_'); - if (sb.length() == maxLength) { - return; - } - } - sb.append(Character.toUpperCase(c)); - if (sb.length() == maxLength) { - return; - } - prev = c; - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - * Limit the resulting string to the specified maximum length. - */ - public static void convertCamelCaseToAllCapsOn(String camelCaseString, int maxLength, StringBuilder sb) { - int len = camelCaseString.length(); - if ((len != 0) && (maxLength != 0)) { - convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), maxLength, len, sb); - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - * Limit the resulting string to the specified maximum length. - */ - public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, int maxLength, StringBuilder sb) { - int len = camelCaseString.length; - if ((len != 0) && (maxLength != 0)) { - convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, sb); - } - } - - private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int maxLength, int len, StringBuilder sb) { - char prev = 0; // assume 0 is not a valid char - char c = 0; - char next = camelCaseString[0]; - for (int i = 1; i <= len; i++) { // NB: start at 1 and end at len! - c = next; - next = ((i == len) ? 0 : camelCaseString[i]); - if (camelCaseWordBreak_(prev, c, next)) { - sb.append('_'); - if (sb.length() == maxLength) { - return; - } - } - sb.append(Character.toUpperCase(c)); - if (sb.length() == maxLength) { - return; - } - prev = c; - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - * Limit the resulting string to the specified maximum length. - */ - public static void convertCamelCaseToAllCapsOn(String camelCaseString, int maxLength, Writer writer) { - int len = camelCaseString.length(); - if ((len != 0) && (maxLength != 0)) { - convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), maxLength, len, writer); - } - } - - /** - * Convert the specified "camel case" string to an "all caps" string: - * "largeProject" -> "LARGE_PROJECT" - * Limit the resulting string to the specified maximum length. - */ - public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, int maxLength, Writer writer) { - int len = camelCaseString.length; - if ((len != 0) && (maxLength != 0)) { - convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, writer); - } - } - - private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int maxLength, int len, Writer writer) { - char prev = 0; // assume 0 is not a valid char - char c = 0; - char next = camelCaseString[0]; - int writerLength = 0; - for (int i = 1; i <= len; i++) { // NB: start at 1 and end at len! - c = next; - next = ((i == len) ? 0 : camelCaseString[i]); - if (camelCaseWordBreak_(prev, c, next)) { - writeCharOn('_', writer); - if (++writerLength == maxLength) { - return; - } - } - writeCharOn(Character.toUpperCase(c), writer); - if (++writerLength == maxLength) { - return; - } - prev = c; - } - } - - /* - * Return whether the specified series of characters occur at - * a "camel case" work break: - * "*aa" -> false - * "*AA" -> false - * "*Aa" -> false - * "AaA" -> false - * "AAA" -> false - * "aa*" -> false - * "AaA" -> false - * "aAa" -> true - * "AA*" -> false - * "AAa" -> true - * where '*' == any char - */ - private static boolean camelCaseWordBreak_(char prev, char c, char next) { - if (prev == 0) { // start of string - return false; - } - if (Character.isLowerCase(c)) { - return false; - } - if (Character.isLowerCase(prev)) { - return true; - } - if (next == 0) { // end of string - return false; - } - return Character.isLowerCase(next); - } - - - // ********** convert underscores to camel case ********** - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "LargeProject" - * Capitalize the first letter. - */ - public static String convertUnderscoresToCamelCase(String underscoreString) { - return convertUnderscoresToCamelCase(underscoreString, true); - } - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "LargeProject" - * Capitalize the first letter. - */ - public static char[] convertUnderscoresToCamelCase(char[] underscoreString) { - return convertUnderscoresToCamelCase(underscoreString, true); - } - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "largeProject" - * Optionally capitalize the first letter. - */ - public static String convertUnderscoresToCamelCase(String underscoreString, boolean capitalizeFirstLetter) { - int len = underscoreString.length(); - if (len == 0) { - return underscoreString; - } - return new String(convertUnderscoresToCamelCase_(underscoreString.toCharArray(), capitalizeFirstLetter, len)); - } - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "largeProject" - * Optionally capitalize the first letter. - */ - public static char[] convertUnderscoresToCamelCase(char[] underscoreString, boolean capitalizeFirstLetter) { - int len = underscoreString.length; - if (len == 0) { - return underscoreString; - } - return convertUnderscoresToCamelCase_(underscoreString, capitalizeFirstLetter, len); - } - - private static char[] convertUnderscoresToCamelCase_(char[] underscoreString, boolean capitalizeFirstLetter, int len) { - StringBuilder sb = new StringBuilder(len); - convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, sb); - return convertToCharArray(sb); - } - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "largeProject" - * Optionally capitalize the first letter. - */ - public static void convertUnderscoresToCamelCaseOn(String underscoreString, boolean capitalizeFirstLetter, StringBuffer sb) { - int len = underscoreString.length(); - if (len != 0) { - convertUnderscoresToCamelCaseOn_(underscoreString.toCharArray(), capitalizeFirstLetter, len, sb); - } - } - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "largeProject" - * Optionally capitalize the first letter. - */ - public static void convertUnderscoresToCamelCaseOn(char[] underscoreString, boolean capitalizeFirstLetter, StringBuffer sb) { - int len = underscoreString.length; - if (len != 0) { - convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, sb); - } - } - - private static void convertUnderscoresToCamelCaseOn_(char[] underscoreString, boolean capitalizeFirstLetter, int len, StringBuffer sb) { - char prev = 0; - char c = 0; - boolean first = true; - for (int i = 0; i < len; i++) { - prev = c; - c = underscoreString[i]; - if (c == '_') { - continue; - } - if (first) { - first = false; - sb.append(capitalizeFirstLetter ? Character.toUpperCase(c) : Character.toLowerCase(c)); - } else { - sb.append((prev == '_') ? Character.toUpperCase(c) : Character.toLowerCase(c)); - } - } - } - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "largeProject" - * Optionally capitalize the first letter. - */ - public static void convertUnderscoresToCamelCaseOn(String underscoreString, boolean capitalizeFirstLetter, StringBuilder sb) { - int len = underscoreString.length(); - if (len != 0) { - convertUnderscoresToCamelCaseOn_(underscoreString.toCharArray(), capitalizeFirstLetter, len, sb); - } - } - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "largeProject" - * Optionally capitalize the first letter. - */ - public static void convertUnderscoresToCamelCaseOn(char[] underscoreString, boolean capitalizeFirstLetter, StringBuilder sb) { - int len = underscoreString.length; - if (len != 0) { - convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, sb); - } - } - - private static void convertUnderscoresToCamelCaseOn_(char[] underscoreString, boolean capitalizeFirstLetter, int len, StringBuilder sb) { - char prev = 0; - char c = 0; - boolean first = true; - for (int i = 0; i < len; i++) { - prev = c; - c = underscoreString[i]; - if (c == '_') { - continue; - } - if (first) { - first = false; - sb.append(capitalizeFirstLetter ? Character.toUpperCase(c) : Character.toLowerCase(c)); - } else { - sb.append((prev == '_') ? Character.toUpperCase(c) : Character.toLowerCase(c)); - } - } - } - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "largeProject" - * Optionally capitalize the first letter. - */ - public static void convertUnderscoresToCamelCaseOn(String underscoreString, boolean capitalizeFirstLetter, Writer writer) { - int len = underscoreString.length(); - if (len != 0) { - convertUnderscoresToCamelCaseOn_(underscoreString.toCharArray(), capitalizeFirstLetter, len, writer); - } - } - - /** - * Convert the specified "underscore" string to a "camel case" string: - * "LARGE_PROJECT" -> "largeProject" - * Optionally capitalize the first letter. - */ - public static void convertUnderscoresToCamelCaseOn(char[] underscoreString, boolean capitalizeFirstLetter, Writer writer) { - int len = underscoreString.length; - if (len != 0) { - convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, writer); - } - } - - private static void convertUnderscoresToCamelCaseOn_(char[] underscoreString, boolean capitalizeFirstLetter, int len, Writer writer) { - char prev = 0; - char c = 0; - boolean first = true; - for (int i = 0; i < len; i++) { - prev = c; - c = underscoreString[i]; - if (c == '_') { - continue; - } - if (first) { - first = false; - writeCharOn(capitalizeFirstLetter ? Character.toUpperCase(c) : Character.toLowerCase(c), writer); - } else { - writeCharOn((prev == '_') ? Character.toUpperCase(c) : Character.toLowerCase(c), writer); - } - } - } - - - // ********** convert to Java string literal ********** - - public static final String EMPTY_JAVA_STRING_LITERAL = "\"\""; //$NON-NLS-1$ - public static final char[] EMPTY_JAVA_STRING_LITERAL_CHAR_ARRAY = EMPTY_JAVA_STRING_LITERAL.toCharArray(); - - public static String convertToJavaStringLiteral(String string) { - int len = string.length(); - if (len == 0) { - return EMPTY_JAVA_STRING_LITERAL; - } - StringBuilder sb = new StringBuilder(len + 5); - convertToJavaStringLiteralOn_(string.toCharArray(), sb, len); - return sb.toString(); - } - - public static char[] convertToJavaStringLiteral(char[] string) { - int len = string.length; - if (len == 0) { - return EMPTY_JAVA_STRING_LITERAL_CHAR_ARRAY; - } - StringBuilder sb = new StringBuilder(len + 5); - convertToJavaStringLiteralOn_(string, sb, len); - len = sb.length(); - char[] result = new char[len]; - sb.getChars(0, len, result, 0); - return result; - } - - public static Iterable convertToJavaStringLiterals(Iterable strings) { - return new TransformationIterable(strings, STRING_TO_JAVA_STRING_LITERAL_TRANSFORMER); - } - - public static Iterator convertToJavaStringLiterals(Iterator strings) { - return new TransformationIterator(strings, STRING_TO_JAVA_STRING_LITERAL_TRANSFORMER); - } - - private static final Transformer STRING_TO_JAVA_STRING_LITERAL_TRANSFORMER = new Transformer() { - public String transform(String string) { - return StringTools.convertToJavaStringLiteral(string); - } - }; - - // cannot name method simply 'convertToJavaStringLiterals' because of type-erasure... - public static Iterable convertToJavaCharArrayLiterals(Iterable strings) { - return new TransformationIterable(strings, CHAR_ARRAY_TO_JAVA_STRING_LITERAL_TRANSFORMER); - } - - // cannot name method simply 'convertToJavaStringLiterals' because of type-erasure... - public static Iterator convertToJavaCharArrayLiterals(Iterator strings) { - return new TransformationIterator(strings, CHAR_ARRAY_TO_JAVA_STRING_LITERAL_TRANSFORMER); - } - - private static final Transformer CHAR_ARRAY_TO_JAVA_STRING_LITERAL_TRANSFORMER = new Transformer() { - public char[] transform(char[] string) { - return StringTools.convertToJavaStringLiteral(string); - } - }; - - public static void convertToJavaStringLiteralOn(String string, StringBuffer sb) { - int len = string.length(); - if (len == 0) { - sb.append(EMPTY_JAVA_STRING_LITERAL); - } else { - convertToJavaStringLiteralOn_(string.toCharArray(), sb, len); - } - } - - public static void convertToJavaStringLiteralOn(char[] string, StringBuffer sb) { - int len = string.length; - if (len == 0) { - sb.append(EMPTY_JAVA_STRING_LITERAL); - } else { - convertToJavaStringLiteralOn_(string, sb, len); - } - } - - /* - * no length checks - */ - private static void convertToJavaStringLiteralOn_(char[] string, StringBuffer sb, int len) { - sb.ensureCapacity(sb.length() + len + 5); - sb.append(QUOTE); - for (char c : string) { - switch (c) { - case '\b': // backspace - sb.append("\\b"); //$NON-NLS-1$ - break; - case '\t': // horizontal tab - sb.append("\\t"); //$NON-NLS-1$ - break; - case '\n': // line-feed LF - sb.append("\\n"); //$NON-NLS-1$ - break; - case '\f': // form-feed FF - sb.append("\\f"); //$NON-NLS-1$ - break; - case '\r': // carriage-return CR - sb.append("\\r"); //$NON-NLS-1$ - break; - case '"': // double-quote - sb.append("\\\""); //$NON-NLS-1$ - break; -// case '\'': // single-quote -// sb.append("\\'"); //$NON-NLS-1$ -// break; - case '\\': // backslash - sb.append("\\\\"); //$NON-NLS-1$ - break; - default: - sb.append(c); - break; - } - } - sb.append(QUOTE); - } - - public static void convertToJavaStringLiteralOn(String string, StringBuilder sb) { - int len = string.length(); - if (len == 0) { - sb.append(EMPTY_JAVA_STRING_LITERAL); - } else { - convertToJavaStringLiteralOn_(string.toCharArray(), sb, len); - } - } - - public static void convertToJavaStringLiteralOn(char[] string, StringBuilder sb) { - int len = string.length; - if (len == 0) { - sb.append(EMPTY_JAVA_STRING_LITERAL); - } else { - convertToJavaStringLiteralOn_(string, sb, len); - } - } - - /* - * no length checks - */ - private static void convertToJavaStringLiteralOn_(char[] string, StringBuilder sb, int len) { - sb.ensureCapacity(sb.length() + len + 5); - sb.append(QUOTE); - for (char c : string) { - switch (c) { - case '\b': // backspace - sb.append("\\b"); //$NON-NLS-1$ - break; - case '\t': // horizontal tab - sb.append("\\t"); //$NON-NLS-1$ - break; - case '\n': // line-feed LF - sb.append("\\n"); //$NON-NLS-1$ - break; - case '\f': // form-feed FF - sb.append("\\f"); //$NON-NLS-1$ - break; - case '\r': // carriage-return CR - sb.append("\\r"); //$NON-NLS-1$ - break; - case '"': // double-quote - sb.append("\\\""); //$NON-NLS-1$ - break; -// case '\'': // single-quote -// sb.append("\\'"); //$NON-NLS-1$ -// break; - case '\\': // backslash - sb.append("\\\\"); //$NON-NLS-1$ - break; - default: - sb.append(c); - break; - } - } - sb.append(QUOTE); - } - - public static void convertToJavaStringLiteralOn(String string, Writer writer) { - if (string.length() == 0) { - writeStringOn(EMPTY_JAVA_STRING_LITERAL, writer); - } else { - convertToJavaStringLiteralOn_(string.toCharArray(), writer); - } - } - - public static void convertToJavaStringLiteralOn(char[] string, Writer writer) { - if (string.length == 0) { - writeStringOn(EMPTY_JAVA_STRING_LITERAL, writer); - } else { - convertToJavaStringLiteralOn_(string, writer); - } - } - - /* - * no length checks - */ - private static void convertToJavaStringLiteralOn_(char[] string, Writer writer) { - writeCharOn(QUOTE, writer); - for (char c : string) { - switch (c) { - case '\b': // backspace - writeStringOn("\\b", writer); //$NON-NLS-1$ - break; - case '\t': // horizontal tab - writeStringOn("\\t", writer); //$NON-NLS-1$ - break; - case '\n': // line-feed LF - writeStringOn("\\n", writer); //$NON-NLS-1$ - break; - case '\f': // form-feed FF - writeStringOn("\\f", writer); //$NON-NLS-1$ - break; - case '\r': // carriage-return CR - writeStringOn("\\r", writer); //$NON-NLS-1$ - break; - case '"': // double-quote - writeStringOn("\\\"", writer); //$NON-NLS-1$ - break; -// case '\'': // single-quote -// writeStringOn("\\'", writer); //$NON-NLS-1$ -// break; - case '\\': // backslash - writeStringOn("\\\\", writer); //$NON-NLS-1$ - break; - default: - writeCharOn(c, writer); - break; - } - } - writeCharOn(QUOTE, writer); - } - - - // ********** convenience ********** - - public static char[] convertToCharArray(StringBuffer sb) { - int len = sb.length(); - char[] result = new char[len]; - sb.getChars(0, len, result, 0); - return result; - } - - public static char[] convertToCharArray(StringBuilder sb) { - int len = sb.length(); - char[] result = new char[len]; - sb.getChars(0, len, result, 0); - return result; - } - - private static void writeStringOn(char[] string, Writer writer) { - try { - writer.write(string); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - - private static void writeStringOn(char[] string, char escape, Writer writer) { - try { - for (char c : string) { - if (c == escape) { - writer.write(c); - } - writer.write(c); - } - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - - private static void writeStringOn(char[] string, int off, int len, Writer writer) { - try { - writer.write(string, off, len); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - - private static void writeStringOn(String string, int off, int len, Writer writer) { - try { - writer.write(string, off, len); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - - private static void writeStringOn(String string, Writer writer) { - try { - writer.write(string); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - - private static void writeCharOn(char c, Writer writer) { - try { - writer.write(c); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - - - // ********** constructor ********** - - /* - * Suppress default constructor, ensuring non-instantiability. - */ - private StringTools() { - super(); - throw new UnsupportedOperationException(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBag.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBag.java deleted file mode 100644 index 5bcce38db1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBag.java +++ /dev/null @@ -1,220 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.Collection; -import java.util.Iterator; - -/** - * Thread-safe implementation of the {@link Bag} interface. - */ -public class SynchronizedBag - implements Bag, Serializable -{ - /** Backing bag. */ - private final Bag bag; - - /** Object to synchronize on. */ - private final Object mutex; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a synchronized bag that wraps the - * specified bag and locks on the specified mutex. - */ - public SynchronizedBag(Bag bag, Object mutex) { - super(); - if (bag == null) { - throw new NullPointerException(); - } - this.bag = bag; - this.mutex = mutex; - } - - /** - * Construct a synchronized bag that wraps the - * specified bag and locks on itself. - */ - public SynchronizedBag(Bag bag) { - super(); - if (bag == null) { - throw new NullPointerException(); - } - this.bag = bag; - this.mutex = this; - } - - /** - * Construct a synchronized bag that locks on the specified mutex. - */ - public SynchronizedBag(Object mutex) { - this(new HashBag(), mutex); - } - - /** - * Construct a synchronized bag that locks on itself. - */ - public SynchronizedBag() { - this(new HashBag()); - } - - - // ********** Bag implementation ********** - - public boolean add(E o, int count) { - synchronized (this.mutex) { - return this.bag.add(o, count); - } - } - - public int count(Object o) { - synchronized (this.mutex) { - return this.bag.count(o); - } - } - - public Iterator> entries() { - synchronized (this.mutex) { - return this.bag.entries(); - } - } - - public boolean remove(Object o, int count) { - synchronized (this.mutex) { - return this.bag.remove(o, count); - } - } - - public int uniqueCount() { - synchronized (this.mutex) { - return this.bag.uniqueCount(); - } - } - - public Iterator uniqueIterator() { - synchronized (this.mutex) { - return this.bag.uniqueIterator(); - } - } - - - // ********** Collection implementation ********** - - public boolean add(E e) { - synchronized (this.mutex) { - return this.bag.add(e); - } - } - - public boolean addAll(Collection c) { - synchronized (this.mutex) { - return this.bag.addAll(c); - } - } - - public void clear() { - synchronized (this.mutex) { - this.bag.clear(); - } - } - - public boolean contains(Object o) { - synchronized (this.mutex) { - return this.bag.contains(o); - } - } - - public boolean containsAll(Collection c) { - synchronized (this.mutex) { - return this.bag.containsAll(c); - } - } - - public boolean isEmpty() { - synchronized (this.mutex) { - return this.bag.isEmpty(); - } - } - - public Iterator iterator() { - synchronized (this.mutex) { - return this.bag.iterator(); - } - } - - public boolean remove(Object o) { - synchronized (this.mutex) { - return this.bag.remove(o); - } - } - - public boolean removeAll(Collection c) { - synchronized (this.mutex) { - return this.bag.removeAll(c); - } - } - - public boolean retainAll(Collection c) { - synchronized (this.mutex) { - return this.bag.retainAll(c); - } - } - - public int size() { - synchronized (this.mutex) { - return this.bag.size(); - } - } - - public Object[] toArray() { - synchronized (this.mutex) { - return this.bag.toArray(); - } - } - - public T[] toArray(T[] a) { - synchronized (this.mutex) { - return this.bag.toArray(a); - } - } - - - // ********** additional public protocol ********** - - /** - * Return the object the stack locks on while performing - * its operations. - */ - public Object getMutex() { - return this.mutex; - } - - - // ********** Object overrides ********** - - @Override - public String toString() { - synchronized (this.mutex) { - return this.bag.toString(); - } - } - - private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { - synchronized (this.mutex) { - s.defaultWriteObject(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBoolean.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBoolean.java deleted file mode 100644 index e42a7e6691..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedBoolean.java +++ /dev/null @@ -1,437 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import org.eclipse.jpt.common.utility.Command; - -/** - * This class provides synchronized access to a boolean value. - * It also provides protocol for suspending a thread until the - * boolean value is set to true or false, - * with optional time-outs. - * - * @see SimpleBooleanReference - */ -public class SynchronizedBoolean - implements BooleanReference, Cloneable, Serializable -{ - /** Backing boolean. */ - private boolean value; - - /** Object to synchronize on. */ - private final Object mutex; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Create a synchronized boolean with the specified - * initial value and mutex. - */ - public SynchronizedBoolean(boolean value, Object mutex) { - super(); - this.value = value; - this.mutex = mutex; - } - - /** - * Create a synchronized boolean with the - * specified initial value. - * The synchronized boolean itself will be the mutex. - */ - public SynchronizedBoolean(boolean value) { - super(); - this.value = value; - this.mutex = this; - } - - /** - * Create a synchronized boolean - * with an initial value of false - * and specified mutex. - */ - public SynchronizedBoolean(Object mutex) { - this(false, mutex); - } - - /** - * Create a synchronized boolean - * with an initial value of false. - * The synchronized boolean itself will be the mutex. - */ - public SynchronizedBoolean() { - this(false); - } - - - // ********** accessors ********** - - public boolean getValue() { - synchronized (this.mutex) { - return this.value; - } - } - - public boolean is(boolean v) { - synchronized (this.mutex) { - return this.value == v; - } - } - - public boolean isNot(boolean v) { - synchronized (this.mutex) { - return this.value != v; - } - } - - public boolean isTrue() { - synchronized (this.mutex) { - return this.value; - } - } - - public boolean isFalse() { - synchronized (this.mutex) { - return ! this.value; - } - } - - /** - * If the value changes, all waiting threads are notified. - */ - public boolean setValue(boolean value) { - synchronized (this.mutex) { - return this.setValue_(value); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean setValue_(boolean v) { - return (v == this.value) ? v : this.setChangedValue_(v); - } - - /** - * Pre-condition: synchronized and new value is different - */ - private boolean setChangedValue_(boolean v) { - this.value = v; - this.mutex.notifyAll(); - return ! v; - } - - /** - * If the value changes, all waiting threads are notified. - */ - public boolean flip() { - synchronized (this.mutex) { - return ! this.setChangedValue_( ! this.value); - } - } - - /** - * If the value changes, all waiting threads are notified. - */ - public boolean setNot(boolean v) { - return this.setValue( ! v); - } - - /** - * If the value changes, all waiting threads are notified. - */ - public boolean setTrue() { - return this.setValue(true); - } - - /** - * If the value changes, all waiting threads are notified. - */ - public boolean setFalse() { - return this.setValue(false); - } - - /** - * Return the object this object locks on while performing - * its operations. - */ - public Object getMutex() { - return this.mutex; - } - - - // ********** indefinite waits ********** - - /** - * Suspend the current thread until the boolean value changes - * to the specified value. If the boolean value is already the - * specified value, return immediately. - */ - public void waitUntilValueIs(boolean v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilValueIs_(v); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilValueIs_(boolean v) throws InterruptedException { - while (this.value != v) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the boolean value - * changes to the NOT of the specified value. - * If the boolean value is already the NOT of the specified - * value, return immediately. - */ - public void waitUntilValueIsNot(boolean v) throws InterruptedException { - this.waitUntilValueIs( ! v); - } - - /** - * Suspend the current thread until the boolean value - * changes to true. - * If the boolean value is already true, - * return immediately. - */ - public void waitUntilTrue() throws InterruptedException { - this.waitUntilValueIs(true); - } - - /** - * Suspend the current thread until the boolean value - * changes to false. - * If the boolean value is already false, - * return immediately. - */ - public void waitUntilFalse() throws InterruptedException { - this.waitUntilValueIs(false); - } - - /** - * Suspend the current thread until the boolean value changes to - * not the specified value, then change it back to the specified - * value and continue executing. If the boolean value is already - * not the specified value, set the value to the specified value - * immediately. - */ - public void waitToSetValue(boolean v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilValueIs_( ! v); - this.setChangedValue_(v); - } - } - - /** - * Suspend the current thread until the boolean value - * changes to false, - * then change it back to true and continue executing. - * If the boolean value is already false, - * set the value to true immediately. - */ - public void waitToSetTrue() throws InterruptedException { - this.waitToSetValue(true); - } - - /** - * Suspend the current thread until the boolean value - * changes to true, - * then change it back to false and continue executing. - * If the boolean value is already true, - * set the value to false immediately. - */ - public void waitToSetFalse() throws InterruptedException { - this.waitToSetValue(false); - } - - - // ********** timed waits ********** - - /** - * Suspend the current thread until the boolean value changes - * to the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if - * the specified value was achieved; - * return false if a time-out occurred. - * If the boolean value is already the specified value, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilValueIs(boolean v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilValueIs_(v, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilValueIs_(boolean v, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilValueIs_(v); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while ((this.value != v) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return (this.value == v); - } - - /** - * Suspend the current thread until the boolean value - * changes to the NOT of the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if - * the NOT of the specified value was achieved; - * return false if a time-out occurred. - * If the boolean value is already the NOT of the specified - * value, return immediately. - * If the time-out is zero, wait indefinitely. - */ - public void waitUntilValueIsNot(boolean v, long timeout) throws InterruptedException { - this.waitUntilValueIs( ! v, timeout); - } - - /** - * Suspend the current thread until the boolean value changes - * to true or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if - * true was achieved; - * return false if a time-out occurred. - * If the boolean value is already true, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilTrue(long timeout) throws InterruptedException { - return this.waitUntilValueIs(true, timeout); - } - - /** - * Suspend the current thread until the boolean value changes - * to false or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if - * false was achieved; - * return false if a time-out occurred. - * If the boolean value is already true, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilFalse(long timeout) throws InterruptedException { - return this.waitUntilValueIs(false, timeout); - } - - /** - * Suspend the current thread until the boolean value changes - * to not the specified value, then change it back to the specified - * value and continue executing. If the boolean value does not - * change to false before the time-out, simply continue - * executing without changing the value. - * The time-out is specified in milliseconds. Return true - * if the value was set to the specified value; return false - * if a time-out occurred. If the boolean value is already - * not the specified value, set the value to the specified value - * immediately and return true. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToSetValue(boolean v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - boolean success = this.waitUntilValueIs_( ! v, timeout); - if (success) { - this.setChangedValue_(v); - } - return success; - } - } - - /** - * Suspend the current thread until the boolean value changes - * to false, then change it back to true and - * continue executing. If the boolean value does not change to - * false before the time-out, simply continue executing without - * changing the value. The time-out is specified in milliseconds. Return - * true if the value was set to true; - * return false if a time-out occurred. If the - * boolean value is already false, set the - * value to true immediately and return true. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToSetTrue(long timeout) throws InterruptedException { - return this.waitToSetValue(true, timeout); - } - - /** - * Suspend the current thread until the boolean value changes - * to true, then change it back to false and - * continue executing. If the boolean value does not change to - * true before the time-out, simply continue executing without - * changing the value. The time-out is specified in milliseconds. Return - * true if the value was set to false; - * return false if a time-out occurred. If the - * boolean value is already true, set the - * value to false immediately and return true. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToSetFalse(long timeout) throws InterruptedException { - return this.waitToSetValue(false, timeout); - } - - - // ********** synchronized behavior ********** - - /** - * If the current thread is not interrupted, execute the specified command - * with the mutex locked. This is useful for initializing the value from another - * thread. - */ - public void execute(Command command) throws InterruptedException { - if (Thread.interrupted()) { - throw new InterruptedException(); - } - synchronized (this.mutex) { - command.execute(); - } - } - - - // ********** standard methods ********** - - @Override - public SynchronizedBoolean clone() { - try { - synchronized (this.mutex) { - return (SynchronizedBoolean) super.clone(); - } - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public String toString() { - return '[' + String.valueOf(this.getValue()) + ']'; - } - - private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { - synchronized (this.mutex) { - s.defaultWriteObject(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedInt.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedInt.java deleted file mode 100644 index 999aa44aa8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedInt.java +++ /dev/null @@ -1,914 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -import org.eclipse.jpt.common.utility.Command; - -/** - * This class provides synchronized access to an int. - * It also provides protocol for suspending a thread until the - * value is set to a specified value, with optional time-outs. - * - * @see SimpleIntReference - */ -public class SynchronizedInt - implements IntReference, Cloneable, Serializable -{ - /** Backing int. */ - private int value; - - /** Object to synchronize on. */ - private final Object mutex; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Create a synchronized integer with the specified initial value - * and mutex. - */ - public SynchronizedInt(int value, Object mutex) { - super(); - this.value = value; - this.mutex = mutex; - } - - /** - * Create a synchronized integer with the specified initial value. - * The synchronized integer itself will be the mutex. - */ - public SynchronizedInt(int value) { - super(); - this.value = value; - this.mutex = this; - } - - /** - * Create a synchronized integer with an initial value of zero - * and the specified mutex. - */ - public SynchronizedInt(Object mutex) { - this(0, mutex); - } - - /** - * Create a synchronized object with an initial value of zero. - * The synchronized integer itself will be the mutex. - */ - public SynchronizedInt() { - this(0); - } - - - // ********** methods ********** - - public int getValue() { - synchronized (this.mutex) { - return this.value; - } - } - - public boolean equals(int v) { - synchronized (this.mutex) { - return this.value == v; - } - } - - public boolean notEqual(int v) { - synchronized (this.mutex) { - return this.value != v; - } - } - - public boolean isZero() { - synchronized (this.mutex) { - return this.value == 0; - } - } - - public boolean isNotZero() { - synchronized (this.mutex) { - return this.value != 0; - } - } - - public boolean isGreaterThan(int v) { - synchronized (this.mutex) { - return this.value > v; - } - } - - public boolean isGreaterThanOrEqual(int v) { - synchronized (this.mutex) { - return this.value >= v; - } - } - - public boolean isLessThan(int v) { - synchronized (this.mutex) { - return this.value < v; - } - } - - public boolean isLessThanOrEqual(int v) { - synchronized (this.mutex) { - return this.value <= v; - } - } - - public boolean isPositive() { - return this.isGreaterThan(0); - } - - public boolean isNotPositive() { - return this.isLessThanOrEqual(0); - } - - public boolean isNegative() { - return this.isLessThan(0); - } - - public boolean isNotNegative() { - return this.isGreaterThanOrEqual(0); - } - - public int abs() { - synchronized (this.mutex) { - return Math.abs(this.value); - } - } - - public int neg() { - synchronized (this.mutex) { - return -this.value; - } - } - - public int add(int v) { - synchronized (this.mutex) { - return this.value + v; - } - } - - public int subtract(int v) { - synchronized (this.mutex) { - return this.value - v; - } - } - - public int multiply(int v) { - synchronized (this.mutex) { - return this.value * v; - } - } - - public int divide(int v) { - synchronized (this.mutex) { - return this.value / v; - } - } - - public int remainder(int v) { - synchronized (this.mutex) { - return this.value % v; - } - } - - public int min(int v) { - synchronized (this.mutex) { - return Math.min(this.value, v); - } - } - - public int max(int v) { - synchronized (this.mutex) { - return Math.max(this.value, v); - } - } - - public double pow(int v) { - synchronized (this.mutex) { - return Math.pow(this.value, v); - } - } - - /** - * If the value changes, all waiting threads are notified. - */ - public int setValue(int value) { - synchronized (this.mutex) { - return this.setValue_(value); - } - } - - /** - * Pre-condition: synchronized - */ - private int setValue_(int v) { - int old = this.value; - return (old == v) ? old : this.setValue_(v, old); - } - - /** - * Pre-condition: synchronized and new value is different - */ - private int setChangedValue_(int v) { - return this.setValue_(v, this.value); - } - - /** - * Pre-condition: synchronized and new value is different - */ - private int setValue_(int v, int old) { - this.value = v; - this.mutex.notifyAll(); - return old; - } - - /** - * Set the value to zero. If the value changes, all waiting - * threads are notified. Return the previous value. - */ - public int setZero() { - return this.setValue(0); - } - - /** - * Increment the value by one. - * Return the new value. - */ - public int increment() { - synchronized (this.mutex) { - this.value++; - this.mutex.notifyAll(); - return this.value; - } - } - - /** - * Decrement the value by one. - * Return the new value. - */ - public int decrement() { - synchronized (this.mutex) { - this.value--; - this.mutex.notifyAll(); - return this.value; - } - } - - /** - * If the current value is the specified expected value, set it to the - * specified new value. Return the previous value. - */ - public int compareAndSwap(int expectedValue, int newValue) { - synchronized (this.mutex) { - return this.compareAndSwap_(expectedValue, newValue); - } - } - - /** - * Pre-condition: synchronized - */ - private int compareAndSwap_(int expectedValue, int newValue) { - return (this.value == expectedValue) ? this.setValue_(newValue) : this.value; - } - - /** - * Return the object the synchronized integer locks on while performing - * its operations. - */ - public Object getMutex() { - return this.mutex; - } - - - // ********** indefinite waits ********** - - /** - * Suspend the current thread until the value changes - * to the specified value. If the value is already the - * specified value, return immediately. - */ - public void waitUntilEqual(int v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilEqual_(v); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilEqual_(int v) throws InterruptedException { - while (this.value != v) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the value changes - * to something other than the specified value. If the - * value is already not the specified value, - * return immediately. - */ - public void waitUntilNotEqual(int v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilNotEqual_(v); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilNotEqual_(int v) throws InterruptedException { - while (this.value == v) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the value changes to zero. - * If the value is already zero, return immediately. - */ - public void waitUntilZero() throws InterruptedException { - this.waitUntilEqual(0); - } - - /** - * Suspend the current thread until the value changes - * to something other than zero. - * If the value is already not zero, - * return immediately. - */ - public void waitUntilNotZero() throws InterruptedException { - this.waitUntilNotEqual(0); - } - - /** - * Suspend the current thread until the value changes - * to a value greater than the specified value. If the value is already - * greater than the specified value, return immediately. - */ - public void waitUntilGreaterThan(int v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilGreaterThan_(v); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilGreaterThan_(int v) throws InterruptedException { - while (this.value <= v) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the value changes - * to a value greater than or equal to the specified value. If the value is already - * greater than or equal the specified value, return immediately. - */ - public void waitUntilGreaterThanOrEqual(int v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilGreaterThanOrEqual_(v); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilGreaterThanOrEqual_(int v) throws InterruptedException { - while (this.value < v) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the value changes - * to a value less than the specified value. If the value is already - * less than the specified value, return immediately. - */ - public void waitUntilLessThan(int v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilLessThan_(v); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilLessThan_(int v) throws InterruptedException { - while (this.value >= v) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the value changes - * to a value less than or equal to the specified value. If the value is already - * less than or equal the specified value, return immediately. - */ - public void waitUntilLessThanOrEqual(int v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilLessThanOrEqual_(v); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilLessThanOrEqual_(int v) throws InterruptedException { - while (this.value > v) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the value is positive. - * If the value is already positive, return immediately. - */ - public void waitUntilPositive() throws InterruptedException { - this.waitUntilGreaterThan(0); - } - - /** - * Suspend the current thread until the value is not positive - * (i.e. negative or zero). - * If the value is already not positive, - * return immediately. - */ - public void waitUntilNotPositive() throws InterruptedException { - this.waitUntilLessThanOrEqual(0); - } - - /** - * Suspend the current thread until the value is negative. - * If the value is already negative, return immediately. - */ - public void waitUntilNegative() throws InterruptedException { - this.waitUntilLessThan(0); - } - - /** - * Suspend the current thread until the value is not negative - * (i.e. zero or positive). - * If the value is already not negative, - * return immediately. - */ - public void waitUntilNotNegative() throws InterruptedException { - this.waitUntilGreaterThanOrEqual(0); - } - - /** - * Suspend the current thread until the value changes to - * something other than the specified value, then change - * it back to the specified value and continue executing. - * If the value is already not the specified value, set - * the value immediately. - * Return the previous value. - */ - public int waitToSetValue(int v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilNotEqual_(v); - return this.setChangedValue_(v); - } - } - - /** - * Suspend the current thread until the value changes to - * something other than zero, then change it - * back to zero and continue executing. - * If the value is already not zero, - * set the value to zero immediately. - * Return the previous value. - */ - public int waitToSetZero() throws InterruptedException { - return this.waitToSetValue(0); - } - - /** - * Suspend the current thread until the value changes to - * the specified expected value, then change it - * to the specified new value and continue executing. - * If the value is already the specified expected value, - * set the value to the specified new value immediately. - * Return the previous value. - */ - public int waitToSwap(int expectedValue, int newValue) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilEqual_(expectedValue); - return this.setValue_(newValue); - } - } - - - // ********** timed waits ********** - - /** - * Suspend the current thread until the value changes - * to the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was achieved; return false - * if a time-out occurred. - * If the value is already the specified value, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilEqual(int v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilEqual_(v, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilEqual_(int v, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilEqual_(v); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while ((this.value != v) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return (this.value == v); - } - - /** - * Suspend the current thread until the value changes to something - * other than the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was removed; return false if a - * time-out occurred. If the value is already not the specified - * value, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilNotEqual(int v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilNotEqual_(v, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilNotEqual_(int v, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilNotEqual_(v); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while ((this.value == v) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return (this.value != v); - } - - /** - * Suspend the current thread until the value changes - * to zero or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the value is now zero; return false - * if a time-out occurred. If the value is already zero, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilZero(long timeout) throws InterruptedException { - return this.waitUntilEqual(0, timeout); - } - - /** - * Suspend the current thread until the value changes - * to something other than zero or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the value is now not zero; return false - * if a time-out occurred. If the value is already not - * zero, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilNotZero(long timeout) throws InterruptedException { - return this.waitUntilNotEqual(0, timeout); - } - - /** - * Suspend the current thread until the value changes to a value greater - * than the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was achieved; return false - * if a time-out occurred. - * If the value is already greater than the specified value, return immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilGreaterThan(int v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilGreaterThan_(v, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilGreaterThan_(int v, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilGreaterThan_(v); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while ((this.value <= v) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return (this.value > v); - } - - /** - * Suspend the current thread until the value changes to a value greater - * than or equal to the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was achieved; return false - * if a time-out occurred. - * If the value is already greater than or equal to the specified value, - * return immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilGreaterThanOrEqual(int v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilGreaterThanOrEqual_(v, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilGreaterThanOrEqual_(int v, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilGreaterThanOrEqual_(v); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while ((this.value < v) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return (this.value >= v); - } - - /** - * Suspend the current thread until the value changes to a value less - * than the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was achieved; return false - * if a time-out occurred. - * If the value is already less than the specified value, return immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilLessThan(int v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilLessThan_(v, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilLessThan_(int v, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilLessThan_(v); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while ((this.value >= v) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return (this.value < v); - } - - /** - * Suspend the current thread until the value changes to a value less - * than or equal to the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was achieved; return false - * if a time-out occurred. - * If the value is already less than or equal to the specified value, - * return immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilLessThanOrEqual(int v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilLessThanOrEqual_(v, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilLessThanOrEqual_(int v, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilLessThanOrEqual_(v); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while ((this.value > v) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return (this.value <= v); - } - - /** - * Suspend the current thread until the value is positive - * or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the value is now positive; return false - * if a time-out occurred. If the value is already positive, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilPositive(long timeout) throws InterruptedException { - return this.waitUntilGreaterThan(0, timeout); - } - - /** - * Suspend the current thread until the value is not positive - * or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the value is now not positive; return false - * if a time-out occurred. If the value is already not positive, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilNotPositive(long timeout) throws InterruptedException { - return this.waitUntilLessThanOrEqual(0, timeout); - } - - /** - * Suspend the current thread until the value is negative - * or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the value is now negative; return false - * if a time-out occurred. If the value is already negative, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilNegative(long timeout) throws InterruptedException { - return this.waitUntilLessThan(0, timeout); - } - - /** - * Suspend the current thread until the value is not negative - * or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the value is now not negative; return false - * if a time-out occurred. If the value is already not negative, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilNotNegative(long timeout) throws InterruptedException { - return this.waitUntilGreaterThanOrEqual(0, timeout); - } - - /** - * Suspend the current thread until the value changes to - * something other than the specified value, then change - * it back to the specified value and continue executing. - * If the value does not change to something other than the - * specified value before the time-out, simply continue executing - * without changing the value. - * The time-out is specified in milliseconds. Return true - * if the value was set to the specified value; return false - * if a time-out occurred. - * If the value is already something other than the specified value, set - * the value immediately and return true. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToSetValue(int v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - boolean success = this.waitUntilNotEqual_(v, timeout); - if (success) { - this.setChangedValue_(v); - } - return success; - } - } - - /** - * Suspend the current thread until the value changes to something - * other than zero, then change it back to zero - * and continue executing. If the value does not change to something - * other than zero before the time-out, simply continue - * executing without changing the value. - * The time-out is specified in milliseconds. Return true - * if the value was set to zero; return false - * if a time-out occurred. - * If the value is already something other than zero, set - * the value to zero immediately and return true. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToSetZero(long timeout) throws InterruptedException { - return this.waitToSetValue(0, timeout); - } - - /** - * Suspend the current thread until the value changes to - * the specified expected value, then change it - * to the specified new value and continue executing. - * If the value does not change to the specified expected value - * before the time-out, simply continue executing without changing - * the value. - * The time-out is specified in milliseconds. Return true - * if the value was set to the specified new value; return - * false if a time-out occurred. - * If the value is already the specified expected value, - * set the value to the specified new value immediately. - * Return the previous value. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToSwap(int expectedValue, int newValue, long timeout) throws InterruptedException { - synchronized (this.mutex) { - boolean success = this.waitUntilEqual_(expectedValue, timeout); - if (success) { - this.setValue_(newValue); - } - return success; - } - } - - - // ********** synchronized behavior ********** - - /** - * If current thread is not interrupted, execute the specified command - * with the mutex locked. This is useful for initializing the value from another - * thread. - */ - public void execute(Command command) throws InterruptedException { - if (Thread.interrupted()) { - throw new InterruptedException(); - } - synchronized (this.mutex) { - command.execute(); - } - } - - - // ********** Comparable implementation ********** - - public int compareTo(ReadOnlyIntReference ref) { - int thisValue = this.getValue(); - int otherValue = ref.getValue(); - return (thisValue < otherValue) ? -1 : ((thisValue == otherValue) ? 0 : 1); - } - - - // ********** standard methods ********** - - @Override - public SynchronizedInt clone() { - try { - synchronized (this.mutex) { - return (SynchronizedInt) super.clone(); - } - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public String toString() { - return '[' + String.valueOf(this.getValue()) + ']'; - } - - private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { - synchronized (this.mutex) { - s.defaultWriteObject(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedObject.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedObject.java deleted file mode 100644 index f3f2048e01..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedObject.java +++ /dev/null @@ -1,472 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.ObjectReference; - -/** - * This class provides synchronized access to an object of type V. - * It also provides protocol for suspending a thread until the - * value is set to null or a non-null value, - * with optional time-outs. - * - * @parm V the type of the synchronized object's value - * @see SimpleObjectReference - */ -public class SynchronizedObject - implements ObjectReference, Cloneable, Serializable -{ - /** Backing value. */ - private V value; - - /** Object to synchronize on. */ - private final Object mutex; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Create a synchronized object with the specified initial value - * and mutex. - */ - public SynchronizedObject(V value, Object mutex) { - super(); - this.value = value; - this.mutex = mutex; - } - - /** - * Create a synchronized object with the specified initial value. - * The synchronized object itself will be the mutex. - */ - public SynchronizedObject(V value) { - super(); - this.value = value; - this.mutex = this; - } - - /** - * Create a synchronized object with an initial value of null. - * The synchronized object itself will be the mutex. - */ - public SynchronizedObject() { - this(null); - } - - - // ********** accessors ********** - - public V getValue() { - synchronized (this.mutex) { - return this.value; - } - } - - public boolean valueEquals(Object object) { - return Tools.valuesAreEqual(this.getValue(), object); - } - - public boolean valueNotEqual(Object object) { - return Tools.valuesAreDifferent(this.getValue(), object); - } - - public boolean isNull() { - synchronized (this.mutex) { - return this.value == null; - } - } - - public boolean isNotNull() { - synchronized (this.mutex) { - return this.value != null; - } - } - - /** - * Set the value. If the value changes, all waiting - * threads are notified. Return the previous value. - */ - public V setValue(V value) { - synchronized (this.mutex) { - return this.setValue_(value); - } - } - - /** - * Pre-condition: synchronized - */ - private V setValue_(V v) { - V old = this.value; - return Tools.valuesAreEqual(old, v) ? old : this.setValue_(v, old); - } - - /** - * Pre-condition: synchronized and new value is different - */ - private V setChangedValue_(V v) { - return this.setValue_(v, this.value); - } - - /** - * Pre-condition: synchronized and new value is different - */ - private V setValue_(V v, V old) { - this.value = v; - this.mutex.notifyAll(); - return old; - } - - /** - * Set the value to null. If the value changes, all waiting - * threads are notified. Return the previous value. - */ - public V setNull() { - return this.setValue(null); - } - - /** - * If the current value is the specified expected value, set it to the - * specified new value. Return the previous value. - */ - public V compareAndSwap(V expectedValue, V newValue) { - synchronized (this.mutex) { - return this.compareAndSwap_(expectedValue, newValue); - } - } - - /** - * Pre-condition: synchronized - */ - private V compareAndSwap_(V expectedValue, V newValue) { - return Tools.valuesAreEqual(this.value, expectedValue) ? this.setValue_(newValue) : this.value; - } - - /** - * Return the object the synchronized object locks on while performing - * its operations. - */ - public Object getMutex() { - return this.mutex; - } - - - // ********** indefinite waits ********** - - /** - * Suspend the current thread until the value changes - * to the specified value. If the value is already the - * specified value, return immediately. - */ - public void waitUntilValueIs(V v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilValueIs_(v); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilValueIs_(V v) throws InterruptedException { - while (Tools.valuesAreDifferent(this.value, v)) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the value changes - * to something other than the specified value. If the - * value is already not the specified value, - * return immediately. - */ - public void waitUntilValueIsNot(V v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilValueIsNot_(v); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilValueIsNot_(V v) throws InterruptedException { - while (Tools.valuesAreEqual(this.value, v)) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the value changes to null. - * If the value is already null, return immediately. - */ - public void waitUntilNull() throws InterruptedException { - this.waitUntilValueIs(null); - } - - /** - * Suspend the current thread until the value changes - * to something other than null. - * If the value is already not null, - * return immediately. - */ - public void waitUntilNotNull() throws InterruptedException { - this.waitUntilValueIsNot(null); - } - - /** - * Suspend the current thread until the value changes to - * something other than the specified value, then change - * it back to the specified value and continue executing. - * If the value is already not the specified value, set - * the value immediately. - * Return the previous value. - */ - public V waitToSetValue(V v) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilValueIsNot_(v); - return this.setChangedValue_(v); - } - } - - /** - * Suspend the current thread until the value changes to - * something other than null, then change it - * back to null and continue executing. - * If the value is already not null, - * set the value to null immediately. - * Return the previous value. - */ - public V waitToSetNull() throws InterruptedException { - return this.waitToSetValue(null); - } - - /** - * Suspend the current thread until the value changes to - * the specified expected value, then change it - * to the specified new value and continue executing. - * If the value is already the specified expected value, - * set the value to the specified new value immediately. - * Return the previous value. - */ - public V waitToSwap(V expectedValue, V newValue) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilValueIs_(expectedValue); - return this.setValue_(newValue); - } - } - - - // ********** timed waits ********** - - /** - * Suspend the current thread until the value changes - * to the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was achieved; return false - * if a time-out occurred. - * If the value is already the specified value, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilValueIs(V v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilValueIs_(v, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilValueIs_(V v, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilValueIs_(v); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while (Tools.valuesAreDifferent(this.value, v) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return Tools.valuesAreEqual(this.value, v); - } - - /** - * Suspend the current thread until the value changes to something - * other than the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was removed; return false if a - * time-out occurred. If the value is already not the specified - * value, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilValueIsNot(V v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilValueIsNot_(v, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilValueIsNot_(V v, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilValueIsNot_(v); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while (Tools.valuesAreEqual(this.value, v) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return Tools.valuesAreDifferent(this.value, v); - } - - /** - * Suspend the current thread until the value changes - * to null or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was achieved; return false - * if a time-out occurred. If the value is already null, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilNull(long timeout) throws InterruptedException { - return this.waitUntilValueIs(null, timeout); - } - - /** - * Suspend the current thread until the value changes - * to something other than null or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true - * if the specified value was achieved; return false - * if a time-out occurred. If the value is already not - * null, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilNotNull(long timeout) throws InterruptedException { - return this.waitUntilValueIsNot(null, timeout); - } - - /** - * Suspend the current thread until the value changes to - * something other than the specified value, then change - * it back to the specified value and continue executing. - * If the value does not change to something other than the - * specified value before the time-out, simply continue executing - * without changing the value. - * The time-out is specified in milliseconds. Return true - * if the value was set to the specified value; return false - * if a time-out occurred. - * If the value is already something other than the specified value, set - * the value immediately and return true. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToSetValue(V v, long timeout) throws InterruptedException { - synchronized (this.mutex) { - boolean success = this.waitUntilValueIsNot_(v, timeout); - if (success) { - this.setChangedValue_(v); - } - return success; - } - } - - /** - * Suspend the current thread until the value changes to something - * other than null, then change it back to null - * and continue executing. If the value does not change to something - * other than null before the time-out, simply continue - * executing without changing the value. - * The time-out is specified in milliseconds. Return true - * if the value was set to null; return false - * if a time-out occurred. - * If the value is already something other than null, set - * the value to null immediately and return true. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToSetNull(long timeout) throws InterruptedException { - return this.waitToSetValue(null, timeout); - } - - /** - * Suspend the current thread until the value changes to - * the specified expected value, then change it - * to the specified new value and continue executing. - * If the value does not change to the specified expected value - * before the time-out, simply continue executing without changing - * the value. - * The time-out is specified in milliseconds. Return true - * if the value was set to the specified new value; return - * false if a time-out occurred. - * If the value is already the specified expected value, - * set the value to the specified new value immediately. - * Return the previous value. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToSwap(V expectedValue, V newValue, long timeout) throws InterruptedException { - synchronized (this.mutex) { - boolean success = this.waitUntilValueIs_(expectedValue, timeout); - if (success) { - this.setValue_(newValue); - } - return success; - } - } - - - // ********** synchronized behavior ********** - - /** - * If current thread is not interrupted, execute the specified command - * with the mutex locked. This is useful for initializing the value from another - * thread. - */ - public void execute(Command command) throws InterruptedException { - if (Thread.interrupted()) { - throw new InterruptedException(); - } - synchronized (this.mutex) { - command.execute(); - } - } - - - // ********** standard methods ********** - - @Override - public SynchronizedObject clone() { - try { - synchronized (this.mutex) { - @SuppressWarnings("unchecked") - SynchronizedObject clone = (SynchronizedObject) super.clone(); - return clone; - } - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - @Override - public String toString() { - return '[' + String.valueOf(this.getValue()) + ']'; - } - - private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { - synchronized (this.mutex) { - s.defaultWriteObject(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedQueue.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedQueue.java deleted file mode 100644 index 5abb326021..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedQueue.java +++ /dev/null @@ -1,348 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.Command; - -/** - * Thread-safe implementation of the {@link Queue} interface. - * This also provides protocol for suspending a thread until the - * queue is empty or not empty, with optional time-outs. - */ -public class SynchronizedQueue - implements Queue, Serializable -{ - /** Backing queue. */ - private final Queue queue; - - /** Object to synchronize on. */ - private final Object mutex; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a synchronized queue that wraps the - * specified queue and locks on the specified mutex. - */ - public SynchronizedQueue(Queue queue, Object mutex) { - super(); - if (queue == null) { - throw new NullPointerException(); - } - this.queue = queue; - this.mutex = mutex; - } - - /** - * Construct a synchronized queue that wraps the - * specified queue and locks on itself. - */ - public SynchronizedQueue(Queue queue) { - super(); - if (queue == null) { - throw new NullPointerException(); - } - this.queue = queue; - this.mutex = this; - } - - /** - * Construct an empty synchronized queue that locks on the specified mutex. - */ - public SynchronizedQueue(Object mutex) { - this(new SimpleQueue(), mutex); - } - - /** - * Construct an empty synchronized queue that locks on itself. - */ - public SynchronizedQueue() { - this(new SimpleQueue()); - } - - - // ********** Queue implementation ********** - - public void enqueue(E element) { - synchronized (this.mutex) { - this.enqueue_(element); - } - } - - /** - * Pre-condition: synchronized - */ - private void enqueue_(E element) { - this.queue.enqueue(element); - this.mutex.notifyAll(); - } - - public E dequeue() { - synchronized (this.mutex) { - return this.dequeue_(); - } - } - - /** - * Pre-condition: synchronized - */ - private E dequeue_() { - E element = this.queue.dequeue(); - this.mutex.notifyAll(); - return element; - } - - public E peek() { - synchronized (this.mutex) { - return this.queue.peek(); - } - } - - public boolean isEmpty() { - synchronized (this.mutex) { - return this.queue.isEmpty(); - } - } - - - // ********** indefinite waits ********** - - /** - * Suspend the current thread until the queue's empty status changes - * to the specified value. - */ - public void waitUntilEmptyIs(boolean empty) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilEmptyIs_(empty); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilEmptyIs_(boolean empty) throws InterruptedException { - while (this.queue.isEmpty() != empty) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the queue is empty. - */ - public void waitUntilEmpty() throws InterruptedException { - this.waitUntilEmptyIs(true); - } - - /** - * Suspend the current thread until the queue has something on it. - */ - public void waitUntilNotEmpty() throws InterruptedException { - this.waitUntilEmptyIs(false); - } - - /** - * Suspend the current thread until the queue is empty, - * then "enqueue" the specified item to the tail of the queue - * and continue executing. - */ - public void waitToEnqueue(E element) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilEmptyIs_(true); - this.enqueue_(element); - } - } - - /** - * Suspend the current thread until the queue has something on it, - * then "dequeue" an item from the head of the queue and return it. - */ - public Object waitToDequeue() throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilEmptyIs_(false); - return this.dequeue_(); - } - } - - - // ********** timed waits ********** - - /** - * Suspend the current thread until the queue's empty status changes - * to the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if the specified - * empty status was achieved; return false if a time-out occurred. - * If the queue's empty status is already the specified value, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilEmptyIs(boolean empty, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilEmptyIs_(empty, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilEmptyIs_(boolean empty, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilEmptyIs_(empty); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while ((this.queue.isEmpty() != empty) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return (this.queue.isEmpty() == empty); - } - - /** - * Suspend the current thread until the queue is empty - * or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if - * the queue is empty; return false if a time-out occurred. - * If the queue is already empty, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilEmpty(long timeout) throws InterruptedException { - return this.waitUntilEmptyIs(true, timeout); - } - - /** - * Suspend the current thread until the queue has something on it. - * or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if - * the queue is not empty; return false if a time-out occurred. - * If the queue already has something on it, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilNotEmpty(long timeout) throws InterruptedException { - return this.waitUntilEmptyIs(false, timeout); - } - - /** - * Suspend the current thread until the queue is empty, - * then "enqueue" the specified item to the tail of the queue - * and continue executing. If the queue is not emptied out - * before the time-out, simply continue executing without - * "enqueueing" the item. - * The time-out is specified in milliseconds. Return true if the - * item was enqueued; return false if a time-out occurred. - * If the queue is already empty, "enqueue" the specified item and - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToEnqueue(E element, long timeout) throws InterruptedException { - synchronized (this.mutex) { - boolean success = this.waitUntilEmptyIs_(true, timeout); - if (success) { - this.enqueue_(element); - } - return success; - } - } - - /** - * Suspend the current thread until the queue has something on it, - * then "dequeue" an item from the head of the queue and return it. - * If the queue is empty and nothing is "enqueued" on to it before the - * time-out, throw a no such element exception. - * The time-out is specified in milliseconds. - * If the queue is not empty, "dequeue" an item and - * return it immediately. - * If the time-out is zero, wait indefinitely. - */ - public Object waitToDequeue(long timeout) throws InterruptedException { - synchronized (this.mutex) { - boolean success = this.waitUntilEmptyIs_(false, timeout); - if (success) { - return this.dequeue_(); - } - throw new NoSuchElementException(); - } - } - - - // ********** synchronized behavior ********** - - /** - * If the current thread is not interrupted, execute the specified command - * with the mutex locked. This is useful for initializing the queue in another - * thread. - */ - public void execute(Command command) throws InterruptedException { - if (Thread.interrupted()) { - throw new InterruptedException(); - } - synchronized (this.mutex) { - command.execute(); - } - } - - - // ********** additional public protocol ********** - - /** - * "Drain" all the current items from the queue into specified queue. - */ - public void drainTo(Queue q) { - synchronized (this.mutex) { - this.drainTo_(q); - } - } - - /** - * Pre-condition: synchronized - */ - private void drainTo_(Queue q) { - boolean changed = false; - while ( ! this.queue.isEmpty()) { - q.enqueue(this.queue.dequeue()); - changed = true; - } - if (changed) { - this.mutex.notifyAll(); - } - } - - /** - * Return the object the queue locks on while performing - * its operations. - */ - public Object getMutex() { - return this.mutex; - } - - - // ********** standard methods ********** - - @Override - public String toString() { - synchronized (this.mutex) { - return '[' + this.queue.toString() + ']'; - } - } - - private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { - synchronized (this.mutex) { - s.defaultWriteObject(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedStack.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedStack.java deleted file mode 100644 index 17033fc574..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SynchronizedStack.java +++ /dev/null @@ -1,325 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; -import java.util.EmptyStackException; - -import org.eclipse.jpt.common.utility.Command; - -/** - * Thread-safe implementation of the {@link Stack} interface. - * This also provides protocol for suspending a thread until the - * stack is empty or not empty, with optional time-outs. - */ -public class SynchronizedStack - implements Stack, Serializable -{ - /** Backing stack. */ - private final Stack stack; - - /** Object to synchronize on. */ - private final Object mutex; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a synchronized stack that wraps the - * specified stack and locks on the specified mutex. - */ - public SynchronizedStack(Stack stack, Object mutex) { - super(); - if (stack == null) { - throw new NullPointerException(); - } - this.stack = stack; - this.mutex = mutex; - } - - /** - * Construct a synchronized stack that wraps the - * specified stack and locks on itself. - */ - public SynchronizedStack(Stack stack) { - super(); - if (stack == null) { - throw new NullPointerException(); - } - this.stack = stack; - this.mutex = this; - } - - /** - * Construct an empty synchronized stack that locks on the specified mutex. - */ - public SynchronizedStack(Object mutex) { - this(new SimpleStack(), mutex); - } - - /** - * Construct an empty synchronized stack that locks on itself. - */ - public SynchronizedStack() { - this(new SimpleStack()); - } - - - // ********** Stack implementation ********** - - public void push(E element) { - synchronized (this.mutex) { - this.push_(element); - } - } - - /** - * Pre-condition: synchronized - */ - private void push_(E element) { - this.stack.push(element); - this.mutex.notifyAll(); - } - - public E pop() { - synchronized (this.mutex) { - return this.pop_(); - } - } - - /** - * Pre-condition: synchronized - */ - private E pop_() { - E o = this.stack.pop(); - this.mutex.notifyAll(); - return o; - } - - public E peek() { - synchronized (this.mutex) { - return this.stack.peek(); - } - } - - public boolean isEmpty() { - synchronized (this.mutex) { - return this.stack.isEmpty(); - } - } - - - // ********** indefinite waits ********** - - /** - * Suspend the current thread until the stack's empty status changes - * to the specified value. - */ - public void waitUntilEmptyIs(boolean empty) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilEmptyIs_(empty); - } - } - - /** - * Pre-condition: synchronized - */ - private void waitUntilEmptyIs_(boolean empty) throws InterruptedException { - while (this.stack.isEmpty() != empty) { - this.mutex.wait(); - } - } - - /** - * Suspend the current thread until the stack is empty. - */ - public void waitUntilEmpty() throws InterruptedException { - this.waitUntilEmptyIs(true); - } - - /** - * Suspend the current thread until the stack has something on it. - */ - public void waitUntilNotEmpty() throws InterruptedException { - this.waitUntilEmptyIs(false); - } - - /** - * Suspend the current thread until the stack is empty, - * then "push" the specified item on to the top of the stack - * and continue executing. - */ - public void waitToPush(E element) throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilEmptyIs_(true); - this.push_(element); - } - } - - /** - * Suspend the current thread until the stack has something on it, - * then "pop" an item from the top of the stack and return it. - */ - public Object waitToPop() throws InterruptedException { - synchronized (this.mutex) { - this.waitUntilEmptyIs_(false); - return this.pop_(); - } - } - - - // ********** timed waits ********** - - /** - * Suspend the current thread until the stack's empty status changes - * to the specified value or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if the specified - * empty status was achieved; return false if a time-out occurred. - * If the stack's empty status is already the specified value, - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilEmptyIs(boolean empty, long timeout) throws InterruptedException { - synchronized (this.mutex) { - return this.waitUntilEmptyIs_(empty, timeout); - } - } - - /** - * Pre-condition: synchronized - */ - private boolean waitUntilEmptyIs_(boolean empty, long timeout) throws InterruptedException { - if (timeout == 0L) { - this.waitUntilEmptyIs_(empty); // wait indefinitely until notified - return true; // if it ever comes back, the condition was met - } - - long stop = System.currentTimeMillis() + timeout; - long remaining = timeout; - while ((this.stack.isEmpty() != empty) && (remaining > 0L)) { - this.mutex.wait(remaining); - remaining = stop - System.currentTimeMillis(); - } - return (this.stack.isEmpty() == empty); - } - - /** - * Suspend the current thread until the stack is empty - * or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if - * the stack is empty; return false if a time-out occurred. - * If the stack is already empty, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilEmpty(long timeout) throws InterruptedException { - return this.waitUntilEmptyIs(true, timeout); - } - - /** - * Suspend the current thread until the stack has something on it. - * or the specified time-out occurs. - * The time-out is specified in milliseconds. Return true if - * the stack is not empty; return false if a time-out occurred. - * If the stack already has something on it, return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitUntilNotEmpty(long timeout) throws InterruptedException { - return this.waitUntilEmptyIs(false, timeout); - } - - /** - * Suspend the current thread until the stack is empty, - * then "push" the specified item on to the top of the stack - * and continue executing. If the stack is not emptied out - * before the time-out, simply continue executing without - * "pushing" the item. - * The time-out is specified in milliseconds. Return true if the - * item was pushed; return false if a time-out occurred. - * If the stack is already empty, "push" the specified item and - * return true immediately. - * If the time-out is zero, wait indefinitely. - */ - public boolean waitToPush(E element, long timeout) throws InterruptedException { - synchronized (this.mutex) { - boolean success = this.waitUntilEmptyIs_(true, timeout); - if (success) { - this.push_(element); - } - return success; - } - } - - /** - * Suspend the current thread until the stack has something on it, - * then "pop" an item from the top of the stack and return it. - * If the stack is empty and nothing is "pushed" on to it before the - * time-out, throw an empty stack exception. - * The time-out is specified in milliseconds. - * If the stack is not empty, "pop" an item and - * return it immediately. - * If the time-out is zero, wait indefinitely. - */ - public Object waitToPop(long timeout) throws InterruptedException { - synchronized (this.mutex) { - boolean success = this.waitUntilEmptyIs_(false, timeout); - if (success) { - return this.pop_(); - } - throw new EmptyStackException(); - } - } - - - // ********** synchronized behavior ********** - - /** - * If the current thread is not interrupted, execute the specified command - * with the mutex locked. This is useful for initializing the stack in another - * thread. - */ - public void execute(Command command) throws InterruptedException { - if (Thread.interrupted()) { - throw new InterruptedException(); - } - synchronized (this.mutex) { - command.execute(); - } - } - - - // ********** additional public protocol ********** - - /** - * Return the object the stack locks on while performing - * its operations. - */ - public Object getMutex() { - return this.mutex; - } - - - // ********** standard methods ********** - - @Override - public String toString() { - synchronized (this.mutex) { - return '[' + this.stack.toString() + ']'; - } - } - - private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { - synchronized (this.mutex) { - s.defaultWriteObject(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommand.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommand.java deleted file mode 100644 index 02168fc1b6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommand.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import org.eclipse.jpt.common.utility.Command; - -/** - * This implementation of the Command interface allows the client to - * specify a different Command for each thread. - */ -public class ThreadLocalCommand implements Command { - protected final ThreadLocal threadLocal; - protected final Command defaultCommand; - - /** - * The default command does nothing. - */ - public ThreadLocalCommand() { - this(Command.Null.instance()); - } - - public ThreadLocalCommand(Command defaultCommand) { - super(); - this.defaultCommand = defaultCommand; - this.threadLocal = this.buildThreadLocal(); - } - - protected ThreadLocal buildThreadLocal() { - return new ThreadLocal(); - } - - public void execute() { - this.get().execute(); - } - - protected Command get() { - Command command = this.threadLocal.get(); - return (command != null) ? command : this.defaultCommand; - } - - /** - * Set the current thread's command to the specified value. - */ - public void set(Command command) { - this.threadLocal.set(command); - } - - /** - * Return the string representation of the current thread's command. - */ - @Override - public String toString() { - return this.get().toString(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommandExecutor.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommandExecutor.java deleted file mode 100644 index e8e5064614..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/ThreadLocalCommandExecutor.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.CommandExecutor; - -/** - * This implementation of the CommandExecutor interface allows the client to - * specify a different Command Executor for each thread. - */ -public class ThreadLocalCommandExecutor implements CommandExecutor { - protected final ThreadLocal threadLocal; - protected final CommandExecutor defaultCommandExecutor; - - /** - * The default command executor simply executes the command directly. - */ - public ThreadLocalCommandExecutor() { - this(CommandExecutor.Default.instance()); - } - - public ThreadLocalCommandExecutor(CommandExecutor defaultCommandExecutor) { - super(); - this.defaultCommandExecutor = defaultCommandExecutor; - this.threadLocal = this.buildThreadLocal(); - } - - protected ThreadLocal buildThreadLocal() { - return new ThreadLocal(); - } - - public void execute(Command command) { - this.getThreadLocalCommandExecutor().execute(command); - } - - protected CommandExecutor getThreadLocalCommandExecutor() { - CommandExecutor ce = this.threadLocal.get(); - return (ce != null) ? ce : this.defaultCommandExecutor; - } - - /** - * Set the current thread's command executor to the specified value. - */ - public void set(CommandExecutor commandExecutor) { - this.threadLocal.set(commandExecutor); - } - - /** - * Return the string representation of the current thread's command - * executor. - */ - @Override - public String toString() { - return this.getThreadLocalCommandExecutor().toString(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Tools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Tools.java deleted file mode 100644 index b4a4f03307..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Tools.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -/** - * Various utility methods. - */ -@SuppressWarnings("nls") -public final class Tools { - - // ********** object comparison ********** - - /** - * Return whether the specified values are equal, with the appropriate - * null checks. - */ - public static boolean valuesAreEqual(Object value1, Object value2) { - return (value1 == null) ? - (value2 == null) : - ((value2 != null) && value1.equals(value2)); - } - - /** - * Return whether the specified values are different, with the appropriate - * null checks. - */ - public static boolean valuesAreDifferent(Object value1, Object value2) { - return (value1 == null) ? - (value2 != null) : - ((value2 == null) || ! value1.equals(value2)); - } - - - // ********** System properties ********** - - /** - * Return whether the current JVM is Sun's (or Oracle's). - */ - public static boolean jvmIsSun() { - return jvmIs("Sun") || jvmIs("Oracle"); - } - - /** - * Return whether the current JVM is IBM's. - */ - public static boolean jvmIsIBM() { - return jvmIs("IBM"); - } - - private static boolean jvmIs(String jvmVendorName) { - return System.getProperty("java.vendor").startsWith(jvmVendorName); - } - - /** - * Return whether the current operating system is Microsoft Windows. - */ - public static boolean osIsWindows() { - return osIs("Windows"); - } - - /** - * Return whether the current operating system is Linux. - */ - public static boolean osIsLinux() { - return osIs("Linux"); - } - - /** - * Return whether the current operating system is Mac OS X. - */ - public static boolean osIsMac() { - return osIs("Mac"); - } - - private static boolean osIs(String osName) { - return System.getProperty("os.name").indexOf(osName) != -1; - } - - - // ********** constructor ********** - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private Tools() { - super(); - throw new UnsupportedOperationException(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Transformer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Transformer.java deleted file mode 100644 index d95534e737..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/Transformer.java +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.Serializable; - -/** - * Used by various "pluggable" classes to transform objects. - * Transform an object of type T1 to an object of type - * T2. - * - * @param the type of the object passed to the transformer - * @param the type of the object returned by the transformer - */ -public interface Transformer { - - /** - * Return the transformed object. - * The semantics of "transform" is determined by the - * contract between the client and the server. - */ - T2 transform(T1 o); - - - /** - * A "null" transformer will perform no transformation at all; - * it will simply return the object "untransformed". - */ - final class Null implements Transformer, Serializable { - @SuppressWarnings("rawtypes") - public static final Transformer INSTANCE = new Null(); - @SuppressWarnings("unchecked") - public static Transformer instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - // simply return the object, unchanged - @SuppressWarnings("unchecked") - public S2 transform(S1 o) { - return (S2) o; - } - @Override - public String toString() { - return "Transformer.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - /** - * A "disabled" transformer will throw an exception if - * {@link #transform(Object)} is called. This is useful in situations - * where a transformer is optional and the default transformer should - * not be used. - */ - final class Disabled implements Transformer, Serializable { - @SuppressWarnings("rawtypes") - public static final Transformer INSTANCE = new Disabled(); - @SuppressWarnings("unchecked") - public static Transformer instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public S2 transform(S1 o) { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "Transformer.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/XMLStringEncoder.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/XMLStringEncoder.java deleted file mode 100644 index baf7d30684..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/XMLStringEncoder.java +++ /dev/null @@ -1,182 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal; - -import java.io.IOException; -import java.io.Reader; -import java.io.StringReader; - -/** - * This encoder will replace any of a specified set of characters with an XML - * "character reference": '/' => "/" - */ -public final class XMLStringEncoder { - - /** The set of characters to be converted into XML character references. */ - private final char[] chars; - - /** Cache the value of the highest character in the set above. */ - private final char maxChar; - - - // ********** constructors/initialization ********** - - /** - * Construct an encoder that converts the specified set of characters - * into XML character references. - */ - public XMLStringEncoder(char[] chars) { - super(); - if (chars == null) { - throw new NullPointerException(); - } - // the ampersand must be included since it is the escape character - if (ArrayTools.contains(chars, '&')) { - this.chars = chars; - } else { - this.chars = ArrayTools.add(chars, '&'); - } - this.maxChar = this.calculateMaxInvalidFileNameChar(); - } - - /** - * Calculate the maximum value of the set of characters to be converted - * into XML character references. This will be used to short-circuit the - * search for a character in the set. - * @see #charIsToBeEncoded(char) - */ - private char calculateMaxInvalidFileNameChar() { - char[] localChars = this.chars; - char max = 0; - for (int i = localChars.length; i-- > 0; ) { - char c = localChars[i]; - if (max < c) { - max = c; - } - } - return max; - } - - - // ********** API ********** - - /** - * Return the specified string with any characters in the set - * replaced with XML character references. - */ - public String encode(String s) { - int len = s.length(); - // allow for a few encoded characters - StringBuilder sb = new StringBuilder(len + 20); - for (int i = 0; i < len; i++) { - this.appendCharacterTo(s.charAt(i), sb); - } - return sb.toString(); - } - - /** - * Return the specified string with any XML character references - * replaced by the characters themselves. - */ - public String decode(String s) { - StringBuilder sb = new StringBuilder(s.length()); - StringBuilder temp = new StringBuilder(); // performance tweak - this.decodeTo(new StringReader(s), sb, temp); - return sb.toString(); - } - - - // ********** internal methods ********** - - /** - * Append the specified character to the string buffer, - * converting it to an XML character reference if necessary. - */ - private void appendCharacterTo(char c, StringBuilder sb) { - if (this.charIsToBeEncoded(c)) { - this.appendCharacterReferenceTo(c, sb); - } else { - sb.append(c); - } - } - - /** - * Return whether the specified character is one of the characters - * to be converted to XML character references. - */ - private boolean charIsToBeEncoded(char c) { - return (c <= this.maxChar) && ArrayTools.contains(this.chars, c); - } - - /** - * Append the specified character's XML character reference to the - * specified string buffer (e.g. '/' => "/"). - */ - private void appendCharacterReferenceTo(char c, StringBuilder sb) { - sb.append("&#x"); //$NON-NLS-1$ - sb.append(Integer.toString(c, 16)); - sb.append(';'); - } - - private void decodeTo(Reader reader, StringBuilder sb, StringBuilder temp) { - try { - this.decodeTo_(reader, sb, temp); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - - private void decodeTo_(Reader reader, StringBuilder sb, StringBuilder temp) throws IOException { - int c = reader.read(); - while (c != -1) { - if (c == '&') { - this.decodeCharacterReferenceTo(reader, sb, temp); - } else { - sb.append((char) c); - } - c = reader.read(); - } - reader.close(); - } - - private void decodeCharacterReferenceTo(Reader reader, StringBuilder sb, StringBuilder temp) throws IOException { - int c = reader.read(); - this.checkChar(c, '#'); - c = reader.read(); - this.checkChar(c, 'x'); - - temp.setLength(0); // re-use temp - c = reader.read(); - while (c != ';') { - this.checkEndOfStream(c); - temp.append((char) c); - c = reader.read(); - } - String charValue = temp.toString(); - if (charValue.length() == 0) { - throw new IllegalStateException("missing numeric string"); //$NON-NLS-1$ - } - sb.append((char) Integer.parseInt(charValue, 16)); - } - - private void checkChar(int c, int expected) { - this.checkEndOfStream(c); - if (c != expected) { - throw new IllegalStateException("expected '" + (char) expected + "', but encountered '" + (char) c + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - } - - private void checkEndOfStream(int c) { - if (c == -1) { - throw new IllegalStateException("unexpected end of string"); //$NON-NLS-1$ - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/EmptyEnumeration.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/EmptyEnumeration.java deleted file mode 100644 index 7cd0c023b4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/EmptyEnumeration.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.enumerations; - -import java.util.Enumeration; -import java.util.NoSuchElementException; - -/** - * An EmptyEnumeration is just that. - * - * @param the type of elements returned by the enumeration - */ -public final class EmptyEnumeration - implements Enumeration -{ - - // singleton - @SuppressWarnings("rawtypes") - private static final EmptyEnumeration INSTANCE = new EmptyEnumeration(); - - /** - * Return the singleton. - */ - @SuppressWarnings("unchecked") - public static Enumeration instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private EmptyEnumeration() { - super(); - } - - public boolean hasMoreElements() { - return false; - } - - public E nextElement() { - throw new NoSuchElementException(); - } - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/IteratorEnumeration.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/IteratorEnumeration.java deleted file mode 100644 index ee6000c172..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/enumerations/IteratorEnumeration.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.enumerations; - -import java.util.Enumeration; -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * An IteratorEnumeration wraps an - * {@link Iterator} so that it can be treated like an - * {@link Enumeration}. - * Hopefully we don't have much need for this.... - * - * @param the type of elements returned by the enumeration - */ -public class IteratorEnumeration - implements Enumeration -{ - private final Iterator iterator; - - /** - * Construct an enumeration that wraps the specified iterable. - */ - public IteratorEnumeration(Iterable iterable) { - this(iterable.iterator()); - } - - /** - * Construct an enumeration that wraps the specified iterator. - */ - public IteratorEnumeration(Iterator iterator) { - super(); - this.iterator = iterator; - } - - public boolean hasMoreElements() { - return this.iterator.hasNext(); - } - - public E nextElement() { - return this.iterator.next(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayIterable.java deleted file mode 100644 index 5f67e72a49..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayIterable.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; - -/** - * An ArrayIterable provides an {@link Iterable} - * for an array of objects of type E. - * - * @param the type of elements returned by the iterable's iterator - * - * @see ArrayIterator - * @see ArrayListIterable - */ -public class ArrayIterable - implements Iterable -{ - final E[] array; - final int start; - final int length; - - /** - * Construct an iterable for the specified array. - */ - public ArrayIterable(E... array) { - this(array, 0, array.length); - } - - /** - * Construct an iterable for the specified array, - * starting at the specified start index and continuing for - * the rest of the array. - */ - public ArrayIterable(E[] array, int start) { - this(array, start, array.length - start); - } - - /** - * Construct an iterable for the specified array, - * starting at the specified start index and continuing for - * the specified length. - */ - public ArrayIterable(E[] array, int start, int length) { - super(); - if ((start < 0) || (start > array.length)) { - throw new IllegalArgumentException("start: " + start); //$NON-NLS-1$ - } - if ((length < 0) || (length > array.length - start)) { - throw new IllegalArgumentException("length: " + length); //$NON-NLS-1$ - } - this.array = array; - this.start = start; - this.length = length; - } - - public Iterator iterator() { - return new ArrayIterator(this.array, this.start, this.length); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, Arrays.toString(this.array)); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayListIterable.java deleted file mode 100644 index 78ceb0e23d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ArrayListIterable.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.iterators.ArrayListIterator; - -/** - * An ArrayListIterable provides a {@link ListIterable} - * for an array of objects of type E. - * - * @param the type of elements returned by the list iterable's list iterator - * - * @see ArrayIterable - * @see ArrayListIterator - */ -public class ArrayListIterable - extends ArrayIterable - implements ListIterable -{ - /** - * Construct a list iterable for the specified array. - */ - public ArrayListIterable(E... array) { - this(array, 0, array.length); - } - - /** - * Construct a list iterable for the specified array, - * starting at the specified start index and continuing for - * the rest of the array. - */ - public ArrayListIterable(E[] array, int start) { - this(array, start, array.length - start); - } - - /** - * Construct a list iterable for the specified array, - * starting at the specified start index and continuing for - * the specified length. - */ - public ArrayListIterable(E[] array, int start, int length) { - super(array, start, length); - } - - @Override - public ListIterator iterator() { - return new ArrayListIterator(this.array, this.start, this.length); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ChainIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ChainIterable.java deleted file mode 100644 index 12dcc76816..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ChainIterable.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ChainIterator; - -/** - * A ChainIterable provides a pluggable {@link Iterable} - * that loops over a chain of arbitrarily linked objects. The chain - * should be null-terminated (i.e. a call to the {@link #nextLink(Object)} - * method should return null when it is passed the last - * link of the chain). - * To use, supply a starting link and supply a {@link ChainIterator.Linker} or - * subclass ChainIterable and override the - * {@link #nextLink(Object)} method. - * The starting link will be the first object returned by the iterable's iterator. - * If the starting link is null, the iterable will be empty. - * Note this iterable does not support null elements. - * - * @param the type of elements returned by the iterable's iterator - * - * @see ChainIterator - */ -public class ChainIterable - implements Iterable -{ - private final E startLink; - private final ChainIterator.Linker linker; - - - /** - * Construct an iterable with the specified starting link - * and a default linker that calls back to the iterable. - * Use this constructor if you want to override the - * {@link #nextLink(Object)} method instead of building - * a {@link ChainIterator.Linker}. - */ - public ChainIterable(E startLink) { - super(); - this.startLink = startLink; - this.linker = this.buildDefaultLinker(); - } - - /** - * Construct an iterator with the specified starting link - * and linker. - */ - public ChainIterable(E startLink, ChainIterator.Linker linker) { - super(); - this.startLink = startLink; - this.linker = linker; - } - - protected ChainIterator.Linker buildDefaultLinker() { - return new DefaultLinker(); - } - - public Iterator iterator() { - return new ChainIterator(this.startLink, this.linker); - } - - /** - * Return the next link in the chain; null if there are no more links. - *

- * This method can be overridden by a subclass as an alternative to - * building a {@link ChainIterator.Linker}. - */ - protected E nextLink(@SuppressWarnings("unused") E currentLink) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.startLink); - } - - - //********** default linker ********** - - protected class DefaultLinker implements ChainIterator.Linker { - public E nextLink(E currentLink) { - return ChainIterable.this.nextLink(currentLink); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneIterable.java deleted file mode 100644 index 22a21a4979..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneIterable.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; - -/** - * Pull together remover state and behavior for subclasses. - * - * @param the type of elements returned by the iterable's iterator - * - * @see SnapshotCloneIterable - * @see LiveCloneIterable - */ -public abstract class CloneIterable - implements Iterable -{ - final CloneIterator.Remover remover; - - - // ********** constructors ********** - - protected CloneIterable() { - super(); - this.remover = this.buildDefaultRemover(); - } - - protected CloneIterable(CloneIterator.Remover remover) { - super(); - this.remover = remover; - } - - protected CloneIterator.Remover buildDefaultRemover() { - return new DefaultRemover(); - } - - - // ********** default removal ********** - - /** - * Remove the specified element from the original collection. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link CloneIterator.Remover}. - */ - protected void remove(@SuppressWarnings("unused") E element) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - - //********** default mutator ********** - - protected class DefaultRemover implements CloneIterator.Remover { - public void remove(E element) { - CloneIterable.this.remove(element); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneListIterable.java deleted file mode 100644 index b98c42303a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CloneListIterable.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; - -/** - * Pull together mutator state and behavior for subclasses. - * - * @param the type of elements returned by the list iterable's list iterator - * - * @see SnapshotCloneListIterable - * @see LiveCloneListIterable - */ -public abstract class CloneListIterable - implements ListIterable -{ - final CloneListIterator.Mutator mutator; - - - // ********** constructors ********** - - protected CloneListIterable() { - super(); - this.mutator = this.buildDefaultMutator(); - } - - protected CloneListIterable(CloneListIterator.Mutator mutator) { - super(); - this.mutator = mutator; - } - - protected CloneListIterator.Mutator buildDefaultMutator() { - return new DefaultMutator(); - } - - - // ********** default mutations ********** - - /** - * At the specified index, add the specified element to the original list. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link CloneListIterator.Mutator}. - */ - protected void add(@SuppressWarnings("unused") int index, @SuppressWarnings("unused") E element) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - /** - * Remove the element at the specified index from the original list. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link CloneListIterator.Mutator}. - */ - protected void remove(@SuppressWarnings("unused") int index) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - /** - * At the specified index, set the specified element in the original list. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link CloneListIterator.Mutator}. - */ - protected void set(@SuppressWarnings("unused") int index, @SuppressWarnings("unused") E element) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - - //********** default mutator ********** - - protected class DefaultMutator implements CloneListIterator.Mutator { - public void add(int index, E element) { - CloneListIterable.this.add(index, element); - } - public void remove(int index) { - CloneListIterable.this.remove(index); - } - public void set(int index, E element) { - CloneListIterable.this.set(index, element); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeIterable.java deleted file mode 100644 index 442737ede9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeIterable.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; - -/** - * A CompositeIterable wraps an {@link Iterable} - * of {@link Iterable}s and makes them appear to be a single - * {@link Iterable}. - * - * @param the type of elements returned by the iterable's iterator - * - * @see CompositeIterator - * @see CompositeListIterable - */ -public class CompositeIterable - implements Iterable -{ - private final Iterable> iterables; - - - /** - * Construct an iterable with the specified collection of iterables. - */ - public CompositeIterable(Iterable> iterables) { - super(); - this.iterables = iterables; - } - - /** - * Construct an iterable with the specified object prepended - * to the specified iterable. - */ - @SuppressWarnings("unchecked") - public CompositeIterable(E object, Iterable iterable) { - this(new SingleElementIterable(object), iterable); - } - - /** - * Construct an iterable with the specified object appended - * to the specified iterable. - */ - @SuppressWarnings("unchecked") - public CompositeIterable(Iterable iterable, E object) { - this(iterable, new SingleElementIterable(object)); - } - - /** - * Construct an iterable with the specified iterables. - */ - public CompositeIterable(Iterable... iterables) { - this(new ArrayIterable>(iterables)); - } - - /** - * combined iterators - */ - public Iterator iterator() { - return new CompositeIterator(this.iterators()); - } - - /** - * iterator of iterators - */ - protected Iterator> iterators() { - return new TransformationIterator, Iterator>(this.iterables()) { - @Override - protected Iterator transform(Iterable next) { - return next.iterator(); - } - }; - } - - /** - * iterator of iterables - */ - protected Iterator> iterables() { - return this.iterables.iterator(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterables); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeListIterable.java deleted file mode 100644 index 66f75626ef..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/CompositeListIterable.java +++ /dev/null @@ -1,135 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.CompositeListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationListIterator; - -/** - * A CompositeListIterable wraps a {@link ListIterable} - * of {@link ListIterable}s and makes them appear to be a single - * {@link ListIterable}. - * - * @param the type of elements returned by the list iterable's list iterator - * - * @see CompositeListIterator - * @see CompositeIterable - * @see ReadOnlyCompositeListIterable - */ -public class CompositeListIterable - implements ListIterable -{ - private final ListIterable> iterables; - - - /** - * Construct a list iterable with the specified list of list iterables. - */ - public CompositeListIterable(List> iterables) { - this(new ListListIterable>(iterables)); - } - - /** - * Construct a list iterable with the specified list of list iterables. - */ - public CompositeListIterable(ListIterable> iterables) { - super(); - this.iterables = iterables; - } - - /** - * Construct a list iterable with the specified object prepended - * to the specified list. - */ - public CompositeListIterable(E object, List list) { - this(object, new ListListIterable(list)); - } - - /** - * Construct a list iterable with the specified object prepended - * to the specified list iterable. - */ - @SuppressWarnings("unchecked") - public CompositeListIterable(E object, ListIterable iterable) { - this(new SingleElementListIterable(object), iterable); - } - - /** - * Construct a list iterable with the specified object appended - * to the specified list. - */ - public CompositeListIterable(List list, E object) { - this(new ListListIterable(list), object); - } - - /** - * Construct a list iterable with the specified object appended - * to the specified list iterable. - */ - @SuppressWarnings("unchecked") - public CompositeListIterable(ListIterable iterable, E object) { - this(iterable, new SingleElementListIterable(object)); - } - - /** - * Construct a list iterable with the specified list iterables. - */ - public CompositeListIterable(ListIterable... iterables) { - this(new ArrayListIterable>(iterables)); - } - - /** - * Construct a list iterable with the specified lists. - */ - public CompositeListIterable(List... lists) { - this(new TransformationListIterable, ListIterable>(new ArrayListIterable>(lists)) { - @Override - protected ListIterable transform(List list) { - return new ListListIterable(list); - } - }); - } - - /** - * combined list iterators - */ - public ListIterator iterator() { - return new CompositeListIterator(this.iterators()); - } - - /** - * list iterator of list iterators - */ - protected ListIterator> iterators() { - return new TransformationListIterator, ListIterator>(this.iterables()) { - @Override - protected ListIterator transform(ListIterable next) { - return next.iterator(); - } - }; - } - - /** - * list iterator of list iterables - */ - protected ListIterator> iterables() { - return this.iterables.iterator(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterables); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyIterable.java deleted file mode 100644 index c3ed1c49dc..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyIterable.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.io.Serializable; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; - -/** - * An EmptyIterable is just that. - * Maybe just a touch better-performing than {@link java.util.Collections#EMPTY_SET} - * since we don't create a new {@link Iterator} every time {@link #iterator()} is called. - * (Not sure why they do that....) - * - * @param the type of elements returned by the iterable's iterator - * - * @see EmptyIterator - * @see EmptyListIterable - */ -public final class EmptyIterable - implements Iterable, Serializable -{ - // singleton - @SuppressWarnings("rawtypes") - private static final Iterable INSTANCE = new EmptyIterable(); - - /** - * Return the singleton. - */ - @SuppressWarnings("unchecked") - public static Iterable instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private EmptyIterable() { - super(); - } - - public Iterator iterator() { - return EmptyIterator.instance(); - } - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyListIterable.java deleted file mode 100644 index eb6613c071..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/EmptyListIterable.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.io.Serializable; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator; - -/** - * An EmptyListIterable is just that. - * Maybe just a touch better-performing than {@link java.util.Collections#EMPTY_LIST} - * since we don't create a new {@link Iterator} every time {@link #iterator()} is called. - * (Not sure why they do that....) - * - * @param the type of elements returned by the list iterable's list iterator - * - * @see EmptyListIterator - * @see EmptyIterable - */ -public final class EmptyListIterable - implements ListIterable, Serializable -{ - // singleton - @SuppressWarnings("rawtypes") - private static final ListIterable INSTANCE = new EmptyListIterable(); - - /** - * Return the singleton. - */ - @SuppressWarnings("unchecked") - public static ListIterable instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private EmptyListIterable() { - super(); - } - - public ListIterator iterator() { - return EmptyListIterator.instance(); - } - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/FilteringIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/FilteringIterable.java deleted file mode 100644 index 897f0d908e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/FilteringIterable.java +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator; - -/** - * A FilteringIterable wraps another {@link Iterable} - * and uses a {@link Filter} to determine which elements in the - * nested iterable are to be returned by the iterable's iterator. - *

- * As an alternative to building a {@link Filter}, a subclass - * of FilteringIterable can override the - * {@link #accept(Object)} method. - * - * @param the type of elements to be filtered - * - * @see FilteringIterator - */ -public class FilteringIterable - implements Iterable -{ - private final Iterable iterable; - private final Filter filter; - - - /** - * Construct an iterable with the specified nested - * iterable and a default filter that calls back to the iterable. - * Use this constructor if you want to override the - * {@link #accept(Object)} method instead of building - * a {@link Filter}. - */ - public FilteringIterable(Iterable iterable) { - super(); - this.iterable = iterable; - this.filter = this.buildDefaultFilter(); - } - - /** - * Construct an iterable with the specified nested - * iterable and filter. - */ - public FilteringIterable(Iterable iterable, Filter filter) { - super(); - this.iterable = iterable; - this.filter = filter; - } - - protected Filter buildDefaultFilter() { - return new DefaultFilter(); - } - - public Iterator iterator() { - return new FilteringIterator(this.iterable.iterator(), this.filter); - } - - /** - * Return whether the iterable's iterator - * should return the specified next element from a call to the - * {@link Iterator#next()} method. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Filter}. - */ - protected boolean accept(@SuppressWarnings("unused") E o) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterable); - } - - - //********** default filter ********** - - protected class DefaultFilter implements Filter { - public boolean accept(E o) { - return FilteringIterable.this.accept(o); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/GraphIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/GraphIterable.java deleted file mode 100644 index 01912a47b5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/GraphIterable.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.GraphIterator; - -/** - * A GraphIterable is similar to a {@link TreeIterable} - * except that it cannot be assumed that all nodes assume a strict tree - * structure. For instance, in a tree, a node cannot be a descendent of - * itself, but a graph may have a cyclical structure. - * - * A GraphIterable simplifies the traversal of a - * graph of objects, where the objects' protocol(s) provides - * a method for getting the next collection of nodes in the graph, - * (or neighbors), but does not provide a method for - * getting all of the nodes in the graph. - * (e.g. a neighbor can return his neighbors, and those neighbors - * can return their neighbors, which might also include the original - * neighbor, but you only want to visit the original neighbor once.) - *

- * If a neighbor has already been visited (determined by using - * {@link #equals(Object)}), that neighbor is not visited again, - * nor are the neighbors of that object. - *

- * It is up to the user of this class to ensure a complete graph. - *

- * To use, supply:

    - *
  • either the initial node of the graph or an {@link Iterable} - * of the initial collection of graph nodes - *
  • a {@link GraphIterator.MisterRogers} that tells who the neighbors are - * of each node - * (alternatively, subclass GraphIterable - * and override the {@link #neighbors(Object)} method) - *
- * The {@link Iterator#remove()} operation is not supported. This behavior, if - * desired, must be implemented by the user of this class. - * - * @param the type of elements returned by the iterable's iterator - * - * @see GraphIterator - */ -public class GraphIterable - implements Iterable -{ - private final Iterable roots; - private final GraphIterator.MisterRogers misterRogers; - - - /** - * Construct an iterable containing the nodes of a graph with the specified root - * and a default Mr. Rogers that calls back to the iterable. - * Use this constructor if you want to override the - * {@link #neighbors(Object)} method instead of building - * a {@link GraphIterator.MisterRogers}. - */ - public GraphIterable(E root) { - this(new SingleElementIterable(root)); - } - - /** - * Construct an iterable containing the nodes of a graph - * with the specified root and Mr. Rogers. - */ - public GraphIterable(E root, GraphIterator.MisterRogers misterRogers) { - this(new SingleElementIterable(root), misterRogers); - } - - /** - * Construct an iterable containing the nodes of a graph - * with the specified collection of roots - * and a default Mr. Rogers that calls back to the iterable. - * Use this constructor if you want to override the - * {@link #neighbors(Object)} method instead of building - * a {@link GraphIterator.MisterRogers}. - */ - public GraphIterable(E... roots) { - this(Arrays.asList(roots)); - } - - /** - * Construct an iterable containing the nodes of a graph - * with the specified roots and Mr. Rogers. - */ - public GraphIterable(E[] roots, GraphIterator.MisterRogers misterRogers) { - this(Arrays.asList(roots), misterRogers); - } - - /** - * Construct an iterable containing the nodes of a graph - * with the specified collection of roots - * and a default Mr. Rogers that calls back to the iterable. - * Use this constructor if you want to override the - * {@link #neighbors(Object)} method instead of building - * a {@link GraphIterator.MisterRogers}. - */ - public GraphIterable(Iterable roots) { - super(); - this.roots = roots; - this.misterRogers = this.buildDefaultMisterRogers(); - } - - /** - * Construct an iterable containing the nodes of a graph - * with the specified roots and Mr. Rogers. - */ - public GraphIterable(Iterable roots, GraphIterator.MisterRogers misterRogers) { - super(); - this.roots = roots; - this.misterRogers = misterRogers; - } - - protected GraphIterator.MisterRogers buildDefaultMisterRogers() { - return new DefaultMisterRogers(); - } - - public Iterator iterator() { - return new GraphIterator(this.roots, this.misterRogers); - } - - /** - * Return the immediate neighbors of the specified object. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link GraphIterator.MisterRogers}. - */ - protected Iterator neighbors(@SuppressWarnings("unused") E next) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.roots); - } - - - //********** default Mr. Rogers ********** - - protected class DefaultMisterRogers implements GraphIterator.MisterRogers { - public Iterator neighbors(E node) { - return GraphIterable.this.neighbors(node); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListIterable.java deleted file mode 100644 index 91bab82950..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListIterable.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.ListIterator; - -/** - * A ListIterable simply extends {@link Iterable} - * to return a {@link ListIterator} of type E. - * - * @param the type of elements returned by the iterable's iterators - */ -public interface ListIterable - extends Iterable -{ - /** - * Return a list iterator over a set of elements of type E. - */ - ListIterator iterator(); -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListListIterable.java deleted file mode 100644 index ad5a5d7926..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ListListIterable.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.List; -import java.util.ListIterator; - -/** - * A ListListIterable adapts a {@link List} - * to the {@link ListIterable} interface. - * - * @param the type of elements returned by the iterable's iterators - */ -public class ListListIterable - implements ListIterable -{ - private final List list; - - public ListListIterable(List list) { - super(); - this.list = list; - } - - public ListIterator iterator() { - return this.list.listIterator(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneIterable.java deleted file mode 100644 index e8aaccff06..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneIterable.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Collection; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; - -/** - * A LiveCloneIterable returns an iterator on a current copy of a - * collection, allowing for concurrent access to the original collection. A - * copy of the collection is created every time {@link #iterator()} is - * called. As a result, the contents of the collection can be different with - * each call to {@link #iterator()} (i.e. it is "live"). - *

- * The original collection passed to the LiveCloneIterable's - * constructor should be thread-safe (e.g. {@link java.util.Vector}); - * otherwise you run the risk of a corrupted collection. - *

- * By default, the iterator returned by a LiveCloneIterable does not - * support the {@link Iterator#remove()} operation; this is because it does not - * have access to the original collection. But if the LiveCloneIterable - * is supplied with an {@link CloneIterator.Remover} it will delegate the - * {@link Iterator#remove()} operation to the Remover. - * Alternatively, a subclass can override the iterable's {@link #remove(Object)} - * method. - * - * @param the type of elements returned by the iterable's iterator - * - * @see CloneIterator - * @see SnapshotCloneIterable - * @see LiveCloneListIterable - */ -public class LiveCloneIterable - extends CloneIterable -{ - private final Collection collection; - - - // ********** constructors ********** - - /** - * Construct a "live" iterable for the specified collection. - * The {@link Iterator#remove()} operation will not be supported - * by the iterator returned by {@link #iterator()} - * unless a subclass overrides the iterable's {@link #remove(Object)} - * method. - */ - public LiveCloneIterable(Collection collection) { - super(); - this.collection = collection; - } - - /** - * Construct a "live" iterable for the specified collection. - * The specified remover will be used by any generated iterators to - * remove objects from the original collection. - */ - public LiveCloneIterable(Collection collection, CloneIterator.Remover remover) { - super(remover); - this.collection = collection; - } - - - // ********** Iterable implementation ********** - - public Iterator iterator() { - return new CloneIterator(this.collection, this.remover); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.collection); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneListIterable.java deleted file mode 100644 index 9d26554db1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/LiveCloneListIterable.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; - -/** - * A LiveCloneListIterable returns a list iterator on a current - * copy of a list, allowing for concurrent access to the original list. A - * copy of the list is created every time {@link #iterator()} is - * called. As a result, the contents of the list can be different with - * each call to {@link #iterator()} (i.e. it is "live"). - *

- * The original list passed to the LiveCloneListIterable's - * constructor should be thread-safe (e.g. {@link java.util.Vector}); - * otherwise you run the risk of a corrupted list. - *

- * By default, the list iterator returned by a LiveCloneListIterable - * does not support the modify operations; this is because it does not - * have access to the original list. But if the LiveCloneListIterable - * is supplied with an {@link CloneListIterator.Mutator} it will delegate the - * modify operations to the Mutator. - * Alternatively, a subclass can override the list iterable's mutation - * methods. - * - * @param the type of elements returned by the list iterable's list iterator - * - * @see CloneListIterator - * @see SnapshotCloneListIterable - * @see LiveCloneIterable - */ -public class LiveCloneListIterable - extends CloneListIterable -{ - private final List list; - - - // ********** constructors ********** - - /** - * Construct a "live" list iterable for the specified list. - * The {@link ListIterator} mutation operations will not be supported - * by the list iterator returned by {@link #iterator()} - * unless a subclass overrides the iterable's mutation - * methods. - */ - public LiveCloneListIterable(List list) { - super(); - this.list = list; - } - - /** - * Construct a "live" list iterable for the specified list. - * The specified mutator will be used by any generated list iterators to - * modify the original list. - */ - public LiveCloneListIterable(List list, CloneListIterator.Mutator mutator) { - super(mutator); - this.list = list; - } - - - // ********** ListIterable implementation ********** - - public ListIterator iterator() { - return new CloneListIterator(this.list, this.mutator); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.list); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/PeekableIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/PeekableIterable.java deleted file mode 100644 index ad381ee41c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/PeekableIterable.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.PeekableIterator; - -/** - * A PeekableIterable wraps another {@link Iterable} - * and returns an {@link PeekableIterator} that allows a - * {@link PeekableIterator#peek() peek} at the next element to be - * returned by {@link Iterator#next()}. - *

- * One, possibly undesirable, side-effect of using this iterator is that - * the nested iterator's next() method will be invoked - * before the peekable iterator's {@link Iterator#next()} - * method is invoked. This is because the "next" element must be - * pre-loaded for the {@link PeekableIterator#peek()} method. - * This also prevents a peekable iterator from supporting the optional - * {@link Iterator#remove()} method. - * - * @param the type of elements returned by the iterable's iterator - * - * @see PeekableIterator - */ -public class PeekableIterable - implements Iterable -{ - private final Iterable iterable; - - /** - * Construct a peekable iterable that wraps the specified - * iterable. - */ - public PeekableIterable(Iterable iterable) { - super(); - this.iterable = iterable; - } - - public PeekableIterator iterator() { - return new PeekableIterator(this.iterable); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterable); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/QueueIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/QueueIterable.java deleted file mode 100644 index 5b2aa6d0b4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/QueueIterable.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.Queue; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.QueueIterator; - -/** - * A QueueIterable provides an {@link Iterable} - * for a {@link Queue} of objects of type E. The queue's elements - * are {@link Queue#dequeue() dequeue}d" as the iterable's iterator returns - * them with calls to {@link Iterator#next()}. - * - * @param the type of elements returned by the iterable's iterator - * - * @see Queue - * @see QueueIterator - */ -public class QueueIterable - implements Iterable -{ - private final Queue queue; - - /** - * Construct an iterable for the specified queue. - */ - public QueueIterable(Queue queue) { - super(); - this.queue = queue; - } - - public Iterator iterator() { - return new QueueIterator(this.queue); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.queue); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyCompositeListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyCompositeListIterable.java deleted file mode 100644 index ff2810fdda..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyCompositeListIterable.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyCompositeListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationListIterator; - -/** - * A ReadOnlyCompositeListIterable wraps a {@link ListIterable} - * of {@link ListIterable}s and makes them appear to be a single - * read-only {@link ListIterable}. A read-only composite list - * iterable is more flexible than a normal composite list iterable when it - * comes to the element types of the nested list iterables. - * - * @param the type of elements returned by the list iterable's list iterator - * - * @see ReadOnlyCompositeListIterator - * @see CompositeListIterable - */ -public class ReadOnlyCompositeListIterable - implements ListIterable -{ - private final ListIterable> iterables; - - - /** - * Construct a list iterable with the specified list of list iterables. - */ - public ReadOnlyCompositeListIterable(ListIterable> iterables) { - super(); - this.iterables = iterables; - } - - /** - * Construct a list iterable with the specified object prepended - * to the specified list iterable. - */ - @SuppressWarnings("unchecked") - public ReadOnlyCompositeListIterable(E object, ListIterable iterable) { - this(new SingleElementListIterable(object), iterable); - } - - /** - * Construct a list iterable with the specified object appended - * to the specified list iterable. - */ - @SuppressWarnings("unchecked") - public ReadOnlyCompositeListIterable(ListIterable iterable, E object) { - this(iterable, new SingleElementListIterable(object)); - } - - /** - * Construct a list iterable with the specified list iterables. - */ - public ReadOnlyCompositeListIterable(ListIterable... iterables) { - this(new ArrayListIterable>(iterables)); - } - - /** - * combined list iterators - */ - public ListIterator iterator() { - return new ReadOnlyCompositeListIterator(this.iterators()); - } - - /** - * list iterator of list iterators - */ - protected ListIterator> iterators() { - return new TransformationListIterator, ListIterator>(this.iterables()) { - @Override - protected ListIterator transform(ListIterable next) { - return next.iterator(); - } - }; - } - - /** - * list iterator of list iterables - */ - protected ListIterator> iterables() { - return this.iterables.iterator(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterables); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyIterable.java deleted file mode 100644 index 0483928be6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyIterable.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator; - -/** - * A ReadOnlyIterable wraps another {@link Iterable} - * and returns a read-only {@link Iterator}. - * - * @param the type of elements returned by the iterable's iterator - * - * @see ReadOnlyIterator - * @see ReadOnlyListIterable - */ -public class ReadOnlyIterable - implements Iterable -{ - private final Iterable iterable; - - - /** - * Construct an iterable the returns a read-only iterator on the elements - * in the specified iterable. - */ - public ReadOnlyIterable(Iterable iterable) { - super(); - this.iterable = iterable; - } - - public Iterator iterator() { - return new ReadOnlyIterator(this.iterable); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterable); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyListIterable.java deleted file mode 100644 index 1efde41a59..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/ReadOnlyListIterable.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; - -/** - * A ReadOnlyListIterable wraps another {@link ListIterable} - * and returns a read-only {@link ListIterator}. - * - * @param the type of elements returned by the list iterable's list iterator - * - * @see ReadOnlyListIterator - * @see ReadOnlyIterable - */ -public class ReadOnlyListIterable - implements ListIterable -{ - private final ListIterable listIterable; - - - /** - * Construct a list iterable the returns a read-only list iterator on the elements - * in the specified list iterable. - */ - public ReadOnlyListIterable(ListIterable iterable) { - super(); - this.listIterable = iterable; - } - - public ListIterator iterator() { - return new ReadOnlyListIterator(this.listIterable); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listIterable); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementIterable.java deleted file mode 100644 index 34ea3a7e24..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementIterable.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator; - -/** - * A SingleElementIterable returns an {@link Iterator} - * that holds a single element - * and returns it with the first call to {@link Iterator#next()}, at - * which point it will return false to any subsequent - * call to {@link Iterator#hasNext()}. - *

- * A SingleElementIterable is equivalent to the - * {@link Iterable} returned by: - * {@link java.util.Collections#singleton(Object)}. - * - * @param the type of elements returned by the iterable's iterator - * - * @see SingleElementIterator - * @see SingleElementListIterable - */ -public class SingleElementIterable - implements Iterable -{ - private final E element; - - /** - * Construct an iterable that contains only the specified element. - */ - public SingleElementIterable(E element) { - super(); - this.element = element; - } - - public Iterator iterator() { - return new SingleElementIterator(this.element); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.element); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementListIterable.java deleted file mode 100644 index c6e2100367..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SingleElementListIterable.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementListIterator; - -/** - * A SingleElementListIterable returns a {@link ListIterator} - * that holds a single element - * and returns it with the first call to {@link ListIterator#next()}, at - * which point it will return false to any subsequent - * call to {@link ListIterator#hasNext()}. Likewise, it will return false - * to a call to {@link ListIterator#hasPrevious()} until a call to {@link ListIterator#next()}, - * at which point a call to {@link ListIterator#previous()} will return the - * single element. - *

- * A SingleElementListIterable is equivalent to the - * {@link Iterable} returned by: - * {@link java.util.Collections#singletonList(Object)}. - * - * @param the type of elements returned by the list iterable's list iterator - * - * @see SingleElementListIterator - * @see SingleElementIterable - */ -public class SingleElementListIterable - implements ListIterable -{ - private final E element; - - /** - * Construct a list iterable that contains only the specified element. - */ - public SingleElementListIterable(E element) { - super(); - this.element = element; - } - - public ListIterator iterator() { - return new SingleElementListIterator(this.element); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.element); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneIterable.java deleted file mode 100644 index 72beebec70..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneIterable.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; - -/** - * A SnapshotCloneIterable returns an iterator on a "snapshot" of a - * collection, allowing for concurrent access to the original collection. A - * copy of the collection is created when the iterable is constructed. - * As a result, the contents of the collection will be the same with - * every call to {@link #iterator()}. - *

- * The original collection passed to the SnapshotCloneIterable's - * constructor should be thread-safe (e.g. {@link java.util.Vector}); - * otherwise you run the risk of a corrupted collection. - *

- * By default, the iterator returned by a SnapshotCloneIterable does not - * support the {@link Iterator#remove()} operation; this is because it does not - * have access to the original collection. But if the SnapshotCloneIterable - * is supplied with a {@link CloneIterator.Remover} it will delegate the - * {@link Iterator#remove()} operation to the Remover. - * Alternatively, a subclass can override the iterable's {@link #remove(Object)} - * method. - *

- * This iterable is useful for multiple passes over a collection that should not - * be changed (e.g. by another thread) between passes. - * - * @param the type of elements returned by the iterable's iterator - * - * @see CloneIterator - * @see LiveCloneIterable - * @see SnapshotCloneListIterable - */ -public class SnapshotCloneIterable - extends CloneIterable -{ - private final Object[] array; - - - // ********** constructors ********** - - /** - * Construct a "snapshot" iterable for the specified iterator. - * The {@link Iterator#remove()} operation will not be supported - * by the iterator returned by {@link #iterator()} - * unless a subclass overrides the iterable's {@link #remove(Object)} - * method. - */ - public SnapshotCloneIterable(Iterator iterator) { - super(); - this.array = ArrayTools.array(iterator); - } - - /** - * Construct a "snapshot" iterable for the specified iterator. - * The specified remover will be used by any generated iterators to - * remove objects from the original collection. - */ - public SnapshotCloneIterable(Iterator iterator, CloneIterator.Remover remover) { - super(remover); - this.array = ArrayTools.array(iterator); - } - - /** - * Construct a "snapshot" iterable for the specified collection. - * The {@link Iterator#remove()} operation will not be supported - * by the iterator returned by {@link #iterator()} - * unless a subclass overrides the iterable's {@link #remove(Object)} - * method. - */ - public SnapshotCloneIterable(Collection collection) { - super(); - this.array = collection.toArray(); - } - - /** - * Construct a "snapshot" iterable for the specified collection. - * The specified remover will be used by any generated iterators to - * remove objects from the original collection. - */ - public SnapshotCloneIterable(Collection collection, CloneIterator.Remover remover) { - super(remover); - this.array = collection.toArray(); - } - - - // ********** Iterable implementation ********** - - public Iterator iterator() { - return new LocalCloneIterator(this.remover, this.array); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, Arrays.toString(this.array)); - } - - - // ********** clone iterator ********** - - /** - * provide access to "internal" constructor - */ - protected static class LocalCloneIterator extends CloneIterator { - protected LocalCloneIterator(Remover remover, Object[] array) { - super(remover, array); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneListIterable.java deleted file mode 100644 index f242ab70f5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SnapshotCloneListIterable.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Arrays; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; - -/** - * A SnapshotCloneListIterable returns a list iterator on a - * "snapshot" of a list, allowing for concurrent access to the original list. - * A copy of the list is created when the list iterable is constructed. - * As a result, the contents of the list will be the same with - * every call to {@link #iterator()}, even if the original list is modified via - * the list iterator's mutation methods. - *

- * The original list passed to the SnapshotCloneListIterable's - * constructor should be thread-safe (e.g. {@link java.util.Vector}); - * otherwise you run the risk of a corrupted list. - *

- * By default, the list iterator returned by a SnapshotCloneListIterable does not - * support the {@link ListIterator} mutation operations; this is because it does not - * have access to the original list. But if the SnapshotCloneListIterable - * is supplied with a {@link CloneListIterator.Mutator} it will delegate the - * {@link ListIterator} mutation operations to the Mutator. - * Alternatively, a subclass can override the list iterable's mutation - * methods. - *

- * This list iterable is useful for multiple passes over a list that should not - * be changed (e.g. by another thread) between passes. - * - * @param the type of elements returned by the list iterable's list iterator - * - * @see CloneListIterator - * @see LiveCloneListIterable - * @see SnapshotCloneIterable - */ -public class SnapshotCloneListIterable - extends CloneListIterable -{ - private final Object[] array; - - - // ********** constructors ********** - - /** - * Construct a "snapshot" list iterable for the specified list. - * The {@link ListIterator} modify operations will not be supported - * by the list iterator returned by {@link #iterator()} - * unless a subclass overrides the list iterable's modify - * method. - */ - public SnapshotCloneListIterable(List list) { - super(); - this.array = list.toArray(); - } - - /** - * Construct a "snapshot" list iterable for the specified list. - * The specified mutator will be used by any generated list iterators to - * modify the original list. - */ - public SnapshotCloneListIterable(List list, CloneListIterator.Mutator mutator) { - super(mutator); - this.array = list.toArray(); - } - - - // ********** ListIterable implementation ********** - - public ListIterator iterator() { - return new LocalCloneListIterator(this.mutator, this.array); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, Arrays.toString(this.array)); - } - - - // ********** clone iterator ********** - - /** - * provide access to "internal" constructor - */ - protected static class LocalCloneListIterator extends CloneListIterator { - protected LocalCloneListIterator(Mutator mutator, Object[] array) { - super(mutator, array); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/StackIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/StackIterable.java deleted file mode 100644 index 211fe3f61a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/StackIterable.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.Stack; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.StackIterator; - -/** - * A StackIterable provides an {@link Iterable} - * for a {@link Stack} of objects of type E. The stack's elements - * are {@link Stack#pop() "popped"} as the iterable's iterator returns - * them with calls to {@link Iterator#next()}. - * - * @param the type of elements returned by the iterable's iterator - * - * @see Stack - * @see StackIterator - */ -public class StackIterable - implements Iterable -{ - private final Stack stack; - - /** - * Construct an iterable for the specified stack. - */ - public StackIterable(Stack stack) { - super(); - this.stack = stack; - } - - public Iterator iterator() { - return new StackIterator(this.stack); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.stack); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubIterableWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubIterableWrapper.java deleted file mode 100644 index c6108d5c22..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubIterableWrapper.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.SubIteratorWrapper; - -/** - * Wrap an iterable of elements of type E1, converting it into an - * iterable of elements of type E2. Assume the wrapped - * iterable contains only elements of type E2. - * - * @param input: the type of elements contained by the wrapped iterable - * @param output: the type of elements returned by the iterable's iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterators.SubIteratorWrapper - */ -public class SubIterableWrapper - implements Iterable -{ - private final Iterable iterable; - - - public SubIterableWrapper(Iterable iterable) { - super(); - this.iterable = iterable; - } - - public Iterator iterator() { - return new SubIteratorWrapper(this.iterable.iterator()); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterable); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubListIterableWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubListIterableWrapper.java deleted file mode 100644 index 2213ce0559..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SubListIterableWrapper.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.SubListIteratorWrapper; - -/** - * Wrap a list iterable of elements of type E1, converting it into - * a list iterable of elements of type E2. Assume the wrapped - * iterable contains only elements of type E2. - * - * @param input: the type of elements contained by the wrapped list iterable - * @param output: the type of elements returned by the iterable's list iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterators.SubListIteratorWrapper - */ -public class SubListIterableWrapper - implements ListIterable -{ - private final ListIterable iterable; - - - public SubListIterableWrapper(List list) { - this(new ListListIterable(list)); - } - - public SubListIterableWrapper(ListIterable iterable) { - super(); - this.iterable = iterable; - } - - public ListIterator iterator() { - return new SubListIteratorWrapper(this.iterable.iterator()); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterable); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperIterableWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperIterableWrapper.java deleted file mode 100644 index bae5e1e52a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperIterableWrapper.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Wrap an iterable of elements of any sub-type of E, converting it into an - * iterable of elements of type E. This shouldn't be a problem since there - * is no way to add invalid elements to the iterable. - * - * @param the type of elements returned by the iterable's iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterators.SuperIteratorWrapper - */ -public class SuperIterableWrapper - implements Iterable -{ - private final Iterable iterable; - - - @SuppressWarnings("unchecked") - public SuperIterableWrapper(Iterable iterable) { - super(); - // this should be a safe cast - the iterator will only ever - // return E (or a sub-type) from #next() - this.iterable = (Iterable) iterable; - } - - public Iterator iterator() { - return this.iterable.iterator(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterable); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperListIterableWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperListIterableWrapper.java deleted file mode 100644 index 2d5fa24f03..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/SuperListIterableWrapper.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.SuperListIteratorWrapper; - -/** - * Wrap a list iterable of elements of any sub-type of E, - * converting it into a list iterable of elements of type E. - * This shouldn't be a problem since the resulting list iterable's list - * iterator disables the methods that would put invalid elements in the list - * iterator's backing list (i.e. {@link SuperListIteratorWrapper#set(Object)} - * and {@link SuperListIteratorWrapper#add(Object)}). - * - * @param the type of elements returned by the iterable's iterators - * - * @see org.eclipse.jpt.common.utility.internal.iterators.SuperListIteratorWrapper - */ -public class SuperListIterableWrapper - implements ListIterable -{ - private final ListIterable iterable; - - - public SuperListIterableWrapper(List list) { - this(new ListListIterable(list)); - } - - public SuperListIterableWrapper(ListIterable iterable) { - super(); - this.iterable = iterable; - } - - public ListIterator iterator() { - return new SuperListIteratorWrapper(this.iterable.iterator()); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterable); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationIterable.java deleted file mode 100644 index 124c15d07d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationIterable.java +++ /dev/null @@ -1,91 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; - -/** - * A TransformationIterable wraps another {@link Iterable} - * and transforms its elements for client consumption. To use, supply a - * {@link Transformer} or subclass TransformationIterable - * and override the {@link #transform(Object)} method. - * Objects of type E1 are transformed into objects of type E2; - * i.e. the iterable's iterator returns objects of type E2. - * - * @param input: the type of elements to be transformed - * @param output: the type of elements returned by the iterable's iterator - * - * @see TransformationIterator - * @see TransformationListIterable - */ -public class TransformationIterable - implements Iterable -{ - private final Iterable iterable; - private final Transformer transformer; - - - /** - * Construct an iterable with the specified nested iterable - * and a default transformer that calls back to the iterable. - * Use this constructor if you want to override the - * {@link #transform(Object)} method instead of building - * a {@link Transformer}. - */ - public TransformationIterable(Iterable iterable) { - super(); - this.iterable = iterable; - this.transformer = this.buildDefaultTransformer(); - } - - /** - * Construct an iterable with the specified nested iterable - * and transformer. - */ - public TransformationIterable(Iterable iterable, Transformer transformer) { - super(); - this.iterable = iterable; - this.transformer = transformer; - } - - protected Transformer buildDefaultTransformer() { - return new DefaultTransformer(); - } - - public Iterator iterator() { - return new TransformationIterator(this.iterable.iterator(), this.transformer); - } - - /** - * Transform the specified object and return the result. - */ - protected E2 transform(@SuppressWarnings("unused") E1 o) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterable); - } - - - //********** default linker ********** - - protected class DefaultTransformer implements Transformer { - public E2 transform(E1 o) { - return TransformationIterable.this.transform(o); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationListIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationListIterable.java deleted file mode 100644 index 0f2d058f57..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TransformationListIterable.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationListIterator; - -/** - * A TransformationListIterable wraps another {@link ListIterable} - * and transforms its elements for client consumption. To use, supply a - * {@link Transformer} or subclass TransformationListIterable - * and override the {@link #transform(Object)} method. - * Objects of type E1 are transformed into objects of type E2; - * i.e. the list iterable's list iterator returns objects of type E2. - * - * @param input: the type of elements to be transformed - * @param output: the type of elements returned by the iterable's iterator - * - * @see TransformationListIterator - * @see TransformationIterable - */ -public class TransformationListIterable - implements ListIterable -{ - private final ListIterable iterable; - private final Transformer transformer; - - - /** - * Construct a list iterable with the specified nested list - * and a default transformer that calls back to the list iterable. - * Use this constructor if you want to override the - * {@link #transform(Object)} method instead of building - * a {@link Transformer}. - */ - public TransformationListIterable(List list) { - this(new ListListIterable(list)); - } - - /** - * Construct a list iterable with the specified nested list iterable - * and a default transformer that calls back to the list iterable. - * Use this constructor if you want to override the - * {@link #transform(Object)} method instead of building - * a {@link Transformer}. - */ - public TransformationListIterable(ListIterable iterable) { - super(); - this.iterable = iterable; - this.transformer = this.buildDefaultTransformer(); - } - - /** - * Construct a list iterable with the specified nested list - * and transformer. - */ - public TransformationListIterable(List list, Transformer transformer) { - this(new ListListIterable(list), transformer); - } - - /** - * Construct a list iterable with the specified nested list iterable - * and transformer. - */ - public TransformationListIterable(ListIterable iterable, Transformer transformer) { - super(); - this.iterable = iterable; - this.transformer = transformer; - } - - protected Transformer buildDefaultTransformer() { - return new DefaultTransformer(); - } - - public ListIterator iterator() { - return new TransformationListIterator(this.iterable.iterator(), this.transformer); - } - - /** - * Transform the specified object and return the result. - */ - protected E2 transform(@SuppressWarnings("unused") E1 o) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterable); - } - - - //********** default linker ********** - - protected class DefaultTransformer implements Transformer { - public E2 transform(E1 o) { - return TransformationListIterable.this.transform(o); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TreeIterable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TreeIterable.java deleted file mode 100644 index 8e3e1ff336..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterables/TreeIterable.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterables; - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.TreeIterator; - -/** - * A TreeIterable simplifies the traversal of a - * tree of objects, where the objects' protocol(s) provides - * a method for getting the immediate children of the given - * node but does not provide a method for getting all the - * descendants (children, grandchildren, etc.) of the given node. - *

- * To use, supply:

    - *
  • either the root element of the tree or, if the tree has - * multiple roots, an {@link Iterable} of the set of roots - *
  • a {@link TreeIterator.Midwife} that delivers the children of each child - * (alternatively, subclass TreeIterable - * and override the {@link #children(Object)} method) - *
- * - * @param the type of elements returned by the iterable's iterator - * - * @see TreeIterator - */ -public class TreeIterable - implements Iterable -{ - private final Iterable roots; - private final TreeIterator.Midwife midwife; - - - /** - * Construct an iterable containing the nodes of a tree with the specified root - * and a default midwife that calls back to the iterable. - * Use this constructor if you want to override the - * {@link #children(Object)} method instead of building - * a {@link TreeIterator.Midwife}. - */ - public TreeIterable(E root) { - this(new SingleElementIterable(root)); - } - - /** - * Construct an iterable containing the nodes of a tree with the specified root - * and midwife. - */ - public TreeIterable(E root, TreeIterator.Midwife midwife) { - this(new SingleElementIterable(root), midwife); - } - - /** - * Construct an iterable containing the nodes of a tree with the specified roots - * and a default midwife that calls back to the iterable. - * Use this constructor if you want to override the - * {@link #children(Object)} method instead of building - * a {@link TreeIterator.Midwife}. - */ - public TreeIterable(E... roots) { - this(Arrays.asList(roots)); - } - - /** - * Construct an iterable containing the nodes of a tree with the specified roots - * and midwife. - */ - public TreeIterable(E[] roots, TreeIterator.Midwife midwife) { - this(Arrays.asList(roots), midwife); - } - - /** - * Construct an iterable containing the nodes of a tree with the specified roots - * and a default midwife that calls back to the iterable. - * Use this constructor if you want to override the - * {@link #children(Object)} method instead of building - * a {@link TreeIterator.Midwife}. - */ - public TreeIterable(Iterable roots) { - super(); - this.roots = roots; - this.midwife = this.buildDefaultMidwife(); - } - - /** - * Construct an iterable containing the nodes of a tree with the specified roots - * and midwife. - */ - public TreeIterable(Iterable roots, TreeIterator.Midwife midwife) { - super(); - this.roots = roots; - this.midwife = midwife; - } - - protected TreeIterator.Midwife buildDefaultMidwife() { - return new DefaultMidwife(); - } - - public Iterator iterator() { - return new TreeIterator(this.roots, this.midwife); - } - - /** - * Return the immediate children of the specified object. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link TreeIterator.Midwife}. - */ - protected Iterator children(@SuppressWarnings("unused") E next) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.roots); - } - - - //********** default midwife ********** - - protected class DefaultMidwife implements TreeIterator.Midwife { - public Iterator children(E node) { - return TreeIterable.this.children(node); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayIterator.java deleted file mode 100644 index 4b0e277339..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayIterator.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Arrays; -import java.util.Iterator; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * An ArrayIterator provides an {@link Iterator} - * for an array of objects of type E. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable - */ -public class ArrayIterator - implements Iterator -{ - final E[] array; // private-protected - int cursor; // private-protected - private final int max; - - - /** - * Construct an iterator for the specified array. - */ - public ArrayIterator(E... array) { - this(array, 0, array.length); - } - - /** - * Construct an iterator for the specified array, - * starting at the specified start index and continuing for - * the rest of the array. - */ - public ArrayIterator(E[] array, int start) { - this(array, start, array.length - start); - } - - /** - * Construct an iterator for the specified array, - * starting at the specified start index and continuing for - * the specified length. - */ - public ArrayIterator(E[] array, int start, int length) { - super(); - if ((start < 0) || (start > array.length)) { - throw new IllegalArgumentException("start: " + start); //$NON-NLS-1$ - } - if ((length < 0) || (length > array.length - start)) { - throw new IllegalArgumentException("length: " + length); //$NON-NLS-1$ - } - this.array = array; - this.cursor = start; - this.max = start + length; - } - - public boolean hasNext() { - return this.cursor != this.max; - } - - public E next() { - if (this.hasNext()) { - return this.array[this.cursor++]; - } - throw new NoSuchElementException(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, Arrays.toString(this.array)); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayListIterator.java deleted file mode 100644 index b08cfe9092..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ArrayListIterator.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.ListIterator; -import java.util.NoSuchElementException; - -/** - * An ArrayListIterator provides a {@link ListIterator} - * for an array of objects. - *

- * The name might be a bit confusing: - * This is a {@link ListIterator} for an Array; - * not an {@link java.util.Iterator Iterator} for an - * {@link java.util.ArrayList ArrayList}. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable - */ -public class ArrayListIterator - extends ArrayIterator - implements ListIterator -{ - private final int min; - - - /** - * Construct a list iterator for the specified array. - */ - public ArrayListIterator(E... array) { - this(array, 0, array.length); - } - - /** - * Construct a list iterator for the specified array, - * starting at the specified start index and continuing for - * the rest of the array. - */ - public ArrayListIterator(E[] array, int start) { - this(array, start, array.length - start); - } - - /** - * Construct a list iterator for the specified array, - * starting at the specified start index and continuing for - * the specified length. - */ - public ArrayListIterator(E[] array, int start, int length) { - super(array, start, length); - this.min = start; - } - - public int nextIndex() { - return this.cursor; - } - - public int previousIndex() { - return this.cursor - 1; - } - - public boolean hasPrevious() { - return this.cursor != this.min; - } - - public E previous() { - if (this.hasPrevious()) { - return this.array[--this.cursor]; - } - throw new NoSuchElementException(); - } - - public void add(E e) { - throw new UnsupportedOperationException(); - } - - public void set(E e) { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return super.toString(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ChainIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ChainIterator.java deleted file mode 100644 index baf6710cb7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ChainIterator.java +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A ChainIterator provides a pluggable {@link Iterator} - * that loops over a chain of arbitrarily linked objects. The chain - * should be null-terminated (i.e. a call to the {@link #nextLink(Object)} - * method should return null when it is passed the last - * link of the chain). - * To use, supply a starting link and supply a {@link Linker} or - * subclass ChainIterator and override the - * {@link #nextLink(Object)} method. - * The starting link will be the first object returned by the iterator. - * If the starting link is null, the iterator will be empty. - * Note this iterator does not support null elements. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.ChainIterable - */ -public class ChainIterator - implements Iterator -{ - private E nextLink; - private final Linker linker; - - - /** - * Construct an iterator with the specified starting link - * and a disabled linker. - * Use this constructor if you want to override the - * {@link #nextLink(Object)} method instead of building - * a {@link Linker}. - */ - public ChainIterator(E startLink) { - this(startLink, Linker.Disabled.instance()); - } - - /** - * Construct an iterator with the specified starting link - * and linker. - */ - public ChainIterator(E startLink, Linker linker) { - super(); - this.nextLink = startLink; - this.linker = linker; - } - - public boolean hasNext() { - return this.nextLink != null; - } - - public E next() { - if (this.nextLink == null) { - throw new NoSuchElementException(); - } - E result = this.nextLink; - this.nextLink = this.nextLink(this.nextLink); - return result; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - /** - * Return the next link in the chain; null if there are no more links. - */ - protected E nextLink(E currentLink) { - return this.linker.nextLink(currentLink); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.nextLink); - } - - - //********** member interface ********** - - /** - * Used by {@link ChainIterator} to link - * the elements in the chain. - */ - public interface Linker { - - /** - * Return the next link in the chain; null if there are no more links. - */ - T nextLink(T currentLink); - - - final class Null implements Linker { - @SuppressWarnings("rawtypes") - public static final Linker INSTANCE = new Null(); - @SuppressWarnings("unchecked") - public static Linker instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - // simply return null, indicating the chain is ended - public S nextLink(S currentLink) { - return null; - } - @Override - public String toString() { - return "ChainIterator.Linker.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - final class Disabled implements Linker { - @SuppressWarnings("rawtypes") - public static final Linker INSTANCE = new Disabled(); - @SuppressWarnings("unchecked") - public static Linker instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public S nextLink(S currentLink) { - throw new UnsupportedOperationException(); // ChainIterator.nextLink(Object) was not implemented - } - @Override - public String toString() { - return "ChainIterator.Linker.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneIterator.java deleted file mode 100644 index 8e31ddea73..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneIterator.java +++ /dev/null @@ -1,191 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Collection; -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A CloneIterator iterates over a copy of a collection, - * allowing for concurrent access to the original collection. - *

- * The original collection passed to the CloneIterator's - * constructor should be synchronized (e.g. {@link java.util.Vector}); - * otherwise you run the risk of a corrupted collection. - *

- * By default, a CloneIterator does not support the - * {@link #remove()} operation; this is because it does not have - * access to the original collection. But if the CloneIterator - * is supplied with an {@link Remover} it will delegate the - * {@link #remove()} operation to the {@link Remover}. - * Alternatively, a subclass can override the {@link #remove(Object)} - * method. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable - * @see org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneIterable - */ -public class CloneIterator - implements Iterator -{ - private final Iterator iterator; - private E current; - private final Remover remover; - private boolean removeAllowed; - - - // ********** constructors ********** - - /** - * Construct an iterator on a copy of the specified collection. - * The {@link #remove()} method will not be supported, - * unless a subclass overrides the {@link #remove(Object)}. - */ - public CloneIterator(Collection collection) { - this(collection, Remover.ReadOnly.instance()); - } - - /** - * Construct an iterator on a copy of the specified array. - * The {@link #remove()} method will not be supported, - * unless a subclass overrides the {@link #remove(Object)}. - */ - public CloneIterator(E[] array) { - this(array, Remover.ReadOnly.instance()); - } - - /** - * Construct an iterator on a copy of the specified collection. - * Use the specified remover to remove objects from the - * original collection. - */ - public CloneIterator(Collection collection, Remover remover) { - this(remover, collection.toArray()); - } - - /** - * Construct an iterator on a copy of the specified array. - * Use the specified remover to remove objects from the - * original array. - */ - public CloneIterator(E[] array, Remover remover) { - this(remover, array.clone()); - } - - /** - * Internal constructor used by subclasses. - * Swap order of arguments to prevent collision with other constructor. - * The passed in array will *not* be cloned. - */ - protected CloneIterator(Remover remover, Object... array) { - super(); - this.iterator = new ArrayIterator(array); - this.current = null; - this.remover = remover; - this.removeAllowed = false; - } - - - // ********** Iterator implementation ********** - - public boolean hasNext() { - return this.iterator.hasNext(); - } - - public E next() { - this.current = this.nestedNext(); - this.removeAllowed = true; - return this.current; - } - - public void remove() { - if ( ! this.removeAllowed) { - throw new IllegalStateException(); - } - this.remove(this.current); - this.removeAllowed = false; - } - - - // ********** internal methods ********** - - /** - * The collection passed in during construction held elements of type E, - * so this cast is not a problem. We need this cast because - * all the elements of the original collection were copied into - * an object array (Object[]). - */ - @SuppressWarnings("unchecked") - protected E nestedNext() { - return (E) this.iterator.next(); - } - - /** - * Remove the specified element from the original collection. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Remover}. - */ - protected void remove(E e) { - this.remover.remove(e); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - - //********** member interface ********** - - /** - * Used by {@link CloneIterator} to remove - * elements from the original collection; since the iterator - * does not have direct access to the original collection. - */ - public interface Remover { - - /** - * Remove the specified object from the original collection. - */ - void remove(T element); - - - final class ReadOnly implements Remover { - @SuppressWarnings("rawtypes") - public static final Remover INSTANCE = new ReadOnly(); - @SuppressWarnings("unchecked") - public static Remover instance() { - return INSTANCE; - } - // ensure single instance - private ReadOnly() { - super(); - } - // remove is not supported - public void remove(Object element) { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "CloneIterator.Remover.ReadOnly"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneListIterator.java deleted file mode 100644 index 91536a0794..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CloneListIterator.java +++ /dev/null @@ -1,291 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A CloneListIterator iterates over a copy of a list, - * allowing for concurrent access to the original list. - *

- * The original list passed to the CloneListIterator's - * constructor should be synchronized; otherwise you run the risk of - * a corrupted list (e.g. {@link java.util.Vector}. - *

- * By default, a CloneListIterator does not support the - * modification operations; this is because it does not have - * access to the original list. But if the CloneListIterator - * is supplied with a {@link Mutator} it will delegate the - * modification operations to the {@link Mutator}. - * Alternatively, a subclass can override the modification methods. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.LiveCloneListIterable - * @see org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneListIterable - */ -public class CloneListIterator - implements ListIterator -{ - private final ListIterator listIterator; - private int cursor; - private State state; - private final Mutator mutator; - - private enum State { - UNKNOWN, - PREVIOUS, - NEXT - } - - - // ********** constructors ********** - - /** - * Construct a list iterator on a copy of the specified list. - * The modification methods will not be supported, - * unless a subclass overrides them. - */ - public CloneListIterator(List list) { - this(list, Mutator.ReadOnly.instance()); - } - - /** - * Construct a list iterator on a copy of the specified array. - * The modification methods will not be supported, - * unless a subclass overrides them. - */ - public CloneListIterator(E[] array) { - this(array, Mutator.ReadOnly.instance()); - } - - /** - * Construct a list iterator on a copy of the specified list. - * Use the specified list mutator to modify the original list. - */ - public CloneListIterator(List list, Mutator mutator) { - this(mutator, list.toArray()); - } - - /** - * Construct a list iterator on a copy of the specified array. - * Use the specified list mutator to modify the original list. - */ - public CloneListIterator(E[] array, Mutator mutator) { - this(mutator, array.clone()); - } - - /** - * Internal constructor used by subclasses. - * Swap order of arguments to prevent collision with other constructor. - * The passed in array will *not* be cloned. - */ - protected CloneListIterator(Mutator mutator, Object... array) { - super(); - // build a copy of the list and keep it in synch with original (if the mutator allows changes) - // that way the nested list iterator will maintain some of our state - this.listIterator = CollectionTools.list(array).listIterator(); - this.mutator = mutator; - this.cursor = 0; - this.state = State.UNKNOWN; - } - - - // ********** ListIterator implementation ********** - - public boolean hasNext() { - return this.listIterator.hasNext(); - } - - public E next() { - // allow the nested iterator to throw an exception before we modify the index - E next = this.nestedNext(); - this.cursor++; - this.state = State.NEXT; - return next; - } - - public void remove() { - // allow the nested iterator to throw an exception before we modify the original list - this.listIterator.remove(); - if (this.state == State.PREVIOUS) { - this.remove(this.cursor); - } else { - this.cursor--; - this.remove(this.cursor); - } - } - - public int nextIndex() { - return this.listIterator.nextIndex(); - } - - public int previousIndex() { - return this.listIterator.previousIndex(); - } - - public boolean hasPrevious() { - return this.listIterator.hasPrevious(); - } - - public E previous() { - // allow the nested iterator to throw an exception before we modify the index - E previous = this.nestedPrevious(); - this.cursor--; - this.state = State.PREVIOUS; - return previous; - } - - public void add(E o) { - // allow the nested iterator to throw an exception before we modify the original list - this.listIterator.add(o); - this.add(this.cursor, o); - this.cursor++; - } - - public void set(E o) { - // allow the nested iterator to throw an exception before we modify the original list - this.listIterator.set(o); - if (this.state == State.PREVIOUS) { - this.set(this.cursor, o); - } else { - this.set(this.cursor - 1, o); - } - } - - - // ********** internal methods ********** - - /** - * The list passed in during construction held elements of type E, - * so this cast is not a problem. We need this cast because - * all the elements of the original collection were copied into - * an object array (Object[]). - */ - @SuppressWarnings("unchecked") - protected E nestedNext() { - return (E) this.listIterator.next(); - } - - /** - * The list passed in during construction held elements of type E, - * so this cast is not a problem. We need this cast because - * all the elements of the original collection were copied into - * an object array (Object[]). - */ - @SuppressWarnings("unchecked") - protected E nestedPrevious() { - return (E) this.listIterator.previous(); - } - - /** - * Add the specified element to the original list. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Mutator}. - */ - protected void add(int index, E o) { - this.mutator.add(index, o); - } - - /** - * Remove the specified element from the original list. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Mutator}. - */ - protected void remove(int index) { - this.mutator.remove(index); - } - - /** - * Set the specified element in the original list. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Mutator}. - */ - protected void set(int index, E o) { - this.mutator.set(index, o); - } - - - // ********** overrides ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - - //********** member interface ********** - - /** - * Used by {@link CloneListIterator} to remove - * elements from the original list; since the list iterator - * does not have direct access to the original list. - */ - public interface Mutator { - - /** - * Add the specified object to the original list. - */ - void add(int index, T o); - - /** - * Remove the specified object from the original list. - */ - void remove(int index); - - /** - * Set the specified object in the original list. - */ - void set(int index, T o); - - - final class ReadOnly implements Mutator { - @SuppressWarnings("rawtypes") - public static final Mutator INSTANCE = new ReadOnly(); - @SuppressWarnings("unchecked") - public static Mutator instance() { - return INSTANCE; - } - // ensure single instance - private ReadOnly() { - super(); - } - // add is not supported - public void add(int index, Object o) { - throw new UnsupportedOperationException(); - } - // remove is not supported - public void remove(int index) { - throw new UnsupportedOperationException(); - } - // set is not supported - public void set(int index, Object o) { - throw new UnsupportedOperationException(); - } - @Override - public String toString() { - return "CloneListIterator.Mutator.ReadOnly"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeIterator.java deleted file mode 100644 index 02ad76d9d0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeIterator.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; - -/** - * A CompositeIterator wraps a collection - * of {@link Iterator}s and makes them appear to be a single - * {@link Iterator}. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.CompositeIterable - */ -public class CompositeIterator - implements Iterator -{ - private final Iterator> iterators; - private Iterator currentIterator; - private Iterator lastIteratorToReturnNext; - - - // ********** constructors ********** - - /** - * Construct an iterator that returns all the elements held by the - * specified iterables. - */ - public CompositeIterator(Iterable> iterables) { - this( - new TransformationIterator, Iterator>(iterables.iterator()) { - @Override - protected Iterator transform(Iterable iterable) { - return iterable.iterator(); - } - } - ); - } - - /** - * Construct an iterator with the specified collection of iterators. - */ - public CompositeIterator(Iterator> iterators) { - super(); - this.iterators = iterators; - } - - /** - * Construct an iterator with the specified object prepended - * to the specified iterable. - */ - public CompositeIterator(E object, Iterable iterable) { - this(object, iterable.iterator()); - } - - /** - * Construct an iterator with the specified object prepended - * to the specified iterator. - */ - @SuppressWarnings("unchecked") - public CompositeIterator(E object, Iterator iterator) { - this(new SingleElementIterator(object), iterator); - } - - /** - * Construct an iterator with the specified object appended - * to the specified iterable. - */ - public CompositeIterator(Iterable iterable, E object) { - this(iterable.iterator(), object); - } - - /** - * Construct an iterator with the specified object appended - * to the specified iterator. - */ - @SuppressWarnings("unchecked") - public CompositeIterator(Iterator iterator, E object) { - this(iterator, new SingleElementIterator(object)); - } - - /** - * Construct an iterator with the specified iterables. - */ - public CompositeIterator(Iterable... iterables) { - this(new ArrayIterable>(iterables)); - } - - /** - * Construct an iterator with the specified iterators. - */ - public CompositeIterator(Iterator... iterators) { - this(new ArrayIterator>(iterators)); - } - - - // ********** Iterator implementation ********** - - public boolean hasNext() { - try { - this.loadCurrentIterator(); - } catch (NoSuchElementException ex) { - // this occurs if there are no iterators at all - return false; - } - return this.currentIterator.hasNext(); - } - - public E next() { - this.loadCurrentIterator(); - E result = this.currentIterator.next(); - - // the statement above will throw a NoSuchElementException - // if the current iterator is at the end of the line; - // so if we get here, we can set 'lastIteratorToReturnNext' - this.lastIteratorToReturnNext = this.currentIterator; - - return result; - } - - public void remove() { - if (this.lastIteratorToReturnNext == null) { - // CompositeIterator#next() has never been called - throw new IllegalStateException(); - } - this.lastIteratorToReturnNext.remove(); - } - - /** - * Load {@link #currentIterator} with the first iterator that {@link Iterator#hasNext()} - * or the final iterator if all the elements have already been retrieved. - */ - private void loadCurrentIterator() { - if (this.currentIterator == null) { - this.currentIterator = this.iterators.next(); - } - while (( ! this.currentIterator.hasNext()) && this.iterators.hasNext()) { - this.currentIterator = this.iterators.next(); - } - } - - - // ********** overrides ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterators); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeListIterator.java deleted file mode 100644 index 3111451a92..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/CompositeListIterator.java +++ /dev/null @@ -1,270 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Arrays; -import java.util.List; -import java.util.ListIterator; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; - -/** - * A CompositeListIterator wraps a list - * of {@link ListIterator}s and makes them appear to be a single - * {@link ListIterator}. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.CompositeListIterable - */ -public class CompositeListIterator - implements ListIterator -{ - private final ListIterator> iterators; - private ListIterator nextIterator; - private int nextIndex; - /** - * true if "next" was last returned; - * false if "previous" was last returned; - * this determines the effect of {@link #remove()} on {@link #nextIndex} - */ - private boolean nextReturned; - private ListIterator lastIteratorToReturnElement; - - - /** - * Construct a list iterator on the elements in the specified list of lists. - */ - public CompositeListIterator(List> lists) { - this( - new TransformationListIterator, ListIterator>(lists.listIterator()) { - @Override - protected ListIterator transform(List list) { - return list.listIterator(); - } - } - ); - } - - /** - * Construct a list iterator on the elements in the specified list of lists. - */ - public CompositeListIterator(ListIterable> listIterables) { - this( - new TransformationListIterator, ListIterator>(listIterables.iterator()) { - @Override - protected ListIterator transform(ListIterable list) { - return list.iterator(); - } - } - ); - } - - /** - * Construct a list iterator with the specified list of list iterators. - */ - public CompositeListIterator(ListIterator> iterators) { - super(); - this.iterators = iterators; - this.nextIndex = 0; - this.nextReturned = false; - } - - /** - * Construct a list iterator with the specified object prepended - * to the specified list. - */ - public CompositeListIterator(E object, List list) { - this(object, list.listIterator()); - } - - /** - * Construct a list iterator with the specified object prepended - * to the specified list. - */ - public CompositeListIterator(E object, ListIterable listIterable) { - this(object, listIterable.iterator()); - } - - /** - * Construct a list iterator with the specified object prepended - * to the specified iterator. - */ - @SuppressWarnings("unchecked") - public CompositeListIterator(E object, ListIterator iterator) { - this(new SingleElementListIterator(object), iterator); - } - - /** - * Construct a list iterator with the specified object appended - * to the specified list. - */ - public CompositeListIterator(List list, E object) { - this(list.listIterator(), object); - } - - /** - * Construct a list iterator with the specified object appended - * to the specified list. - */ - public CompositeListIterator(ListIterable listIterable, E object) { - this(listIterable.iterator(), object); - } - - /** - * Construct a list iterator with the specified object appended - * to the specified iterator. - */ - @SuppressWarnings("unchecked") - public CompositeListIterator(ListIterator iterator, E object) { - this(iterator, new SingleElementListIterator(object)); - } - - /** - * Construct a list iterator with the specified lists. - */ - public CompositeListIterator(List... lists) { - this(Arrays.asList(lists)); - } - - /** - * Construct a list iterator with the specified lists. - */ - public CompositeListIterator(ListIterable... listIterables) { - this(new ArrayListIterable>(listIterables)); - } - - /** - * Construct a list iterator with the specified list iterators. - */ - public CompositeListIterator(ListIterator... iterators) { - this(new ArrayListIterator>(iterators)); - } - - public void add(E o) { - this.checkNextIterator(); - this.nextIterator.add(o); - this.nextIndex++; - } - - public boolean hasNext() { - try { - this.loadNextIterator(); - } catch (NoSuchElementException ex) { - // this occurs if there are no iterators at all - return false; - } - return this.nextIterator.hasNext(); - } - - public boolean hasPrevious() { - try { - this.loadPreviousIterator(); - } catch (NoSuchElementException ex) { - // this occurs if there are no iterators at all - return false; - } - return this.nextIterator.hasPrevious(); - } - - public E next() { - this.loadNextIterator(); - E result = this.nextIterator.next(); - - // the statement above will throw a NoSuchElementException - // if the current iterator is at the end of the line; - // so if we get here, we can set the 'lastIteratorToReturnElement' - this.lastIteratorToReturnElement = this.nextIterator; - this.nextIndex++; - this.nextReturned = true; - - return result; - } - - public int nextIndex() { - return this.nextIndex; - } - - public E previous() { - this.loadPreviousIterator(); - E result = this.nextIterator.previous(); - - // the statement above will throw a NoSuchElementException - // if the current iterator is at the end of the line; - // so if we get here, we can set the 'lastIteratorToReturnElement' - this.lastIteratorToReturnElement = this.nextIterator; - this.nextIndex--; - this.nextReturned = false; - - return result; - } - - public int previousIndex() { - return this.nextIndex - 1; - } - - public void remove() { - if (this.lastIteratorToReturnElement == null) { - throw new IllegalStateException(); - } - this.lastIteratorToReturnElement.remove(); - if (this.nextReturned) { - // decrement the index because the "next" element has moved forward in the list - this.nextIndex--; - } - } - - public void set(E e) { - if (this.lastIteratorToReturnElement == null) { - throw new IllegalStateException(); - } - this.lastIteratorToReturnElement.set(e); - } - - /** - * Load 'nextIterator' with the first iterator that hasNext() - * or the final iterator if all the elements have already been retrieved. - */ - private void loadNextIterator() { - this.checkNextIterator(); - while (( ! this.nextIterator.hasNext()) && this.iterators.hasNext()) { - this.nextIterator = this.iterators.next(); - } - } - - /** - * Load 'nextIterator' with the first iterator that hasPrevious() - * or the first iterator if all the elements have already been retrieved. - */ - private void loadPreviousIterator() { - this.checkNextIterator(); - while (( ! this.nextIterator.hasPrevious()) && this.iterators.hasPrevious()) { - this.nextIterator = this.iterators.previous(); - } - } - - /** - * If 'nextIterator' is null, load it with the first iterator. - */ - private void checkNextIterator() { - if (this.nextIterator == null) { - this.nextIterator = this.iterators.next(); - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterators); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyIterator.java deleted file mode 100644 index f06e2e03d8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyIterator.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * An EmptyIterator is just that. - * - * @param the type of elements (not) returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable - */ -public final class EmptyIterator - implements Iterator -{ - - // singleton - @SuppressWarnings("rawtypes") - private static final EmptyIterator INSTANCE = new EmptyIterator(); - - /** - * Return the singleton. - */ - @SuppressWarnings("unchecked") - public static Iterator instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private EmptyIterator() { - super(); - } - - public boolean hasNext() { - return false; - } - - public E next() { - throw new NoSuchElementException(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyListIterator.java deleted file mode 100644 index 73e23766a1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EmptyListIterator.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.ListIterator; -import java.util.NoSuchElementException; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * An EmptyListIterator is just that. - * - * @param the type of elements (not) returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.EmptyListIterable - */ -public final class EmptyListIterator - implements ListIterator -{ - - // singleton - @SuppressWarnings("rawtypes") - private static final EmptyListIterator INSTANCE = new EmptyListIterator(); - - /** - * Return the singleton. - */ - @SuppressWarnings("unchecked") - public static ListIterator instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private EmptyListIterator() { - super(); - } - - public void add(E e) { - throw new UnsupportedOperationException(); - } - - public boolean hasNext() { - return false; - } - - public boolean hasPrevious() { - return false; - } - - public E next() { - throw new NoSuchElementException(); - } - - public int nextIndex() { - return 0; - } - - public E previous() { - throw new NoSuchElementException(); - } - - public int previousIndex() { - return -1; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - public void set(E e) { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EnumerationIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EnumerationIterator.java deleted file mode 100644 index d8e9d38e25..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/EnumerationIterator.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Enumeration; -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * An EnumerationIterator wraps an - * {@link Enumeration} so that it can be treated like an - * {@link Iterator}. - * - * @param the type of elements returned by the iterator - */ -public class EnumerationIterator - implements Iterator -{ - private final Enumeration enumeration; - - /** - * Construct an iterator that wraps the specified enumeration. - */ - public EnumerationIterator(Enumeration enumeration) { - this.enumeration = enumeration; - } - - public boolean hasNext() { - return this.enumeration.hasMoreElements(); - } - - public E next() { - return this.enumeration.nextElement(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.enumeration); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/FilteringIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/FilteringIterator.java deleted file mode 100644 index 4c3176c9d4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/FilteringIterator.java +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A FilteringIterator wraps another {@link Iterator} - * and uses a {@link Filter} to determine which elements in the - * nested iterator are to be returned by calls to {@link #next()}. - *

- * As an alternative to building a {@link Filter}, a subclass - * of FilteringIterator can override the - * {@link #accept(Object)} method. - *

- * One, possibly undesirable, side-effect of using this iterator is that - * the nested iterator's next() method will be invoked - * before the filtered iterator's {@link #next()} - * method is invoked. This is because the "next" element must be - * checked for whether it is to be accepted before the filtered iterator - * can determine whether it has a "next" element (i.e. that the - * {@link #hasNext()} method should return true). - * This also prevents a filtered iterator from supporting the optional - * remove() method. - * - * @param the type of elements to be filtered - * - * @see org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable - */ -public class FilteringIterator - implements Iterator -{ - private final Iterator iterator; - private final Filter filter; - private E next; - private boolean done; - - - /** - * Construct an iterator with the specified - * iterable and a disabled filter. - * Use this constructor if you want to override the - * {@link #accept(Object)} method instead of building - * a {@link Filter}. - */ - public FilteringIterator(Iterable iterable) { - this(iterable.iterator()); - } - - /** - * Construct an iterator with the specified nested - * iterator and a disabled filter. - * Use this constructor if you want to override the - * {@link #accept(Object)} method instead of building - * a {@link Filter}. - */ - public FilteringIterator(Iterator iterator) { - this(iterator, Filter.Disabled.instance()); - } - - /** - * Construct an iterator with the specified - * iterable and filter. - */ - public FilteringIterator(Iterable iterable, Filter filter) { - this(iterable.iterator(), filter); - } - - /** - * Construct an iterator with the specified nested - * iterator and filter. - */ - public FilteringIterator(Iterator iterator, Filter filter) { - super(); - this.iterator = iterator; - this.filter = filter; - this.loadNext(); - } - - public boolean hasNext() { - return ! this.done; - } - - public E next() { - if (this.done) { - throw new NoSuchElementException(); - } - E result = this.next; - this.loadNext(); - return result; - } - - /** - * Because we need to pre-load the next element - * to be returned, we cannot support the remove() - * method. - */ - public void remove() { - throw new UnsupportedOperationException(); - } - - /** - * Load next with the next valid entry from the nested - * iterator. If there are none, next is set to END. - */ - private void loadNext() { - this.done = true; - while (this.iterator.hasNext() && (this.done)) { - E temp = this.iterator.next(); - if (this.accept(temp)) { - // assume that if the object was accepted it is of type E - this.next = temp; - this.done = false; - } else { - this.next = null; - this.done = true; - } - } - } - - /** - * Return whether the {@link FilteringIterator} - * should return the specified next element from a call to the - * {@link #next()} method. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Filter}. - */ - protected boolean accept(E o) { - return this.filter.accept(o); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/GraphIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/GraphIterator.java deleted file mode 100644 index ff50f16ce4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/GraphIterator.java +++ /dev/null @@ -1,283 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A GraphIterator is similar to a {@link TreeIterator} - * except that it cannot be assumed that all nodes assume a strict tree - * structure. For instance, in a tree, a node cannot be a descendent of - * itself, but a graph may have a cyclical structure. - * - * A GraphIterator simplifies the traversal of a - * graph of objects, where the objects' protocol(s) provides - * a method for getting the next collection of nodes in the graph, - * (or neighbors), but does not provide a method for - * getting all of the nodes in the graph. - * (e.g. a neighbor can return his neighbors, and those neighbors - * can return their neighbors, which might also include the original - * neighbor, but you only want to visit the original neighbor once.) - *

- * If a neighbor has already been visited (determined by using - * {@link #equals(Object)}), that neighbor is not visited again, - * nor are the neighbors of that object. - *

- * It is up to the user of this class to ensure a complete graph. - *

- * To use, supply:

    - *
  • either the initial node of the graph or an {@link Iterator} - * over an initial collection of graph nodes - *
  • a {@link MisterRogers} that tells who the neighbors are - * of each node - * (alternatively, subclass GraphIterator - * and override the {@link #neighbors(Object)} method) - *
- * {@link #remove()} is not supported. This behavior, if - * desired, must be implemented by the user of this class. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.GraphIterable - */ -public class GraphIterator - implements Iterator -{ - // use a LinkedList since we will be pulling off the front and adding to the end - private final LinkedList> iterators = new LinkedList>(); - private final HashSet visitedNeighbors = new HashSet(); - private final MisterRogers misterRogers; - - private Iterator currentIterator; - - private E nextNeighbor; - private boolean done; - - - /** - * Construct an iterator that returns the nodes of a graph - * with the specified collection of roots - * and a disabled Mr. Rogers. - * Use this constructor if you want to override the - * {@link #neighbors(Object)} method instead of building - * a {@link MisterRogers}. - */ - public GraphIterator(E... roots) { - this(new ArrayIterator(roots)); - } - - /** - * Construct an iterator that returns the nodes of a graph - * with the specified collection of roots - * and a disabled Mr. Rogers. - * Use this constructor if you want to override the - * {@link #neighbors(Object)} method instead of building - * a {@link MisterRogers}. - */ - public GraphIterator(Iterable roots) { - this(roots.iterator()); - } - - /** - * Construct an iterator that returns the nodes of a graph - * with the specified collection of roots - * and a disabled Mr. Rogers. - * Use this constructor if you want to override the - * {@link #neighbors(Object)} method instead of building - * a {@link MisterRogers}. - */ - public GraphIterator(Iterator roots) { - this(roots, MisterRogers.Disabled.instance()); - } - - /** - * Construct an iterator that returns the nodes of a graph - * with the specified root - * and a disabled Mr. Rogers. - * Use this constructor if you want to override the - * neighbors(Object) method instead of building - * a MisterRogers. - */ - public GraphIterator(E root) { - this(root, MisterRogers.Disabled.instance()); - } - - /** - * Construct an iterator that returns the nodes of a graph - * with the specified root and Mr. Rogers. - */ - public GraphIterator(E root, MisterRogers misterRogers) { - this(new SingleElementIterator(root), misterRogers); - } - - /** - * Construct an iterator that returns the nodes of a graph - * with the specified collection of roots and Mr. Rogers. - */ - public GraphIterator(E[] roots, MisterRogers misterRogers) { - this(new ArrayIterator(roots), misterRogers); - } - - /** - * Construct an iterator that returns the nodes of a graph - * with the specified roots and Mr. Rogers. - */ - public GraphIterator(Iterable roots, MisterRogers misterRogers) { - this(roots.iterator(), misterRogers); - } - - /** - * Construct an iterator that returns the nodes of a graph - * with the specified roots and Mr. Rogers. - */ - public GraphIterator(Iterator roots, MisterRogers misterRogers) { - super(); - this.currentIterator = roots; - this.misterRogers = misterRogers; - this.loadNextNeighbor(); - } - - /** - * Load next neighbor with the next entry from the current iterator. - * If the current iterator has none, load the next iterator. - * If there are no more, the {@link #done} flag is set. - */ - private void loadNextNeighbor() { - if (this.currentIterator == EmptyIterator.instance()) { - this.done = true; - } - else if (this.currentIterator.hasNext()) { - E nextPossibleNeighbor = this.currentIterator.next(); - if (this.visitedNeighbors.contains(nextPossibleNeighbor)) { - this.loadNextNeighbor(); // recurse - } else { - this.nextNeighbor = nextPossibleNeighbor; - this.visitedNeighbors.add(nextPossibleNeighbor); - this.iterators.add(this.neighbors(nextPossibleNeighbor)); - } - } - else { - for (Iterator> stream = this.iterators.iterator(); ! this.currentIterator.hasNext() && stream.hasNext(); ) { - this.currentIterator = stream.next(); - stream.remove(); - } - if ( ! this.currentIterator.hasNext()) { - this.currentIterator = EmptyIterator.instance(); - } - this.loadNextNeighbor(); // recurse - } - } - - public boolean hasNext() { - return ! this.done; - } - - public E next() { - if (this.done) { - throw new NoSuchElementException(); - } - E next = this.nextNeighbor; - this.loadNextNeighbor(); - return next; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - /** - * Return the immediate neighbors of the specified object. - */ - protected Iterator neighbors(E next) { - return this.misterRogers.neighbors(next); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.currentIterator); - } - - - //********** inner classes ********** - - /** - * Used by {@link GraphIterator} to retrieve - * the immediate neighbors of a node in the graph. - * "These are the people in your neighborhood..." - */ - public interface MisterRogers { - - /** - * Return the immediate neighbors of the specified object. - */ - Iterator neighbors(T next); - - - final class Null implements MisterRogers { - @SuppressWarnings("rawtypes") - public static final MisterRogers INSTANCE = new Null(); - @SuppressWarnings("unchecked") - public static MisterRogers instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - // return no neighbors - public Iterator neighbors(S next) { - return EmptyIterator.instance(); - } - @Override - public String toString() { - return "GraphIterator.MisterRogers.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - /** The Mr. Rogers used when the {@link GraphIterator#neighbors(Object)} method is overridden. */ - final class Disabled implements MisterRogers { - @SuppressWarnings("rawtypes") - public static final MisterRogers INSTANCE = new Disabled(); - @SuppressWarnings("unchecked") - public static MisterRogers instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public Iterator neighbors(S next) { - throw new UnsupportedOperationException(); // GraphIterator.neighbors(Object) was not implemented - } - @Override - public String toString() { - return "GraphIterator.MisterRogers.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/PeekableIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/PeekableIterator.java deleted file mode 100644 index 1a1f6284ae..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/PeekableIterator.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A PeekableIterator wraps another {@link Iterator} - * and allows a {@link #peek()} at the next element to be - * returned by {@link #next()}. - *

- * One, possibly undesirable, side-effect of using this iterator is that - * the nested iterator's next() method will be invoked - * before the peekable iterator's {@link #next()} - * method is invoked. This is because the "next" element must be - * pre-loaded for the {@link #peek()} method. - * This also prevents a peekable iterator from supporting the optional - * {@link #remove()} method. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.PeekableIterable - */ -public class PeekableIterator - implements Iterator -{ - private final Iterator iterator; - private E next; - private boolean done; - - - /** - * Construct a peekable iterator that wraps the specified - * iterable. - */ - public PeekableIterator(Iterable iterable) { - this(iterable.iterator()); - } - - /** - * Construct a peekable iterator that wraps the specified nested - * iterator. - */ - public PeekableIterator(Iterator iterator) { - super(); - this.iterator = iterator; - this.done = false; - this.loadNext(); - } - - public boolean hasNext() { - return ! this.done; - } - - public E next() { - if (this.done) { - throw new NoSuchElementException(); - } - E result = this.next; - this.loadNext(); - return result; - } - - /** - * Return the element that will be returned by the next call to the - * {@link #next()} method, without advancing past it. - */ - public E peek() { - if (this.done) { - throw new NoSuchElementException(); - } - return this.next; - } - - /** - * Because we need to pre-load the next element - * to be returned, we cannot support the {@link #remove()} - * method. - */ - public void remove() { - throw new UnsupportedOperationException(); - } - - /** - * Load next with the next entry from the nested - * iterator. If there are none, {@link #next} is set to null - * and {@link #done} is set to true. - */ - private void loadNext() { - if (this.iterator.hasNext()) { - this.next = this.iterator.next(); - } else { - this.next = null; - this.done = true; - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/QueueIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/QueueIterator.java deleted file mode 100644 index 4f946237b0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/QueueIterator.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.Queue; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A QueueIterator provides an {@link Iterator} - * for a {@link Queue} of objects of type E. The queue's elements - * are {@link Queue#dequeue() dequeue}d" as the iterator returns them with - * calls to {@link #next()}. - * - * @param the type of elements returned by the iterator - * - * @see Queue - * @see org.eclipse.jpt.common.utility.internal.iterables.QueueIterable - */ -public class QueueIterator - implements Iterator -{ - private final Queue queue; - - - /** - * Construct an iterator for the specified queue. - */ - public QueueIterator(Queue queue) { - super(); - this.queue = queue; - } - - public boolean hasNext() { - return ! this.queue.isEmpty(); - } - - public E next() { - return this.queue.dequeue(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.queue); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyCompositeListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyCompositeListIterator.java deleted file mode 100644 index 425788548e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyCompositeListIterator.java +++ /dev/null @@ -1,252 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Arrays; -import java.util.List; -import java.util.ListIterator; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; - -/** - * A ReadOnlyCompositeListIterator wraps a list - * of {@link ListIterator}s and makes them appear to be a single - * read-only {@link ListIterator}. A read-only composite list - * iterator is more flexible than a normal composite list iterator when it - * comes to the element types of the nested iterators. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.ReadOnlyCompositeListIterable - */ -public class ReadOnlyCompositeListIterator - implements ListIterator -{ - private final ListIterator> iterators; - private ListIterator nextIterator; - private int nextIndex; - - - /** - * Construct a read-only list iterator with the specified list of lists. - */ - public ReadOnlyCompositeListIterator(List> lists) { - this( - new TransformationListIterator, ListIterator>(lists.listIterator()) { - @Override - protected ListIterator transform(List list) { - return list.listIterator(); - } - } - ); - } - - /** - * Construct a read-only list iterator with the specified list of lists. - */ - public ReadOnlyCompositeListIterator(ListIterable> listIterables) { - this( - new TransformationListIterator, ListIterator>(listIterables.iterator()) { - @Override - protected ListIterator transform(ListIterable listIterable) { - return listIterable.iterator(); - } - } - ); - } - - /** - * Construct a read-only list iterator with the specified list of - * list iterators. - */ - public ReadOnlyCompositeListIterator(ListIterator> iterators) { - super(); - this.iterators = iterators; - this.nextIndex = 0; - } - - /** - * Construct a read-only list iterator with the specified object prepended - * to the specified list. - */ - public ReadOnlyCompositeListIterator(E object, List list) { - this(object, list.listIterator()); - } - - /** - * Construct a read-only list iterator with the specified object prepended - * to the specified list. - */ - public ReadOnlyCompositeListIterator(E object, ListIterable listIterable) { - this(object, listIterable.iterator()); - } - - /** - * Construct a read-only list iterator with the specified object prepended - * to the specified iterator. - */ - @SuppressWarnings("unchecked") - public ReadOnlyCompositeListIterator(E object, ListIterator iterator) { - this(new SingleElementListIterator(object), iterator); - } - - /** - * Construct a read-only list iterator with the specified object appended - * to the specified list. - */ - public ReadOnlyCompositeListIterator(List list, E object) { - this(list.listIterator(), object); - } - - /** - * Construct a read-only list iterator with the specified object appended - * to the specified list. - */ - public ReadOnlyCompositeListIterator(ListIterable listIterable, E object) { - this(listIterable.iterator(), object); - } - - /** - * Construct a read-only list iterator with the specified object appended - * to the specified iterator. - */ - @SuppressWarnings("unchecked") - public ReadOnlyCompositeListIterator(ListIterator iterator, E object) { - this(iterator, new SingleElementListIterator(object)); - } - - /** - * Construct a read-only list iterator with the specified lists. - */ - public ReadOnlyCompositeListIterator(List... lists) { - this(Arrays.asList(lists)); - } - - /** - * Construct a read-only list iterator with the specified lists. - */ - public ReadOnlyCompositeListIterator(ListIterable... listIterables) { - this(new ArrayListIterable>(listIterables)); - } - - /** - * Construct a read-only list iterator with the specified list iterators. - */ - public ReadOnlyCompositeListIterator(ListIterator... iterators) { - this(new ArrayListIterator>(iterators)); - } - - public boolean hasNext() { - try { - this.loadNextIterator(); - } catch (NoSuchElementException ex) { - // this occurs if there are no iterators at all - return false; - } - return this.nextIterator.hasNext(); - } - - public boolean hasPrevious() { - try { - this.loadPreviousIterator(); - } catch (NoSuchElementException ex) { - // this occurs if there are no iterators at all - return false; - } - return this.nextIterator.hasPrevious(); - } - - public E next() { - this.loadNextIterator(); - E result = this.nextIterator.next(); - - // the statement above will throw a NoSuchElementException - // if the current iterator is at the end of the line; - // so if we get here, we can increment 'nextIndex' - this.nextIndex++; - - return result; - } - - public int nextIndex() { - return this.nextIndex; - } - - public E previous() { - this.loadPreviousIterator(); - E result = this.nextIterator.previous(); - - // the statement above will throw a NoSuchElementException - // if the current iterator is at the end of the line; - // so if we get here, we can decrement 'nextIndex' - this.nextIndex--; - - return result; - } - - public int previousIndex() { - return this.nextIndex - 1; - } - - public void add(E o) { - // the list iterator is read-only - throw new UnsupportedOperationException(); - } - - public void remove() { - // the list iterator is read-only - throw new UnsupportedOperationException(); - } - - public void set(E e) { - // the list iterator is read-only - throw new UnsupportedOperationException(); - } - - /** - * Load {@link #nextIterator} with the first iterator that {@link #hasNext()} - * or the final iterator if all the elements have already been retrieved. - */ - private void loadNextIterator() { - this.checkNextIterator(); - while (( ! this.nextIterator.hasNext()) && this.iterators.hasNext()) { - this.nextIterator = this.iterators.next(); - } - } - - /** - * Load {@link #nextIterator} with the first iterator that {@link #hasPrevious()} - * or the first iterator if all the elements have already been retrieved. - */ - private void loadPreviousIterator() { - this.checkNextIterator(); - while (( ! this.nextIterator.hasPrevious()) && this.iterators.hasPrevious()) { - this.nextIterator = this.iterators.previous(); - } - } - - /** - * If {@link #nextIterator} is null, load it with the first iterator. - */ - private void checkNextIterator() { - if (this.nextIterator == null) { - this.nextIterator = this.iterators.next(); - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterators); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyIterator.java deleted file mode 100644 index 5673d3d190..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyIterator.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A ReadOnlyIterator wraps another {@link Iterator} - * and removes support for {@link #remove()}. - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.ReadOnlyIterable - */ -public class ReadOnlyIterator - implements Iterator -{ - private final Iterator iterator; - - /** - * Construct an iterator on the specified collection that - * disallows removes. - */ - public ReadOnlyIterator(Iterable c) { - this(c.iterator()); - } - - /** - * Construct an iterator with the specified nested iterator - * and disallow removes. - */ - public ReadOnlyIterator(Iterator iterator) { - super(); - this.iterator = iterator; - } - - public boolean hasNext() { - // delegate to the nested iterator - return this.iterator.hasNext(); - } - - public E next() { - // delegate to the nested iterator - return this.iterator.next(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyListIterator.java deleted file mode 100644 index ac09133a5d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReadOnlyListIterator.java +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; - -/** - * A ReadOnlyListIterator wraps another - * {@link ListIterator} and removes support for:

    - *
  • {@link #remove()} - *
  • {@link #set(Object)} - *
  • {@link #add(Object)} - *
- * - * @param the type of elements returned by the list iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.ReadOnlyListIterable - */ -public class ReadOnlyListIterator - implements ListIterator -{ - private final ListIterator listIterator; - - - /** - * Construct a list iterator on the specified list that - * disallows removes, sets, and adds. - */ - public ReadOnlyListIterator(List list) { - this(list.listIterator()); - } - - /** - * Construct a list iterator on the specified list that - * disallows removes, sets, and adds. - */ - public ReadOnlyListIterator(ListIterable listIterable) { - this(listIterable.iterator()); - } - - /** - * Construct a list iterator on the specified list iterator that - * disallows removes, sets, and adds. - */ - public ReadOnlyListIterator(ListIterator listIterator) { - super(); - this.listIterator = listIterator; - } - - public boolean hasNext() { - // delegate to the nested iterator - return this.listIterator.hasNext(); - } - - public E next() { - // delegate to the nested iterator - return this.listIterator.next(); - } - - public boolean hasPrevious() { - // delegate to the nested iterator - return this.listIterator.hasPrevious(); - } - - public E previous() { - // delegate to the nested iterator - return this.listIterator.previous(); - } - - public int nextIndex() { - // delegate to the nested iterator - return this.listIterator.nextIndex(); - } - - public int previousIndex() { - // delegate to the nested iterator - return this.listIterator.previousIndex(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - public void set(E o) { - throw new UnsupportedOperationException(); - } - - public void add(E o) { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listIterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ResultSetIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ResultSetIterator.java deleted file mode 100644 index 03cf8c8863..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ResultSetIterator.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.Iterator; -import java.util.NoSuchElementException; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A ResultSetIterator wraps an SQL {@link ResultSet} - * and transforms its rows for client consumption. Subclasses can override - * {@link #buildNext(ResultSet)} to build the expected object from - * the current row of the result set. - *

- * To use, supply:

    - *
  • a {@link ResultSet} - *
  • an {@link Adapter} that converts a row in the {@link ResultSet} - * into the desired object - * (alternatively, subclass ResultSetIterator - * and override the {@link #buildNext(ResultSet)} method) - *
- * - * @param the type of elements returned by the iterator - * - * @see java.sql.ResultSet - */ -public class ResultSetIterator - implements Iterator -{ - private final ResultSet resultSet; - private final Adapter adapter; - private E next; - private boolean done; - - - /** - * Construct an iterator on the specified result set that returns - * the objects produced by the specified adapter. - */ - public ResultSetIterator(ResultSet resultSet, Adapter adapter) { - super(); - this.resultSet = resultSet; - this.adapter = adapter; - this.done = false; - this.next = this.buildNext(); - } - - /** - * Construct an iterator on the specified result set that returns - * the first object in each row of the result set. - */ - public ResultSetIterator(ResultSet resultSet) { - this(resultSet, Adapter.Default.instance()); - } - - /** - * Build the next object for the iterator to return. - * Close the result set when we reach the end. - */ - private E buildNext() { - try { - if (this.resultSet.next()) { - return this.buildNext(this.resultSet); - } - this.resultSet.close(); - this.done = true; - return null; - } catch (SQLException ex) { - throw new RuntimeException(ex); - } - } - - /** - * By default, return the first object in the current row - * of the result set. Any {@link SQLException}s will - * be caught and wrapped in a {@link RuntimeException}. - */ - protected E buildNext(ResultSet rs) throws SQLException { - return this.adapter.buildNext(rs); - } - - public boolean hasNext() { - return ! this.done; - } - - public E next() { - if (this.done) { - throw new NoSuchElementException(); - } - E temp = this.next; - this.next = this.buildNext(); - return temp; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.resultSet); - } - - - // ********** interface ********** - - /** - * Used by {@link ResultSetIterator} to convert a - * {@link ResultSet}'s current row into the next object - * to be returned by the {@link Iterator}. - */ - public interface Adapter { - - /** - * Return an object corresponding to the result set's - * "current" row. Any {@link SQLException}s will - * be caught and wrapped in a {@link RuntimeException}. - * @see java.sql.ResultSet - */ - T buildNext(ResultSet rs) throws SQLException; - - - final class Default implements Adapter { - @SuppressWarnings("rawtypes") - public static final Adapter INSTANCE = new Default(); - @SuppressWarnings("unchecked") - public static Adapter instance() { - return INSTANCE; - } - // ensure single instance - private Default() { - super(); - } - // return the first object in the current row of the result set - @SuppressWarnings("unchecked") - public S buildNext(ResultSet rs) throws SQLException { - // result set columns are indexed starting with 1 - return (S) rs.getObject(1); - } - @Override - public String toString() { - return "ResultSetIterator.Adapter.Default"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReverseIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReverseIterator.java deleted file mode 100644 index 7b8bfb4a07..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/ReverseIterator.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.ArrayList; -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A ReverseIterator wraps another {@link Iterator} and returns - * its elements in the reverse order in which the wrapped {@link Iterator} - * returns the elements. - * - * @param the type of elements returned by the iterator - */ -public class ReverseIterator - implements Iterator -{ - /** - * The elements in this iterator are already reversed. - */ - private final Iterator iterator; - - - /** - * Construct a reverse iterator for the specified iterator. - */ - public ReverseIterator(Iterator iterator) { - this(CollectionTools.reverseList(iterator)); - } - - /** - * Construct a reverse iterator for the specified iterator. - */ - public ReverseIterator(Iterator iterator, int size) { - this(CollectionTools.reverseList(iterator, size)); - } - - /** - * Construct a reverse iterator for the specified iterable. - */ - public ReverseIterator(Iterable iterable) { - this(CollectionTools.reverseList(iterable)); - } - - /** - * Construct a reverse iterator for the specified iterable. - */ - public ReverseIterator(Iterable iterable, int size) { - this(CollectionTools.reverseList(iterable, size)); - } - - private ReverseIterator(ArrayList reverseList) { - super(); - this.iterator = reverseList.iterator(); - } - - public boolean hasNext() { - return this.iterator.hasNext(); - } - - public E next() { - return this.iterator.next(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementIterator.java deleted file mode 100644 index a6a743d1c7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementIterator.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A SingleElementIterator holds a single element - * and returns it with the first call to {@link #next()}, at - * which point it will return false to any subsequent - * call to {@link #hasNext()}. - *

- * A SingleElementIterator is equivalent to the - * {@link Iterator} returned by: - * {@link java.util.Collections#singleton(Object element)}.iterator() - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.SingleElementIterable - */ -public class SingleElementIterator - implements Iterator -{ - private final E element; - private boolean done; - - - /** - * Construct an iterator that returns only the specified element. - */ - public SingleElementIterator(E element) { - super(); - this.element = element; - this.done = false; - } - - public boolean hasNext() { - return ! this.done; - } - - public E next() { - if (this.done) { - throw new NoSuchElementException(); - } - this.done = true; - return this.element; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.element); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementListIterator.java deleted file mode 100644 index 9363cd0be7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SingleElementListIterator.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.ListIterator; -import java.util.NoSuchElementException; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A SingleElementListIterator holds a single element - * and returns it with the first call to {@link #next()}, at - * which point it will return false to any subsequent - * call to {@link #hasNext()}. Likewise, it will return false - * to a call to {@link #hasPrevious()} until a call to {@link #next()}, - * at which point a call to {@link #previous()} will return the - * single element. - *

- * A SingleElementListIterator is equivalent to the - * {@link ListIterator} returned by: - * {@link java.util.Collections#singletonList(Object element)}.listIterator() - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.SingleElementListIterable - */ -public class SingleElementListIterator - implements ListIterator -{ - private final E element; - private boolean hasNext; - - - /** - * Construct a list iterator that returns only the specified element. - */ - public SingleElementListIterator(E element) { - super(); - this.element = element; - this.hasNext = true; - } - - public boolean hasNext() { - return this.hasNext; - } - - public E next() { - if (this.hasNext) { - this.hasNext = false; - return this.element; - } - throw new NoSuchElementException(); - } - - public int nextIndex() { - return this.hasNext ? 0 : 1; - } - - public boolean hasPrevious() { - return ! this.hasNext; - } - - public E previous() { - if (this.hasNext) { - throw new NoSuchElementException(); - } - this.hasNext = true; - return this.element; - } - - public int previousIndex() { - return this.hasNext ? -1 : 0; - } - - public void add(E e) { - throw new UnsupportedOperationException(); - } - - public void set(E e) { - throw new UnsupportedOperationException(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.element); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/StackIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/StackIterator.java deleted file mode 100644 index d8106d037a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/StackIterator.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.Stack; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A StackIterator provides an {@link Iterator} - * for a {@link Stack} of objects of type E. The stack's elements - * are {@link Stack#pop() pop}ped" as the iterator returns them with - * calls to {@link #next()}. - * - * @param the type of elements returned by the iterator - * - * @see Stack - * @see org.eclipse.jpt.common.utility.internal.iterables.StackIterable - */ -public class StackIterator - implements Iterator -{ - private final Stack stack; - - - /** - * Construct an iterator for the specified stack. - */ - public StackIterator(Stack stack) { - super(); - this.stack = stack; - } - - public boolean hasNext() { - return ! this.stack.isEmpty(); - } - - public E next() { - return this.stack.pop(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.stack); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubIteratorWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubIteratorWrapper.java deleted file mode 100644 index 3f7b3447f6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubIteratorWrapper.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Wrap an iterator on elements of type E1, converting it into an - * iterator on elements of type E2. Assume the wrapped - * iterator returns only elements of type E2. - * - * @param input: the type of elements returned by the wrapped iterator - * @param output: the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.SubIterableWrapper - */ -public class SubIteratorWrapper - implements Iterator -{ - private final Iterator iterator; - - - public SubIteratorWrapper(Iterable iterable) { - this(iterable.iterator()); - } - - public SubIteratorWrapper(Iterator iterator) { - super(); - this.iterator = iterator; - } - - public boolean hasNext() { - return this.iterator.hasNext(); - } - - @SuppressWarnings("unchecked") - public E2 next() { - return (E2) this.iterator.next(); - } - - public void remove() { - this.iterator.remove(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubListIteratorWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubListIteratorWrapper.java deleted file mode 100644 index 534926384f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SubListIteratorWrapper.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; - -/** - * Wrap a list iterator on elements of type E1, converting it into - * a list iterator on elements of type E2. Assume the wrapped - * list iterator returns only elements of type E2. - * - * @param input: the type of elements returned by the wrapped list iterator - * @param output: the type of elements returned by the list iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.SubListIterableWrapper - */ -public class SubListIteratorWrapper - implements ListIterator -{ - private final ListIterator listIterator; - - - public SubListIteratorWrapper(List list) { - this(list.listIterator()); - } - - public SubListIteratorWrapper(ListIterable listIterable) { - this(listIterable.iterator()); - } - - public SubListIteratorWrapper(ListIterator iterator) { - super(); - this.listIterator = iterator; - } - - public boolean hasNext() { - return this.listIterator.hasNext(); - } - - @SuppressWarnings("unchecked") - public E2 next() { - return (E2) this.listIterator.next(); - } - - public int nextIndex() { - return this.listIterator.nextIndex(); - } - - public boolean hasPrevious() { - return this.listIterator.hasPrevious(); - } - - @SuppressWarnings("unchecked") - public E2 previous() { - return (E2) this.listIterator.previous(); - } - - public int previousIndex() { - return this.listIterator.previousIndex(); - } - - public void remove() { - this.listIterator.remove(); - } - - public void set(E2 e) { - throw new UnsupportedOperationException(); - } - - public void add(E2 e) { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listIterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperIteratorWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperIteratorWrapper.java deleted file mode 100644 index 2bd19a9d96..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperIteratorWrapper.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Wrap an iterator on elements of any sub-type of E, converting - * it into an iterator on elements of type E. This shouldn't be a - * problem since there is no way to add invalid elements to the iterator's - * backing collection. (Note the lack of compiler warnings, suppressed or - * otherwise.) - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.SuperIterableWrapper - */ -public class SuperIteratorWrapper - implements Iterator -{ - private final Iterator iterator; - - - public SuperIteratorWrapper(Iterable iterable) { - this(iterable.iterator()); - } - - public SuperIteratorWrapper(Iterator iterator) { - super(); - this.iterator = iterator; - } - - public boolean hasNext() { - return this.iterator.hasNext(); - } - - public E next() { - return this.iterator.next(); - } - - public void remove() { - this.iterator.remove(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperListIteratorWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperListIteratorWrapper.java deleted file mode 100644 index d12773a57c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SuperListIteratorWrapper.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; - -/** - * Wrap a list iterator on elements of any sub-type of E, converting it into a - * list iterator on elements of type E. This shouldn't be a problem since the - * resulting list iterator disables the methods that would put invalid elements - * in the iterator's backing list (i.e. {@link #set(Object)} and {@link #add(Object)}). - * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.SuperListIterableWrapper - */ -public class SuperListIteratorWrapper - implements ListIterator -{ - private final ListIterator listIterator; - - - public SuperListIteratorWrapper(List list) { - this(list.listIterator()); - } - - public SuperListIteratorWrapper(ListIterable listIterable) { - this(listIterable.iterator()); - } - - public SuperListIteratorWrapper(ListIterator listIterator) { - super(); - this.listIterator = listIterator; - } - - public boolean hasNext() { - return this.listIterator.hasNext(); - } - - public E next() { - return this.listIterator.next(); - } - - public int nextIndex() { - return this.listIterator.nextIndex(); - } - - public boolean hasPrevious() { - return this.listIterator.hasPrevious(); - } - - public E previous() { - return this.listIterator.previous(); - } - - public int previousIndex() { - return this.listIterator.previousIndex(); - } - - public void remove() { - this.listIterator.remove(); - } - - public void set(E e) { - throw new UnsupportedOperationException(); - } - - public void add(E e) { - throw new UnsupportedOperationException(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listIterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedIterator.java deleted file mode 100644 index 8efef7eb2e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedIterator.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * Wrap an iterator and synchronize all its methods so it can be safely shared - * among multiple threads. - * - * @param the type of elements returned by the iterator - */ -public class SynchronizedIterator - implements Iterator -{ - private final Iterator iterator; - - /** Object to synchronize on. */ - private final Object mutex; - - - public SynchronizedIterator(Iterable iterable) { - this(iterable.iterator()); - } - - public SynchronizedIterator(Iterable iterable, Object mutex) { - this(iterable.iterator(), mutex); - } - - public SynchronizedIterator(Iterator iterator) { - super(); - this.iterator = iterator; - this.mutex = this; - } - - public SynchronizedIterator(Iterator iterator, Object mutex) { - super(); - this.iterator = iterator; - this.mutex = mutex; - } - - public synchronized boolean hasNext() { - synchronized (this.mutex) { - return this.iterator.hasNext(); - } - } - - public synchronized E next() { - synchronized (this.mutex) { - return this.iterator.next(); - } - } - - public synchronized void remove() { - synchronized (this.mutex) { - this.iterator.remove(); - } - } - - @Override - public String toString() { - synchronized (this.mutex) { - return StringTools.buildToStringFor(this, this.iterator); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedListIterator.java deleted file mode 100644 index 87e6384bf5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/SynchronizedListIterator.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; - -/** - * Wrap a list iterator and synchronize all its methods so it can be safely shared - * among multiple threads. - * - * @param the type of elements returned by the iterator - */ -public class SynchronizedListIterator - implements ListIterator -{ - private final ListIterator listIterator; - - /** Object to synchronize on. */ - private final Object mutex; - - - public SynchronizedListIterator(List list) { - this(list.listIterator()); - } - - public SynchronizedListIterator(List list, Object mutex) { - this(list.listIterator(), mutex); - } - - public SynchronizedListIterator(ListIterable listIterable) { - this(listIterable.iterator()); - } - - public SynchronizedListIterator(ListIterable listIterable, Object mutex) { - this(listIterable.iterator(), mutex); - } - - public SynchronizedListIterator(ListIterator listIterator) { - super(); - this.listIterator = listIterator; - this.mutex = this; - } - - public SynchronizedListIterator(ListIterator listIterator, Object mutex) { - super(); - this.listIterator = listIterator; - this.mutex = mutex; - } - - public synchronized boolean hasNext() { - synchronized (this.mutex) { - return this.listIterator.hasNext(); - } - } - - public synchronized E next() { - synchronized (this.mutex) { - return this.listIterator.next(); - } - } - - public synchronized int nextIndex() { - synchronized (this.mutex) { - return this.listIterator.nextIndex(); - } - } - - public synchronized boolean hasPrevious() { - synchronized (this.mutex) { - return this.listIterator.hasPrevious(); - } - } - - public synchronized E previous() { - synchronized (this.mutex) { - return this.listIterator.previous(); - } - } - - public synchronized int previousIndex() { - synchronized (this.mutex) { - return this.listIterator.previousIndex(); - } - } - - public synchronized void remove() { - synchronized (this.mutex) { - this.listIterator.remove(); - } - } - - public synchronized void add(E e) { - synchronized (this.mutex) { - this.listIterator.add(e); - } - } - - public synchronized void set(E e) { - synchronized (this.mutex) { - this.listIterator.set(e); - } - } - - @Override - public String toString() { - synchronized (this.mutex) { - return StringTools.buildToStringFor(this, this.listIterator); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationIterator.java deleted file mode 100644 index 7b6aa41bd2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationIterator.java +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Transformer; - - -/** - * A TransformationIterator wraps another {@link Iterator} - * and transforms its results for client consumption. To use, supply a - * {@link Transformer} or subclass TransformationIterator - * and override the {@link #transform(Object)} method. - * Objects of type E1 are transformed into objects of type E2; - * i.e. the iterator returns objects of type E2. - * - * @param input: the type of elements to be transformed - * @param output: the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable - */ -public class TransformationIterator - implements Iterator -{ - private final Iterator iterator; - private final Transformer transformer; - - - /** - * Construct an iterator with the specified iterable - * and a disabled transformer. - * Use this constructor if you want to override the - * {@link #transform(Object)} method instead of building - * a {@link Transformer}. - */ - public TransformationIterator(Iterable iterable) { - this(iterable.iterator()); - } - - /** - * Construct an iterator with the specified nested iterator - * and a disabled transformer. - * Use this constructor if you want to override the - * {@link #transform(Object)} method instead of building - * a {@link Transformer}. - */ - public TransformationIterator(Iterator iterator) { - this(iterator, Transformer.Disabled.instance()); - } - - /** - * Construct an iterator with the specified iterable and transformer. - */ - public TransformationIterator(Iterable iterable, Transformer transformer) { - this(iterable.iterator(), transformer); - } - - /** - * Construct an iterator with the specified nested iterator - * and transformer. - */ - public TransformationIterator(Iterator iterator, Transformer transformer) { - super(); - this.iterator = iterator; - this.transformer = transformer; - } - - public boolean hasNext() { - // delegate to the nested iterator - return this.iterator.hasNext(); - } - - public E2 next() { - // transform the object returned by the nested iterator before returning it - return this.transform(this.iterator.next()); - } - - public void remove() { - // delegate to the nested iterator - this.iterator.remove(); - } - - /** - * Transform the specified object and return the result. - */ - protected E2 transform(E1 next) { - return this.transformer.transform(next); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.iterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationListIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationListIterator.java deleted file mode 100644 index 01455cd3d2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TransformationListIterator.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; - -/** - * A TransformationListIterator wraps another {@link ListIterator} - * and transforms its results for client consumption. To use, supply a - * {@link Transformer} or subclass TransformationIterator - * and override the {@link #transform(Object)} method. - *

- * The methods {@link #set(Object)} and {@link #add(Object)} - * are left unsupported in this class. - * - * @param input: the type of elements to be transformed - * @param output: the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.TransformationListIterable - */ -public class TransformationListIterator - implements ListIterator -{ - private final ListIterator listIterator; - private final Transformer transformer; - - - /** - * Construct an iterator with the specified list - * and a disabled transformer. - * Use this constructor if you want to override the - * {@link #transform(Object)} method instead of building - * a {@link Transformer}. - */ - public TransformationListIterator(List list) { - this(list.listIterator()); - } - - /** - * Construct an iterator with the specified nested listed iterator - * and a disabled transformer. - * Use this constructor if you want to override the - * {@link #transform(Object)} method instead of building - * a {@link Transformer}. - */ - public TransformationListIterator(ListIterator listIterator) { - this(listIterator, Transformer.Disabled.instance()); - } - - /** - * Construct an iterator with the specified list - * and a disabled transformer. - * Use this constructor if you want to override the - * {@link #transform(Object)} method instead of building - * a {@link Transformer}. - */ - public TransformationListIterator(ListIterable listIterable) { - this(listIterable.iterator()); - } - - /** - * Construct an iterator with the specified list and transformer. - */ - public TransformationListIterator(List list, Transformer transformer) { - this(list.listIterator(), transformer); - } - - /** - * Construct an iterator with the specified list and transformer. - */ - public TransformationListIterator(ListIterable listIterable, Transformer transformer) { - this(listIterable.iterator(), transformer); - } - - /** - * Construct an iterator with the specified nested iterator - * and transformer. - */ - public TransformationListIterator(ListIterator listIterator, Transformer transformer) { - super(); - this.listIterator = listIterator; - this.transformer = transformer; - } - - public boolean hasNext() { - // delegate to the nested iterator - return this.listIterator.hasNext(); - } - - public E2 next() { - // transform the object returned by the nested iterator before returning it - return this.transform(this.listIterator.next()); - } - - public int nextIndex() { - // delegate to the nested iterator - return this.listIterator.nextIndex(); - } - - public boolean hasPrevious() { - // delegate to the nested iterator - return this.listIterator.hasPrevious(); - } - - public E2 previous() { - // transform the object returned by the nested iterator before returning it - return this.transform(this.listIterator.previous()); - } - - public int previousIndex() { - // delegate to the nested iterator - return this.listIterator.previousIndex(); - } - - public void add(E2 o) { - throw new UnsupportedOperationException(); - } - - public void set(E2 o) { - throw new UnsupportedOperationException(); - } - - public void remove() { - // delegate to the nested iterator - this.listIterator.remove(); - } - - /** - * Transform the specified object and return the result. - */ - protected E2 transform(E1 next) { - return this.transformer.transform(next); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listIterator); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TreeIterator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TreeIterator.java deleted file mode 100644 index 1103af97f4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/iterators/TreeIterator.java +++ /dev/null @@ -1,254 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.iterators; - -import java.util.Iterator; -import java.util.LinkedList; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * A TreeIterator simplifies the traversal of a - * tree of objects, where the objects' protocol(s) provides - * a method for getting the immediate children of the given - * node but does not provide a method for getting all the - * descendants (children, grandchildren, etc.) of the given node. - *

- * To use, supply:

    - *
  • either the root element of the tree or, if the tree has - * multiple roots, an {@link Iterator} over the set of roots - *
  • a {@link Midwife} that delivers the children - * of each child - * (alternatively, subclass TreeIterator - * and override the {@link #children(Object)} method) - *
- * - * @param the type of elements returned by the iterator - * - * @see org.eclipse.jpt.common.utility.internal.iterables.TreeIterable - */ -public class TreeIterator - implements Iterator -{ - private final LinkedList> iterators; - private final Midwife midwife; - private Iterator currentIterator; - - - /** - * Construct an iterator that returns the nodes of a tree - * with the specified collection of roots - * and a disabled midwife. - * Use this constructor if you want to override the - * {@link #children(Object)} method instead of building - * a {@link Midwife}. - */ - public TreeIterator(E... roots) { - this(new ArrayIterator(roots)); - } - - /** - * Construct an iterator that returns the nodes of a tree - * with the specified collection of roots - * and a disabled midwife. - * Use this constructor if you want to override the - * {@link #children(Object)} method instead of building - * a {@link Midwife}. - */ - public TreeIterator(Iterable roots) { - this(roots.iterator()); - } - - /** - * Construct an iterator that returns the nodes of a tree - * with the specified collection of roots - * and a disabled midwife. - * Use this constructor if you want to override the - * {@link #children(Object)} method instead of building - * a {@link Midwife}. - */ - public TreeIterator(Iterator roots) { - this(roots, Midwife.Disabled.instance()); - } - - /** - * Construct an iterator that returns the nodes of a tree - * with the specified root and a disabled midwife. - * Use this constructor if you want to override the - * {@link #children(Object)} method instead of building - * a {@link Midwife}. - */ - public TreeIterator(E root) { - this(root, Midwife.Disabled.instance()); - } - - /** - * Construct an iterator that returns the nodes of a tree - * with the specified root and midwife. - */ - public TreeIterator(E root, Midwife midwife) { - this(new SingleElementIterator(root), midwife); - } - - /** - * Construct an iterator that returns the nodes of a tree - * with the specified roots and midwife. - */ - public TreeIterator(E[] roots, Midwife midwife) { - this(new ArrayIterator(roots), midwife); - } - - /** - * Construct an iterator that returns the nodes of a tree - * with the specified roots and midwife. - */ - public TreeIterator(Iterable roots, Midwife midwife) { - this(roots.iterator(), midwife); - } - - /** - * Construct an iterator that returns the nodes of a tree - * with the specified roots and midwife. - */ - public TreeIterator(Iterator roots, Midwife midwife) { - super(); - this.currentIterator = roots; - // use a LinkedList since we will be pulling off the front and adding to the end - this.iterators = new LinkedList>(); - this.midwife = midwife; - } - - public boolean hasNext() { - if (this.currentIterator.hasNext()) { - return true; - } - for (Iterator iterator : this.iterators) { - if (iterator.hasNext()) { - return true; - } - } - return false; - } - - public E next() { - if (this.currentIterator.hasNext()) { - return this.nextInternal(); - } - for (Iterator> stream = this.iterators.iterator(); stream.hasNext(); ) { - this.currentIterator = stream.next(); - if (this.currentIterator.hasNext()) { - break; - } - stream.remove(); - } - return this.nextInternal(); - } - - /** - * Fetch the children of the next node before returning it. - */ - private E nextInternal() { - E next = this.currentIterator.next(); - this.iterators.add(this.children(next)); - return next; - } - - public void remove() { - this.currentIterator.remove(); - } - - /** - * Return the immediate children of the specified object. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Midwife}. - */ - protected Iterator children(E next) { - return this.midwife.children(next); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.currentIterator); - } - - - //********** inner classes ********** - - /** - * Used by {@link TreeIterator} to retrieve - * the immediate children of a node in the tree. - */ - public interface Midwife { - - /** - * Return the immediate children of the specified object. - */ - Iterator children(T o); - - - final class Null implements Midwife { - @SuppressWarnings("rawtypes") - public static final Midwife INSTANCE = new Null(); - @SuppressWarnings("unchecked") - public static Midwife instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - // return no neighbors - public Iterator children(S next) { - return EmptyIterator.instance(); - } - @Override - public String toString() { - return "TreeIterator.Midwife.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - /** - * The midwife used when the {@link TreeIterator#children(Object)} - * method is overridden. - */ - final class Disabled implements Midwife { - @SuppressWarnings("rawtypes") - public static final Midwife INSTANCE = new Disabled(); - @SuppressWarnings("unchecked") - public static Midwife instance() { - return INSTANCE; - } - // ensure single instance - private Disabled() { - super(); - } - // throw an exception - public Iterator children(S next) { - throw new UnsupportedOperationException(); // TreeIterator.children(Object) was not implemented - } - @Override - public String toString() { - return "TreeIterator.Midwife.Disabled"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AbstractModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AbstractModel.java deleted file mode 100644 index e880beb71f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AbstractModel.java +++ /dev/null @@ -1,1007 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model; - -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; - -/** - * Reasonable implementation of the {@link Model} protocol - * with numerous convenience methods. - * - * @see ChangeSupport - */ -public abstract class AbstractModel - implements Model -{ - /** - * Delegate state/property/collection/list/tree change support to this - * helper object. The change support object is lazily-initialized; - * so it may be null. The method {@link #getChangeSupport()} - * will initialize this field if it is null. - *

- * NB: We instantiate this when we fire events, even when - * we do not have any listeners (which is be implied if this is null). - * This allows the change support to have behavior tied to events even when - * we have no listeners. - * - * @see AspectChangeSupport#aspectChanged(String) - */ - protected ChangeSupport changeSupport; - - - // ********** constructors/initialization ********** - - /** - * Default constructor. - */ - protected AbstractModel() { - super(); - } - - /** - * This accessor will build the change support when required. - * This only helps reduce the footprint of a model that neither has any - * listeners added to it nor ever changes (fires any events). - */ - protected synchronized ChangeSupport getChangeSupport() { - if (this.changeSupport == null) { - this.changeSupport = this.buildChangeSupport(); - } - return this.changeSupport; - } - - /** - * Allow subclasses to tweak the change support used. - */ - protected ChangeSupport buildChangeSupport() { - return new ChangeSupport(this); - } - - - // ********** change support ********** - - /** - * @see ChangeSupport#addChangeListener(ChangeListener) - */ - public void addChangeListener(ChangeListener listener) { - this.getChangeSupport().addChangeListener(listener); - } - - /** - * @see ChangeSupport#removeChangeListener(ChangeListener) - */ - public void removeChangeListener(ChangeListener listener) { - this.getChangeSupport().removeChangeListener(listener); - } - - /** - * @see ChangeSupport#hasAnyChangeListeners() - */ - public boolean hasAnyChangeListeners() { - return (this.changeSupport != null) && this.changeSupport.hasAnyChangeListeners(); - } - - /** - * Return whether the model has no change listeners. - */ - public boolean hasNoChangeListeners() { - return ! this.hasAnyChangeListeners(); - } - - - // ********** state change support ********** - - /** - * @see ChangeSupport#addStateChangeListener(StateChangeListener) - */ - public void addStateChangeListener(StateChangeListener listener) { - this.getChangeSupport().addStateChangeListener(listener); - } - - /** - * @see ChangeSupport#removeStateChangeListener(StateChangeListener) - */ - public void removeStateChangeListener(StateChangeListener listener) { - this.getChangeSupport().removeStateChangeListener(listener); - } - - /** - * @see ChangeSupport#hasAnyStateChangeListeners() - */ - public boolean hasAnyStateChangeListeners() { - return (this.changeSupport != null) && this.changeSupport.hasAnyStateChangeListeners(); - } - - /** - * Return whether the model has no state change listeners. - */ - public boolean hasNoStateChangeListeners() { - return ! this.hasAnyStateChangeListeners(); - } - - /** - * @see ChangeSupport#fireStateChanged(StateChangeEvent) - */ - protected final void fireStateChanged(StateChangeEvent event) { - this.getChangeSupport().fireStateChanged(event); - } - - /** - * @see ChangeSupport#fireStateChanged() - */ - protected final void fireStateChanged() { - this.getChangeSupport().fireStateChanged(); - } - - - // ********** property change support ********** - - /** - * @see ChangeSupport#addPropertyChangeListener(String, PropertyChangeListener) - */ - public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - this.getChangeSupport().addPropertyChangeListener(propertyName, listener); - } - - /** - * @see ChangeSupport#removePropertyChangeListener(String, PropertyChangeListener) - */ - public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { - this.getChangeSupport().removePropertyChangeListener(propertyName, listener); - } - - /** - * @see ChangeSupport#hasAnyPropertyChangeListeners(String) - */ - public boolean hasAnyPropertyChangeListeners(String propertyName) { - return (this.changeSupport != null) && this.changeSupport.hasAnyPropertyChangeListeners(propertyName); - } - - /** - * Return whether the model has no property change listeners that will - * be notified when the specified property has changed. - */ - public boolean hasNoPropertyChangeListeners(String propertyName) { - return ! this.hasAnyPropertyChangeListeners(propertyName); - } - - /** - * @see ChangeSupport#firePropertyChanged(PropertyChangeEvent) - */ - protected final boolean firePropertyChanged(PropertyChangeEvent event) { - return this.getChangeSupport().firePropertyChanged(event); - } - - /** - * @see ChangeSupport#firePropertyChanged(String, Object, Object) - */ - protected final boolean firePropertyChanged(String propertyName, Object oldValue, Object newValue) { - return this.getChangeSupport().firePropertyChanged(propertyName, oldValue, newValue); - } - - /** - * @see ChangeSupport#firePropertyChanged(String, int, int) - */ - protected final boolean firePropertyChanged(String propertyName, int oldValue, int newValue) { - return this.getChangeSupport().firePropertyChanged(propertyName, oldValue, newValue); - } - - /** - * @see ChangeSupport#firePropertyChanged(String, boolean, boolean) - */ - protected final boolean firePropertyChanged(String propertyName, boolean oldValue, boolean newValue) { - return this.getChangeSupport().firePropertyChanged(propertyName, oldValue, newValue); - } - - /** - * Implied null "old" value. - * @see #firePropertyChanged(String, Object, Object) - */ - protected final boolean firePropertyChanged(String propertyName, Object newValue) { - return this.firePropertyChanged(propertyName, null, newValue); - } - - - // ********** collection change support ********** - - /** - * @see ChangeSupport#addCollectionChangeListener(String, CollectionChangeListener) - */ - public void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) { - this.getChangeSupport().addCollectionChangeListener(collectionName, listener); - } - - /** - * @see ChangeSupport#removeCollectionChangeListener(String, CollectionChangeListener) - */ - public void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) { - this.getChangeSupport().removeCollectionChangeListener(collectionName, listener); - } - - /** - * @see ChangeSupport#hasAnyCollectionChangeListeners(String) - */ - public boolean hasAnyCollectionChangeListeners(String collectionName) { - return (this.changeSupport != null) && this.changeSupport.hasAnyCollectionChangeListeners(collectionName); - } - - /** - * Return whether the model has no collection change listeners that will - * be notified when the specified collection has changed. - */ - public boolean hasNoCollectionChangeListeners(String collectionName) { - return ! this.hasAnyCollectionChangeListeners(collectionName); - } - - /** - * @see ChangeSupport#fireItemsAdded(CollectionAddEvent) - */ - protected final boolean fireItemsAdded(CollectionAddEvent event) { - return this.getChangeSupport().fireItemsAdded(event); - } - - /** - * @see ChangeSupport#fireItemsAdded(String, Collection) - */ - protected final boolean fireItemsAdded(String collectionName, Collection addedItems) { - return this.getChangeSupport().fireItemsAdded(collectionName, addedItems); - } - - /** - * @see ChangeSupport#fireItemAdded(String, Object) - */ - protected final void fireItemAdded(String collectionName, Object addedItem) { - this.getChangeSupport().fireItemAdded(collectionName, addedItem); - } - - /** - * @see ChangeSupport#fireItemsRemoved(CollectionRemoveEvent) - */ - protected final boolean fireItemsRemoved(CollectionRemoveEvent event) { - return this.getChangeSupport().fireItemsRemoved(event); - } - - /** - * @see ChangeSupport#fireItemsRemoved(String, Collection) - */ - protected final boolean fireItemsRemoved(String collectionName, Collection removedItems) { - return this.getChangeSupport().fireItemsRemoved(collectionName, removedItems); - } - - /** - * @see ChangeSupport#fireItemRemoved(String, Object) - */ - protected final void fireItemRemoved(String collectionName, Object removedItem) { - this.getChangeSupport().fireItemRemoved(collectionName, removedItem); - } - - /** - * @see ChangeSupport#fireCollectionCleared(CollectionClearEvent) - */ - protected final void fireCollectionCleared(CollectionClearEvent event) { - this.getChangeSupport().fireCollectionCleared(event); - } - - /** - * @see ChangeSupport#fireCollectionCleared(String) - */ - protected final void fireCollectionCleared(String collectionName) { - this.getChangeSupport().fireCollectionCleared(collectionName); - } - - protected final void fireCollectionChanged(CollectionChangeEvent event) { - this.getChangeSupport().fireCollectionChanged(event); - } - - protected final void fireCollectionChanged(String collectionName, Collection collection) { - this.getChangeSupport().fireCollectionChanged(collectionName, collection); - } - - /** - * @see ChangeSupport#addItemToCollection(Object, Collection, String) - */ - protected boolean addItemToCollection(E item, Collection collection, String collectionName) { - return this.getChangeSupport().addItemToCollection(item, collection, collectionName); - } - - /** - * @see ChangeSupport#addItemsToCollection(Object[], Collection, String) - */ - protected boolean addItemsToCollection(E[] items, Collection collection, String collectionName) { - return this.getChangeSupport().addItemsToCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#addItemsToCollection(Collection, Collection, String) - */ - protected boolean addItemsToCollection(Collection items, Collection collection, String collectionName) { - return this.getChangeSupport().addItemsToCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#addItemsToCollection(Iterable, Collection, String) - */ - protected boolean addItemsToCollection(Iterable items, Collection collection, String collectionName) { - return this.getChangeSupport().addItemsToCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#addItemsToCollection(Iterator, Collection, String) - */ - protected boolean addItemsToCollection(Iterator items, Collection collection, String collectionName) { - return this.getChangeSupport().addItemsToCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#removeItemFromCollection(Object, Collection, String) - */ - protected boolean removeItemFromCollection(Object item, Collection collection, String collectionName) { - return this.getChangeSupport().removeItemFromCollection(item, collection, collectionName); - } - - /** - * @see ChangeSupport#removeItemsFromCollection(Object[], Collection, String) - */ - protected boolean removeItemsFromCollection(Object[] items, Collection collection, String collectionName) { - return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#removeItemsFromCollection(Collection, Collection, String) - */ - protected boolean removeItemsFromCollection(Collection items, Collection collection, String collectionName) { - return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#removeItemsFromCollection(Iterable, Collection, String) - */ - protected boolean removeItemsFromCollection(Iterable items, Collection collection, String collectionName) { - return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#removeItemsFromCollection(Iterator, Collection, String) - */ - protected boolean removeItemsFromCollection(Iterator items, Collection collection, String collectionName) { - return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#retainItemsInCollection(Object[], Collection, String) - */ - protected boolean retainItemsInCollection(Object[] items, Collection collection, String collectionName) { - return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#retainItemsInCollection(Collection, Collection, String) - */ - protected boolean retainItemsInCollection(Collection items, Collection collection, String collectionName) { - return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#retainItemsInCollection(Iterable, Collection, String) - */ - protected boolean retainItemsInCollection(Iterable items, Collection collection, String collectionName) { - return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#retainItemsInCollection(Iterator, Collection, String) - */ - protected boolean retainItemsInCollection(Iterator items, Collection collection, String collectionName) { - return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName); - } - - /** - * @see ChangeSupport#clearCollection(Collection, String) - */ - protected boolean clearCollection(Collection collection, String collectionName) { - return this.getChangeSupport().clearCollection(collection, collectionName); - } - - /** - * @see ChangeSupport#synchronizeCollection(Collection, Collection, String) - */ - protected boolean synchronizeCollection(Collection newCollection, Collection collection, String collectionName) { - return this.getChangeSupport().synchronizeCollection(newCollection, collection, collectionName); - } - - /** - * @see ChangeSupport#synchronizeCollection(Iterable, Collection, String) - */ - protected boolean synchronizeCollection(Iterable newCollection, Collection collection, String collectionName) { - return this.getChangeSupport().synchronizeCollection(newCollection, collection, collectionName); - } - - /** - * @see ChangeSupport#synchronizeCollection(Iterator, Collection, String) - */ - protected boolean synchronizeCollection(Iterator newCollection, Collection collection, String collectionName) { - return this.getChangeSupport().synchronizeCollection(newCollection, collection, collectionName); - } - - - // ********** list change support ********** - - /** - * @see ChangeSupport#addListChangeListener(String, ListChangeListener) - */ - public void addListChangeListener(String listName, ListChangeListener listener) { - this.getChangeSupport().addListChangeListener(listName, listener); - } - - /** - * @see ChangeSupport#removeListChangeListener(String, ListChangeListener) - */ - public void removeListChangeListener(String listName, ListChangeListener listener) { - this.getChangeSupport().removeListChangeListener(listName, listener); - } - - /** - * @see ChangeSupport#hasAnyListChangeListeners(String) - */ - public boolean hasAnyListChangeListeners(String listName) { - return (this.changeSupport != null) && this.changeSupport.hasAnyListChangeListeners(listName); - } - - /** - * Return whether the model has no list change listeners that will - * be notified when the specified list has changed. - */ - public boolean hasNoListChangeListeners(String listName) { - return ! this.hasAnyListChangeListeners(listName); - } - - /** - * @see ChangeSupport#fireItemsAdded(ListAddEvent) - */ - protected final boolean fireItemsAdded(ListAddEvent event) { - return this.getChangeSupport().fireItemsAdded(event); - } - - /** - * @see ChangeSupport#fireItemsAdded(String, int, List) - */ - protected final boolean fireItemsAdded(String listName, int index, List addedItems) { - return this.getChangeSupport().fireItemsAdded(listName, index, addedItems); - } - - /** - * @see ChangeSupport#fireItemAdded(String, int, Object) - */ - protected final void fireItemAdded(String listName, int index, Object addedItem) { - this.getChangeSupport().fireItemAdded(listName, index, addedItem); - } - - /** - * @see ChangeSupport#fireItemsRemoved(ListRemoveEvent) - */ - protected final boolean fireItemsRemoved(ListRemoveEvent event) { - return this.getChangeSupport().fireItemsRemoved(event); - } - - /** - * @see ChangeSupport#fireItemsRemoved(String, int, List) - */ - protected final boolean fireItemsRemoved(String listName, int index, List removedItems) { - return this.getChangeSupport().fireItemsRemoved(listName, index, removedItems); - } - - /** - * @see ChangeSupport#fireItemRemoved(String, int, Object) - */ - protected final void fireItemRemoved(String listName, int index, Object removedItem) { - this.getChangeSupport().fireItemRemoved(listName, index, removedItem); - } - - /** - * @see ChangeSupport#fireItemsReplaced(ListReplaceEvent) - */ - protected final boolean fireItemsReplaced(ListReplaceEvent event) { - return this.getChangeSupport().fireItemsReplaced(event); - } - - /** - * @see ChangeSupport#fireItemsReplaced(String, int, List, List) - */ - protected final boolean fireItemsReplaced(String listName, int index, List newItems, List replacedItems) { - return this.getChangeSupport().fireItemsReplaced(listName, index, newItems, replacedItems); - } - - /** - * @see ChangeSupport#fireItemReplaced(String, int, Object, Object) - */ - protected final boolean fireItemReplaced(String listName, int index, Object newItem, Object replacedItem) { - return this.getChangeSupport().fireItemReplaced(listName, index, newItem, replacedItem); - } - - /** - * @see ChangeSupport#fireItemsMoved(ListMoveEvent) - */ - protected final boolean fireItemsMoved(ListMoveEvent event) { - return this.getChangeSupport().fireItemsMoved(event); - } - - /** - * @see ChangeSupport#fireItemsMoved(String, int, int, int) - */ - protected final boolean fireItemsMoved(String listName, int targetIndex, int sourceIndex, int length) { - return this.getChangeSupport().fireItemsMoved(listName, targetIndex, sourceIndex, length); - } - - /** - * @see ChangeSupport#fireItemMoved(String, int, int) - */ - protected final boolean fireItemMoved(String listName, int targetIndex, int sourceIndex) { - return this.getChangeSupport().fireItemMoved(listName, targetIndex, sourceIndex); - } - - /** - * @see ChangeSupport#fireListCleared(ListClearEvent) - */ - protected final void fireListCleared(ListClearEvent event) { - this.getChangeSupport().fireListCleared(event); - } - - /** - * @see ChangeSupport#fireListCleared(String) - */ - protected final void fireListCleared(String listName) { - this.getChangeSupport().fireListCleared(listName); - } - - protected final void fireListChanged(ListChangeEvent event) { - this.getChangeSupport().fireListChanged(event); - } - - protected final void fireListChanged(String listName, List list) { - this.getChangeSupport().fireListChanged(listName, list); - } - - /** - * @see ChangeSupport#addItemToList(int, Object, List, String) - */ - protected void addItemToList(int index, E item, List list, String listName) { - this.getChangeSupport().addItemToList(index, item, list, listName); - } - - /** - * @see ChangeSupport#addItemToList(Object, List, String) - */ - protected boolean addItemToList(E item, List list, String listName) { - return this.getChangeSupport().addItemToList(item, list, listName); - } - - /** - * @see ChangeSupport#addItemsToList(int, Object[], List, String) - */ - protected boolean addItemsToList(int index, E[] items, List list, String listName) { - return this.getChangeSupport().addItemsToList(index, items, list, listName); - } - - /** - * @see ChangeSupport#addItemsToList(int, Collection, List, String) - */ - protected boolean addItemsToList(int index, Collection items, List list, String listName) { - return this.getChangeSupport().addItemsToList(index, items, list, listName); - } - - /** - * @see ChangeSupport#addItemsToList(int, Iterable, List, String) - */ - protected boolean addItemsToList(int index, Iterable items, List list, String listName) { - return this.getChangeSupport().addItemsToList(index, items, list, listName); - } - - /** - * @see ChangeSupport#addItemsToList(int, Iterator, List, String) - */ - protected boolean addItemsToList(int index, Iterator items, List list, String listName) { - return this.getChangeSupport().addItemsToList(index, items, list, listName); - } - - /** - * @see ChangeSupport#addItemsToList(Object[], List, String) - */ - protected boolean addItemsToList(E[] items, List list, String listName) { - return this.getChangeSupport().addItemsToList(items, list, listName); - } - - /** - * @see ChangeSupport#addItemsToList(Collection, List, String) - */ - protected boolean addItemsToList(Collection items, List list, String listName) { - return this.getChangeSupport().addItemsToList(items, list, listName); - } - - /** - * @see ChangeSupport#addItemsToList(Iterable, List, String) - */ - protected boolean addItemsToList(Iterable items, List list, String listName) { - return this.getChangeSupport().addItemsToList(items, list, listName); - } - - /** - * @see ChangeSupport#addItemsToList(Iterator, List, String) - */ - protected boolean addItemsToList(Iterator items, List list, String listName) { - return this.getChangeSupport().addItemsToList(items, list, listName); - } - - /** - * @see ChangeSupport#removeItemFromList(int, List, String) - */ - protected E removeItemFromList(int index, List list, String listName) { - return this.getChangeSupport().removeItemFromList(index, list, listName); - } - - /** - * @see ChangeSupport#removeItemFromList(Object, List, String) - */ - protected boolean removeItemFromList(Object item, List list, String listName) { - return this.getChangeSupport().removeItemFromList(item, list, listName); - } - - /** - * @see ChangeSupport#removeRangeFromList(int, int, List, String) - */ - protected List removeRangeFromList(int beginIndex, int endIndex, List list, String listName) { - return this.getChangeSupport().removeRangeFromList(beginIndex, endIndex, list, listName); - } - - /** - * @see ChangeSupport#removeItemsFromList(int, List, String) - */ - protected List removeItemsFromList(int index, List list, String listName) { - return this.getChangeSupport().removeItemsFromList(index, list, listName); - } - - /** - * @see ChangeSupport#removeItemsFromList(int, int, List, String) - */ - protected List removeItemsFromList(int index, int length, List list, String listName) { - return this.getChangeSupport().removeItemsFromList(index, length, list, listName); - } - - /** - * @see ChangeSupport#removeItemsFromList(Object[], List, String) - */ - protected boolean removeItemsFromList(Object[] items, List list, String listName) { - return this.getChangeSupport().removeItemsFromList(items, list, listName); - } - - /** - * @see ChangeSupport#removeItemsFromList(Collection, List, String) - */ - protected boolean removeItemsFromList(Collection items, List list, String listName) { - return this.getChangeSupport().removeItemsFromList(items, list, listName); - } - - /** - * @see ChangeSupport#removeItemsFromList(Iterable, List, String) - */ - protected boolean removeItemsFromList(Iterable items, List list, String listName) { - return this.getChangeSupport().removeItemsFromList(items, list, listName); - } - - /** - * @see ChangeSupport#removeItemsFromList(Iterator, List, String) - */ - protected boolean removeItemsFromList(Iterator items, List list, String listName) { - return this.getChangeSupport().removeItemsFromList(items, list, listName); - } - - /** - * @see ChangeSupport#retainItemsInList(Object[], List, String) - */ - protected boolean retainItemsInList(Object[] items, List list, String listName) { - return this.getChangeSupport().retainItemsInList(items, list, listName); - } - - /** - * @see ChangeSupport#retainItemsInList(Collection, List, String) - */ - protected boolean retainItemsInList(Collection items, List list, String listName) { - return this.getChangeSupport().retainItemsInList(items, list, listName); - } - - /** - * @see ChangeSupport#retainItemsInList(Iterable, List, String) - */ - protected boolean retainItemsInList(Iterable items, List list, String listName) { - return this.getChangeSupport().retainItemsInList(items, list, listName); - } - - /** - * @see ChangeSupport#retainItemsInList(Iterator, List, String) - */ - protected boolean retainItemsInList(Iterator items, List list, String listName) { - return this.getChangeSupport().retainItemsInList(items, list, listName); - } - - /** - * @see ChangeSupport#setItemInList(int, Object, List, String) - */ - protected E setItemInList(int index, E item, List list, String listName) { - return this.getChangeSupport().setItemInList(index, item, list, listName); - } - - /** - * @see ChangeSupport#replaceItemInList(Object, Object, List, String) - */ - protected int replaceItemInList(E oldItem, E newItem, List list, String listName) { - return this.getChangeSupport().replaceItemInList(oldItem, newItem, list, listName); - } - - /** - * @see ChangeSupport#setItemsInList(int, Object[], List, String) - */ - protected List setItemsInList(int index, E[] items, List list, String listName) { - return this.getChangeSupport().setItemsInList(index, items, list, listName); - } - - /** - * @see ChangeSupport#setItemsInList(int, List, List, String) - */ - protected List setItemsInList(int index, List items, List list, String listName) { - return this.getChangeSupport().setItemsInList(index, items, list, listName); - } - - /** - * @see ChangeSupport#moveItemsInList(int, int, int, List, String) - */ - protected void moveItemsInList(int targetIndex, int sourceIndex, int length, List list, String listName) { - this.getChangeSupport().moveItemsInList(targetIndex, sourceIndex, length, list, listName); - } - - /** - * @see ChangeSupport#moveItemInList(int, int, List, String) - */ - protected void moveItemInList(int targetIndex, int sourceIndex, List list, String listName) { - this.getChangeSupport().moveItemInList(targetIndex, sourceIndex, list, listName); - } - - /** - * @see ChangeSupport#moveItemInList(int, Object, List, String) - */ - protected void moveItemInList(int targetIndex, E item, List list, String listName) { - this.getChangeSupport().moveItemInList(targetIndex, item, list, listName); - } - - /** - * @see ChangeSupport#clearList(List, String) - */ - protected boolean clearList(List list, String listName) { - return this.getChangeSupport().clearList(list, listName); - } - - /** - * @see ChangeSupport#synchronizeList(List, List, String) - */ - protected boolean synchronizeList(List newList, List list, String listName) { - return this.getChangeSupport().synchronizeList(newList, list, listName); - } - - /** - * @see ChangeSupport#synchronizeList(Iterable, List, String) - */ - protected boolean synchronizeList(Iterable newList, List list, String listName) { - return this.getChangeSupport().synchronizeList(newList, list, listName); - } - - /** - * @see ChangeSupport#synchronizeList(Iterator, List, String) - */ - protected boolean synchronizeList(Iterator newList, List list, String listName) { - return this.getChangeSupport().synchronizeList(newList, list, listName); - } - - - // ********** tree change support ********** - - /** - * @see ChangeSupport#addTreeChangeListener(String, TreeChangeListener) - */ - public void addTreeChangeListener(String treeName, TreeChangeListener listener) { - this.getChangeSupport().addTreeChangeListener(treeName, listener); - } - - /** - * @see ChangeSupport#removeTreeChangeListener(String, TreeChangeListener) - */ - public void removeTreeChangeListener(String treeName, TreeChangeListener listener) { - this.getChangeSupport().removeTreeChangeListener(treeName, listener); - } - - /** - * @see ChangeSupport#hasAnyTreeChangeListeners(String) - */ - public boolean hasAnyTreeChangeListeners(String treeName) { - return (this.changeSupport != null) && this.changeSupport.hasAnyTreeChangeListeners(treeName); - } - - /** - * Return whether the model has no tree change listeners that will - * be notified when the specified tree has changed. - */ - public boolean hasNoTreeChangeListeners(String treeName) { - return ! this.hasAnyTreeChangeListeners(treeName); - } - - /** - * @see ChangeSupport#fireNodeAdded(TreeAddEvent) - */ - protected final void fireNodeAdded(TreeAddEvent event) { - this.getChangeSupport().fireNodeAdded(event); - } - - /** - * @see ChangeSupport#fireNodeAdded(String, List) - */ - protected final void fireNodeAdded(String treeName, List path) { - this.getChangeSupport().fireNodeAdded(treeName, path); - } - - /** - * @see ChangeSupport#fireNodeRemoved(TreeRemoveEvent) - */ - protected final void fireNodeRemoved(TreeRemoveEvent event) { - this.getChangeSupport().fireNodeRemoved(event); - } - - /** - * @see ChangeSupport#fireNodeRemoved(String, List) - */ - protected final void fireNodeRemoved(String treeName, List path) { - this.getChangeSupport().fireNodeRemoved(treeName, path); - } - - /** - * @see ChangeSupport#fireTreeCleared(TreeClearEvent) - */ - protected final void fireTreeCleared(TreeClearEvent event) { - this.getChangeSupport().fireTreeCleared(event); - } - - /** - * @see ChangeSupport#fireTreeCleared(String) - */ - protected final void fireTreeCleared(String treeName) { - this.getChangeSupport().fireTreeCleared(treeName); - } - - /** - * @see ChangeSupport#fireTreeChanged(TreeChangeEvent) - */ - protected final void fireTreeChanged(TreeChangeEvent event) { - this.getChangeSupport().fireTreeChanged(event); - } - - /** - * @see ChangeSupport#fireTreeChanged(String, Collection) - */ - protected final void fireTreeChanged(String treeName, Collection nodes) { - this.getChangeSupport().fireTreeChanged(treeName, nodes); - } - - - // ********** convenience methods ********** - - /** - * Return whether the specified values are equal, with the appropriate null checks. - * Convenience method for checking whether an attribute value has changed. - *

- * Do not use this to determine whether to fire a change notification, - * {@link ChangeSupport} already does that. - */ - protected final boolean valuesAreEqual(Object value1, Object value2) { - return this.getChangeSupport().valuesAreEqual(value1, value2); - } - - /** - * @see #valuesAreEqual(Object, Object) - */ - protected final boolean attributeValueHasNotChanged(Object oldValue, Object newValue) { - return this.valuesAreEqual(oldValue, newValue); - } - - - /** - * Do not use this to determine whether to fire a change notification, - * {@link ChangeSupport} already does that. - *

- * For example, after firing the change notification, you can use this method - * to decide if some other, related, piece of state needs to be synchronized - * with the state that just changed. - * - * @see ChangeSupport#valuesAreDifferent(Object, Object) - */ - protected final boolean valuesAreDifferent(Object value1, Object value2) { - return this.getChangeSupport().valuesAreDifferent(value1, value2); - } - - /** - * @see #valuesAreDifferent(Object, Object) - */ - protected final boolean attributeValueHasChanged(Object oldValue, Object newValue) { - return this.valuesAreDifferent(oldValue, newValue); - } - - - // ********** Object overrides ********** - - /** - * Although cloning models is usually not a Good Idea, - * we should at least support it properly. - */ - @Override - protected AbstractModel clone() throws CloneNotSupportedException { - AbstractModel clone = (AbstractModel) super.clone(); - // clear out change support - models do not share listeners - clone.changeSupport = null; - return clone; - } - - /** - * e.g. "ClassName[00-F3-EE-42](add'l info)" - */ - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - StringTools.buildSimpleToStringOn(this, sb); - sb.append('('); - int len = sb.length(); - this.toString(sb); - if (sb.length() == len) { - sb.deleteCharAt(len - 1); - } else { - sb.append(')'); - } - return sb.toString(); - } - - /** - * This method is public so one model can call a nested abstract model's - * #toString(StringBuilder). - */ - public void toString(@SuppressWarnings("unused") StringBuilder sb) { - // subclasses should override this to do something a bit more helpful - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AspectChangeSupport.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AspectChangeSupport.java deleted file mode 100644 index d98f4438fd..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/AspectChangeSupport.java +++ /dev/null @@ -1,349 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model; - -import java.util.Collection; -import java.util.EventListener; -import java.util.List; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; - -/** - * This change support class will notify listeners whenever one of the source's - * aspects has changed. Only the aspect name is passed to the listener; no - * event is generated. This allows the listeners to delegate to the change - * support object verification that an aspect as actually changed. This is - * useful for simple things like setting dirty flags, blanket validation, and - * blanket sychronization; i.e. things that might be interested in the name - * of the aspect that changed but not so much how the aspect changed. - */ -public class AspectChangeSupport - extends ChangeSupport -{ - private static final long serialVersionUID = 1L; - protected static final Class LISTENER_CLASS = Listener.class; - - - public AspectChangeSupport(Model source, Listener listener) { - this(source); - this.addListener(listener); - } - - public AspectChangeSupport(Model source) { - super(source); - } - - protected void aspectChanged(String aspectName) { - Iterable listeners = this.getListeners(); - if (listeners != null) { - for (Listener listener : listeners) { - listener.aspectChanged(aspectName); - } - } - } - - public void addListener(Listener listener) { - this.addListener(LISTENER_CLASS, listener); - } - - public void removeListener(Listener listener) { - this.removeListener(LISTENER_CLASS, listener); - } - - private Iterable getListeners() { - ListenerList listenerList = this.getListenerList(); - return (listenerList == null) ? null : listenerList.getListeners(); - } - - private ListenerList getListenerList() { - return this.getListenerList(LISTENER_CLASS); - } - - - // ********** listener interface ********** - - /** - * Listener that will be notified of any aspect changes. - */ - public interface Listener extends EventListener { - - /** - * The specified aspect changed. - */ - void aspectChanged(String aspectName); - - } - - - // ********** state change support ********** - - @Override - public void fireStateChanged(StateChangeEvent event) { - super.fireStateChanged(event); - this.aspectChanged(null); - } - - @Override - public void fireStateChanged() { - super.fireStateChanged(); - this.aspectChanged(null); - } - - - // ********** property change support ********** - - @Override - protected void firePropertyChanged_(PropertyChangeEvent event) { - super.firePropertyChanged_(event); - this.aspectChanged(event.getPropertyName()); - } - - @Override - protected void firePropertyChanged_(String propertyName, Object oldValue, Object newValue) { - super.firePropertyChanged_(propertyName, oldValue, newValue); - this.aspectChanged(propertyName); - } - - @Override - protected void firePropertyChanged_(String propertyName, int oldValue, int newValue) { - super.firePropertyChanged_(propertyName, oldValue, newValue); - this.aspectChanged(propertyName); - } - - @Override - protected void firePropertyChanged_(String propertyName, boolean oldValue, boolean newValue) { - super.firePropertyChanged_(propertyName, oldValue, newValue); - this.aspectChanged(propertyName); - } - - - // ********** collection change support ********** - - @Override - protected void fireItemsAdded_(CollectionAddEvent event) { - super.fireItemsAdded_(event); - this.aspectChanged(event.getCollectionName()); - } - - @Override - protected void fireItemsAdded_(String collectionName, Collection addedItems) { - super.fireItemsAdded_(collectionName, addedItems); - this.aspectChanged(collectionName); - } - - @Override - public void fireItemAdded(String collectionName, Object addedItem) { - super.fireItemAdded(collectionName, addedItem); - this.aspectChanged(collectionName); - } - - @Override - protected void fireItemsRemoved_(CollectionRemoveEvent event) { - super.fireItemsRemoved_(event); - this.aspectChanged(event.getCollectionName()); - } - - @Override - protected void fireItemsRemoved_(String collectionName, Collection removedItems) { - super.fireItemsRemoved_(collectionName, removedItems); - this.aspectChanged(collectionName); - } - - @Override - public void fireItemRemoved(String collectionName, Object removedItem) { - super.fireItemRemoved(collectionName, removedItem); - this.aspectChanged(collectionName); - } - - @Override - public void fireCollectionCleared(CollectionClearEvent event) { - super.fireCollectionCleared(event); - this.aspectChanged(event.getCollectionName()); - } - - @Override - public void fireCollectionCleared(String collectionName) { - super.fireCollectionCleared(collectionName); - this.aspectChanged(collectionName); - } - - @Override - public void fireCollectionChanged(CollectionChangeEvent event) { - super.fireCollectionChanged(event); - this.aspectChanged(event.getCollectionName()); - } - - @Override - public void fireCollectionChanged(String collectionName, Collection collection) { - super.fireCollectionChanged(collectionName, collection); - this.aspectChanged(collectionName); - } - - - // ********** list change support ********** - - @Override - protected void fireItemsAdded_(ListAddEvent event) { - super.fireItemsAdded_(event); - this.aspectChanged(event.getListName()); - } - - @Override - protected void fireItemsAdded_(String listName, int index, List addedItems) { - super.fireItemsAdded_(listName, index, addedItems); - this.aspectChanged(listName); - } - - @Override - public void fireItemAdded(String listName, int index, Object addedItem) { - super.fireItemAdded(listName, index, addedItem); - this.aspectChanged(listName); - } - - @Override - protected void fireItemsRemoved_(ListRemoveEvent event) { - super.fireItemsRemoved_(event); - this.aspectChanged(event.getListName()); - } - - @Override - protected void fireItemsRemoved_(String listName, int index, List removedItems) { - super.fireItemsRemoved_(listName, index, removedItems); - this.aspectChanged(listName); - } - - @Override - public void fireItemRemoved(String listName, int index, Object removedItem) { - super.fireItemRemoved(listName, index, removedItem); - this.aspectChanged(listName); - } - - @Override - protected void fireItemsReplaced_(ListReplaceEvent event) { - super.fireItemsReplaced_(event); - this.aspectChanged(event.getListName()); - } - - @Override - protected void fireItemsReplaced_(String listName, int index, List newItems, List replacedItems) { - super.fireItemsReplaced_(listName, index, newItems, replacedItems); - this.aspectChanged(listName); - } - - @Override - protected void fireItemReplaced_(String listName, int index, Object newItem, Object replacedItem) { - super.fireItemReplaced_(listName, index, newItem, replacedItem); - this.aspectChanged(listName); - } - - @Override - protected void fireItemsMoved_(ListMoveEvent event) { - super.fireItemsMoved_(event); - this.aspectChanged(event.getListName()); - } - - @Override - protected void fireItemsMoved_(String listName, int targetIndex, int sourceIndex, int length) { - super.fireItemsMoved_(listName, targetIndex, sourceIndex, length); - this.aspectChanged(listName); - } - - @Override - public void fireListCleared(ListClearEvent event) { - super.fireListCleared(event); - this.aspectChanged(event.getListName()); - } - - @Override - public void fireListCleared(String listName) { - super.fireListCleared(listName); - this.aspectChanged(listName); - } - - @Override - public void fireListChanged(ListChangeEvent event) { - super.fireListChanged(event); - this.aspectChanged(event.getListName()); - } - - @Override - public void fireListChanged(String listName, List list) { - super.fireListChanged(listName, list); - this.aspectChanged(listName); - } - - - // ********** tree change support ********** - - @Override - public void fireNodeAdded(TreeAddEvent event) { - super.fireNodeAdded(event); - this.aspectChanged(event.getTreeName()); - } - - @Override - public void fireNodeAdded(String treeName, List path) { - super.fireNodeAdded(treeName, path); - this.aspectChanged(treeName); - } - - @Override - public void fireNodeRemoved(TreeRemoveEvent event) { - super.fireNodeRemoved(event); - this.aspectChanged(event.getTreeName()); - } - - @Override - public void fireNodeRemoved(String treeName, List path) { - super.fireNodeRemoved(treeName, path); - this.aspectChanged(treeName); - } - - @Override - public void fireTreeCleared(TreeClearEvent event) { - super.fireTreeCleared(event); - this.aspectChanged(event.getTreeName()); - } - - @Override - public void fireTreeCleared(String treeName) { - super.fireTreeCleared(treeName); - this.aspectChanged(treeName); - } - - @Override - public void fireTreeChanged(TreeChangeEvent event) { - super.fireTreeChanged(event); - this.aspectChanged(event.getTreeName()); - } - - @Override - public void fireTreeChanged(String treeName, Collection nodes) { - super.fireTreeChanged(treeName, nodes); - this.aspectChanged(treeName); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/ChangeSupport.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/ChangeSupport.java deleted file mode 100644 index af4b952a2b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/ChangeSupport.java +++ /dev/null @@ -1,2844 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.EventListener; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Tools; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; - -/** - * Support object that can be used by implementors of the {@link Model} interface. - * It provides for state, property, collection, list, and tree change notifications to - * listeners. - *

- * NB1: There is lots of copy-n-paste code in this class. Nearly all of this duplication - * is an effort to prevent the unnecessary creation of new objects (typically event - * objects). Since many events are fired when there are no listeners, we postpone - * the creation of event objects until we know we have interested listeners. - * Most methods have the "non-duplicated" version of the method body commented - * out at the top of the current method body. - * The hope was that this class would prove to be fairly static and the duplicated - * code would not prove onerous; but that has not proven to be - * the case, as we have added support for "state" changes, "dirty" notification, - * and custom "notifiers", with more to come, I'm sure.... ~bjv - *

- * NB2: This class will check to see if, during the firing of events, a listener - * on the original, cloned, list of listeners has been removed from the master - * list of listeners before it is notified. If the listener has been removed - * "concurrently" it will not be notified. - *

- * NB3: Any listener that is added during the firing of events will not be - * also notified. This is a bit inconsistent with NB2, but seems reasonable - * since any added listener should already be in synch with the model. - *

- * NB4: This class is serializable, but it will only write out listeners that - * are also serializable while silently leaving behind listeners that are not. - * - * @see Model - * @see AbstractModel - */ -public class ChangeSupport - implements Serializable -{ - /** The object to be provided as the "source" for any generated events. */ - protected final Model source; - - /** Associate aspect names to class-specific listener lists. */ - private AspectListenerListPair[] aspectListenerListPairs = EMPTY_ASPECT_LISTENER_LIST_PAIR_ARRAY; - private static final AspectListenerListPair[] EMPTY_ASPECT_LISTENER_LIST_PAIR_ARRAY = new AspectListenerListPair[0]; - - private static final long serialVersionUID = 1L; - - - // ********** constructor ********** - - /** - * Construct support for the specified source of change events. - * The source cannot be null. - */ - public ChangeSupport(Model source) { - super(); - if (source == null) { - throw new NullPointerException(); - } - this.source = source; - } - - - // ********** internal implementation ********** - - /** - * Add a listener that listens to all the events of the specified type and - * carrying the specified aspect name. - * Neither the aspect name nor the listener can be null. - */ - protected synchronized void addListener(Class listenerClass, String aspectName, L listener) { - ListenerList aspectListenerList = this.getListenerList(listenerClass, aspectName); - if (aspectListenerList == null) { - this.aspectListenerListPairs = ArrayTools.add(this.aspectListenerListPairs, new SimpleAspectListenerListPair(listenerClass, aspectName, listener)); - } else { - aspectListenerList.add(listener); - } - } - - /** - * Add a listener that listens to all the events of the specified type. - * The listener cannot be null. - */ - protected synchronized void addListener(Class listenerClass, L listener) { - ListenerList listenerList = this.getListenerList(listenerClass); - if (listenerList == null) { - this.aspectListenerListPairs = ArrayTools.add(this.aspectListenerListPairs, new NullAspectListenerListPair(listenerClass, listener)); - } else { - listenerList.add(listener); - } - } - - /** - * Remove a listener that has been registered for all the - * events of the specified type and carrying the specified aspect name. - * Neither the aspect name nor the listener can be null. - */ - protected synchronized void removeListener(Class listenerClass, String aspectName, L listener) { - ListenerList aspectListenerList = this.getListenerList(listenerClass, aspectName); - if (aspectListenerList == null) { - throw new IllegalArgumentException("unregistered listener: " + listener); //$NON-NLS-1$ - } - aspectListenerList.remove(listener); // leave the pair, even if the listener list is empty? - } - - /** - * Remove a listener that has been registered for all the events of the specified type. - * The listener cannot be null. - */ - protected synchronized void removeListener(Class listenerClass, L listener) { - ListenerList listenerList = this.getListenerList(listenerClass); - if (listenerList == null) { - throw new IllegalArgumentException("unregistered listener: " + listener); //$NON-NLS-1$ - } - listenerList.remove(listener); // leave the pair, even if the listener list is empty? - } - - /** - * Return the listener list for the specified listener class and aspect name. - * Return null if the listener list is not present. - * The aspect name cannot be null. - */ - protected ListenerList getListenerList(Class listenerClass, String aspectName) { - // put in a null check to simplify calling code - if (aspectName == null) { - throw new NullPointerException(); - } - return this.getListenerList_(listenerClass, aspectName); - } - - /** - * Return the listener list for the specified listener class. - * Return null if the listener list is not present. - */ - protected ListenerList getListenerList(Class listenerClass) { - return this.getListenerList_(listenerClass, null); - } - - /** - * Return the listener list for the specified listener class and aspect name. - * Return null if the listener list is not present. - */ - protected synchronized ListenerList getListenerList_(Class listenerClass, String aspectName) { - for (AspectListenerListPair pair : this.aspectListenerListPairs) { - if (pair.matches(listenerClass, aspectName)) { - @SuppressWarnings("unchecked") ListenerList aspectListenerList = (ListenerList) pair.listenerList; - return aspectListenerList; - } - } - return null; - } - - /** - * Return whether there are any listeners for the specified listener class - * and aspect name. - */ - protected boolean hasAnyListeners(Class listenerClass, String aspectName) { - ListenerList aspectListenerList = this.getListenerList(listenerClass, aspectName); - if ((aspectListenerList != null) && ! aspectListenerList.isEmpty()) { - return true; - } - return this.hasAnyChangeListeners(); // check for any general purpose listeners - } - - /** - * Return whether there are no listeners for the specified listener class - * and aspect name. - */ - protected boolean hasNoListeners(Class listenerClass, String aspectName) { - return ! this.hasAnyListeners(listenerClass, aspectName); - } - - /** - * Return whether there are any listeners for the specified listener class. - */ - protected boolean hasAnyListeners(Class listenerClass) { - ListenerList aspectListenerList = this.getListenerList(listenerClass); - if ((aspectListenerList != null) && ! aspectListenerList.isEmpty()) { - return true; - } - // check for any general purpose listeners (unless that's what we're already doing) - return (listenerClass == this.getChangeListenerClass()) ? false : this.hasAnyChangeListeners(); - } - - /** - * Return whether there are no listeners for the specified listener class. - */ - protected boolean hasNoListeners(Class listenerClass) { - return ! this.hasAnyListeners(listenerClass); - } - - - // ********** general purpose change support ********** - - /** - * Subclasses that add other types of listeners should override this method - * to return the extension to ChangeListener that also extends whatever new - * listener types are supported. - */ - @SuppressWarnings("unchecked") - protected Class getChangeListenerClass() { - // not sure why I need to cast here... - return (Class) CHANGE_LISTENER_CLASS; - } - - protected static final Class CHANGE_LISTENER_CLASS = ChangeListener.class; - - /** - * Add a general purpose listener that listens to all events, - * regardless of the aspect name associated with that event. - * The listener cannot be null. - */ - public void addChangeListener(ChangeListener listener) { - this.addListener(this.getChangeListenerClass(), listener); - } - - /** - * Remove a general purpose listener. - * The listener cannot be null. - */ - public void removeChangeListener(ChangeListener listener) { - this.removeListener(this.getChangeListenerClass(), listener); - } - - /** - * Return whether there are any general purpose listeners that will be - * notified of any changes. - */ - public boolean hasAnyChangeListeners() { - return this.hasAnyListeners(this.getChangeListenerClass()); - } - - private ListenerList getChangeListenerList() { - return this.getListenerList(CHANGE_LISTENER_CLASS); - } - - private Iterable getChangeListeners() { - ListenerList listenerList = this.getChangeListenerList(); - return (listenerList == null) ? null : listenerList.getListeners(); - } - - private boolean hasChangeListener(ChangeListener listener) { - return CollectionTools.contains(this.getChangeListeners(), listener); - } - - - // ********** state change support ********** - - protected static final Class STATE_CHANGE_LISTENER_CLASS = StateChangeListener.class; - - /** - * Add a state change listener. - */ - public void addStateChangeListener(StateChangeListener listener) { - this.addListener(STATE_CHANGE_LISTENER_CLASS, listener); - } - - /** - * Remove a state change listener. - */ - public void removeStateChangeListener(StateChangeListener listener) { - this.removeListener(STATE_CHANGE_LISTENER_CLASS, listener); - } - - /** - * Return whether there are any state change listeners. - */ - public boolean hasAnyStateChangeListeners() { - return this.hasAnyListeners(STATE_CHANGE_LISTENER_CLASS); - } - - private ListenerList getStateChangeListenerList() { - return this.getListenerList(STATE_CHANGE_LISTENER_CLASS); - } - - private Iterable getStateChangeListeners() { - ListenerList listenerList = this.getStateChangeListenerList(); - return (listenerList == null) ? null : listenerList.getListeners(); - } - - private boolean hasStateChangeListener(StateChangeListener listener) { - return CollectionTools.contains(this.getStateChangeListeners(), listener); - } - - /** - * Fire the specified state change event to any registered listeners. - */ - public void fireStateChanged(StateChangeEvent event) { - Iterable listeners = this.getStateChangeListeners(); - if (listeners != null) { - for (StateChangeListener listener : listeners) { - if (this.hasStateChangeListener(listener)) { // verify listener is still listening - listener.stateChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.stateChanged(event); - } - } - } - } - - /** - * Report a generic state change event to any registered state change - * listeners. - */ - public void fireStateChanged() { -// this.fireStateChanged(new StateChangeEvent(this.source)); - StateChangeEvent event = null; - Iterable listeners = this.getStateChangeListeners(); - if (listeners != null) { - for (StateChangeListener listener : listeners) { - if (this.hasStateChangeListener(listener)) { // verify listener is still listening - if (event == null) { - event = new StateChangeEvent(this.source); - } - listener.stateChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new StateChangeEvent(this.source); - } - changeListener.stateChanged(event); - } - } - } - } - - - // ********** property change support ********** - - protected static final Class PROPERTY_CHANGE_LISTENER_CLASS = PropertyChangeListener.class; - - /** - * Add a property change listener for the specified property. The listener - * will be notified only for changes to the specified property. - */ - public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - this.addListener(PROPERTY_CHANGE_LISTENER_CLASS, propertyName, listener); - } - - /** - * Remove a property change listener that was registered for a specific property. - */ - public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { - this.removeListener(PROPERTY_CHANGE_LISTENER_CLASS, propertyName, listener); - } - - /** - * Return whether there are any property change listeners that will - * be notified when the specified property has changed. - */ - public boolean hasAnyPropertyChangeListeners(String propertyName) { - return this.hasAnyListeners(PROPERTY_CHANGE_LISTENER_CLASS, propertyName); - } - - private ListenerList getPropertyChangeListenerList(String propertyName) { - return this.getListenerList(PROPERTY_CHANGE_LISTENER_CLASS, propertyName); - } - - private Iterable getPropertyChangeListeners(String propertyName) { - ListenerList listenerList = this.getPropertyChangeListenerList(propertyName); - return (listenerList == null) ? null : listenerList.getListeners(); - } - - private boolean hasPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - return CollectionTools.contains(this.getPropertyChangeListeners(propertyName), listener); - } - - /** - * Fire the specified property change event to any registered listeners. - * No event is fired if the specified event's old and new values are the same; - * this includes when both values are null. Use a state change event - * for general purpose notification of changes. - * Return whether the old and new values are different. - */ - public boolean firePropertyChanged(PropertyChangeEvent event) { - if (this.valuesAreDifferent(event.getOldValue(), event.getNewValue())) { - this.firePropertyChanged_(event); - return true; - } - return false; - } - - /** - * pre-condition: the specified event's old and new values are different - */ - protected void firePropertyChanged_(PropertyChangeEvent event) { - String propertyName = event.getPropertyName(); - Iterable listeners = this.getPropertyChangeListeners(propertyName); - if (listeners != null) { - for (PropertyChangeListener listener : listeners) { - if (this.hasPropertyChangeListener(propertyName, listener)) { // verify listener is still listening - listener.propertyChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.propertyChanged(event); - } - } - } - } - - /** - * Report a bound property update to any registered property change listeners. - * No event is fired if the specified old and new values are the same; - * this includes when both values are null. Use a state change event - * for general purpose notification of changes. - * Return whether the old and new values are different. - */ - public boolean firePropertyChanged(String propertyName, Object oldValue, Object newValue) { -// return this.firePropertyChanged(new PropertyChangeEvent(this.source, propertyName, oldValue, newValue)); - if (this.valuesAreDifferent(oldValue, newValue)) { - this.firePropertyChanged_(propertyName, oldValue, newValue); - return true; - } - return false; - } - - /** - * pre-condition: the specified old and new values are different - */ - protected void firePropertyChanged_(String propertyName, Object oldValue, Object newValue) { - PropertyChangeEvent event = null; - Iterable listeners = this.getPropertyChangeListeners(propertyName); - if (listeners != null) { - for (PropertyChangeListener listener : listeners) { - if (this.hasPropertyChangeListener(propertyName, listener)) { // verify listener is still listening - if (event == null) { - event = new PropertyChangeEvent(this.source, propertyName, oldValue, newValue); - } - listener.propertyChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new PropertyChangeEvent(this.source, propertyName, oldValue, newValue); - } - changeListener.propertyChanged(event); - } - } - } - } - - /** - * Report an int bound property update to any registered listeners. - * No event is fired if the specified old and new values are equal. - * Return whether the old and new values are different. - *

- * This is merely a convenience wrapper around the more general method - * {@link #firePropertyChanged(String, Object, Object)}. - */ - public boolean firePropertyChanged(String propertyName, int oldValue, int newValue) { -// return this.firePropertyChanged(propertyName, Integer.valueOf(oldValue), Integer.valueOf(newValue)); - if (oldValue != newValue) { - this.firePropertyChanged_(propertyName, oldValue, newValue); - return true; - } - return false; - } - - /** - * pre-condition: the specified old and new values are different - */ - protected void firePropertyChanged_(String propertyName, int oldValue, int newValue) { - PropertyChangeEvent event = null; - Iterable listeners = this.getPropertyChangeListeners(propertyName); - if (listeners != null) { - for (PropertyChangeListener listener : listeners) { - if (this.hasPropertyChangeListener(propertyName, listener)) { // verify listener is still listening - if (event == null) { - event = new PropertyChangeEvent(this.source, propertyName, Integer.valueOf(oldValue), Integer.valueOf(newValue)); - } - listener.propertyChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new PropertyChangeEvent(this.source, propertyName, Integer.valueOf(oldValue), Integer.valueOf(newValue)); - } - changeListener.propertyChanged(event); - } - } - } - } - - /** - * Report a boolean bound property update to any registered listeners. - * No event is fired if the specified old and new values are equal. - * Return whether the old and new values are different. - *

- * This is merely a convenience wrapper around the more general method - * {@link #firePropertyChanged(String, Object, Object)}. - */ - public boolean firePropertyChanged(String propertyName, boolean oldValue, boolean newValue) { -// return this.firePropertyChanged(propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue)); - if (oldValue != newValue) { - this.firePropertyChanged_(propertyName, oldValue, newValue); - return true; - } - return false; - } - - /** - * pre-condition: the specified old and new values are different - */ - protected void firePropertyChanged_(String propertyName, boolean oldValue, boolean newValue) { - PropertyChangeEvent event = null; - Iterable listeners = this.getPropertyChangeListeners(propertyName); - if (listeners != null) { - for (PropertyChangeListener listener : listeners) { - if (this.hasPropertyChangeListener(propertyName, listener)) { // verify listener is still listening - if (event == null) { - event = new PropertyChangeEvent(this.source, propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue)); - } - listener.propertyChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new PropertyChangeEvent(this.source, propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue)); - } - changeListener.propertyChanged(event); - } - } - } - } - - - // ********** collection change support ********** - - protected static final Class COLLECTION_CHANGE_LISTENER_CLASS = CollectionChangeListener.class; - - /** - * Add a collection change listener for the specified collection. The listener - * will be notified only for changes to the specified collection. - */ - public void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) { - this.addListener(COLLECTION_CHANGE_LISTENER_CLASS, collectionName, listener); - } - - /** - * Remove a collection change listener that was registered for a specific collection. - */ - public void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) { - this.removeListener(COLLECTION_CHANGE_LISTENER_CLASS, collectionName, listener); - } - - /** - * Return whether there are any collection change listeners that will - * be notified when the specified collection has changed. - */ - public boolean hasAnyCollectionChangeListeners(String collectionName) { - return this.hasAnyListeners(COLLECTION_CHANGE_LISTENER_CLASS, collectionName); - } - - private ListenerList getCollectionChangeListenerList(String collectionName) { - return this.getListenerList(COLLECTION_CHANGE_LISTENER_CLASS, collectionName); - } - - private Iterable getCollectionChangeListeners(String collectionName) { - ListenerList listenerList = this.getCollectionChangeListenerList(collectionName); - return (listenerList == null) ? null : listenerList.getListeners(); - } - - private boolean hasCollectionChangeListener(String collectionName, CollectionChangeListener listener) { - return CollectionTools.contains(this.getCollectionChangeListeners(collectionName), listener); - } - - /** - * Report a bound collection update to any registered listeners. - * Return whether the event has any items. - */ - public boolean fireItemsAdded(CollectionAddEvent event) { - if (event.getItemsSize() != 0) { - this.fireItemsAdded_(event); - return true; - } - return false; - } - - /** - * pre-condition: the specified event contains items - */ - protected void fireItemsAdded_(CollectionAddEvent event) { - String collectionName = event.getCollectionName(); - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - listener.itemsAdded(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.itemsAdded(event); - } - } - } - } - - /** - * Report a bound collection update to any registered listeners. - * Return whether there are any added items. - */ - public boolean fireItemsAdded(String collectionName, Collection addedItems) { -// return this.fireItemsAdded(new CollectionAddEvent(this.source, collectionName, addedItems)); - if ( ! addedItems.isEmpty()) { - this.fireItemsAdded_(collectionName, addedItems); - return true; - } - return false; - } - - /** - * pre-condition: 'addedItems' is not empty - */ - protected void fireItemsAdded_(String collectionName, Collection addedItems) { - CollectionAddEvent event = null; - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - if (event == null) { - event = new CollectionAddEvent(this.source, collectionName, addedItems); - } - listener.itemsAdded(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new CollectionAddEvent(this.source, collectionName, addedItems); - } - changeListener.itemsAdded(event); - } - } - } - } - - /** - * Report a bound collection update to any registered listeners. - */ - public void fireItemAdded(String collectionName, Object addedItem) { -// this.fireItemsAdded(collectionName, Collections.singleton(addedItem)); - - CollectionAddEvent event = null; - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - if (event == null) { - event = new CollectionAddEvent(this.source, collectionName, addedItem); - } - listener.itemsAdded(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new CollectionAddEvent(this.source, collectionName, addedItem); - } - changeListener.itemsAdded(event); - } - } - } - } - - /** - * Report a bound collection update to any registered listeners. - * Return whether the event has any items. - */ - public boolean fireItemsRemoved(CollectionRemoveEvent event) { - if (event.getItemsSize() != 0) { - this.fireItemsRemoved_(event); - return true; - } - return false; - } - - /** - * pre-condition: the specified event contains items - */ - protected void fireItemsRemoved_(CollectionRemoveEvent event) { - String collectionName = event.getCollectionName(); - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - listener.itemsRemoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.itemsRemoved(event); - } - } - } - } - - /** - * Report a bound collection update to any registered listeners. - * Return whether there are any removed items. - */ - public boolean fireItemsRemoved(String collectionName, Collection removedItems) { -// return this.fireItemsRemoved(new CollectionRemoveEvent(this.source, collectionName, removedItems)); - if ( ! removedItems.isEmpty()) { - this.fireItemsRemoved_(collectionName, removedItems); - return true; - } - return false; - } - - /** - * pre-condition: 'removedItems' is not empty - */ - protected void fireItemsRemoved_(String collectionName, Collection removedItems) { - CollectionRemoveEvent event = null; - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - if (event == null) { - event = new CollectionRemoveEvent(this.source, collectionName, removedItems); - } - listener.itemsRemoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new CollectionRemoveEvent(this.source, collectionName, removedItems); - } - changeListener.itemsRemoved(event); - } - } - } - } - - /** - * Report a bound collection update to any registered listeners. - */ - public void fireItemRemoved(String collectionName, Object removedItem) { -// this.fireItemsRemoved(collectionName, Collections.singleton(removedItem)); - - CollectionRemoveEvent event = null; - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - if (event == null) { - event = new CollectionRemoveEvent(this.source, collectionName, removedItem); - } - listener.itemsRemoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new CollectionRemoveEvent(this.source, collectionName, removedItem); - } - changeListener.itemsRemoved(event); - } - } - } - } - - /** - * Report a bound collection update to any registered listeners. - */ - public void fireCollectionCleared(CollectionClearEvent event) { - String collectionName = event.getCollectionName(); - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - listener.collectionCleared(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.collectionCleared(event); - } - } - } - } - - /** - * Report a bound collection update to any registered listeners. - */ - public void fireCollectionCleared(String collectionName) { -// this.fireCollectionCleared(new CollectionClearEvent(this.source, collectionName)); - - CollectionClearEvent event = null; - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - if (event == null) { - event = new CollectionClearEvent(this.source, collectionName); - } - listener.collectionCleared(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new CollectionClearEvent(this.source, collectionName); - } - changeListener.collectionCleared(event); - } - } - } - } - - /** - * Report a bound collection update to any registered listeners. - */ - public void fireCollectionChanged(CollectionChangeEvent event) { - String collectionName = event.getCollectionName(); - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - listener.collectionChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.collectionChanged(event); - } - } - } - } - - /** - * Report a bound collection update to any registered listeners. - */ - public void fireCollectionChanged(String collectionName, Collection collection) { -// this.fireCollectionChanged(new CollectionChangeEvent(this.source, collectionName, collection)); - - CollectionChangeEvent event = null; - Iterable listeners = this.getCollectionChangeListeners(collectionName); - if (listeners != null) { - for (CollectionChangeListener listener : listeners) { - if (this.hasCollectionChangeListener(collectionName, listener)) { // verify listener is still listening - if (event == null) { - event = new CollectionChangeEvent(this.source, collectionName, collection); - } - listener.collectionChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new CollectionChangeEvent(this.source, collectionName, collection); - } - changeListener.collectionChanged(event); - } - } - } - } - - /** - * Add the specified item to the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#add(Object) - */ - public boolean addItemToCollection(E item, Collection collection, String collectionName) { - if (collection.add(item)) { - this.fireItemAdded(collectionName, item); - return true; - } - return false; - } - - /** - * Add the specified items to the specified bound collection - * and fire the appropriate event if necessary. - * Return whether collection changed. - * @see Collection#addAll(Collection) - */ - public boolean addItemsToCollection(E[] items, Collection collection, String collectionName) { - return (items.length != 0) - && this.addItemsToCollection_(new ArrayIterator(items), collection, collectionName); - } - - /** - * Add the specified items to the specified bound collection - * and fire the appropriate event if necessary. - * Return whether collection changed. - * @see Collection#addAll(Collection) - */ - public boolean addItemsToCollection(Collection items, Collection collection, String collectionName) { - return ( ! items.isEmpty()) - && this.addItemsToCollection_(items.iterator(), collection, collectionName); - } - - /** - * Add the specified items to the specified bound collection - * and fire the appropriate event if necessary. - * Return whether collection changed. - * @see Collection#addAll(Collection) - */ - public boolean addItemsToCollection(Iterable items, Collection collection, String collectionName) { - return this.addItemsToCollection(items.iterator(), collection, collectionName); - } - - /** - * Add the specified items to the specified bound collection - * and fire the appropriate event if necessary. - * Return whether collection changed. - * @see Collection#addAll(Collection) - */ - public boolean addItemsToCollection(Iterator items, Collection collection, String collectionName) { - return items.hasNext() - && this.addItemsToCollection_(items, collection, collectionName); - } - - /** - * no empty check - */ - protected boolean addItemsToCollection_(Iterator items, Collection collection, String collectionName) { - Collection addedItems = null; - while (items.hasNext()) { - E item = items.next(); - if (collection.add(item)) { - if (addedItems == null) { - addedItems = new ArrayList(); - } - addedItems.add(item); - } - } - if (addedItems != null) { - this.fireItemsAdded_(collectionName, addedItems); - return true; - } - return false; - } - - /** - * Remove the specified item from the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#remove(Object) - */ - public boolean removeItemFromCollection(Object item, Collection collection, String collectionName) { - if (collection.remove(item)) { - this.fireItemRemoved(collectionName, item); - return true; - } - return false; - } - - /** - * Remove the specified items from the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#removeAll(Collection) - */ - public boolean removeItemsFromCollection(Object[] items, Collection collection, String collectionName) { - return (items.length != 0) - && ( ! collection.isEmpty()) - && this.removeItemsFromCollection_(new ArrayIterator(items), collection, collectionName); - } - - /** - * Remove the specified items from the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#removeAll(Collection) - */ - public boolean removeItemsFromCollection(Collection items, Collection collection, String collectionName) { - return ( ! items.isEmpty()) - && ( ! collection.isEmpty()) - && this.removeItemsFromCollection_(items.iterator(), collection, collectionName); - } - - /** - * Remove the specified items from the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#removeAll(Collection) - */ - public boolean removeItemsFromCollection(Iterable items, Collection collection, String collectionName) { - return this.removeItemsFromCollection(items.iterator(), collection, collectionName); - } - - /** - * Remove the specified items from the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#removeAll(Collection) - */ - public boolean removeItemsFromCollection(Iterator items, Collection collection, String collectionName) { - return items.hasNext() - && ( ! collection.isEmpty()) - && this.removeItemsFromCollection_(items, collection, collectionName); - } - - /** - * no empty checks - */ - protected boolean removeItemsFromCollection_(Iterator items, Collection collection, String collectionName) { - HashBag removedItems = CollectionTools.collection(items); - removedItems.retainAll(collection); - boolean changed = collection.removeAll(removedItems); - - if ( ! removedItems.isEmpty()) { - this.fireItemsRemoved_(collectionName, removedItems); - } - return changed; - } - - /** - * Retain the specified items in the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#retainAll(Collection) - */ - public boolean retainItemsInCollection(Object[] items, Collection collection, String collectionName) { - if (collection.isEmpty()) { - return false; - } - if (items.length == 0) { - return this.clearCollection_(collection, collectionName); - } - return this.retainItemsInCollection_(new ArrayIterator(items), collection, collectionName); - } - - /** - * Retain the specified items in the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#retainAll(Collection) - */ - public boolean retainItemsInCollection(Collection items, Collection collection, String collectionName) { - if (collection.isEmpty()) { - return false; - } - if (items.isEmpty()) { - return this.clearCollection_(collection, collectionName); - } - return this.retainItemsInCollection_(items.iterator(), collection, collectionName); - } - - /** - * Retain the specified items in the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#retainAll(Collection) - */ - public boolean retainItemsInCollection(Iterable items, Collection collection, String collectionName) { - return this.retainItemsInCollection(items.iterator(), collection, collectionName); - } - - /** - * Retain the specified items in the specified bound collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#retainAll(Collection) - */ - public boolean retainItemsInCollection(Iterator items, Collection collection, String collectionName) { - if (collection.isEmpty()) { - return false; - } - if ( ! items.hasNext()) { - return this.clearCollection_(collection, collectionName); - } - return this.retainItemsInCollection_(items, collection, collectionName); - } - - /** - * no empty checks - */ - protected boolean retainItemsInCollection_(Iterator items, Collection collection, String collectionName) { - HashBag retainedItems = CollectionTools.collection(items); - HashBag removedItems = CollectionTools.collection(collection); - removedItems.removeAll(retainedItems); - boolean changed = collection.retainAll(retainedItems); - - if ( ! removedItems.isEmpty()) { - this.fireItemsRemoved_(collectionName, removedItems); - } - return changed; - } - - /** - * Clear the entire collection - * and fire the appropriate event if necessary. - * Return whether the collection changed. - * @see Collection#clear() - */ - public boolean clearCollection(Collection collection, String collectionName) { - if (collection.isEmpty()) { - return false; - } - return this.clearCollection_(collection, collectionName); - } - - /** - * no empty check - */ - protected boolean clearCollection_(Collection collection, String collectionName) { - collection.clear(); - this.fireCollectionCleared(collectionName); - return true; - } - - /** - * Synchronize the collection with the specified new collection, - * making a minimum number of removes and adds. - * Return whether the collection changed. - */ - public boolean synchronizeCollection(Collection newCollection, Collection collection, String collectionName) { - if (newCollection.isEmpty()) { - return this.clearCollection(collection, collectionName); - } - - if (collection.isEmpty()) { - return this.addItemsToCollection_(newCollection.iterator(), collection, collectionName); - } - - return this.synchronizeCollection_(newCollection, collection, collectionName); - } - - /** - * Synchronize the collection with the specified new collection, - * making a minimum number of removes and adds. - * Return whether the collection changed. - */ - public boolean synchronizeCollection(Iterable newCollection, Collection collection, String collectionName) { - return this.synchronizeCollection(newCollection.iterator(), collection, collectionName); - } - - /** - * Synchronize the collection with the specified new collection, - * making a minimum number of removes and adds. - * Return whether the collection changed. - */ - public boolean synchronizeCollection(Iterator newCollection, Collection collection, String collectionName) { - if ( ! newCollection.hasNext()) { - return this.clearCollection(collection, collectionName); - } - - if (collection.isEmpty()) { - return this.addItemsToCollection_(newCollection, collection, collectionName); - } - - return this.synchronizeCollection_(CollectionTools.collection(newCollection), collection, collectionName); - } - - /** - * no empty checks - */ - protected boolean synchronizeCollection_(Collection newCollection, Collection collection, String collectionName) { - boolean changed = false; - Collection removeItems = new HashBag(collection); - removeItems.removeAll(newCollection); - changed |= this.removeItemsFromCollection(removeItems, collection, collectionName); - - Collection addItems = new HashBag(newCollection); - addItems.removeAll(collection); - changed |= this.addItemsToCollection(addItems, collection, collectionName); - - return changed; - } - - - // ********** list change support ********** - - protected static final Class LIST_CHANGE_LISTENER_CLASS = ListChangeListener.class; - - /** - * Add a list change listener for the specified list. The listener - * will be notified only for changes to the specified list. - */ - public void addListChangeListener(String listName, ListChangeListener listener) { - this.addListener(LIST_CHANGE_LISTENER_CLASS, listName, listener); - } - - /** - * Remove a list change listener that was registered for a specific list. - */ - public void removeListChangeListener(String listName, ListChangeListener listener) { - this.removeListener(LIST_CHANGE_LISTENER_CLASS, listName, listener); - } - - /** - * Return whether there are any list change listeners that will - * be notified when the specified list has changed. - */ - public boolean hasAnyListChangeListeners(String listName) { - return this.hasAnyListeners(LIST_CHANGE_LISTENER_CLASS, listName); - } - - private ListenerList getListChangeListenerList(String listName) { - return this.getListenerList(LIST_CHANGE_LISTENER_CLASS, listName); - } - - private Iterable getListChangeListeners(String listName) { - ListenerList listenerList = this.getListChangeListenerList(listName); - return (listenerList == null) ? null : listenerList.getListeners(); - } - - private boolean hasListChangeListener(String listName, ListChangeListener listener) { - return CollectionTools.contains(this.getListChangeListeners(listName), listener); - } - - /** - * Report a bound list update to any registered listeners. - * Return whether there are any added items. - */ - public boolean fireItemsAdded(ListAddEvent event) { - if (event.getItemsSize() != 0) { - this.fireItemsAdded_(event); - return true; - } - return false; - } - - /** - * pre-condition: the specified event contains items - */ - protected void fireItemsAdded_(ListAddEvent event) { - String listName = event.getListName(); - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - listener.itemsAdded(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.itemsAdded(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - * Return whether there are any added items. - */ - public boolean fireItemsAdded(String listName, int index, List addedItems) { -// return this.fireItemsAdded(new ListAddEvent(this.source, listName, index, addedItems)); - if ( ! addedItems.isEmpty()) { - this.fireItemsAdded_(listName, index, addedItems); - return true; - } - return false; - } - - /** - * pre-condition: 'addedItems' is not empty - */ - protected void fireItemsAdded_(String listName, int index, List addedItems) { - ListAddEvent event = null; - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - if (event == null) { - event = new ListAddEvent(this.source, listName, index, addedItems); - } - listener.itemsAdded(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new ListAddEvent(this.source, listName, index, addedItems); - } - changeListener.itemsAdded(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - */ - public void fireItemAdded(String listName, int index, Object addedItem) { -// this.fireItemsAdded(listName, index, Collections.singletonList(addedItem)); - - ListAddEvent event = null; - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - if (event == null) { - event = new ListAddEvent(this.source, listName, index, addedItem); - } - listener.itemsAdded(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new ListAddEvent(this.source, listName, index, addedItem); - } - changeListener.itemsAdded(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - * Return whether there are any removed items. - */ - public boolean fireItemsRemoved(ListRemoveEvent event) { - if (event.getItemsSize() != 0) { - this.fireItemsRemoved_(event); - return true; - } - return false; - } - - /** - * pre-condition: the specified event contains items - */ - protected void fireItemsRemoved_(ListRemoveEvent event) { - String listName = event.getListName(); - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - listener.itemsRemoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.itemsRemoved(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - * Return whether there are any removed items. - */ - public boolean fireItemsRemoved(String listName, int index, List removedItems) { -// return this.fireItemsRemoved(new ListRemoveEvent(this.source, listName, index, removedItems)); - if ( ! removedItems.isEmpty()) { - this.fireItemsRemoved_(listName, index, removedItems); - return true; - } - return false; - } - - /** - * pre-condition: 'removedItems' is not empty - */ - protected void fireItemsRemoved_(String listName, int index, List removedItems) { - ListRemoveEvent event = null; - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - if (event == null) { - event = new ListRemoveEvent(this.source, listName, index, removedItems); - } - listener.itemsRemoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new ListRemoveEvent(this.source, listName, index, removedItems); - } - changeListener.itemsRemoved(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - */ - public void fireItemRemoved(String listName, int index, Object removedItem) { -// this.fireItemsRemoved(listName, index, Collections.singletonList(removedItem)); - - ListRemoveEvent event = null; - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - if (event == null) { - event = new ListRemoveEvent(this.source, listName, index, removedItem); - } - listener.itemsRemoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new ListRemoveEvent(this.source, listName, index, removedItem); - } - changeListener.itemsRemoved(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - * Return whether there are any replaced items. - */ - public boolean fireItemsReplaced(ListReplaceEvent event) { - if ((event.getItemsSize() != 0) && this.elementsAreDifferent(event.getNewItems(), event.getOldItems())) { - this.fireItemsReplaced_(event); - return true; - } - return false; - } - - /** - * pre-condition: the specified event contains new items - */ - protected void fireItemsReplaced_(ListReplaceEvent event) { - String listName = event.getListName(); - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - listener.itemsReplaced(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.itemsReplaced(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - * Return whether there are any replaced items. - */ - public boolean fireItemsReplaced(String listName, int index, List newItems, List oldItems) { -// return this.fireItemsReplaced(new ListReplaceEvent(this.source, listName, index, newItems, oldItems)); - if (( ! newItems.isEmpty()) && this.elementsAreDifferent(newItems, oldItems)) { - this.fireItemsReplaced_(listName, index, newItems, oldItems); - return true; - } - return false; - } - - /** - * pre-condition: 'newItems' is not empty and unequal to 'oldItems' - */ - protected void fireItemsReplaced_(String listName, int index, List newItems, List oldItems) { - ListReplaceEvent event = null; - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - if (event == null) { - event = new ListReplaceEvent(this.source, listName, index, newItems, oldItems); - } - listener.itemsReplaced(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new ListReplaceEvent(this.source, listName, index, newItems, oldItems); - } - changeListener.itemsReplaced(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - * Return whether the item changed. - */ - public boolean fireItemReplaced(String listName, int index, Object newItem, Object oldItem) { -// return this.fireItemsReplaced(listName, index, Collections.singletonList(newItem), Collections.singletonList(oldItem)); - if (this.valuesAreDifferent(newItem, oldItem)) { - this.fireItemReplaced_(listName, index, newItem, oldItem); - return true; - } - return false; - } - - /** - * pre-condition: the specified old and new items are different - */ - protected void fireItemReplaced_(String listName, int index, Object newItem, Object oldItem) { - ListReplaceEvent event = null; - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - if (event == null) { - event = new ListReplaceEvent(this.source, listName, index, newItem, oldItem); - } - listener.itemsReplaced(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new ListReplaceEvent(this.source, listName, index, newItem, oldItem); - } - changeListener.itemsReplaced(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - * Return whether there are any moved items. - */ - // it's unlikely but possible the list is unchanged by the move... - // e.g. any moves within ["foo", "foo", "foo"] - public boolean fireItemsMoved(ListMoveEvent event) { - if (event.getTargetIndex() != event.getSourceIndex()) { - this.fireItemsMoved_(event); - return true; - } - return false; - } - - /** - * pre-condition: the specified event indicates a move - */ - protected void fireItemsMoved_(ListMoveEvent event) { - String listName = event.getListName(); - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - listener.itemsMoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.itemsMoved(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - * Return whether there are any moved items. - */ - // it's unlikely but possible the list is unchanged by the move... - // e.g. any moves within ["foo", "foo", "foo"] - public boolean fireItemsMoved(String listName, int targetIndex, int sourceIndex, int length) { -// return this.fireItemsMoved(new ListMoveEvent(this.source, listName, targetIndex, sourceIndex, length)); - if (targetIndex != sourceIndex) { - this.fireItemsMoved_(listName, targetIndex, sourceIndex, length); - return true; - } - return false; - } - - /** - * pre-condition: the specified indices indicate a move - */ - protected void fireItemsMoved_(String listName, int targetIndex, int sourceIndex, int length) { - ListMoveEvent event = null; - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - if (event == null) { - event = new ListMoveEvent(this.source, listName, targetIndex, sourceIndex, length); - } - listener.itemsMoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new ListMoveEvent(this.source, listName, targetIndex, sourceIndex, length); - } - changeListener.itemsMoved(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - * Return whether there are any moved items. - */ - // it's unlikely but possible the list is unchanged by the move... - // e.g. any moves within ["foo", "foo", "foo"] - public boolean fireItemMoved(String listName, int targetIndex, int sourceIndex) { - if (targetIndex != sourceIndex) { - this.fireItemMoved_(listName, targetIndex, sourceIndex); - return true; - } - return false; - } - - /** - * pre-condition: the specified indices indicate a move - */ - protected void fireItemMoved_(String listName, int targetIndex, int sourceIndex) { - this.fireItemsMoved_(listName, targetIndex, sourceIndex, 1); - } - - /** - * Report a bound list update to any registered listeners. - */ - public void fireListCleared(ListClearEvent event) { - String listName = event.getListName(); - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - listener.listCleared(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.listCleared(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - */ - public void fireListCleared(String listName) { -// this.fireListCleared(new ListClearEvent(this.source, listName)); - - ListClearEvent event = null; - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - if (event == null) { - event = new ListClearEvent(this.source, listName); - } - listener.listCleared(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new ListClearEvent(this.source, listName); - } - changeListener.listCleared(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - */ - public void fireListChanged(ListChangeEvent event) { - String listName = event.getListName(); - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - listener.listChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.listChanged(event); - } - } - } - } - - /** - * Report a bound list update to any registered listeners. - */ - public void fireListChanged(String listName, List list) { -// this.fireListChanged(new ListChangeEvent(this.source, listName)); - - ListChangeEvent event = null; - Iterable listeners = this.getListChangeListeners(listName); - if (listeners != null) { - for (ListChangeListener listener : listeners) { - if (this.hasListChangeListener(listName, listener)) { // verify listener is still listening - if (event == null) { - event = new ListChangeEvent(this.source, listName, list); - } - listener.listChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new ListChangeEvent(this.source, listName, list); - } - changeListener.listChanged(event); - } - } - } - } - - /** - * Add the specified item to the specified bound list at the specified index - * and fire the appropriate event. - * @see List#add(int, Object) - */ - public void addItemToList(int index, E item, List list, String listName) { - list.add(index, item); - this.fireItemAdded(listName, index, item); - } - - /** - * Add the specified item to the end of the specified bound list - * and fire the appropriate event. - * Return whether the list changed (i.e. 'true'). - * @see List#add(Object) - */ - public boolean addItemToList(E item, List list, String listName) { - if (list.add(item)) { - this.fireItemAdded(listName, list.size() - 1, item); - return true; - } - return false; // List#add(Object) should always return 'true', so we should never get here... - } - - /** - * Add the specified items to the specified bound list at the specified index - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#addAll(int, Collection) - */ - public boolean addItemsToList(int index, E[] items, List list, String listName) { - return (items.length != 0) - && this.addItemsToList_(index, Arrays.asList(items), list, listName); - } - - /** - * Add the specified items to the specified bound list at the specified index - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#addAll(int, Collection) - */ - public boolean addItemsToList(int index, Collection items, List list, String listName) { - return ( ! items.isEmpty()) - && this.addItemsToList_(index, this.convertToList(items), list, listName); - } - - /** - * no empty check - */ - protected boolean addItemsToList_(int index, List items, List list, String listName) { - if (list.addAll(index, items)) { - this.fireItemsAdded(listName, index, items); - return true; - } - return false; // 'items' should not be empty, so we should never get here... - } - - /** - * Add the specified items to the specified bound list - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#addAll(int, Collection) - */ - public boolean addItemsToList(int index, Iterable items, List list, String listName) { - return this.addItemsToList(index, items.iterator(), list, listName); - } - - /** - * Add the specified items to the specified bound list - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#addAll(int, Collection) - */ - public boolean addItemsToList(int index, Iterator items, List list, String listName) { - if ( ! items.hasNext()) { - return false; - } - - ArrayList addedItems = CollectionTools.list(items); - if (list.addAll(index, addedItems)) { - this.fireItemsAdded(listName, index, addedItems); - return true; - } - return false; // 'items' should not be empty, so we should never get here... - } - - /** - * Add the specified items to the end of to the specified bound list - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#addAll(Collection) - */ - public boolean addItemsToList(E[] items, List list, String listName) { - return (items.length != 0) - && this.addItemsToList_(Arrays.asList(items), list, listName); - } - - /** - * Add the specified items to the end of the specified bound list - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#addAll(int, Collection) - */ - public boolean addItemsToList(Collection items, List list, String listName) { - return ( ! items.isEmpty()) - && this.addItemsToList_(this.convertToList(items), list, listName); - } - - protected List convertToList(Collection collection) { - return (collection instanceof List) ? (List) collection : new ArrayList(collection); - } - - /** - * no empty check - */ - protected boolean addItemsToList_(List items, List list, String listName) { - int index = list.size(); - if (list.addAll(items)) { - this.fireItemsAdded(listName, index, items); - return true; - } - return false; // 'items' should not be empty, so we should never get here... - } - - /** - * Add the specified items to the end of to the specified bound list - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#addAll(Collection) - */ - public boolean addItemsToList(Iterable items, List list, String listName) { - return this.addItemsToList(items.iterator(), list, listName); - } - - /** - * Add the specified items to the end of to the specified bound list - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#addAll(Collection) - */ - public boolean addItemsToList(Iterator items, List list, String listName) { - if ( ! items.hasNext()) { - return false; - } - return this.addItemsToList_(items, list, listName); - } - - /** - * no empty check - */ - protected boolean addItemsToList_(Iterator items, List list, String listName) { - ArrayList addedItems = CollectionTools.list(items); - int index = list.size(); - if (list.addAll(addedItems)) { - this.fireItemsAdded(listName, index, addedItems); - return true; - } - return false; // 'items' should not be empty, so we should never get here... - } - - /** - * Remove the specified item from the specified bound list - * and fire the appropriate event if necessary. - * Return the removed item. - * @see List#remove(int) - */ - public E removeItemFromList(int index, List list, String listName) { - E item = list.remove(index); - this.fireItemRemoved(listName, index, item); - return item; - } - - /** - * Remove the specified item from the specified bound list - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#remove(Object) - */ - public boolean removeItemFromList(Object item, List list, String listName) { - int index = list.indexOf(item); - if (index == -1) { - return false; - } - list.remove(index); - this.fireItemRemoved(listName, index, item); - return true; - } - - /** - * Remove the items from the specified index to the end of the list - * from the specified bound list - * and fire the appropriate event if necessary. - * Return the removed items. - * @see List#remove(int) - */ - public List removeItemsFromList(int index, List list, String listName) { - return this.removeRangeFromList(index, list.size(), list, listName); - } - - /** - * Remove the specified items from the specified bound list - * and fire the appropriate event if necessary. - * Return the removed items. - * @see List#remove(int) - */ - public List removeItemsFromList(int index, int length, List list, String listName) { - return this.removeRangeFromList(index, index + length, list, listName); - } - - /** - * Remove the specified items from the specified bound list - * and fire the appropriate event if necessary. The begin index - * is inclusive, while the end index is exclusive. - * Return the removed items. - * @see List#remove(int) - * @see List#subList(int, int) - */ - public List removeRangeFromList(int beginIndex, int endIndex, List list, String listName) { - if (beginIndex == endIndex) { - return Collections.emptyList(); - } - return this.removeRangeFromList_(beginIndex, endIndex, list, listName); - } - - /** - * no empty check - */ - protected List removeRangeFromList_(int beginIndex, int endIndex, List list, String listName) { - List subList = list.subList(beginIndex, endIndex); - List removedItems = new ArrayList(subList); - subList.clear(); - this.fireItemsRemoved(listName, beginIndex, removedItems); - return removedItems; - } - - /** - * Remove the specified items from the specified bound list - * and fire the appropriate event(s) if necessary. - * Return whether the list changed. - * @see List#removeAll(Collection) - */ - public boolean removeItemsFromList(Object[] items, List list, String listName) { - return (items.length != 0) - && ( ! list.isEmpty()) - && this.removeItemsFromList_(new ArrayIterator(items), list, listName); - } - - /** - * Remove the specified items from the specified bound list - * and fire the appropriate event(s) if necessary. - * Return whether the list changed. - * @see List#removeAll(Collection) - */ - public boolean removeItemsFromList(Collection items, List list, String listName) { - return ( ! items.isEmpty()) - && ( ! list.isEmpty()) - && this.removeItemsFromList_(items.iterator(), list, listName); - } - - /** - * Remove the specified items from the specified bound list - * and fire the appropriate event(s) if necessary. - * Return whether the list changed. - * @see List#removeAll(Collection) - */ - public boolean removeItemsFromList(Iterable items, List list, String listName) { - return this.removeItemsFromList(items.iterator(), list, listName); - } - - /** - * Remove the specified items from the specified bound list - * and fire the appropriate event(s) if necessary. - * Return whether the list changed. - * @see List#removeAll(Collection) - */ - public boolean removeItemsFromList(Iterator items, List list, String listName) { - return (items.hasNext()) - && ( ! list.isEmpty()) - && this.removeItemsFromList_(items, list, listName); - } - - /** - * no empty checks - */ - protected boolean removeItemsFromList_(Iterator items, List list, String listName) { - boolean changed = false; - while (items.hasNext()) { - changed |= this.removeItemFromList(items.next(), list, listName); - } - return changed; - } - - /** - * Retain the specified items in the specified bound list - * and fire the appropriate event(s) if necessary. - * Return whether the list changed. - * @see List#retainAll(Collection) - */ - public boolean retainItemsInList(Object[] items, List list, String listName) { - if (list.isEmpty()) { - return false; - } - if (items.length == 0) { - return this.clearList_(list, listName); - } - return this.retainItemsInList_(new ArrayIterator(items), list, listName); - } - - /** - * Retain the specified items in the specified bound list - * and fire the appropriate event(s) if necessary. - * Return whether the list changed. - * @see List#retainAll(Collection) - */ - public boolean retainItemsInList(Collection items, List list, String listName) { - if (list.isEmpty()) { - return false; - } - if (items.isEmpty()) { - return this.clearList_(list, listName); - } - return this.retainItemsInList_(items.iterator(), list, listName); - } - - /** - * Retain the specified items in the specified bound list - * and fire the appropriate event(s) if necessary. - * Return whether the list changed. - * @see List#retainAll(Collection) - */ - public boolean retainItemsInList(Iterable items, List list, String listName) { - return this.retainItemsInList(items.iterator(), list, listName); - } - - /** - * Retain the specified items in the specified bound list - * and fire the appropriate event(s) if necessary. - * Return whether the list changed. - * @see List#retainAll(Collection) - */ - public boolean retainItemsInList(Iterator items, List list, String listName) { - if (list.isEmpty()) { - return false; - } - if ( ! items.hasNext()) { - return this.clearList_(list, listName); - } - return this.retainItemsInList_(items, list, listName); - } - - /** - * no empty checks - */ - protected boolean retainItemsInList_(Iterator items, List list, String listName) { - HashBag retainedItems = CollectionTools.collection(items); - HashBag removedItems = CollectionTools.collection(list); - removedItems.removeAll(retainedItems); - return this.removeItemsFromList(removedItems, list, listName); - } - - /** - * Set the specified item in the specified bound list - * and fire the appropriate event if necessary. - * Return the replaced item. - * @see List#set(int, Object) - */ - public E setItemInList(int index, E item, List list, String listName) { - E oldItem = list.set(index, item); - this.fireItemReplaced(listName, index, item, oldItem); - return oldItem; - } - - /** - * Replace the first occurrence of the specified item - * in the specified bound list - * and fire the appropriate event if necessary. - * Return the index of the replaced item. - * Return -1 if the item was not found in the list. - * @see List#set(int, Object) - */ - public int replaceItemInList(E oldItem, E newItem, List list, String listName) { - if (list.isEmpty()) { - return -1; - } - - int index = list.indexOf(oldItem); - if ((index != -1) && this.valuesAreDifferent(oldItem, newItem)) { - list.set(index, newItem); - this.fireItemReplaced_(listName, index, newItem, oldItem); - } - return index; - } - - /** - * Set the specified items in the specified bound list - * and fire the appropriate event if necessary. - * Return the replaced items. - * @see List#set(int, Object) - */ - public List setItemsInList(int index, E[] items, List list, String listName) { - if (items.length == 0) { - return Collections.emptyList(); - } - return this.setItemsInList_(index, Arrays.asList(items), list, listName); - } - - /** - * Set the specified items in the specified bound list - * and fire the appropriate event if necessary. - * Return the replaced items. - * @see List#set(int, Object) - */ - public List setItemsInList(int index, List items, List list, String listName) { - if (items.isEmpty()) { - return Collections.emptyList(); - } - return this.setItemsInList_(index, items, list, listName); - } - - /** - * no empty check - */ - protected List setItemsInList_(int index, List items, List list, String listName) { - List subList = list.subList(index, index + items.size()); - List oldItems = new ArrayList(subList); - for (int i = 0; i < items.size(); i++) { - E newItem = items.get(i); - E oldItem = subList.set(i, newItem); - this.fireItemReplaced(listName, index + i, newItem, oldItem); - } - return oldItems; - } - - /** - * Move items in the specified list from the specified source index to the - * specified target index for the specified length. - * Return whether the list changed. - */ - public boolean moveItemsInList(int targetIndex, int sourceIndex, int length, List list, String listName) { - if ((targetIndex == sourceIndex) || (length == 0)) { - return false; - } - // it's unlikely but possible the list is unchanged by the move... (e.g. any moves within ["foo", "foo", "foo"]...) - CollectionTools.move(list, targetIndex, sourceIndex, length); - this.fireItemsMoved(listName, targetIndex, sourceIndex, length); - return true; - } - - /** - * Move the specified item in the specified list to the - * specified target index. - * Return whether the list changed. - */ - public boolean moveItemInList(int targetIndex, E item, List list, String listName) { - return this.moveItemInList(targetIndex, list.indexOf(item), list, listName); - } - - /** - * Move an item in the specified list from the specified source index to the - * specified target index. - * Return whether the list changed. - */ - public boolean moveItemInList(int targetIndex, int sourceIndex, List list, String listName) { - if (targetIndex == sourceIndex) { - return false; - } - if (this.valuesAreEqual(list.get(targetIndex), list.get(sourceIndex))) { - return false; - } - CollectionTools.move(list, targetIndex, sourceIndex); - this.fireItemMoved_(listName, targetIndex, sourceIndex); - return true; - } - - /** - * Clear the entire list - * and fire the appropriate event if necessary. - * Return whether the list changed. - * @see List#clear() - */ - public boolean clearList(List list, String listName) { - return ( ! list.isEmpty()) && this.clearList_(list, listName); - } - - /** - * no empty check - */ - protected boolean clearList_(List list, String listName) { - list.clear(); - this.fireListCleared(listName); - return true; - } - - /** - * Synchronize the list with the specified new list, - * making a minimum number of sets, removes, and/or adds. - * Return whether the list changed. - */ - public boolean synchronizeList(List newList, List list, String listName) { - if (newList.isEmpty()) { - return this.clearList(list, listName); - } - if (list.isEmpty()) { - return this.addItemsToList_(newList, list, listName); - } - return this.synchronizeList_(newList, list, listName); - } - - /** - * Synchronize the list with the specified new list, - * making a minimum number of sets, removes, and/or adds. - * Return whether the list changed. - */ - public boolean synchronizeList(Iterable newList, List list, String listName) { - return this.synchronizeList(newList.iterator(), list, listName); - } - - /** - * Synchronize the list with the specified new list, - * making a minimum number of sets, removes, and/or adds. - * Return whether the list changed. - */ - public boolean synchronizeList(Iterator newList, List list, String listName) { - if ( ! newList.hasNext()) { - return this.clearList(list, listName); - } - if (list.isEmpty()) { - return this.addItemsToList_(newList, list, listName); - } - return this.synchronizeList_(CollectionTools.list(newList), list, listName); - } - - /** - * no empty checks - */ - protected boolean synchronizeList_(List newList, List oldList, String listName) { - int newSize = newList.size(); - int oldSize = oldList.size(); - - boolean changed = false; - // TODO check for RandomAccess - int min = Math.min(newSize, oldSize); - for (int i = 0; i < min; i++) { - E newItem = newList.get(i); - E oldItem = oldList.set(i, newItem); - if (this.valuesAreDifferent(newItem, oldItem)) { - changed = true; - this.fireItemReplaced_(listName, i, newItem, oldItem); - } - } - - if (newSize == oldSize) { - return changed; - } - - if (newSize < oldSize) { - this.removeRangeFromList_(newSize, oldSize, oldList, listName); - return true; - } - - // newSize > oldSize - this.addItemsToList_(newList.subList(oldSize, newSize), oldList, listName); - return true; - } - - - // ********** tree change support ********** - - protected static final Class TREE_CHANGE_LISTENER_CLASS = TreeChangeListener.class; - - /** - * Add a tree change listener for the specified tree. The listener - * will be notified only for changes to the specified tree. - */ - public void addTreeChangeListener(String treeName, TreeChangeListener listener) { - this.addListener(TREE_CHANGE_LISTENER_CLASS, treeName, listener); - } - - /** - * Remove a tree change listener that was registered for a specific tree. - */ - public void removeTreeChangeListener(String treeName, TreeChangeListener listener) { - this.removeListener(TREE_CHANGE_LISTENER_CLASS, treeName, listener); - } - - /** - * Return whether there are any tree change listeners that will - * be notified when the specified tree has changed. - */ - public boolean hasAnyTreeChangeListeners(String treeName) { - return this.hasAnyListeners(TREE_CHANGE_LISTENER_CLASS, treeName); - } - - private ListenerList getTreeChangeListenerList(String treeName) { - return this.getListenerList(TREE_CHANGE_LISTENER_CLASS, treeName); - } - - private Iterable getTreeChangeListeners(String treeName) { - ListenerList listenerList = this.getTreeChangeListenerList(treeName); - return (listenerList == null) ? null : listenerList.getListeners(); - } - - private boolean hasTreeChangeListener(String treeName, TreeChangeListener listener) { - return CollectionTools.contains(this.getTreeChangeListeners(treeName), listener); - } - - /** - * Report a bound tree update to any registered listeners. - */ - public void fireNodeAdded(TreeAddEvent event) { - String treeName = event.getTreeName(); - Iterable listeners = this.getTreeChangeListeners(treeName); - if (listeners != null) { - for (TreeChangeListener listener : listeners) { - if (this.hasTreeChangeListener(treeName, listener)) { // verify listener is still listening - listener.nodeAdded(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.nodeAdded(event); - } - } - } - } - - /** - * Report a bound tree update to any registered listeners. - */ - public void fireNodeAdded(String treeName, List path) { -// this.fireNodeAdded(new TreeAddEvent(this.source, treeName, path)); - TreeAddEvent event = null; - Iterable listeners = this.getTreeChangeListeners(treeName); - if (listeners != null) { - for (TreeChangeListener listener : listeners) { - if (this.hasTreeChangeListener(treeName, listener)) { // verify listener is still listening - if (event == null) { - event = new TreeAddEvent(this.source, treeName, path); - } - listener.nodeAdded(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new TreeAddEvent(this.source, treeName, path); - } - changeListener.nodeAdded(event); - } - } - } - } - - /** - * Report a bound tree update to any registered listeners. - */ - public void fireNodeRemoved(TreeRemoveEvent event) { - String treeName = event.getTreeName(); - Iterable listeners = this.getTreeChangeListeners(treeName); - if (listeners != null) { - for (TreeChangeListener listener : listeners) { - if (this.hasTreeChangeListener(treeName, listener)) { // verify listener is still listening - listener.nodeRemoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.nodeRemoved(event); - } - } - } - } - - /** - * Report a bound tree update to any registered listeners. - */ - public void fireNodeRemoved(String treeName, List path) { -// this.fireNodeRemoved(new TreeRemoveEvent(this.source, treeName, path)); - - TreeRemoveEvent event = null; - Iterable listeners = this.getTreeChangeListeners(treeName); - if (listeners != null) { - for (TreeChangeListener listener : listeners) { - if (this.hasTreeChangeListener(treeName, listener)) { // verify listener is still listening - if (event == null) { - event = new TreeRemoveEvent(this.source, treeName, path); - } - listener.nodeRemoved(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new TreeRemoveEvent(this.source, treeName, path); - } - changeListener.nodeRemoved(event); - } - } - } - } - - /** - * Report a bound tree update to any registered listeners. - */ - public void fireTreeCleared(TreeClearEvent event) { - String treeName = event.getTreeName(); - Iterable listeners = this.getTreeChangeListeners(treeName); - if (listeners != null) { - for (TreeChangeListener listener : listeners) { - if (this.hasTreeChangeListener(treeName, listener)) { // verify listener is still listening - listener.treeCleared(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.treeCleared(event); - } - } - } - } - - /** - * Report a bound tree update to any registered listeners. - */ - public void fireTreeCleared(String treeName) { -// this.fireTreeCleared(new TreeClearEvent(this.source, treeName)); - - TreeClearEvent event = null; - Iterable listeners = this.getTreeChangeListeners(treeName); - if (listeners != null) { - for (TreeChangeListener listener : listeners) { - if (this.hasTreeChangeListener(treeName, listener)) { // verify listener is still listening - if (event == null) { - event = new TreeClearEvent(this.source, treeName); - } - listener.treeCleared(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new TreeClearEvent(this.source, treeName); - } - changeListener.treeCleared(event); - } - } - } - } - - /** - * Report a bound tree update to any registered listeners. - */ - public void fireTreeChanged(TreeChangeEvent event) { - String treeName = event.getTreeName(); - Iterable listeners = this.getTreeChangeListeners(treeName); - if (listeners != null) { - for (TreeChangeListener listener : listeners) { - if (this.hasTreeChangeListener(treeName, listener)) { // verify listener is still listening - listener.treeChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - changeListener.treeChanged(event); - } - } - } - } - - /** - * Report a bound tree update to any registered listeners. - */ - public void fireTreeChanged(String treeName, Collection nodes) { -// this.fireTreeChanged(new TreeChangeEvent(this.source, treeName, nodes)); - - TreeChangeEvent event = null; - Iterable listeners = this.getTreeChangeListeners(treeName); - if (listeners != null) { - for (TreeChangeListener listener : listeners) { - if (this.hasTreeChangeListener(treeName, listener)) { // verify listener is still listening - if (event == null) { - event = new TreeChangeEvent(this.source, treeName, nodes); - } - listener.treeChanged(event); - } - } - } - - Iterable changeListeners = this.getChangeListeners(); - if (changeListeners != null) { - for (ChangeListener changeListener : changeListeners) { - if (this.hasChangeListener(changeListener)) { // verify listener is still listening - if (event == null) { - event = new TreeChangeEvent(this.source, treeName, nodes); - } - changeListener.treeChanged(event); - } - } - } - } - - - // ********** misc ********** - - /** - * Convenience method for checking whether an attribute value has changed. - * @see Tools#valuesAreEqual(Object, Object) - */ - public boolean valuesAreEqual(Object value1, Object value2) { - return Tools.valuesAreEqual(value1, value2); - } - - /** - * Convenience method for checking whether an attribute value has changed. - * @see Tools#valuesAreDifferent(Object, Object) - */ - public boolean valuesAreDifferent(Object value1, Object value2) { - return Tools.valuesAreDifferent(value1, value2); - } - - /** - * @see CollectionTools#elementsAreEqual(Iterable, Iterable) - */ - public boolean elementsAreEqual(Iterable iterable1, Iterable iterable2) { - return CollectionTools.elementsAreEqual(iterable1, iterable2); - } - - /** - * @see CollectionTools#elementsAreDifferent(Iterable, Iterable) - */ - public boolean elementsAreDifferent(Iterable iterable1, Iterable iterable2) { - return CollectionTools.elementsAreDifferent(iterable1, iterable2); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.source); - } - - - // ********** member classes ********** - - /** - * Pair a possibly null aspect name with its associated - * listeners. - */ - static abstract class AspectListenerListPair - implements Serializable - { - final ListenerList listenerList; - - private static final long serialVersionUID = 1L; - - AspectListenerListPair(Class listenerClass, L listener) { - super(); - this.listenerList = new ListenerList(listenerClass, listener); - } - - boolean matches(Class listenerClass, @SuppressWarnings("unused") String aspectName) { - return this.listenerList.getListenerType() == listenerClass; - } - - boolean matches(Class listenerClass) { - return this.matches(listenerClass, null); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.getAspectName()); - } - - abstract String getAspectName(); - } - - /** - * Pair a non-null aspect name with its associated listeners. - */ - static class SimpleAspectListenerListPair - extends AspectListenerListPair - { - final String aspectName; - - private static final long serialVersionUID = 1L; - - SimpleAspectListenerListPair(Class listenerClass, String aspectName, L listener) { - super(listenerClass, listener); - if (aspectName == null) { - throw new NullPointerException(); - } - this.aspectName = aspectName; - } - - @Override - boolean matches(Class listenerClass, @SuppressWarnings("hiding") String aspectName) { - return this.aspectName.equals(aspectName) - && super.matches(listenerClass, aspectName); - } - - @Override - String getAspectName() { - return this.aspectName; - } - } - - /** - * Pair a null aspect name with its associated listeners. - */ - static class NullAspectListenerListPair - extends AspectListenerListPair - { - private static final long serialVersionUID = 1L; - - NullAspectListenerListPair(Class listenerClass, L listener) { - super(listenerClass, listener); - } - - @Override - boolean matches(Class listenerClass, String aspectName) { - return (aspectName == null) - && super.matches(listenerClass, null); - } - - @Override - String getAspectName() { - return null; - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/SingleAspectChangeSupport.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/SingleAspectChangeSupport.java deleted file mode 100644 index ef13a67927..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/SingleAspectChangeSupport.java +++ /dev/null @@ -1,380 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model; - -import java.util.Collection; -import java.util.EventListener; -import java.util.List; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; - -/** - * This change support class changes the behavior of the standard - * change support in several ways:
    - *
  • All events fired by the source must specify the single aspect. - *
  • Listeners are required to be either "general purpose" listeners or - * listeners of the single aspect. - *
- */ -public class SingleAspectChangeSupport - extends ChangeSupport -{ - protected final Class validListenerClass; - protected final String validAspectName; - - private static final long serialVersionUID = 1L; - - - // ********** constructor ********** - - public SingleAspectChangeSupport(Model source, Class validListenerClass, String validAspectName) { - super(source); - if ( ! validListenerClass.isAssignableFrom(this.getChangeListenerClass())) { - throw new IllegalArgumentException("The change support's change listener class (" + this.getChangeListenerClass().getName() + //$NON-NLS-1$ - ") does not extend the valid listener class: " + validListenerClass.getName()); //$NON-NLS-1$ - } - this.validListenerClass = validListenerClass; - this.validAspectName = validAspectName; - } - - - // ********** internal implementation ********** - - private UnsupportedOperationException buildUnsupportedOperationException() { - return new UnsupportedOperationException( - "This Model supports only changes for the listener type \"" + this.validListenerClass.getName() //$NON-NLS-1$ - + "\" and the aspect \"" + this.validAspectName + '"' //$NON-NLS-1$ - ); - } - - /** - * The listener can be either an instance of the valid listener class or - * the "general-purpose" change listener class (which should extend the - * the valid listener class). - */ - private void check(Class listenerClass) { - if ((listenerClass != this.getChangeListenerClass()) && (listenerClass != this.validListenerClass)) { - throw new IllegalArgumentException( - "This Model supports only changes for the listener type \"" + this.validListenerClass.getName() //$NON-NLS-1$ - + "\" : \"" + listenerClass.getName() + '"' //$NON-NLS-1$ - ); - } - } - - private void check(Class listenerClass, String aspectName) { - this.check(listenerClass); - if ( ! aspectName.equals(this.validAspectName)) { - throw new IllegalArgumentException( - "This Model supports only changes for the aspect \"" + this.validAspectName //$NON-NLS-1$ - + "\" : \"" + aspectName + '"' //$NON-NLS-1$ - ); - } - } - - @Override - protected synchronized void addListener(Class listenerClass, String aspectName, L listener) { - this.check(listenerClass, aspectName); - super.addListener(listenerClass, aspectName, listener); - } - - @Override - protected synchronized void addListener(Class listenerClass, L listener) { - this.check(listenerClass); - super.addListener(listenerClass, listener); - } - - @Override - protected synchronized void removeListener(Class listenerClass, String aspectName, L listener) { - this.check(listenerClass, aspectName); - super.removeListener(listenerClass, aspectName, listener); - } - - @Override - protected synchronized void removeListener(Class listenerClass, L listener) { - this.check(listenerClass); - super.removeListener(listenerClass, listener); - } - - @Override - protected boolean hasAnyListeners(Class listenerClass, String aspectName) { - this.check(listenerClass, aspectName); - return super.hasAnyListeners(listenerClass, aspectName); - } - - @Override - protected boolean hasAnyListeners(Class listenerClass) { - this.check(listenerClass); - return super.hasAnyListeners(listenerClass); - } - - - // ********** state change support ********** - - @Override - public void fireStateChanged(StateChangeEvent event) { - throw this.buildUnsupportedOperationException(); - } - - @Override - public void fireStateChanged() { - throw this.buildUnsupportedOperationException(); - } - - - // ********** property change support ********** - - @Override - public boolean firePropertyChanged(PropertyChangeEvent event) { - this.check(PROPERTY_CHANGE_LISTENER_CLASS, event.getPropertyName()); - return super.firePropertyChanged(event); - } - - @Override - public boolean firePropertyChanged(String propertyName, Object oldValue, Object newValue) { - this.check(PROPERTY_CHANGE_LISTENER_CLASS, propertyName); - return super.firePropertyChanged(propertyName, oldValue, newValue); - } - - @Override - public boolean firePropertyChanged(String propertyName, int oldValue, int newValue) { - this.check(PROPERTY_CHANGE_LISTENER_CLASS, propertyName); - return super.firePropertyChanged(propertyName, oldValue, newValue); - } - - @Override - public boolean firePropertyChanged(String propertyName, boolean oldValue, boolean newValue) { - this.check(PROPERTY_CHANGE_LISTENER_CLASS, propertyName); - return super.firePropertyChanged(propertyName, oldValue, newValue); - } - - - // ********** collection change support ********** - - @Override - public boolean fireItemsAdded(CollectionAddEvent event) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName()); - return super.fireItemsAdded(event); - } - - @Override - public boolean fireItemsAdded(String collectionName, Collection addedItems) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName); - return super.fireItemsAdded(collectionName, addedItems); - } - - @Override - public void fireItemAdded(String collectionName, Object addedItem) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName); - super.fireItemAdded(collectionName, addedItem); - } - - @Override - public boolean fireItemsRemoved(CollectionRemoveEvent event) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName()); - return super.fireItemsRemoved(event); - } - - @Override - public boolean fireItemsRemoved(String collectionName, Collection removedItems) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName); - return super.fireItemsRemoved(collectionName, removedItems); - } - - @Override - public void fireItemRemoved(String collectionName, Object removedItem) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName); - super.fireItemRemoved(collectionName, removedItem); - } - - @Override - public void fireCollectionCleared(CollectionClearEvent event) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName()); - super.fireCollectionCleared(event); - } - - @Override - public void fireCollectionCleared(String collectionName) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName); - super.fireCollectionCleared(collectionName); - } - - @Override - public void fireCollectionChanged(CollectionChangeEvent event) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName()); - super.fireCollectionChanged(event); - } - - @Override - public void fireCollectionChanged(String collectionName, Collection collection) { - this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName); - super.fireCollectionChanged(collectionName, collection); - } - - - // ********** list change support ********** - - @Override - public boolean fireItemsAdded(ListAddEvent event) { - this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName()); - return super.fireItemsAdded(event); - } - - @Override - public boolean fireItemsAdded(String listName, int index, List addedItems) { - this.check(LIST_CHANGE_LISTENER_CLASS, listName); - return super.fireItemsAdded(listName, index, addedItems); - } - - @Override - public void fireItemAdded(String listName, int index, Object addedItem) { - this.check(LIST_CHANGE_LISTENER_CLASS, listName); - super.fireItemAdded(listName, index, addedItem); - } - - @Override - public boolean fireItemsRemoved(ListRemoveEvent event) { - this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName()); - return super.fireItemsRemoved(event); - } - - @Override - public boolean fireItemsRemoved(String listName, int index, List removedItems) { - this.check(LIST_CHANGE_LISTENER_CLASS, listName); - return super.fireItemsRemoved(listName, index, removedItems); - } - - @Override - public void fireItemRemoved(String listName, int index, Object removedItem) { - this.check(LIST_CHANGE_LISTENER_CLASS, listName); - super.fireItemRemoved(listName, index, removedItem); - } - - @Override - public boolean fireItemsReplaced(ListReplaceEvent event) { - this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName()); - return super.fireItemsReplaced(event); - } - - @Override - public boolean fireItemsReplaced(String listName, int index, List newItems, List replacedItems) { - this.check(LIST_CHANGE_LISTENER_CLASS, listName); - return super.fireItemsReplaced(listName, index, newItems, replacedItems); - } - - @Override - public boolean fireItemReplaced(String listName, int index, Object newItem, Object replacedItem) { - this.check(LIST_CHANGE_LISTENER_CLASS, listName); - return super.fireItemReplaced(listName, index, newItem, replacedItem); - } - - @Override - public boolean fireItemsMoved(ListMoveEvent event) { - this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName()); - return super.fireItemsMoved(event); - } - - @Override - public boolean fireItemsMoved(String listName, int targetIndex, int sourceIndex, int length) { - this.check(LIST_CHANGE_LISTENER_CLASS, listName); - return super.fireItemsMoved(listName, targetIndex, sourceIndex, length); - } - - @Override - public void fireListCleared(ListClearEvent event) { - this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName()); - super.fireListCleared(event); - } - - @Override - public void fireListCleared(String listName) { - this.check(LIST_CHANGE_LISTENER_CLASS, listName); - super.fireListCleared(listName); - } - - @Override - public void fireListChanged(ListChangeEvent event) { - this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName()); - super.fireListChanged(event); - } - - @Override - public void fireListChanged(String listName, List list) { - this.check(LIST_CHANGE_LISTENER_CLASS, listName); - super.fireListChanged(listName, list); - } - - - // ********** tree change support ********** - - @Override - public void fireNodeAdded(TreeAddEvent event) { - this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName()); - super.fireNodeAdded(event); - } - - @Override - public void fireNodeAdded(String treeName, List path) { - this.check(TREE_CHANGE_LISTENER_CLASS, treeName); - super.fireNodeAdded(treeName, path); - } - - @Override - public void fireNodeRemoved(TreeRemoveEvent event) { - this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName()); - super.fireNodeRemoved(event); - } - - @Override - public void fireNodeRemoved(String treeName, List path) { - this.check(TREE_CHANGE_LISTENER_CLASS, treeName); - super.fireNodeRemoved(treeName, path); - } - - @Override - public void fireTreeCleared(TreeClearEvent event) { - this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName()); - super.fireTreeCleared(event); - } - - @Override - public void fireTreeCleared(String treeName) { - this.check(TREE_CHANGE_LISTENER_CLASS, treeName); - super.fireTreeCleared(treeName); - } - - @Override - public void fireTreeChanged(TreeChangeEvent event) { - this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName()); - super.fireTreeChanged(event); - } - - @Override - public void fireTreeChanged(String treeName, Collection nodes) { - this.check(TREE_CHANGE_LISTENER_CLASS, treeName); - super.fireTreeChanged(treeName, nodes); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTChangeListenerWrapper.java deleted file mode 100644 index 5f16ea4650..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTChangeListenerWrapper.java +++ /dev/null @@ -1,454 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.listener.awt; - -import java.awt.EventQueue; - -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; - -/** - * Wrap another change listener and forward events to it on the AWT - * event queue, asynchronously if necessary. If the event arrived on the UI - * thread that is probably because it was initiated by a UI widget; as a - * result, we want to loop back synchronously so the events can be - * short-circuited. - */ -public final class AWTChangeListenerWrapper - implements ChangeListener -{ - private final ChangeListener listener; - - - public AWTChangeListenerWrapper(ChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void stateChanged(StateChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.stateChanged_(event); - } else { - this.executeOnEventQueue(this.buildStateChangedRunnable(event)); - } - } - - public void propertyChanged(PropertyChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.propertyChanged_(event); - } else { - this.executeOnEventQueue(this.buildPropertyChangedRunnable(event)); - } - } - - public void itemsAdded(CollectionAddEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsAdded_(event); - } else { - this.executeOnEventQueue(this.buildItemsAddedRunnable(event)); - } - } - - public void itemsRemoved(CollectionRemoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsRemoved_(event); - } else { - this.executeOnEventQueue(this.buildItemsRemovedRunnable(event)); - } - } - - public void collectionCleared(CollectionClearEvent event) { - if (this.isExecutingOnUIThread()) { - this.collectionCleared_(event); - } else { - this.executeOnEventQueue(this.buildCollectionClearedRunnable(event)); - } - } - - public void collectionChanged(CollectionChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.collectionChanged_(event); - } else { - this.executeOnEventQueue(this.buildCollectionChangedRunnable(event)); - } - } - - public void itemsAdded(ListAddEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsAdded_(event); - } else { - this.executeOnEventQueue(this.buildItemsAddedRunnable(event)); - } - } - - public void itemsRemoved(ListRemoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsRemoved_(event); - } else { - this.executeOnEventQueue(this.buildItemsRemovedRunnable(event)); - } - } - - public void itemsMoved(ListMoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsMoved_(event); - } else { - this.executeOnEventQueue(this.buildItemsMovedRunnable(event)); - } - } - - public void itemsReplaced(ListReplaceEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsReplaced_(event); - } else { - this.executeOnEventQueue(this.buildItemsReplacedRunnable(event)); - } - } - - public void listCleared(ListClearEvent event) { - if (this.isExecutingOnUIThread()) { - this.listCleared_(event); - } else { - this.executeOnEventQueue(this.buildListClearedRunnable(event)); - } - } - - public void listChanged(ListChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.listChanged_(event); - } else { - this.executeOnEventQueue(this.buildListChangedRunnable(event)); - } - } - - public void nodeAdded(TreeAddEvent event) { - if (this.isExecutingOnUIThread()) { - this.nodeAdded_(event); - } else { - this.executeOnEventQueue(this.buildNodeAddedRunnable(event)); - } - } - - public void nodeRemoved(TreeRemoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.nodeRemoved_(event); - } else { - this.executeOnEventQueue(this.buildNodeRemovedRunnable(event)); - } - } - - public void treeCleared(TreeClearEvent event) { - if (this.isExecutingOnUIThread()) { - this.treeCleared_(event); - } else { - this.executeOnEventQueue(this.buildTreeClearedRunnable(event)); - } - } - - public void treeChanged(TreeChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.treeChanged_(event); - } else { - this.executeOnEventQueue(this.buildTreeChangedRunnable(event)); - } - } - - private Runnable buildStateChangedRunnable(final StateChangeEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.stateChanged_(event); - } - }; - } - - private Runnable buildPropertyChangedRunnable(final PropertyChangeEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.propertyChanged_(event); - } - }; - } - - private Runnable buildItemsAddedRunnable(final CollectionAddEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.itemsAdded_(event); - } - @Override - public String toString() { - return "items added runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsRemovedRunnable(final CollectionRemoveEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.itemsRemoved_(event); - } - @Override - public String toString() { - return "items removed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildCollectionClearedRunnable(final CollectionClearEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.collectionCleared_(event); - } - @Override - public String toString() { - return "collection cleared runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildCollectionChangedRunnable(final CollectionChangeEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.collectionChanged_(event); - } - @Override - public String toString() { - return "collection changed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsAddedRunnable(final ListAddEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.itemsAdded_(event); - } - @Override - public String toString() { - return "items added runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsRemovedRunnable(final ListRemoveEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.itemsRemoved_(event); - } - @Override - public String toString() { - return "items removed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsMovedRunnable(final ListMoveEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.itemsMoved_(event); - } - @Override - public String toString() { - return "items moved runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsReplacedRunnable(final ListReplaceEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.itemsReplaced_(event); - } - @Override - public String toString() { - return "items replaced runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildListClearedRunnable(final ListClearEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.listCleared_(event); - } - @Override - public String toString() { - return "list cleared runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildListChangedRunnable(final ListChangeEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.listChanged_(event); - } - @Override - public String toString() { - return "list changed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildNodeAddedRunnable(final TreeAddEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.nodeAdded_(event); - } - @Override - public String toString() { - return "node added runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildNodeRemovedRunnable(final TreeRemoveEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.nodeRemoved_(event); - } - @Override - public String toString() { - return "node removed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildTreeClearedRunnable(final TreeClearEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.treeCleared_(event); - } - @Override - public String toString() { - return "tree cleared runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildTreeChangedRunnable(final TreeChangeEvent event) { - return new Runnable() { - public void run() { - AWTChangeListenerWrapper.this.treeChanged_(event); - } - @Override - public String toString() { - return "tree changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return EventQueue.isDispatchThread(); - } - - /** - * {@link EventQueue#invokeLater(Runnable)} seems to work OK; - * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make - * things more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnEventQueue(Runnable r) { - EventQueue.invokeLater(r); -// try { -// EventQueue.invokeAndWait(r); -// } catch (InterruptedException ex) { -// throw new RuntimeException(ex); -// } catch (java.lang.reflect.InvocationTargetException ex) { -// throw new RuntimeException(ex); -// } - } - - void stateChanged_(StateChangeEvent event) { - this.listener.stateChanged(event); - } - - void propertyChanged_(PropertyChangeEvent event) { - this.listener.propertyChanged(event); - } - - void itemsAdded_(CollectionAddEvent event) { - this.listener.itemsAdded(event); - } - - void itemsRemoved_(CollectionRemoveEvent event) { - this.listener.itemsRemoved(event); - } - - void collectionCleared_(CollectionClearEvent event) { - this.listener.collectionCleared(event); - } - - void collectionChanged_(CollectionChangeEvent event) { - this.listener.collectionChanged(event); - } - - void itemsAdded_(ListAddEvent event) { - this.listener.itemsAdded(event); - } - - void itemsRemoved_(ListRemoveEvent event) { - this.listener.itemsRemoved(event); - } - - void itemsMoved_(ListMoveEvent event) { - this.listener.itemsMoved(event); - } - - void itemsReplaced_(ListReplaceEvent event) { - this.listener.itemsReplaced(event); - } - - void listCleared_(ListClearEvent event) { - this.listener.listCleared(event); - } - - void listChanged_(ListChangeEvent event) { - this.listener.listChanged(event); - } - - void nodeAdded_(TreeAddEvent event) { - this.listener.nodeAdded(event); - } - - void nodeRemoved_(TreeRemoveEvent event) { - this.listener.nodeRemoved(event); - } - - void treeCleared_(TreeClearEvent event) { - this.listener.treeCleared(event); - } - - void treeChanged_(TreeChangeEvent event) { - this.listener.treeChanged(event); - } - - @Override - public String toString() { - return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java deleted file mode 100644 index b8af52a34e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java +++ /dev/null @@ -1,161 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.listener.awt; - -import java.awt.EventQueue; - -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; - -/** - * Wrap another collection change listener and forward events to it on the AWT - * event queue, asynchronously if necessary. If the event arrived on the UI - * thread that is probably because it was initiated by a UI widget; as a - * result, we want to loop back synchronously so the events can be - * short-circuited. - */ -public final class AWTCollectionChangeListenerWrapper - implements CollectionChangeListener -{ - private final CollectionChangeListener listener; - - public AWTCollectionChangeListenerWrapper(CollectionChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void itemsAdded(CollectionAddEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsAdded_(event); - } else { - this.executeOnEventQueue(this.buildItemsAddedRunnable(event)); - } - } - - public void itemsRemoved(CollectionRemoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsRemoved_(event); - } else { - this.executeOnEventQueue(this.buildItemsRemovedRunnable(event)); - } - } - - public void collectionCleared(CollectionClearEvent event) { - if (this.isExecutingOnUIThread()) { - this.collectionCleared_(event); - } else { - this.executeOnEventQueue(this.buildCollectionClearedRunnable(event)); - } - } - - public void collectionChanged(CollectionChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.collectionChanged_(event); - } else { - this.executeOnEventQueue(this.buildCollectionChangedRunnable(event)); - } - } - - private Runnable buildItemsAddedRunnable(final CollectionAddEvent event) { - return new Runnable() { - public void run() { - AWTCollectionChangeListenerWrapper.this.itemsAdded_(event); - } - @Override - public String toString() { - return "items added runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsRemovedRunnable(final CollectionRemoveEvent event) { - return new Runnable() { - public void run() { - AWTCollectionChangeListenerWrapper.this.itemsRemoved_(event); - } - @Override - public String toString() { - return "items removed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildCollectionClearedRunnable(final CollectionClearEvent event) { - return new Runnable() { - public void run() { - AWTCollectionChangeListenerWrapper.this.collectionCleared_(event); - } - @Override - public String toString() { - return "collection cleared runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildCollectionChangedRunnable(final CollectionChangeEvent event) { - return new Runnable() { - public void run() { - AWTCollectionChangeListenerWrapper.this.collectionChanged_(event); - } - @Override - public String toString() { - return "collection changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return EventQueue.isDispatchThread(); - } - - /** - * {@link EventQueue#invokeLater(Runnable)} seems to work OK; - * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make - * things more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnEventQueue(Runnable r) { - EventQueue.invokeLater(r); -// try { -// EventQueue.invokeAndWait(r); -// } catch (InterruptedException ex) { -// throw new RuntimeException(ex); -// } catch (java.lang.reflect.InvocationTargetException ex) { -// throw new RuntimeException(ex); -// } - } - - void itemsAdded_(CollectionAddEvent event) { - this.listener.itemsAdded(event); - } - - void itemsRemoved_(CollectionRemoveEvent event) { - this.listener.itemsRemoved(event); - } - - void collectionCleared_(CollectionClearEvent event) { - this.listener.collectionCleared(event); - } - - void collectionChanged_(CollectionChangeEvent event) { - this.listener.collectionChanged(event); - } - - @Override - public String toString() { - return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java deleted file mode 100644 index bc477f4f7a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java +++ /dev/null @@ -1,211 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.listener.awt; - -import java.awt.EventQueue; - -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; - -/** - * Wrap another list change listener and forward events to it on the AWT - * event queue, asynchronously if necessary. If the event arrived on the UI - * thread that is probably because it was initiated by a UI widget; as a - * result, we want to loop back synchronously so the events can be - * short-circuited. - */ -public final class AWTListChangeListenerWrapper - implements ListChangeListener -{ - private final ListChangeListener listener; - - public AWTListChangeListenerWrapper(ListChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void itemsAdded(ListAddEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsAdded_(event); - } else { - this.executeOnEventQueue(this.buildItemsAddedRunnable(event)); - } - } - - public void itemsRemoved(ListRemoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsRemoved_(event); - } else { - this.executeOnEventQueue(this.buildItemsRemovedRunnable(event)); - } - } - - public void itemsMoved(ListMoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsMoved_(event); - } else { - this.executeOnEventQueue(this.buildItemsMovedRunnable(event)); - } - } - - public void itemsReplaced(ListReplaceEvent event) { - if (this.isExecutingOnUIThread()) { - this.itemsReplaced_(event); - } else { - this.executeOnEventQueue(this.buildItemsReplacedRunnable(event)); - } - } - - public void listCleared(ListClearEvent event) { - if (this.isExecutingOnUIThread()) { - this.listCleared_(event); - } else { - this.executeOnEventQueue(this.buildListClearedRunnable(event)); - } - } - - public void listChanged(ListChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.listChanged_(event); - } else { - this.executeOnEventQueue(this.buildListChangedRunnable(event)); - } - } - - private Runnable buildItemsAddedRunnable(final ListAddEvent event) { - return new Runnable() { - public void run() { - AWTListChangeListenerWrapper.this.itemsAdded_(event); - } - @Override - public String toString() { - return "items added runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsRemovedRunnable(final ListRemoveEvent event) { - return new Runnable() { - public void run() { - AWTListChangeListenerWrapper.this.itemsRemoved_(event); - } - @Override - public String toString() { - return "items removed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsMovedRunnable(final ListMoveEvent event) { - return new Runnable() { - public void run() { - AWTListChangeListenerWrapper.this.itemsMoved_(event); - } - @Override - public String toString() { - return "items moved runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildItemsReplacedRunnable(final ListReplaceEvent event) { - return new Runnable() { - public void run() { - AWTListChangeListenerWrapper.this.itemsReplaced_(event); - } - @Override - public String toString() { - return "items replaced runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildListClearedRunnable(final ListClearEvent event) { - return new Runnable() { - public void run() { - AWTListChangeListenerWrapper.this.listCleared_(event); - } - @Override - public String toString() { - return "list cleared runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildListChangedRunnable(final ListChangeEvent event) { - return new Runnable() { - public void run() { - AWTListChangeListenerWrapper.this.listChanged_(event); - } - @Override - public String toString() { - return "list changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return EventQueue.isDispatchThread(); - } - - /** - * {@link EventQueue#invokeLater(Runnable)} seems to work OK; - * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make - * things more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnEventQueue(Runnable r) { - EventQueue.invokeLater(r); -// try { -// EventQueue.invokeAndWait(r); -// } catch (InterruptedException ex) { -// throw new RuntimeException(ex); -// } catch (java.lang.reflect.InvocationTargetException ex) { -// throw new RuntimeException(ex); -// } - } - - void itemsAdded_(ListAddEvent event) { - this.listener.itemsAdded(event); - } - - void itemsRemoved_(ListRemoveEvent event) { - this.listener.itemsRemoved(event); - } - - void itemsMoved_(ListMoveEvent event) { - this.listener.itemsMoved(event); - } - - void itemsReplaced_(ListReplaceEvent event) { - this.listener.itemsReplaced(event); - } - - void listCleared_(ListClearEvent event) { - this.listener.listCleared(event); - } - - void listChanged_(ListChangeEvent event) { - this.listener.listChanged(event); - } - - @Override - public String toString() { - return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java deleted file mode 100644 index a46bd8bc64..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.listener.awt; - -import java.awt.EventQueue; - -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; - -/** - * Wrap another property change listener and forward events to it on the AWT - * event queue, asynchronously if necessary. If the event arrived on the UI - * thread that is probably because it was initiated by a UI widget; as a - * result, we want to loop back synchronously so the events can be - * short-circuited. - */ -public final class AWTPropertyChangeListenerWrapper - implements PropertyChangeListener -{ - private final PropertyChangeListener listener; - - - public AWTPropertyChangeListenerWrapper(PropertyChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void propertyChanged(PropertyChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.propertyChanged_(event); - } else { - this.executeOnEventQueue(this.buildPropertyChangedRunnable(event)); - } - } - - private Runnable buildPropertyChangedRunnable(final PropertyChangeEvent event) { - return new Runnable() { - public void run() { - AWTPropertyChangeListenerWrapper.this.propertyChanged_(event); - } - @Override - public String toString() { - return "property changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return EventQueue.isDispatchThread(); - } - - /** - * {@link EventQueue#invokeLater(Runnable)} seems to work OK; - * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make - * things more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnEventQueue(Runnable r) { - EventQueue.invokeLater(r); -// try { -// EventQueue.invokeAndWait(r); -// } catch (InterruptedException ex) { -// throw new RuntimeException(ex); -// } catch (java.lang.reflect.InvocationTargetException ex) { -// throw new RuntimeException(ex); -// } - } - - void propertyChanged_(PropertyChangeEvent event) { - this.listener.propertyChanged(event); - } - - @Override - public String toString() { - return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java deleted file mode 100644 index c1ecf2b2ee..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.listener.awt; - -import java.awt.EventQueue; - -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; - -/** - * Wrap another state change listener and forward events to it on the AWT - * event queue, asynchronously if necessary. If the event arrived on the UI - * thread that is probably because it was initiated by a UI widget; as a - * result, we want to loop back synchronously so the events can be - * short-circuited. - */ -public final class AWTStateChangeListenerWrapper - implements StateChangeListener -{ - private final StateChangeListener listener; - - public AWTStateChangeListenerWrapper(StateChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void stateChanged(StateChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.stateChanged_(event); - } else { - this.executeOnEventQueue(this.buildStateChangedRunnable(event)); - } - } - - private Runnable buildStateChangedRunnable(final StateChangeEvent event) { - return new Runnable() { - public void run() { - AWTStateChangeListenerWrapper.this.stateChanged_(event); - } - @Override - public String toString() { - return "state changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return EventQueue.isDispatchThread(); - } - - /** - * {@link EventQueue#invokeLater(Runnable)} seems to work OK; - * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make - * things more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnEventQueue(Runnable r) { - EventQueue.invokeLater(r); -// try { -// EventQueue.invokeAndWait(r); -// } catch (InterruptedException ex) { -// throw new RuntimeException(ex); -// } catch (java.lang.reflect.InvocationTargetException ex) { -// throw new RuntimeException(ex); -// } - } - - void stateChanged_(StateChangeEvent event) { - this.listener.stateChanged(event); - } - - @Override - public String toString() { - return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java deleted file mode 100644 index ea60469d1a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java +++ /dev/null @@ -1,161 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.listener.awt; - -import java.awt.EventQueue; - -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; - -/** - * Wrap another tree change listener and forward events to it on the AWT - * event queue, asynchronously if necessary. If the event arrived on the UI - * thread that is probably because it was initiated by a UI widget; as a - * result, we want to loop back synchronously so the events can be - * short-circuited. - */ -public final class AWTTreeChangeListenerWrapper - implements TreeChangeListener -{ - private final TreeChangeListener listener; - - public AWTTreeChangeListenerWrapper(TreeChangeListener listener) { - super(); - if (listener == null) { - throw new NullPointerException(); - } - this.listener = listener; - } - - public void nodeAdded(TreeAddEvent event) { - if (this.isExecutingOnUIThread()) { - this.nodeAdded_(event); - } else { - this.executeOnEventQueue(this.buildNodeAddedRunnable(event)); - } - } - - public void nodeRemoved(TreeRemoveEvent event) { - if (this.isExecutingOnUIThread()) { - this.nodeRemoved_(event); - } else { - this.executeOnEventQueue(this.buildNodeRemovedRunnable(event)); - } - } - - public void treeCleared(TreeClearEvent event) { - if (this.isExecutingOnUIThread()) { - this.treeCleared_(event); - } else { - this.executeOnEventQueue(this.buildTreeClearedRunnable(event)); - } - } - - public void treeChanged(TreeChangeEvent event) { - if (this.isExecutingOnUIThread()) { - this.treeChanged_(event); - } else { - this.executeOnEventQueue(this.buildTreeChangedRunnable(event)); - } - } - - private Runnable buildNodeAddedRunnable(final TreeAddEvent event) { - return new Runnable() { - public void run() { - AWTTreeChangeListenerWrapper.this.nodeAdded_(event); - } - @Override - public String toString() { - return "node added runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildNodeRemovedRunnable(final TreeRemoveEvent event) { - return new Runnable() { - public void run() { - AWTTreeChangeListenerWrapper.this.nodeRemoved_(event); - } - @Override - public String toString() { - return "node removed runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildTreeClearedRunnable(final TreeClearEvent event) { - return new Runnable() { - public void run() { - AWTTreeChangeListenerWrapper.this.treeCleared_(event); - } - @Override - public String toString() { - return "tree cleared runnable"; //$NON-NLS-1$ - } - }; - } - - private Runnable buildTreeChangedRunnable(final TreeChangeEvent event) { - return new Runnable() { - public void run() { - AWTTreeChangeListenerWrapper.this.treeChanged_(event); - } - @Override - public String toString() { - return "tree changed runnable"; //$NON-NLS-1$ - } - }; - } - - private boolean isExecutingOnUIThread() { - return EventQueue.isDispatchThread(); - } - - /** - * {@link EventQueue#invokeLater(Runnable)} seems to work OK; - * but using {@link EventQueue#invokeAndWait(Runnable)} can sometimes make - * things more predictable when debugging, at the risk of deadlocks. - */ - private void executeOnEventQueue(Runnable r) { - EventQueue.invokeLater(r); -// try { -// EventQueue.invokeAndWait(r); -// } catch (InterruptedException ex) { -// throw new RuntimeException(ex); -// } catch (java.lang.reflect.InvocationTargetException ex) { -// throw new RuntimeException(ex); -// } - } - - void nodeAdded_(TreeAddEvent event) { - this.listener.nodeAdded(event); - } - - void nodeRemoved_(TreeRemoveEvent event) { - this.listener.nodeRemoved(event); - } - - void treeCleared_(TreeClearEvent event) { - this.listener.treeCleared(event); - } - - void treeChanged_(TreeChangeEvent event) { - this.listener.treeChanged(event); - } - - @Override - public String toString() { - return "AWT(" + this.listener.toString() + ')'; //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractCollectionValueModel.java deleted file mode 100644 index 31aad85651..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractCollectionValueModel.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; - -/** - * This abstract class provides the infrastructure for "lazily" adding listeners - * to an underlying model as necessary. Subclasses will need to engage and - * disegage the underlying model and fire the appropriate collection change - * events. Subclasses must implement the appropriate {@link CollectionValueModel}. - *

- * Subclasses must implement the following methods:

    - *
  • {@link #engageModel()}

    - * implement this method to add the appropriate listener to the underlying model - *

  • {@link #disengageModel()}

    - * implement this method to remove the appropriate listener from the underlying model - *

- */ -public abstract class AbstractCollectionValueModel - extends AbstractModel -{ - - // ********** constructor/initialization ********** - - protected AbstractCollectionValueModel() { - super(); - } - - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, CollectionChangeListener.class, CollectionValueModel.VALUES); - } - - - // ********** extend change support ********** - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public synchronized void addChangeListener(ChangeListener listener) { - if (this.hasNoListeners()) { - this.engageModel(); - } - super.addChangeListener(listener); - } - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public synchronized void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) { - if (collectionName.equals(CollectionValueModel.VALUES) && this.hasNoListeners()) { - this.engageModel(); - } - super.addCollectionChangeListener(collectionName, listener); - } - - /** - * Extend to stop listening to the underlying model if necessary. - */ - @Override - public synchronized void removeChangeListener(ChangeListener listener) { - super.removeChangeListener(listener); - if (this.hasNoListeners()) { - this.disengageModel(); - } - } - - /** - * Extend to stop listening to the underlying model if necessary. - */ - @Override - public synchronized void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) { - super.removeCollectionChangeListener(collectionName, listener); - if (collectionName.equals(CollectionValueModel.VALUES) && this.hasNoListeners()) { - this.disengageModel(); - } - } - - - // ********** queries ********** - - /** - * Return whether the model has no collection value listeners. - */ - protected boolean hasNoListeners() { - return ! this.hasListeners(); - } - - /** - * Return whether the model has any collection value listeners. - */ - protected boolean hasListeners() { - return this.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES); - } - - - // ********** behavior ********** - - /** - * Engage the underlying model. - */ - protected abstract void engageModel(); - - /** - * Stop listening to the underlying model. - */ - protected abstract void disengageModel(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractListValueModel.java deleted file mode 100644 index b182a52764..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractListValueModel.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * This abstract class provides the infrastructure for "lazily" adding listeners - * to an underlying model as necessary. Subclasses will need to engage and - * disegage the underlying model and fire the appropriate list change - * events. Subclasses must implement the appropriate {@link ListValueModel}. - *

- * Subclasses must implement the following methods:

    - *
  • {@link #engageModel()}

    - * implement this method to add the appropriate listener to the underlying model - *

  • {@link #disengageModel()}

    - * implement this method to remove the appropriate listener from the underlying model - *

- */ -public abstract class AbstractListValueModel - extends AbstractModel -{ - - // ********** constructor/initialization ********** - - protected AbstractListValueModel() { - super(); - } - - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, ListChangeListener.class, ListValueModel.LIST_VALUES); - } - - - // ********** extend change support ********** - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public void addChangeListener(ChangeListener listener) { - if (this.hasNoListeners()) { - this.engageModel(); - } - super.addChangeListener(listener); - } - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public void addListChangeListener(String listName, ListChangeListener listener) { - if (listName.equals(ListValueModel.LIST_VALUES) && this.hasNoListeners()) { - this.engageModel(); - } - super.addListChangeListener(listName, listener); - } - - /** - * Extend to stop listening to the underlying model if necessary. - */ - @Override - public void removeChangeListener(ChangeListener listener) { - super.removeChangeListener(listener); - if (this.hasNoListeners()) { - this.disengageModel(); - } - } - - /** - * Extend to stop listening to the underlying model if necessary. - */ - @Override - public void removeListChangeListener(String listName, ListChangeListener listener) { - super.removeListChangeListener(listName, listener); - if (listName.equals(ListValueModel.LIST_VALUES) && this.hasNoListeners()) { - this.disengageModel(); - } - } - - - // ********** queries ********** - - /** - * Return whether the model has no collection value listeners. - */ - protected boolean hasNoListeners() { - return ! this.hasListeners(); - } - - /** - * Return whether the model has any collection value listeners. - */ - protected boolean hasListeners() { - return this.hasAnyListChangeListeners(ListValueModel.LIST_VALUES); - } - - - // ********** behavior ********** - - /** - * Engage the underlying model. - */ - protected abstract void engageModel(); - - /** - * Stop listening to the underlying model. - */ - protected abstract void disengageModel(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModel.java deleted file mode 100644 index af624292d6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModel.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This abstract class provides the infrastructure for "lazily" adding listeners - * to an underlying model as necessary. Subclasses will need to engage and - * disegage the underlying model and fire the appropriate property change - * events. Subclasses must implement the appropriate {@link PropertyValueModel}. - *

- * Subclasses must implement the following methods:

    - *
  • {@link #engageModel()}

    - * implement this method to add the appropriate listener to the underlying model - *

  • {@link #disengageModel()}

    - * implement this method to remove the appropriate listener from the underlying model - *

- */ -public abstract class AbstractPropertyValueModel - extends AbstractModel -{ - - // ********** constructor/initialization ********** - - protected AbstractPropertyValueModel() { - super(); - } - - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, PropertyChangeListener.class, PropertyValueModel.VALUE); - } - - - // ********** extend change support ********** - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public synchronized void addChangeListener(ChangeListener listener) { - if (this.hasNoListeners()) { - this.engageModel(); - } - super.addChangeListener(listener); - } - - /** - * Extend to stop listening to the underlying model if necessary. - */ - @Override - public synchronized void removeChangeListener(ChangeListener listener) { - super.removeChangeListener(listener); - if (this.hasNoListeners()) { - this.disengageModel(); - } - } - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public synchronized void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - if (propertyName.equals(PropertyValueModel.VALUE) && this.hasNoListeners()) { - this.engageModel(); - } - super.addPropertyChangeListener(propertyName, listener); - } - - /** - * Extend to stop listening to the underlying model if necessary. - */ - @Override - public synchronized void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { - super.removePropertyChangeListener(propertyName, listener); - if (propertyName.equals(PropertyValueModel.VALUE) && this.hasNoListeners()) { - this.disengageModel(); - } - } - - - // ********** queries ********** - - /** - * Return whether the model has no property value listeners. - */ - protected boolean hasNoListeners() { - return ! this.hasListeners(); - } - - /** - * Return whether the model has any property value listeners. - */ - protected boolean hasListeners() { - return this.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE); - } - - - // ********** behavior ********** - - /** - * Engage the underlying model. - */ - protected abstract void engageModel(); - - /** - * Stop listening to the underlying model. - */ - protected abstract void disengageModel(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModelAdapter.java deleted file mode 100644 index b2dde293a2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractPropertyValueModelAdapter.java +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This abstract class provides the infrastructure needed to wrap - * a model, "lazily" listen to it, and convert - * its change notifications into property value model change - * notifications. - *

- * Subclasses must implement:

    - *
  • {@link #buildValue()}

    - * to return the current property value, as derived from the - * current model - *

  • {@link #engageModel_()}

    - * to start listening to the adapted model - *

  • {@link #disengageModel_()}

    - * to stop listening to the adapted model - *

- * Subclasses can call {@link #propertyChanged()} whenever the calculated - * value of the property changes (as determined by the subclass). - */ -public abstract class AbstractPropertyValueModelAdapter - extends AbstractPropertyValueModel - implements PropertyValueModel -{ - /** - * Cache the current value so we can pass an "old value" when - * we fire a property change event. - * We need this because the value may be calculated and we may - * not able to derive the "old value" from any fired events. - */ - protected V value; - - - // ********** constructor/initialization ********** - - protected AbstractPropertyValueModelAdapter() { - super(); - // our value is null when we are not listening to the model - this.value = null; - } - - - // ********** PropertyValueModel implementation ********** - - /** - * Return the cached value. - */ - public V getValue() { - return this.value; - } - - - // ********** behavior ********** - - /** - * Start listening to the model and build the value. - */ - @Override - protected void engageModel() { - this.engageModel_(); - // synch our value *after* we start listening to the model, - // since the model's value might change when a listener is added - this.value = this.buildValue(); - } - - /** - * Start listening to the model. - */ - protected abstract void engageModel_(); - - /** - * Build and return the current value, as derived from the - * current state of the underlying model. - */ - protected abstract V buildValue(); - - /** - * Stop listening to the model and clear the value. - */ - @Override - protected void disengageModel() { - this.disengageModel_(); - // clear out our value when we are not listening to the model - this.value = null; - } - - /** - * Stop listening to the model. - */ - protected abstract void disengageModel_(); - - /** - * The underlying model changed in some fashion. - * Recalculate the value and notify any listeners. - */ - protected void propertyChanged() { - Object old = this.value; - this.firePropertyChanged(VALUE, old, this.value = this.buildValue()); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.value); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractTreeNodeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractTreeNodeValueModel.java deleted file mode 100644 index 657676e34d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AbstractTreeNodeValueModel.java +++ /dev/null @@ -1,194 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Iterator; -import java.util.List; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.ChainIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.TreeNodeValueModel; - -/** - * Subclasses need only implement the following methods: - * - * #value() - * return the user-determined "value" of the node, - * i.e. the object "wrapped" by the node - * - * #setValue(Object) - * set the user-determined "value" of the node, - * i.e. the object "wrapped" by the node; - * typically only overridden for nodes with "primitive" values - * - * #parent() - * return the parent of the node, which should be another - * TreeNodeValueModel - * - * #childrenModel() - * return a ListValueModel for the node's children - * - * #engageValue() and #disengageValue() - * override these methods to listen to the node's value if - * it can change in a way that should be reflected in the tree - */ -public abstract class AbstractTreeNodeValueModel - extends AbstractModel - implements TreeNodeValueModel -{ - - - // ********** constructors ********** - - /** - * Default constructor. - */ - protected AbstractTreeNodeValueModel() { - super(); - } - - @Override - protected ChangeSupport buildChangeSupport() { - // this model fires *both* "value property change" and "state change" events... -// return new SingleAspectChangeSupport(this, PropertyChangeListener.class, PropertyValueModel.VALUE); - return super.buildChangeSupport(); - } - - - // ********** extend AbstractModel implementation ********** - - /** - * Clients should be adding both "state change" and "value property change" - * listeners. - */ - @Override - public void addStateChangeListener(StateChangeListener listener) { - if (this.hasNoStateChangeListeners()) { - this.engageValue(); - } - super.addStateChangeListener(listener); - } - - /** - * Begin listening to the node's value's state. If the state of the node changes - * in a way that should be reflected in the tree, fire a "state change" event. - */ - protected abstract void engageValue(); - - /** - * @see #addStateChangeListener(StateChangeListener) - */ - @Override - public void removeStateChangeListener(StateChangeListener listener) { - super.removeStateChangeListener(listener); - if (this.hasNoStateChangeListeners()) { - this.disengageValue(); - } - } - - /** - * Stop listening to the node's value. - * @see #engageValue() - */ - protected abstract void disengageValue(); - - - // ********** WritablePropertyValueModel implementation ********** - - public void setValue(T value) { - throw new UnsupportedOperationException(); - } - - - // ********** TreeNodeValueModel implementation ********** - - @SuppressWarnings("unchecked") - public TreeNodeValueModel[] path() { - List> path = CollectionTools.reverseList(this.backPath()); - return path.toArray(new TreeNodeValueModel[path.size()]); - } - - /** - * Return an iterator that climbs up the node's path, - * starting with, and including, the node - * and up to, and including, the root node. - */ - protected Iterator> backPath() { - return new ChainIterator>(this) { - @Override - protected TreeNodeValueModel nextLink(TreeNodeValueModel currentLink) { - return currentLink.parent(); - } - }; - } - - public TreeNodeValueModel child(int index) { - return this.childrenModel().get(index); - } - - public int childrenSize() { - return this.childrenModel().size(); - } - - public int indexOfChild(TreeNodeValueModel child) { - ListValueModel> children = this.childrenModel(); - int size = children.size(); - for (int i = 0; i < size; i++) { - if (children.get(i) == child) { - return i; - } - } - return -1; - } - - public boolean isLeaf() { - return this.childrenModel().size() == 0; - } - - - // ********** standard methods ********** - - /** - * We implement #equals(Object) so that TreePaths containing these nodes - * will resolve properly when the nodes contain the same values. This is - * necessary because nodes are dropped and rebuilt willy-nilly when dealing - * with a sorted list of children; and this allows us to save and restore - * a tree's expanded paths. The nodes in the expanded paths that are - * saved before any modification (e.g. renaming a node) will be different - * from the nodes in the tree's paths after the modification, if the modification - * results in a possible change in the node sort order. ~bjv - */ - @Override - public boolean equals(Object o) { - if (o == null) { - return false; - } - if (o.getClass() != this.getClass()) { - return false; - } - @SuppressWarnings("unchecked") - AbstractTreeNodeValueModel other = (AbstractTreeNodeValueModel) o; - return this.getValue().equals(other.getValue()); - } - - @Override - public int hashCode() { - return this.getValue().hashCode(); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getValue()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectAdapter.java deleted file mode 100644 index 99f17918c3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectAdapter.java +++ /dev/null @@ -1,266 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.EventListener; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This abstract extension of {@link AbstractModel} provides a base for adding - * change listeners (property change, collection change, list change, tree change) - * to a subject and converting the subject's change notifications into a single - * set of change notifications for a common aspect (e.g. VALUE). - *

- * The adapter will only listen to the subject (and subject holder) when the - * adapter itself actually has listeners. This will allow the adapter to be - * garbage collected when appropriate - */ -public abstract class AspectAdapter - extends AbstractModel -{ - /** - * The subject that holds the aspect and fires - * change notification when the aspect changes. - * We need to hold on to this directly so we can - * disengage it when it changes. - */ - protected S subject; - - /** - * A value model that holds the subject - * that holds the aspect and provides change notification. - * This is useful when there are a number of aspect adapters - * that have the same subject and that subject can change. - * All the aspect adapters should share the same subject holder. - * For now, this is can only be set upon construction and is - * immutable. - */ - protected final PropertyValueModel subjectHolder; - - /** A listener that keeps us in synch with the subject holder. */ - protected final PropertyChangeListener subjectChangeListener; - - - // ********** constructors ********** - - /** - * Construct an aspect adapter for the specified subject. - */ - protected AspectAdapter(S subject) { - this(new StaticPropertyValueModel(subject)); - } - - /** - * Construct an aspect adapter for the specified subject holder. - * The subject holder cannot be null. - */ - protected AspectAdapter(PropertyValueModel subjectHolder) { - super(); - if (subjectHolder == null) { - throw new NullPointerException(); - } - this.subjectHolder = subjectHolder; - this.subjectChangeListener = this.buildSubjectChangeListener(); - // the subject is null when we are not listening to it - // this will typically result in our value being null - this.subject = null; - } - - - // ********** initialization ********** - - @Override - protected ChangeSupport buildChangeSupport() { - return new LocalChangeSupport(this, this.getListenerClass(), this.getListenerAspectName()); - } - - /** - * The subject holder's value has changed, keep our subject in synch. - */ - protected PropertyChangeListener buildSubjectChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - AspectAdapter.this.subjectChanged(); - } - @Override - public String toString() { - return "subject change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - /** - * The subject has changed. Notify listeners that the value has changed. - */ - protected synchronized void subjectChanged() { - Object oldValue = this.getValue(); - boolean hasListeners = this.hasListeners(); - if (hasListeners) { - this.disengageSubject(); - } - this.subject = this.subjectHolder.getValue(); - if (hasListeners) { - this.engageSubject(); - this.fireAspectChanged(oldValue, this.getValue()); - } - } - - /** - * Return the aspect's current value. - */ - protected abstract Object getValue(); - - /** - * Return the class of listener that is interested in the aspect adapter's - * changes. - */ - protected abstract Class getListenerClass(); - - /** - * Return the name of the aspect adapter's aspect (e.g. VALUE). - * This is the name of the aspect adapter's single aspect, not the - * name of the subject's aspect the aspect adapter is adapting. - */ - protected abstract String getListenerAspectName(); - - /** - * Return whether there are any listeners for the aspect. - */ - protected abstract boolean hasListeners(); - - /** - * Return whether there are no listeners for the aspect. - */ - protected boolean hasNoListeners() { - return ! this.hasListeners(); - } - - /** - * The aspect has changed, notify listeners appropriately. - */ - protected abstract void fireAspectChanged(Object oldValue, Object newValue); - - protected void engageSubject() { - // check for nothing to listen to - if (this.subject != null) { - this.engageSubject_(); - } - } - - /** - * The subject is not null - add our listener. - */ - protected abstract void engageSubject_(); - - protected void disengageSubject() { - // check for nothing to listen to - if (this.subject != null) { - this.disengageSubject_(); - } - } - - /** - * The subject is not null - remove our listener. - */ - protected abstract void disengageSubject_(); - - protected void engageSubjectHolder() { - this.subjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener); - // synch our subject *after* we start listening to the subject holder, - // since its value might change when a listener is added - this.subject = this.subjectHolder.getValue(); - } - - protected void disengageSubjectHolder() { - this.subjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener); - // clear out the subject when we are not listening to its holder - this.subject = null; - } - - protected void engageModels() { - this.engageSubjectHolder(); - this.engageSubject(); - } - - protected void disengageModels() { - this.disengageSubject(); - this.disengageSubjectHolder(); - } - - - // ********** local change support ********** - - /** - * Extend change support to start listening to the aspect adapter's - * models (the subject holder and the subject itself) when the first - * relevant listener is added. - * Conversely, stop listening to the aspect adapter's models when the - * last relevant listener is removed. - * A relevant listener is a listener of the relevant type and aspect or a - * general-purpose listener. - */ - protected class LocalChangeSupport extends SingleAspectChangeSupport { - private static final long serialVersionUID = 1L; - - public LocalChangeSupport(AspectAdapter source, Class validListenerClass, String validAspectName) { - super(source, validListenerClass, validAspectName); - } - - protected boolean hasNoListeners() { - return this.hasNoListeners(this.validListenerClass, this.validAspectName); - } - - - // ********** overrides ********** - - @Override - protected synchronized void addListener(Class listenerClass, T listener) { - if (this.hasNoListeners()) { - AspectAdapter.this.engageModels(); - } - super.addListener(listenerClass, listener); - } - - @Override - protected synchronized void addListener(Class listenerClass, String aspectName, T listener) { - if (this.hasNoListeners()) { - AspectAdapter.this.engageModels(); - } - super.addListener(listenerClass, aspectName, listener); - } - - @Override - protected synchronized void removeListener(Class listenerClass, T listener) { - super.removeListener(listenerClass, listener); - if (this.hasNoListeners()) { - AspectAdapter.this.disengageModels(); - } - } - - @Override - protected synchronized void removeListener(Class listenerClass, String aspectName, T listener) { - super.removeListener(listenerClass, aspectName, listener); - if (this.hasNoListeners()) { - AspectAdapter.this.disengageModels(); - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectCollectionValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectCollectionValueModelAdapter.java deleted file mode 100644 index 9c7f316629..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectCollectionValueModelAdapter.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Collection; -import java.util.EventListener; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This {@link AspectAdapter} provides basic collection change support. - * This converts an "aspect" (as defined by subclasses) into - * a single {@link #VALUES} collection. - *

- * The typical subclass will override the following methods:

    - *
  • {@link #engageSubject_()}

    - * implement this method to add the appropriate listener to the subject - *

  • {@link #disengageSubject_()}

    - * implement this method to remove the appropriate listener from the subject - *

  • {@link #getIterable()}

    - * at the very minimum, override this method to return an iterable containing the - * subject's collection aspect; it does not need to be overridden if either - * {@link #iterator_()} or {@link #iterator()} is overridden and its behavior changed - *

  • {@link #size_()}

    - * override this method to improve performance; it does not need to be overridden if - * {@link #size()} is overridden and its behavior changed - *

  • {@link #iterator_()}

    - * override this method to return an iterator on the - * subject's collection aspect if it is not possible to implement {@link #getIterable()}; - * it does not need to be overridden if - * {@link #iterator()} is overridden and its behavior changed - *

  • {@link #iterator()}

    - * override this method only if returning an empty iterator when the - * subject is null is unacceptable - *

  • {@link #size()}

    - * override this method only if returning a zero when the - * subject is null is unacceptable - *

- * To notify listeners, subclasses can call {@link #collectionChanged()} - * whenever the aspect has changed. - */ -public abstract class AspectCollectionValueModelAdapter - extends AspectAdapter - implements CollectionValueModel -{ - - // ********** constructors ********** - - /** - * Construct a collection value model adapter for an aspect of the - * specified subject. - */ - protected AspectCollectionValueModelAdapter(PropertyValueModel subjectHolder) { - super(subjectHolder); - } - - - // ********** CollectionValueModel implementation ********** - - /** - * Return the elements of the subject's collection aspect. - */ - public Iterator iterator() { - return (this.subject == null) ? EmptyIterator.instance() : this.iterator_(); - } - - /** - * Return the elements of the subject's collection aspect. - * At this point we can be sure the subject is not null. - * @see #iterator() - */ - protected Iterator iterator_() { - return this.getIterable().iterator(); - } - - /** - * Return the elements of the subject's collection aspect. - * At this point we can be sure the subject is not null. - * @see #iterator_() - */ - protected Iterable getIterable() { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - /** - * Return the size of the subject's collection aspect. - */ - public int size() { - return (this.subject == null) ? 0 : this.size_(); - } - - /** - * Return the size of the subject's collection aspect. - * At this point we can be sure the subject is not null. - * @see #size() - */ - protected int size_() { - return CollectionTools.size(this.iterator()); - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected Object getValue() { - return this.buildValueCollection(); - } - - @Override - protected Class getListenerClass() { - return CollectionChangeListener.class; - } - - @Override - protected String getListenerAspectName() { - return VALUES; - } - - @Override - protected boolean hasListeners() { - return this.hasAnyCollectionChangeListeners(VALUES); - } - - @Override - protected void fireAspectChanged(Object oldValue, Object newValue) { - @SuppressWarnings("unchecked") Collection newCollection = (Collection) newValue; - this.fireCollectionChanged(VALUES, newCollection); - } - - protected void collectionChanged() { - this.fireCollectionChanged(VALUES, this.buildValueCollection()); - } - - protected Collection buildValueCollection() { - return CollectionTools.collection(this.iterator()); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.buildValueCollection()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectListValueModelAdapter.java deleted file mode 100644 index 41d36a066c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectListValueModelAdapter.java +++ /dev/null @@ -1,197 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.EventListener; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This {@link AspectAdapter} provides basic list change support. - * This converts an "aspect" (as defined by subclasses) into - * a single {@link #LIST_VALUES} list. - *

- * The typical subclass will override the following methods:

    - *
  • {@link #engageSubject_()}

    - * implement this method to add the appropriate listener to the subject - *

  • {@link #disengageSubject_()}

    - * implement this method to remove the appropriate listener from the subject - *

  • {@link #getListIterable()}

    - * at the very minimum, override this method to return a list iterable containing the - * subject's list aspect; it does not need to be overridden if either - * {@link #listIterator_()} or {@link #listIterator()} is overridden and its behavior changed - *

  • {@link #get(int)}

    - * override this method to improve performance - *

  • {@link #size_()}

    - * override this method to improve performance; it does not need to be overridden if - * {@link #size()} is overridden and its behavior changed - *

  • {@link #toArray_()}

    - * override this method to improve performance; it does not need to be overridden if - * {@link #toArray()} is overridden and its behavior changed - *

  • {@link #listIterator_()}

    - * override this method to return a list iterator on the subject's list - * aspect if it is not possible to implement {@link #getListIterable()}; - * it does not need to be overridden if - * {@link #listIterator()} is overridden and its behavior changed - *

  • {@link #listIterator()}

    - * override this method only if returning an empty list iterator when the - * subject is null is unacceptable - *

  • {@link #size()}

    - * override this method only if returning a zero when the - * subject is null is unacceptable - *

  • {@link #toArray()}

    - * override this method only if returning an empty array when the - * subject is null is unacceptable - *

- * To notify listeners, subclasses can call {@link #listChanged()} - * whenever the aspect has changed. - */ -public abstract class AspectListValueModelAdapter - extends AspectAdapter - implements ListValueModel -{ - private static final Object[] EMPTY_ARRAY = new Object[0]; - - - // ********** constructors ********** - - /** - * Construct a list value model adapter for an aspect of the - * specified subject. - */ - protected AspectListValueModelAdapter(PropertyValueModel subjectHolder) { - super(subjectHolder); - } - - - // ********** ListValueModel implementation ********** - - /** - * Return the elements of the subject's list aspect. - */ - public ListIterator iterator() { - return this.listIterator(); - } - - /** - * Return the elements of the subject's list aspect. - */ - public ListIterator listIterator() { - return (this.subject == null) ? EmptyListIterator.instance() : this.listIterator_(); - } - - /** - * Return the elements of the subject's list aspect. - * At this point we can be sure the subject is not null. - * @see #listIterator() - */ - protected ListIterator listIterator_() { - return this.getListIterable().iterator(); - } - - /** - * Return the elements of the subject's list aspect. - * At this point we can be sure the subject is not null. - * @see #listIterator_() - */ - protected ListIterable getListIterable() { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - /** - * Return the element at the specified index of the subject's list aspect. - */ - public E get(int index) { - return CollectionTools.get(this.listIterator(), index); - } - - /** - * Return the size of the subject's list aspect. - */ - public int size() { - return this.subject == null ? 0 : this.size_(); - } - - /** - * Return the size of the subject's list aspect. - * At this point we can be sure the subject is not null. - * @see #size() - */ - protected int size_() { - return CollectionTools.size(this.listIterator()); - } - - /** - * Return an array manifestation of the subject's list aspect. - */ - public Object[] toArray() { - return this.subject == null ? EMPTY_ARRAY : this.toArray_(); - } - - /** - * Return an array manifestation of the subject's list aspect. - * At this point we can be sure the subject is not null. - * @see #toArray() - */ - protected Object[] toArray_() { - return ArrayTools.array(this.listIterator(), this.size()); - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected List getValue() { - return this.buildValueList(); - } - - @Override - protected Class getListenerClass() { - return ListChangeListener.class; - } - - @Override - protected String getListenerAspectName() { - return LIST_VALUES; - } - - @Override - protected boolean hasListeners() { - return this.hasAnyListChangeListeners(LIST_VALUES); - } - - @Override - protected void fireAspectChanged(Object oldValue, Object newValue) { - @SuppressWarnings("unchecked") List newList = (List) newValue; - this.fireListChanged(LIST_VALUES, newList); - } - - protected void listChanged() { - this.fireListChanged(LIST_VALUES, this.buildValueList()); - } - - protected List buildValueList() { - return CollectionTools.list(this.iterator()); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.buildValueList()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectPropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectPropertyValueModelAdapter.java deleted file mode 100644 index 180153a586..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectPropertyValueModelAdapter.java +++ /dev/null @@ -1,178 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.EventListener; - -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This {@link AspectAdapter} provides basic property change support. - * This converts an "aspect" (as defined by subclasses) into - * a single {@link #VALUE} property. - *

- * The typical subclass will override the following methods:

    - *
  • {@link #engageSubject_()}

    - * implement this method to add the appropriate listener to the subject - *

  • {@link #disengageSubject_()}

    - * implement this method to remove the appropriate listener from the subject - *

  • {@link #buildValue_()}

    - * at the very minimum, override this method to return the value of the - * subject's aspect (or "virtual" aspect); it does not need to be - * overridden if {@link #buildValue()} is overridden and its behavior changed - *

  • {@link #setValue_(Object)}

    - * override this method if the client code needs to set the value of - * the subject's aspect; oftentimes, though, the client code (e.g. UI) - * will need only to get the value; it does not need to be - * overridden if {@link #setValue(Object)} is overridden and its behavior changed - *

  • {@link #buildValue()}

    - * override this method only if returning a null value when - * the subject is null is unacceptable - *

  • {@link #setValue(Object)}

    - * override this method only if something must be done when the subject - * is null (e.g. throw an exception) - *

- * To notify listeners, subclasses can call {@link #propertyChanged()} - * whenever the aspect has changed. - */ -public abstract class AspectPropertyValueModelAdapter - extends AspectAdapter - implements WritablePropertyValueModel -{ - /** - * Cache the current value of the aspect so we - * can pass an "old value" when we fire a property change event. - * We need this because the value may be calculated and may - * not be in the property change event fired by the subject, - * especially when dealing with multiple aspects. - */ - protected V value; - - - // ********** constructors ********** - - /** - * Construct a property value model adapter for an aspect of the - * specified subject. - */ - protected AspectPropertyValueModelAdapter(PropertyValueModel subjectHolder) { - super(subjectHolder); - // our value is null when we are not listening to the subject - this.value = null; - } - - - // ********** PropertyValueModel implementation ********** - - /** - * Return the value of the subject's aspect. - */ - @Override - public final V getValue() { - return this.value; - } - - - // ********** WritablePropertyValueModel implementation ********** - - /** - * Set the value of the subject's aspect. - */ - public void setValue(V value) { - if (this.subject != null) { - this.setValue_(value); - } - } - - /** - * Set the value of the subject's aspect. - * At this point we can be sure the subject is not null. - * @see #setValue(Object) - */ - protected void setValue_(@SuppressWarnings("unused") V value) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected Class getListenerClass() { - return PropertyChangeListener.class; - } - - @Override - protected String getListenerAspectName() { - return VALUE; - } - - @Override - protected boolean hasListeners() { - return this.hasAnyPropertyChangeListeners(VALUE); - } - - @Override - protected void fireAspectChanged(Object oldValue, Object newValue) { - this.firePropertyChanged(VALUE, oldValue, newValue); - } - - @Override - protected void engageSubject() { - super.engageSubject(); - // synch our value *after* we start listening to the subject, - // since its value might change when a listener is added - this.value = this.buildValue(); - } - - @Override - protected void disengageSubject() { - super.disengageSubject(); - // clear out our value when we are not listening to the subject - this.value = null; - } - - - // ********** behavior ********** - - /** - * Return the aspect's value. - * At this point the subject may be null. - */ - protected V buildValue() { - return (this.subject == null) ? null : this.buildValue_(); - } - - /** - * Return the value of the subject's aspect. - * At this point we can be sure the subject is not null. - * @see #buildValue() - */ - protected V buildValue_() { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - /** - * This method can be called by subclasses whenever the subject's aspect - * has changed; listeners will be notified appropriately. - */ - protected void propertyChanged() { - V old = this.value; - this.value = this.buildValue(); - this.fireAspectChanged(old, this.value); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.value); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectTreeValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectTreeValueModelAdapter.java deleted file mode 100644 index 6989991744..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/AspectTreeValueModelAdapter.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Collection; -import java.util.EventListener; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.TreeValueModel; - -/** - * This {@link AspectAdapter} provides basic tree change support. - * This converts an "aspect" (as defined by subclasses) into - * a single {@link #NODES} tree. - *

- * The typical subclass will override the following methods:

    - *
  • {@link #engageSubject_()}

    - * implement this method to add the appropriate listener to the subject - *

  • {@link #disengageSubject_()}

    - * implement this method to remove the appropriate listener from the subject - *

  • {@link #nodes_()}

    - * at the very minimum, override this method to return an iterator - * on the subject's tree aspect; it does not need to be overridden if - * {@link #nodes()} is overridden and its behavior changed - *

  • {@link #nodes()}

    - * override this method only if returning an empty iterator when the - * subject is null is unacceptable - *

- * To notify listeners, subclasses can call {@link #treeChanged()} - * whenever the aspect has changed. - */ -public abstract class AspectTreeValueModelAdapter - extends AspectAdapter - implements TreeValueModel -{ - - // ********** constructors ********** - - /** - * Construct a tree value model adapter for an aspect of the - * specified subject. - */ - protected AspectTreeValueModelAdapter(PropertyValueModel subjectHolder) { - super(subjectHolder); - } - - - // ********** TreeValueModel implementation ********** - - /** - * Return the nodes of the subject's tree aspect. - */ - public Iterator nodes() { - return (this.subject == null) ? EmptyIterator.instance() : this.nodes_(); - } - - /** - * Return the nodes of the subject's tree aspect. - * At this point we can be sure the subject is not null. - * @see #nodes() - */ - protected Iterator nodes_() { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected Object getValue() { - return this.buildValueCollection(); - } - - @Override - protected Class getListenerClass() { - return TreeChangeListener.class; - } - - @Override - protected String getListenerAspectName() { - return NODES; - } - - @Override - protected boolean hasListeners() { - return this.hasAnyTreeChangeListeners(NODES); - } - - @Override - protected void fireAspectChanged(Object oldValue, Object newValue) { - @SuppressWarnings("unchecked") Collection newNodes = (Collection) newValue; - this.fireTreeChanged(NODES, newNodes); - } - - protected void treeChanged() { - this.fireTreeChanged(NODES, this.buildValueCollection()); - } - - protected Collection buildValueCollection() { - return CollectionTools.collection(this.nodes()); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.buildValueCollection()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/BufferedWritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/BufferedWritablePropertyValueModel.java deleted file mode 100644 index 87d191ca6a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/BufferedWritablePropertyValueModel.java +++ /dev/null @@ -1,392 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * A BufferedWritablePropertyValueModel is used to hold a temporary copy of the value - * in another property value model (the "wrapped" value holder). The application - * can modify this temporary copy, ad nauseam; but the temporary copy is only - * passed through to the "wrapped" value holder when the trigger "accepts" the - * buffered value. Alternatively, the application can "reset" the buffered value - * to the original, "wrapped" value. - *

- * The trigger is another {@link PropertyValueModel} that holds a {@link Boolean} - * and the application changes the trigger's value to true on "accept", false on "reset". - * Typically, in a dialog:

    - *
  • pressing the "OK" button will trigger an "accept" and close the dialog - *
  • pressing the "Cancel" button will simply close the dialog, - * dropping the "buffered" values into the bit bucket - *
  • pressing the "Apply" button will trigger an "accept" and leave the dialog open - *
  • pressing the "Restore" button will trigger a "reset" and leave the dialog open - *
- *

- * A number of buffered property value models can wrap another set of - * property aspect adapters that adapt the various aspects of a single - * domain model. All the bufferd property value models can be hooked to the - * same trigger, and that trigger is controlled by the application, typically - * via the OK button in a dialog. - * - * @see PropertyAspectAdapter - */ -public class BufferedWritablePropertyValueModel - extends PropertyValueModelWrapper - implements WritablePropertyValueModel -{ - - /** - * We cache the value here until it is accepted and passed - * through to the wrapped value holder. - */ - protected T bufferedValue; - - /** - * This is set to true when we are "accepting" the buffered value - * and passing it through to the wrapped value holder. This allows - * us to ignore the property change event fired by the wrapped - * value holder. - * (We can't stop listening to the wrapped value holder, because - * if we are the only listener that could "deactivate" the wrapped - * value holder.) - */ - protected boolean accepting; - - /** - * This is the trigger that indicates whether the buffered value - * should be accepted or reset. - */ - protected final PropertyValueModel triggerHolder; - - /** This listens to the trigger holder. */ - protected final PropertyChangeListener triggerChangeListener; - - /** - * This flag indicates whether our buffered value has been assigned - * a value and is possibly out of synch with the wrapped value. - */ - protected boolean buffering; - - - // ********** constructors ********** - - /** - * Construct a buffered property value model with the specified wrapped - * property value model and trigger holder. - */ - public BufferedWritablePropertyValueModel(WritablePropertyValueModel valueHolder, PropertyValueModel triggerHolder) { - super(valueHolder); - if (triggerHolder == null) { - throw new NullPointerException(); - } - this.triggerHolder = triggerHolder; - this.bufferedValue = null; - this.buffering = false; - this.accepting = false; - this.triggerChangeListener = this.buildTriggerChangeListener(); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildTriggerChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - BufferedWritablePropertyValueModel.this.triggerChanged(event); - } - @Override - public String toString() { - return "trigger change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ValueModel implementation ********** - - /** - * If we are currently "buffering" a value, return that; - * otherwise, return the wrapped value. - */ - public T getValue() { - return this.buffering ? this.bufferedValue : this.valueHolder.getValue(); - } - - /** - * Assign the new value to our "buffered" value. - * It will be pushed to the wrapped value holder - * when the trigger is "accepted". - */ - public void setValue(T value) { - if (this.buffering) { - if (this.valuesAreEqual(value, this.valueHolder.getValue())) { - // the buffered value is being set back to the original value - this.reset(); - } else { - // the buffered value is being changed - Object old = this.bufferedValue; - this.bufferedValue = value; - this.firePropertyChanged(VALUE, old, value); - } - } else { - if (this.valuesAreEqual(value, this.valueHolder.getValue())) { - // the buffered value is being set to the same value as the original value - ignore - } else { - // the buffered value is being set for the first time - Object old = this.valueHolder.getValue(); - this.bufferedValue = value; - this.buffering = true; - this.firePropertyChanged(VALUE, old, value); - } - } - } - - - // ********** PropertyValueModelWrapper extensions ********** - - /** - * extend to engage the trigger holder also - */ - @Override - protected void engageModel() { - super.engageModel(); - this.triggerHolder.addPropertyChangeListener(VALUE, this.triggerChangeListener); - } - - /** - * extend to disengage the trigger holder also - */ - @Override - protected void disengageModel() { - this.triggerHolder.removePropertyChangeListener(VALUE, this.triggerChangeListener); - super.disengageModel(); - } - - - // ********** behavior ********** - - /** - * If we are currently "accepting" the value (i.e passing it on to the - * "wrapped" model), ignore change notifications, since we caused - * them and our own listeners are already aware of the change. - */ - @Override - protected void valueChanged(PropertyChangeEvent event) { - if ( ! this.accepting) { - this.valueChanged_(event); - } - } - - /** - * If we have a "buffered" value, check whether the "wrapped" value has - * changed to be the same as the "buffered" value. If it has, stop "buffering"; - * if not, do nothing. - * If we do not yet have a "buffered" value, simply propagate the - * change notification with the buffered model as the source. - */ - protected void valueChanged_(PropertyChangeEvent event) { - if (this.buffering) { - if (this.valuesAreEqual(event.getNewValue(), this.bufferedValue)) { - // the buffered value is being set back to the original value - this.reset(); - } else { - this.handleChangeConflict(event); - } - } else { - this.firePropertyChanged(event.clone(this)); - } - } - - /** - * By default, if we have a "buffered" value and the "wrapped" value changes, - * we simply ignore the new "wrapped" value and simply overlay it with the - * "buffered" value if it is "accepted". ("Last One In Wins" concurrency model) - * Subclasses can override this method to change that behavior with a - * different concurrency model. For example, you could drop the "buffered" value - * and replace it with the new "wrapped" value, or you could throw an - * exception. - */ - protected void handleChangeConflict(@SuppressWarnings("unused") PropertyChangeEvent event) { - // the default is to do nothing - } - - /** - * The trigger changed:

    - *
  • If it is now true, "accept" the buffered value and push - * it to the wrapped value holder. - *
  • If it is now false, "reset" the buffered value to its original value. - *
- */ - protected void triggerChanged(PropertyChangeEvent event) { - // if nothing has been "buffered", we don't need to do anything: - // nothing needs to be passed through; nothing needs to be reset; - if (this.buffering) { - if (((Boolean) event.getNewValue()).booleanValue()) { - this.accept(); - } else { - this.reset(); - } - } - } - - protected void accept() { - // set the accepting flag so we ignore any events - // fired by the wrapped value holder - this.accepting = true; - try { - this.getValueHolder().setValue(this.bufferedValue); - } finally { - this.bufferedValue = null; - this.buffering = false; - // clear the flag once the "accept" is complete - this.accepting = false; - } - } - - protected void reset() { - // notify our listeners that our value has been reset - Object old = this.bufferedValue; - this.bufferedValue = null; - this.buffering = false; - this.firePropertyChanged(VALUE, old, this.valueHolder.getValue()); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getValue()); - } - - - // ********** convenience methods ********** - - /** - * Return whether the buffered model is currently "buffering" - * a value. - */ - public boolean isBuffering() { - return this.buffering; - } - - /** - * Our constructor accepts only a {@link WritablePropertyValueModel}{@code}. - */ - @SuppressWarnings("unchecked") - protected WritablePropertyValueModel getValueHolder() { - return (WritablePropertyValueModel) this.valueHolder; - } - - - // ********** inner class ********** - - /** - * Trigger is a special property value model that only maintains its - * value (of true or false) during the change notification caused by - * {@link #setValue(T)}. In other words, a Trigger - * only has a valid value when it is being set. - */ - public static class Trigger extends SimplePropertyValueModel { - - - // ********** constructor ********** - - /** - * Construct a trigger with a null value. - */ - public Trigger() { - super(); - } - - - // ********** ValueModel implementation ********** - - /** - * Extend so that this method can only be invoked during - * change notification triggered by {@link #setValue(Object)}. - */ - @Override - public Boolean getValue() { - if (this.value == null) { - throw new IllegalStateException("The method Trigger.getValue() may only be called during change notification."); //$NON-NLS-1$ - } - return this.value; - } - - /** - * Extend to reset the value to null once all the - * listeners have been notified. - */ - @Override - public void setValue(Boolean value) { - super.setValue(value); - this.value = null; - } - - - // ********** convenience methods ********** - - /** - * Set the trigger's value:
    - *
  • true indicates "accept" - *
  • false indicates "reset" - *
- */ - public void setValue(boolean value) { - this.setValue(Boolean.valueOf(value)); - } - - /** - * Return the trigger's value:
    - *
  • true indicates "accept" - *
  • false indicates "reset" - *
- * This method can only be invoked during change notification. - */ - public boolean booleanValue() { - return this.getValue().booleanValue(); - } - - /** - * Accept the trigger (i.e. set its value to true). - */ - public void accept() { - this.setValue(true); - } - - /** - * Return whether the trigger has been accepted - * (i.e. its value was changed to true). - * This method can only be invoked during change notification. - */ - public boolean isAccepted() { - return this.booleanValue(); - } - - /** - * Reset the trigger (i.e. set its value to false). - */ - public void reset() { - this.setValue(false); - } - - /** - * Return whether the trigger has been reset - * (i.e. its value was changed to false). - * This method can only be invoked during change notification. - */ - public boolean isReset() { - return ! this.booleanValue(); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationPropertyValueModel.java deleted file mode 100644 index c62e6853bf..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationPropertyValueModel.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * A CachingTransformationPropertyValueModel wraps another - * {@link PropertyValueModel} and uses a {@link Transformer} - * to transform the wrapped value before it is returned by {@link #getValue()}. - * The transformed value is calculated and cached during initialization and every - * time the wrapped value changes. This can be useful when the old value - * passed in to {@link #valueChanged(org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent)} - * can no longer be "transformed" because its state is no longer valid. - * This caching can also improve time performance in some situations. - *

- * As an alternative to building a {@link Transformer}, - * a subclass of CachingTransformationPropertyValueModel can - * either override {@link #transform_(Object)} or, - * if something other than null should be returned when the wrapped value - * is null, override {@link #transform(Object)}. - */ -public class CachingTransformationPropertyValueModel - extends TransformationPropertyValueModel -{ - /** - * Cache the transformed value so that during property change event notification - * we do not have to transform the old value. The old value could no longer be valid in - * the model; as a result, transforming it would not be valid. - */ - protected T2 cachedValue; - - - // ********** constructors/initialization ********** - - /** - * Construct a property value model with the specified nested - * property value model and the default transformer. - * Use this constructor if you want to override - * {@link #transform_(Object)} or {@link #transform(Object)} - * instead of building a {@link Transformer}. - */ - public CachingTransformationPropertyValueModel(PropertyValueModel valueHolder) { - super(valueHolder); - } - - /** - * Construct an property value model with the specified nested - * property value model and transformer. - */ - public CachingTransformationPropertyValueModel(PropertyValueModel valueHolder, Transformer transformer) { - super(valueHolder, transformer); - } - - - // ********** behavior ********** - - /** - * We have listeners, transform the nested value and cache the result. - */ - @Override - protected void engageModel() { - super.engageModel(); - this.cachedValue = this.transform(this.valueHolder.getValue()); - } - - /** - * We have no more listeners, clear the cached value. - */ - @Override - protected void disengageModel() { - this.cachedValue = null; - super.disengageModel(); - } - - /** - * No need to transform the nested value, simply return the cached value, - * which is already transformed. - */ - @Override - public T2 getValue() { - return this.cachedValue; - } - - /** - * Transform the specified new value, caching it before returning it. - * A bit of a side-effect, but it seems reasonable. - */ - @Override - protected T2 transformNew(T1 value) { - this.cachedValue = super.transformNew(value); - return this.cachedValue; - } - - /** - * No need to transform the old value, simply return the cached value, - * which is already transformed. - */ - @Override - protected T2 transformOld(T1 value) { - return this.cachedValue; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java deleted file mode 100644 index 1560367c3e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.BidiTransformer; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * A CachingTransformationWritablePropertyValueModel augments the - * behavior of a {@link TransformationWritablePropertyValueModel} by caching - * the transformed value. - * The transformed value is calculated and cached during initialization and every - * time the wrapped value changes. This can be useful when the old value - * passed in to {@link #valueChanged(org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent)} - * can no longer be "transformed" because its state is no longer valid. - * This caching can also improve time performance in some situations. - */ -public class CachingTransformationWritablePropertyValueModel - extends TransformationWritablePropertyValueModel -{ - /** - * Cache the transformed value so that during property change event notification - * we do not have to transform the old value. The old value could no longer be valid in - * the model; as a result, transforming it would not be valid. - */ - protected T2 cachedValue; - - - // ********** constructors/initialization ********** - - /** - * Construct a writable property value model with the specified nested - * writable property value model and the default bidi transformer. - * Use this constructor if you want to override - * {@link #transform_(Object)} and {@link reverseTransform_(Object)} - * (or {@link #transform(Object)} and {@link #reverseTransform(Object)}) - * methods instead of building a {@link BidiTransformer}. - */ - public CachingTransformationWritablePropertyValueModel(WritablePropertyValueModel valueHolder) { - super(valueHolder); - } - - /** - * Construct a writable property value model with the specified nested - * writable property value model and bidi transformer. - */ - public CachingTransformationWritablePropertyValueModel(WritablePropertyValueModel valueHolder, BidiTransformer transformer) { - super(valueHolder, transformer); - } - - - // ********** behavior ********** - - /** - * We have listeners, transform the nested value and cache the result. - */ - @Override - protected void engageModel() { - super.engageModel(); - this.cachedValue = this.transform(this.valueHolder.getValue()); - } - - /** - * We have no more listeners, clear the cached value. - */ - @Override - protected void disengageModel() { - this.cachedValue = null; - super.disengageModel(); - } - - /** - * No need to transform the nested value, simply return the cached value, - * which is already transformed. - */ - @Override - public T2 getValue() { - return this.cachedValue; - } - - /** - * Transform the specified new value, caching it before returning it. - * A bit of a side-effect, but it seems reasonable. - */ - @Override - protected T2 transformNew(T1 value) { - this.cachedValue = super.transformNew(value); - return this.cachedValue; - } - - /** - * No need to transform the old value, simply return the cached value, - * which is already transformed. - */ - @Override - protected T2 transformOld(T1 value) { - return this.cachedValue; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ChangePropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ChangePropertyValueModelAdapter.java deleted file mode 100644 index 56d8ddd85e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ChangePropertyValueModelAdapter.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.SimpleChangeListener; - -/** - * This abstract class provides the infrastructure needed to wrap - * a model, "lazily" listen to it, and convert - * its change notifications into property value model change - * notifications. - *

- * Subclasses must override:

    - *
  • {@link #buildValue()}

    - * to return the current property value, as derived from the - * current model - *

- * Subclasses might want to override the following methods - * to improve performance (by not recalculating the value, if possible):
    - *
  • {@link #modelChanged(ChangeEvent event)} - *
  • {@link #buildChangeListener()} - *
- */ -public abstract class ChangePropertyValueModelAdapter - extends AbstractPropertyValueModelAdapter -{ - /** The wrapped model. */ - protected final Model model; - - /** A listener that allows us to synch with changes to the wrapped collection holder. */ - protected final ChangeListener changeListener; - - - // ********** constructor/initialization ********** - - /** - * Construct a property value model with the specified wrapped model. - */ - protected ChangePropertyValueModelAdapter(Model model) { - super(); - this.model = model; - this.changeListener = this.buildChangeListener(); - } - - protected ChangeListener buildChangeListener() { - return new SimpleChangeListener() { - @Override - protected void modelChanged(ChangeEvent event) { - ChangePropertyValueModelAdapter.this.modelChanged(event); - } - @Override - public String toString() { - return "change listener command"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - /** - * Start listening to the model. - */ - @Override - protected void engageModel_() { - this.model.addChangeListener(this.changeListener); - } - - /** - * Stop listening to the model. - */ - @Override - protected void disengageModel_() { - this.model.removeChangeListener(this.changeListener); - } - - - // ********** change support ********** - - /** - * The wrapped model has changed; - * propagate the change notification appropriately. - */ - protected void modelChanged(@SuppressWarnings("unused") ChangeEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionAspectAdapter.java deleted file mode 100644 index b9a0cf9362..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionAspectAdapter.java +++ /dev/null @@ -1,158 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; -import java.util.Collection; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This extension of {@link AspectCollectionValueModelAdapter} provides - * basic collection change support. - * This converts a set of one or more collections into - * a single {@link #VALUES} collection. - *

- * The typical subclass will override the following methods (see the descriptions - * in {@link AspectCollectionValueModelAdapter}):

    - *
  • {@link #getIterable()} - *
  • {@link #size_()} - *
  • {@link #iterator_()} - *
  • {@link #iterator()} - *
  • {@link #size()} - *
- */ -public abstract class CollectionAspectAdapter - extends AspectCollectionValueModelAdapter -{ - /** - * The name of the subject's collections that we use for the value. - */ - protected final String[] collectionNames; - protected static final String[] EMPTY_COLLECTION_NAMES = new String[0]; - - /** A listener that listens to the subject's collection aspects. */ - protected final CollectionChangeListener collectionChangeListener; - - - // ********** constructors ********** - - /** - * Construct a collection aspect adapter for the specified subject - * and collection. - */ - protected CollectionAspectAdapter(String collectionName, S subject) { - this(new String[] {collectionName}, subject); - } - - /** - * Construct a collection aspect adapter for the specified subject - * and collections. - */ - protected CollectionAspectAdapter(String[] collectionNames, S subject) { - this(new StaticPropertyValueModel(subject), collectionNames); - } - - /** - * Construct a collection aspect adapter for the specified subject holder - * and collections. - */ - protected CollectionAspectAdapter(PropertyValueModel subjectHolder, String... collectionNames) { - super(subjectHolder); - this.collectionNames = collectionNames; - this.collectionChangeListener = this.buildCollectionChangeListener(); - } - - /** - * Construct a collection aspect adapter for the specified subject holder - * and collections. - */ - protected CollectionAspectAdapter(PropertyValueModel subjectHolder, Collection collectionNames) { - this(subjectHolder, collectionNames.toArray(new String[collectionNames.size()])); - } - - /** - * Construct a collection aspect adapter for an "unchanging" collection in - * the specified subject. This is useful for a collection aspect that does not - * change for a particular subject; but the subject will change, resulting in - * a new collection. - */ - protected CollectionAspectAdapter(PropertyValueModel subjectHolder) { - this(subjectHolder, EMPTY_COLLECTION_NAMES); - } - - - // ********** initialization ********** - - protected CollectionChangeListener buildCollectionChangeListener() { - // transform the subject's collection change events into VALUES collection change events - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - CollectionAspectAdapter.this.itemsAdded(event); - } - public void itemsRemoved(CollectionRemoveEvent event) { - CollectionAspectAdapter.this.itemsRemoved(event); - } - public void collectionCleared(CollectionClearEvent event) { - CollectionAspectAdapter.this.collectionCleared(event); - } - public void collectionChanged(CollectionChangeEvent event) { - CollectionAspectAdapter.this.collectionChanged(event); - } - @Override - public String toString() { - return "collection change listener: " + Arrays.asList(CollectionAspectAdapter.this.collectionNames); //$NON-NLS-1$ - } - }; - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected void engageSubject_() { - for (String collectionName : this.collectionNames) { - ((Model) this.subject).addCollectionChangeListener(collectionName, this.collectionChangeListener); - } - } - - @Override - protected void disengageSubject_() { - for (String collectionName : this.collectionNames) { - ((Model) this.subject).removeCollectionChangeListener(collectionName, this.collectionChangeListener); - } - } - - - // ********** behavior ********** - - protected void itemsAdded(CollectionAddEvent event) { - this.fireItemsAdded(event.clone(this, VALUES)); - } - - protected void itemsRemoved(CollectionRemoveEvent event) { - this.fireItemsRemoved(event.clone(this, VALUES)); - } - - protected void collectionCleared(CollectionClearEvent event) { - this.fireCollectionCleared(event.clone(this, VALUES)); - } - - protected void collectionChanged(CollectionChangeEvent event) { - this.fireCollectionChanged(event.clone(this, VALUES)); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionListValueModelAdapter.java deleted file mode 100644 index 4c3d8b4cca..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionListValueModelAdapter.java +++ /dev/null @@ -1,217 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * An adapter that allows us to make a {@link CollectionValueModel} behave like - * a read-only {@link ListValueModel}, sorta. - *

- * To maintain a reasonably consistent appearance to client code, we - * keep an internal list somewhat in synch with the wrapped collection. - *

- * NB: Since we only listen to the wrapped collection when we have - * listeners ourselves and we can only stay in synch with the wrapped - * collection while we are listening to it, results to various methods - * (e.g. {@link #size()}, {@link #get(int)}) will be unpredictable whenever - * we do not have any listeners. This should not be too painful since, - * most likely, clients will also be listeners. - */ -public class CollectionListValueModelAdapter - extends AbstractListValueModel - implements ListValueModel -{ - /** The wrapped collection value model. */ - protected final CollectionValueModel collectionHolder; - - /** A listener that forwards any events fired by the collection holder. */ - protected final CollectionChangeListener collectionChangeListener; - - /** - * Our internal list, which holds the same elements as - * the wrapped collection, but keeps them in order. - */ - // we declare this an ArrayList so we can use #clone() and #ensureCapacity(int) - protected final ArrayList list; - - - // ********** constructors ********** - - /** - * Wrap the specified collection value model. - */ - public CollectionListValueModelAdapter(CollectionValueModel collectionHolder) { - super(); - if (collectionHolder == null) { - throw new NullPointerException(); - } - this.collectionHolder = collectionHolder; - this.collectionChangeListener = this.buildCollectionChangeListener(); - this.list = new ArrayList(collectionHolder.size()); - // postpone building the list and listening to the underlying collection - // until we have listeners ourselves... - } - - - // ********** initialization ********** - - /** - * The wrapped collection has changed, forward an equivalent - * list change event to our listeners. - */ - protected CollectionChangeListener buildCollectionChangeListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - CollectionListValueModelAdapter.this.itemsAdded(event); - } - public void itemsRemoved(CollectionRemoveEvent event) { - CollectionListValueModelAdapter.this.itemsRemoved(event); - } - public void collectionCleared(CollectionClearEvent event) { - CollectionListValueModelAdapter.this.collectionCleared(event); - } - public void collectionChanged(CollectionChangeEvent event) { - CollectionListValueModelAdapter.this.collectionChanged(event); - } - @Override - public String toString() { - return "collection change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ListValueModel implementation ********** - - public Iterator iterator() { - return this.listIterator(); - } - - public ListIterator listIterator() { - return new ReadOnlyListIterator(this.list); - } - - public E get(int index) { - return this.list.get(index); - } - - public int size() { - return this.list.size(); - } - - public Object[] toArray() { - return this.list.toArray(); - } - - - // ********** behavior ********** - - @Override - protected void engageModel() { - this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener); - // synch our list *after* we start listening to the collection holder, - // since its value might change when a listener is added - this.buildList(); - } - - @Override - protected void disengageModel() { - this.collectionHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener); - // clear out the list when we are not listening to the collection holder - this.list.clear(); - } - - protected void buildList() { - // if the new collection is empty, do nothing - int size = this.collectionHolder.size(); - if (size != 0) { - this.buildList(size); - } - } - - protected void buildList(int size) { - this.list.ensureCapacity(size); - for (E each : this.collectionHolder) { - this.list.add(each); - } - } - - protected void itemsAdded(CollectionAddEvent event) { - this.addItemsToList(this.indexToAddItems(), this.getItems(event), this.list, LIST_VALUES); - } - - protected int indexToAddItems() { - return this.list.size(); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(CollectionAddEvent event) { - return (Iterable) event.getItems(); - } - - protected void itemsRemoved(CollectionRemoveEvent event) { - this.removeItemsFromList(this.getItems(event), this.list, LIST_VALUES); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(CollectionRemoveEvent event) { - return (Iterable) event.getItems(); - } - - protected void collectionCleared(@SuppressWarnings("unused") CollectionClearEvent event) { - this.clearList(this.list, LIST_VALUES); - } - - /** - * synchronize our internal list with the wrapped collection - * and fire the appropriate events - */ - protected void collectionChanged(@SuppressWarnings("unused") CollectionChangeEvent event) { - int size = this.collectionHolder.size(); - if (size == 0) { - if (this.list.isEmpty()) { - // no change - } else { - this.clearList(this.list, LIST_VALUES); - } - } else { - if (this.list.isEmpty()) { - this.buildList(size); - this.fireItemsAdded(LIST_VALUES, 0, this.list); - } else { - this.synchronizeList(this.buildSyncList(), this.list, LIST_VALUES); - } - } - } - - protected Iterable buildSyncList() { - return this.collectionHolder; - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.list); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionPropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionPropertyValueModelAdapter.java deleted file mode 100644 index 24d18b27ab..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionPropertyValueModelAdapter.java +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; - -/** - * This abstract class provides the infrastructure needed to wrap - * a collection value model, "lazily" listen to it, and convert - * its change notifications into property value model change - * notifications. - *

- * Subclasses must override:

    - *
  • {@link #buildValue()}

    - * to return the current property value, as derived from the - * current collection value - *

- * Subclasses might want to override the following methods - * to improve performance (by not recalculating the value, if possible):
    - *
  • {@link #itemsAdded(CollectionAddEvent event)} - *
  • {@link #itemsRemoved(CollectionRemoveEvent event)} - *
  • {@link #collectionCleared(CollectionClearEvent event)} - *
  • {@link #collectionChanged(CollectionChangeEvent event)} - *
- */ -public abstract class CollectionPropertyValueModelAdapter - extends AbstractPropertyValueModelAdapter -{ - /** The wrapped collection value model. */ - protected final CollectionValueModel collectionModel; - - /** A listener that allows us to synch with changes to the wrapped collection holder. */ - protected final CollectionChangeListener collectionChangeListener; - - - // ********** constructor/initialization ********** - - /** - * Construct a property value model with the specified wrapped - * collection value model. - */ - protected CollectionPropertyValueModelAdapter(CollectionValueModel collectionModel) { - super(); - this.collectionModel = collectionModel; - this.collectionChangeListener = this.buildCollectionChangeListener(); - } - - protected CollectionChangeListener buildCollectionChangeListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - CollectionPropertyValueModelAdapter.this.itemsAdded(event); - } - public void itemsRemoved(CollectionRemoveEvent event) { - CollectionPropertyValueModelAdapter.this.itemsRemoved(event); - } - public void collectionCleared(CollectionClearEvent event) { - CollectionPropertyValueModelAdapter.this.collectionCleared(event); - } - public void collectionChanged(CollectionChangeEvent event) { - CollectionPropertyValueModelAdapter.this.collectionChanged(event); - } - @Override - public String toString() { - return "collection change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - /** - * Start listening to the collection holder. - */ - @Override - protected void engageModel_() { - this.collectionModel.addCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener); - } - - /** - * Stop listening to the collection holder. - */ - @Override - protected void disengageModel_() { - this.collectionModel.removeCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener); - } - - - // ********** collection change support ********** - - /** - * Items were added to the wrapped collection holder; - * propagate the change notification appropriately. - */ - protected void itemsAdded(@SuppressWarnings("unused") CollectionAddEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * Items were removed from the wrapped collection holder; - * propagate the change notification appropriately. - */ - protected void itemsRemoved(@SuppressWarnings("unused") CollectionRemoveEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * The wrapped collection holder was cleared; - * propagate the change notification appropriately. - */ - protected void collectionCleared(@SuppressWarnings("unused") CollectionClearEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * The value of the wrapped collection holder has changed; - * propagate the change notification appropriately. - */ - protected void collectionChanged(@SuppressWarnings("unused") CollectionChangeEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionValueModelWrapper.java deleted file mode 100644 index a791dcb3d3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CollectionValueModelWrapper.java +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; - -/** - * This abstract class provides the infrastructure needed to wrap - * another collection value model, "lazily" listen to it, and propagate - * its change notifications. Subclasses must implement the appropriate - * {@link CollectionValueModel}. - */ -public abstract class CollectionValueModelWrapper - extends AbstractCollectionValueModel -{ - /** The wrapped collection value model. */ - protected final CollectionValueModel collectionHolder; - - /** A listener that allows us to synch with changes to the wrapped collection holder. */ - protected final CollectionChangeListener collectionChangeListener; - - - // ********** constructors ********** - - /** - * Construct a collection value model with the specified wrapped - * collection value model. - */ - protected CollectionValueModelWrapper(CollectionValueModel collectionHolder) { - super(); - this.collectionHolder = collectionHolder; - this.collectionChangeListener = this.buildCollectionChangeListener(); - } - - - // ********** initialization ********** - - protected CollectionChangeListener buildCollectionChangeListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - CollectionValueModelWrapper.this.itemsAdded(event); - } - public void itemsRemoved(CollectionRemoveEvent event) { - CollectionValueModelWrapper.this.itemsRemoved(event); - } - public void collectionCleared(CollectionClearEvent event) { - CollectionValueModelWrapper.this.collectionCleared(event); - } - public void collectionChanged(CollectionChangeEvent event) { - CollectionValueModelWrapper.this.collectionChanged(event); - } - @Override - public String toString() { - return "collection change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** AbstractCollectionValueModel implementation ********** - - /** - * Start listening to the collection holder. - */ - @Override - protected void engageModel() { - this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener); - } - - /** - * Stop listening to the collection holder. - */ - @Override - protected void disengageModel() { - this.collectionHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener); - } - - - // ********** helper methods ********** - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(CollectionAddEvent event) { - return (Iterable) event.getItems(); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(CollectionRemoveEvent event) { - return (Iterable) event.getItems(); - } - - - // ********** collection change support ********** - - /** - * Items were added to the wrapped collection holder; - * propagate the change notification appropriately. - */ - protected abstract void itemsAdded(CollectionAddEvent event); - - /** - * Items were removed from the wrapped collection holder; - * propagate the change notification appropriately. - */ - protected abstract void itemsRemoved(CollectionRemoveEvent event); - - /** - * The wrapped collection holder was cleared; - * propagate the change notification appropriately. - */ - protected abstract void collectionCleared(CollectionClearEvent event); - - /** - * The value of the wrapped collection holder has changed; - * propagate the change notification appropriately. - */ - protected abstract void collectionChanged(CollectionChangeEvent event); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeBooleanPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeBooleanPropertyValueModel.java deleted file mode 100644 index acedc5ebb4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeBooleanPropertyValueModel.java +++ /dev/null @@ -1,338 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Collection; - -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * A CompositeBooleanPropertyValueModel adapts a - * {@link CollectionValueModel} holding boolean {@link PropertyValueModel}s - * to a single boolean {@link PropertyValueModel}. The composite value is - * determined by the {@link CompositeBooleanPropertyValueModel.Adapter} provided - * at construction. Typically the composite will be either an AND or an OR of - * all the boolean values. - *

- * If there are no boolean {@link PropertyValueModel}s, the composite - * will return its default value; which, by default, is null. - *

- * NB: None of the wrapped boolean models can return a - * null value or this class will throw an exception. The assumption - * is that all the wrapped boolean models are configured with "default" values - * that determine the model's value (TRUE or FALSE) when null. - */ -public class CompositeBooleanPropertyValueModel - extends CompositePropertyValueModel -{ - /** - * Calculation of the model's value is delegated to this adapter. - */ - protected final Adapter adapter; - - /** - * The default setting for the composite boolean property value model; - * for when the underlying collection model is empty. - * The default [default value] is null. - */ - private final Boolean defaultValue; - - - // ********** AND factory methods ********** - - /** - * Construct a boolean property value model that is a composite AND of the - * specified boolean property value models; i.e. the model's value is true - * if all the contained models are true, otherwise its value is false. - * The model's default value, when it contains no nested models, is - * null. - */ - public static CompositeBooleanPropertyValueModel and(PropertyValueModel... array) { - return new CompositeBooleanPropertyValueModel(AND_ADAPTER, array); - } - - /** - * Construct a boolean property value model that is a composite AND of the - * specified boolean property value models; i.e. the model's value is true - * if all the contained models are true, otherwise its value is false. - * When the model contains no nested models, its value will be the - * specified default. - */ - public static CompositeBooleanPropertyValueModel and(Boolean defaultValue, PropertyValueModel... array) { - return new CompositeBooleanPropertyValueModel(AND_ADAPTER, defaultValue, array); - } - - /** - * Construct a boolean property value model that is a composite AND of the - * specified boolean property value models; i.e. the model's value is true - * if all the contained models are true, otherwise its value is false. - * The model's default value, when it contains no nested models, is - * null. - */ - public static > CompositeBooleanPropertyValueModel and(Collection collection) { - return new CompositeBooleanPropertyValueModel(AND_ADAPTER, collection); - } - - /** - * Construct a boolean property value model that is a composite AND of the - * specified boolean property value models; i.e. the model's value is true - * if all the contained models are true, otherwise its value is false. - * When the model contains no nested models, its value will be the - * specified default. - */ - public static > CompositeBooleanPropertyValueModel and(Boolean defaultValue, Collection collection) { - return new CompositeBooleanPropertyValueModel(AND_ADAPTER, defaultValue, collection); - } - - /** - * Construct a boolean property value model that is a composite AND of the - * specified boolean property value models; i.e. the model's value is true - * if all the contained models are true, otherwise its value is false. - * The model's default value, when it contains no nested models, is - * null. - */ - public static CompositeBooleanPropertyValueModel and(CollectionValueModel> collectionModel) { - return new CompositeBooleanPropertyValueModel(AND_ADAPTER, collectionModel); - } - - /** - * Construct a boolean property value model that is a composite AND of the - * specified boolean property value models; i.e. the model's value is true - * if all the contained models are true, otherwise its value is false. - * When the model contains no nested models, its value will be the - * specified default. - */ - public static CompositeBooleanPropertyValueModel and(Boolean defaultValue, CollectionValueModel> collectionModel) { - return new CompositeBooleanPropertyValueModel(AND_ADAPTER, defaultValue, collectionModel); - } - - - // ********** OR factory methods ********** - - /** - * Construct a boolean property value model that is a composite OR of the - * specified boolean property value models; i.e. the model's value is false - * if all the contained models are false, otherwise its value is true. - * The model's default value, when it contains no nested models, is - * null. - */ - public static CompositeBooleanPropertyValueModel or(PropertyValueModel... array) { - return new CompositeBooleanPropertyValueModel(OR_ADAPTER, array); - } - - /** - * Construct a boolean property value model that is a composite OR of the - * specified boolean property value models; i.e. the model's value is false - * if all the contained models are false, otherwise its value is true. - * When the model contains no nested models, its value will be the - * specified default. - */ - public static CompositeBooleanPropertyValueModel or(Boolean defaultValue, PropertyValueModel... array) { - return new CompositeBooleanPropertyValueModel(OR_ADAPTER, defaultValue, array); - } - - /** - * Construct a boolean property value model that is a composite OR of the - * specified boolean property value models; i.e. the model's value is false - * if all the contained models are false, otherwise its value is true. - * The model's default value, when it contains no nested models, is - * null. - */ - public static > CompositeBooleanPropertyValueModel or(Collection collection) { - return new CompositeBooleanPropertyValueModel(OR_ADAPTER, collection); - } - - /** - * Construct a boolean property value model that is a composite OR of the - * specified boolean property value models; i.e. the model's value is false - * if all the contained models are false, otherwise its value is true. - * When the model contains no nested models, its value will be the - * specified default. - */ - public static > CompositeBooleanPropertyValueModel or(Boolean defaultValue, Collection collection) { - return new CompositeBooleanPropertyValueModel(OR_ADAPTER, defaultValue, collection); - } - - /** - * Construct a boolean property value model that is a composite OR of the - * specified boolean property value models; i.e. the model's value is false - * if all the contained models are false, otherwise its value is true. - * The model's default value, when it contains no nested models, is - * null. - */ - public static CompositeBooleanPropertyValueModel or(CollectionValueModel> collectionModel) { - return new CompositeBooleanPropertyValueModel(OR_ADAPTER, collectionModel); - } - - /** - * Construct a boolean property value model that is a composite OR of the - * specified boolean property value models; i.e. the model's value is false - * if all the contained models are false, otherwise its value is true. - * When the model contains no nested models, its value will be the - * specified default. - */ - public static CompositeBooleanPropertyValueModel or(Boolean defaultValue, CollectionValueModel> collectionModel) { - return new CompositeBooleanPropertyValueModel(OR_ADAPTER, defaultValue, collectionModel); - } - - - // ********** constructors ********** - - /** - * Construct a boolean property value model that is a composite of the specified - * boolean property value models, as defined by the specified adapter. - * The model's default value, when it contains no nested models, is - * null. - */ - public CompositeBooleanPropertyValueModel(Adapter adapter, PropertyValueModel... array) { - this(adapter, null, array); - } - - /** - * Construct a boolean property value model that is a composite of the specified - * boolean property value models, as defined by the specified adapter. - * When the model contains no nested models, its value will be the - * specified default. - */ - public CompositeBooleanPropertyValueModel(Adapter adapter, Boolean defaultValue, PropertyValueModel... array) { - super(array); - this.adapter = adapter; - this.defaultValue = defaultValue; - } - - /** - * Construct a boolean property value model that is a composite of the specified - * boolean property value models, as defined by the specified adapter. - * The model's default value, when it contains no nested models, is - * null. - */ - public > CompositeBooleanPropertyValueModel(Adapter adapter, Collection collection) { - this(adapter, null, collection); - } - - /** - * Construct a boolean property value model that is a composite of the specified - * boolean property value models, as defined by the specified adapter. - * When the model contains no nested models, its value will be the - * specified default. - */ - public > CompositeBooleanPropertyValueModel(Adapter adapter, Boolean defaultValue, Collection collection) { - super(collection); - this.adapter = adapter; - this.defaultValue = defaultValue; - } - - /** - * Construct a boolean property value model that is a composite of the specified - * boolean property value models, as defined by the specified adapter. - * The model's default value, when it contains no nested models, is - * null. - */ - public CompositeBooleanPropertyValueModel(Adapter adapter, CollectionValueModel> collectionModel) { - this(adapter, null, collectionModel); - } - - /** - * Construct a boolean property value model that is a composite of the specified - * boolean property value models, as defined by the specified adapter. - * When the model contains no nested models, its value will be the - * specified default. - */ - public CompositeBooleanPropertyValueModel(Adapter adapter, Boolean defaultValue, CollectionValueModel> collectionModel) { - super(collectionModel); - this.adapter = adapter; - this.defaultValue = defaultValue; - } - - - // ********** implementation ********** - - /** - * Return true if all the contained booleans are true; otherwise return - * false. - */ - @Override - protected Boolean buildValue() { - return (this.collectionModel.size() == 0) ? this.defaultValue : this.buildValue_(); - } - - protected Boolean buildValue_() { - return this.adapter.buildValue(this.getBooleans()); - } - - protected Iterable getBooleans() { - return new TransformationIterable, Boolean>(this.getCollectionModel()) { - @Override - protected Boolean transform(PropertyValueModel booleanModel) { - return booleanModel.getValue(); - } - }; - } - - @Override - @SuppressWarnings("unchecked") - protected CollectionValueModel> getCollectionModel() { - return (CollectionValueModel>) super.getCollectionModel(); - } - - - // ********** adapter ********** - - /** - * This adapter allows the {@link CompositeBooleanPropertyValueModel} to be - * pluggable. - */ - public interface Adapter { - /** - * Return the composite boolean value of the specified collection - * of boolean models. - */ - Boolean buildValue(Iterable booleans); - } - - /** - * Return true if all the booleans are true; otherwise return false. - */ - public static final Adapter AND_ADAPTER = new Adapter() { - public Boolean buildValue(Iterable booleans) { - for (Boolean b : booleans) { - if ( ! b.booleanValue()) { - return Boolean.FALSE; - } - } - return Boolean.TRUE; - } - @Override - public String toString() { - return "AND_ADAPTER"; //$NON-NLS-1$ - } - }; - - /** - * Return false if all the booleans are false; otherwise return true. - */ - public static final Adapter OR_ADAPTER = new Adapter() { - public Boolean buildValue(Iterable booleans) { - for (Boolean b : booleans) { - if (b.booleanValue()) { - return Boolean.TRUE; - } - } - return Boolean.FALSE; - } - @Override - public String toString() { - return "OR_ADAPTER"; //$NON-NLS-1$ - } - }; - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeCollectionValueModel.java deleted file mode 100644 index 72f16a3344..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeCollectionValueModel.java +++ /dev/null @@ -1,448 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.IdentityHashMap; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.NullList; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * A CompositeCollectionValueModel wraps another - * {@link CollectionValueModel} and uses a {@link Transformer} - * to convert each item in the wrapped collection to yet another - * {@link CollectionValueModel}. This composite collection contains - * the combined items from all these component collections. - *

- * NB: The wrapped collection must be an "identity set" that does not - * contain the same item twice or this class will throw an exception. - *

- * Terminology:

    - *
  • sources - the items in the wrapped collection value model; these - * are converted into component CVMs by the transformer - *
  • component CVMs - the component collection value models that are combined - * by this composite collection value model - *
  • items - the items held by the component CVMs - *
- */ -public class CompositeCollectionValueModel - extends CollectionValueModelWrapper - implements CollectionValueModel -{ - /** - * This is the (optional) user-supplied object that transforms - * the items in the wrapped collection to collection value models. - */ - private final Transformer> transformer; - - /** - * Cache of the component collection value models that - * were generated by the transformer; keyed by the item - * in the wrapped collection that was passed to the transformer. - */ - private final IdentityHashMap> componentCVMs = - new IdentityHashMap>(); - - /** - * Cache of the collections corresponding to the component - * collection value models above; keyed by the component - * collection value models. - * Use {@link ArrayList}s so we can use {@link ArrayList}-specific methods - * (e.g. {@link ArrayList#clone()} and {@link ArrayList#ensureCapacity(int)}). - */ - private final IdentityHashMap, ArrayList> collections = - new IdentityHashMap, ArrayList>(); - - /** Listener that listens to all the component collection value models. */ - private final CollectionChangeListener componentCVMListener; - - /** Cache the size of the composite collection. */ - private int size; - - - // ********** constructors ********** - - /** - * Construct a collection value model with the specified wrapped - * collection value model. Use this constructor if
    - *
  • the wrapped collection value model already contains other - * collection value models, or - *
  • you want to override {@link #transform(E1)} - * instead of building a {@link Transformer} - *
- */ - public CompositeCollectionValueModel(CollectionValueModel collectionHolder) { - this(collectionHolder, Transformer.Null.>instance()); - } - - /** - * Construct a collection value model with the specified wrapped - * collection value model and transformer. - */ - public CompositeCollectionValueModel(CollectionValueModel collectionHolder, Transformer> transformer) { - super(collectionHolder); - this.transformer = transformer; - this.componentCVMListener = this.buildComponentListener(); - this.size = 0; - } - - /** - * Construct a collection value model with the specified wrapped - * list value model. Use this constructor if
    - *
  • the wrapped collection value model already contains other - * collection value models, or - *
  • you want to override {@link #transform(E1)} - * instead of building a {@link Transformer} - *
- */ - public CompositeCollectionValueModel(ListValueModel listHolder) { - this(new ListCollectionValueModelAdapter(listHolder)); - } - - /** - * Construct a collection value model with the specified wrapped - * list value model and transformer. - */ - public CompositeCollectionValueModel(ListValueModel listHolder, Transformer> transformer) { - this(new ListCollectionValueModelAdapter(listHolder), transformer); - } - - /** - * Construct a collection value model with the specified, unchanging, wrapped - * collection. Use this constructor if
    - *
  • the wrapped collection value model already contains other - * collection value models, or - *
  • you want to override {@link #transform(E1)} - * instead of building a {@link Transformer} - *
- */ - public CompositeCollectionValueModel(Collection collection) { - this(new StaticCollectionValueModel(collection)); - } - - /** - * Construct a collection value model with the specified, unchanging, wrapped - * collection and transformer. - */ - public CompositeCollectionValueModel(Collection collection, Transformer> transformer) { - this(new StaticCollectionValueModel(collection), transformer); - } - - /** - * Construct a collection value model with the specified, unchanging, wrapped - * collection. Use this constructor if
    - *
  • the wrapped collection value model already contains other - * collection value models, or - *
  • you want to override {@link #transform(E1)} - * instead of building a {@link Transformer} - *
- */ - public CompositeCollectionValueModel(E1... collection) { - this(new StaticCollectionValueModel(collection)); - } - - /** - * Construct a collection value model with the specified, unchanging, wrapped - * collection and transformer. - */ - public CompositeCollectionValueModel(E1[] collection, Transformer> transformer) { - this(new StaticCollectionValueModel(collection), transformer); - } - - - // ********** initialization ********** - - protected CollectionChangeListener buildComponentListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - CompositeCollectionValueModel.this.componentItemsAdded(event); - } - public void itemsRemoved(CollectionRemoveEvent event) { - CompositeCollectionValueModel.this.componentItemsRemoved(event); - } - public void collectionCleared(CollectionClearEvent event) { - CompositeCollectionValueModel.this.componentCollectionCleared(event); - } - public void collectionChanged(CollectionChangeEvent event) { - CompositeCollectionValueModel.this.componentCollectionChanged(event); - } - @Override - public String toString() { - return "component listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** CollectionValueModel implementation ********** - - public Iterator iterator() { - return new CompositeIterator(this.buildCollectionsIterators()); - } - - protected Iterator> buildCollectionsIterators() { - return new TransformationIterator, Iterator>(this.collections.values().iterator()) { - @Override - protected Iterator transform(ArrayList next) { - return next.iterator(); - } - }; - } - - public int size() { - return this.size; - } - - - // ********** CollectionValueModelWrapper overrides/implementation ********** - - @Override - protected void engageModel() { - super.engageModel(); - // synch our cache *after* we start listening to the wrapped collection, - // since its value might change when a listener is added - this.addAllComponentSources(); - } - - /** - * Transform all the sources to collection value models - * and add their items to our cache, with no event notification. - */ - protected void addAllComponentSources() { - for (E1 source : this.collectionHolder) { - this.addComponentSource(source, NullList.instance()); - } - } - - @Override - protected void disengageModel() { - super.disengageModel(); - // stop listening to the components... - for (CollectionValueModel componentCVM : this.componentCVMs.values()) { - componentCVM.removeCollectionChangeListener(VALUES, this.componentCVMListener); - } - // ...and clear the cache - this.componentCVMs.clear(); - this.collections.clear(); - this.size = 0; - } - - /** - * Some component sources were added; - * add their corresponding items to our cache. - */ - @Override - protected void itemsAdded(CollectionAddEvent event) { - ArrayList addedItems = new ArrayList(); - for (E1 item : this.getItems(event)) { - this.addComponentSource(item, addedItems); - } - this.fireItemsAdded(VALUES, addedItems); - } - - /** - * Transform the specified source to a collection value model - * and add its items to our cache and the "collecting parameter". - */ - protected void addComponentSource(E1 source, List addedItems) { - CollectionValueModel componentCVM = this.transform(source); - if (this.componentCVMs.put(source, componentCVM) != null) { - throw new IllegalStateException("duplicate component: " + source); //$NON-NLS-1$ - } - componentCVM.addCollectionChangeListener(VALUES, this.componentCVMListener); - ArrayList componentCollection = new ArrayList(componentCVM.size()); - if (this.collections.put(componentCVM, componentCollection) != null) { - throw new IllegalStateException("duplicate collection: " + source); //$NON-NLS-1$ - } - this.addComponentItems(componentCVM, componentCollection); - addedItems.addAll(componentCollection); - } - - /** - * Add the items in the specified component CVM to the specified component - * collection. - */ - protected void addComponentItems(CollectionValueModel componentCVM, ArrayList componentCollection) { - int itemsSize = componentCVM.size(); - this.size += itemsSize; - componentCollection.ensureCapacity(componentCollection.size() + itemsSize); - CollectionTools.addAll(componentCollection, componentCVM); - } - - /** - * Some component sources were removed; - * remove their corresponding items from our cache. - */ - @Override - protected void itemsRemoved(CollectionRemoveEvent event) { - ArrayList removedItems = new ArrayList(); - for (E1 item : this.getItems(event)) { - this.removeComponentSource(item, removedItems); - } - this.fireItemsRemoved(VALUES, removedItems); - } - - /** - * Remove the items corresponding to the specified source - * from our cache. - */ - protected void removeComponentSource(E1 source, List removedItems) { - CollectionValueModel componentCVM = this.componentCVMs.remove(source); - if (componentCVM == null) { - throw new IllegalStateException("missing component: " + source); //$NON-NLS-1$ - } - componentCVM.removeCollectionChangeListener(VALUES, this.componentCVMListener); - ArrayList componentCollection = this.collections.remove(componentCVM); - if (componentCollection == null) { - throw new IllegalStateException("missing collection: " + source); //$NON-NLS-1$ - } - removedItems.addAll(componentCollection); - this.removeComponentItems(componentCollection); - } - - /** - * Update our size and collection cache. - */ - protected void removeComponentItems(ArrayList componentCollection) { - this.size -= componentCollection.size(); - componentCollection.clear(); - } - - /** - * The component sources cleared; - * clear our cache. - */ - @Override - protected void collectionCleared(CollectionClearEvent event) { - this.removeAllComponentSources(); - this.fireCollectionCleared(VALUES); - } - - protected void removeAllComponentSources() { - // copy the keys so we don't eat our own tail - ArrayList copy = new ArrayList(this.componentCVMs.keySet()); - for (E1 source : copy) { - this.removeComponentSource(source, NullList.instance()); - } - } - - /** - * The component sources changed; - * rebuild our cache. - */ - @Override - protected void collectionChanged(CollectionChangeEvent event) { - this.removeAllComponentSources(); - this.addAllComponentSources(); - this.fireCollectionChanged(VALUES, CollectionTools.collection(this.iterator())); - } - - - // ********** internal methods ********** - - /** - * Transform the specified object into a collection value model. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Transformer}. - */ - protected CollectionValueModel transform(E1 value) { - return this.transformer.transform(value); - } - - /** - * One of the component collections had items added; - * synchronize our caches. - */ - protected void componentItemsAdded(CollectionAddEvent event) { - int itemsSize = event.getItemsSize(); - this.size += itemsSize; - - ArrayList componentCollection = this.collections.get(this.componentCVM(event)); - componentCollection.ensureCapacity(componentCollection.size() + itemsSize); - - this.addItemsToCollection(this.getComponentItems(event), componentCollection, VALUES); - } - - /** - * One of the component collections had items removed; - * synchronize our caches. - */ - protected void componentItemsRemoved(CollectionRemoveEvent event) { - this.size -= event.getItemsSize(); - ArrayList componentCollection = this.collections.get(this.componentCVM(event)); - this.removeItemsFromCollection(this.getComponentItems(event), componentCollection, VALUES); - } - - /** - * One of the component collections was cleared; - * synchronize our caches by clearing out the appropriate - * collection. - */ - protected void componentCollectionCleared(CollectionClearEvent event) { - ArrayList componentCollection = this.collections.get(this.componentCVM(event)); - ArrayList removedItems = new ArrayList(componentCollection); - this.removeComponentItems(componentCollection); - this.fireItemsRemoved(VALUES, removedItems); - } - - /** - * One of the component collections changed; - * synchronize our caches by clearing out the appropriate - * collection and then rebuilding it. - */ - protected void componentCollectionChanged(CollectionChangeEvent event) { - CollectionValueModel componentCVM = this.componentCVM(event); - ArrayList componentCollection = this.collections.get(componentCVM); - this.removeComponentItems(componentCollection); - this.addComponentItems(componentCVM, componentCollection); - this.fireCollectionChanged(VALUES, CollectionTools.collection(this.iterator())); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getComponentItems(CollectionAddEvent event) { - return (Iterable) event.getItems(); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getComponentItems(CollectionRemoveEvent event) { - return (Iterable) event.getItems(); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected CollectionValueModel componentCVM(CollectionEvent event) { - return (CollectionValueModel) event.getSource(); - } - - @Override - public void toString(StringBuilder sb) { - StringTools.append(sb, this); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeListValueModel.java deleted file mode 100644 index 3b017b08c9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositeListValueModel.java +++ /dev/null @@ -1,683 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterables.SingleElementIterable; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyCompositeListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationListIterator; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * A CompositeListValueModel wraps another - * {@link ListValueModel} and uses a {@link Transformer} - * to convert each item in the wrapped list to yet another - * {@link ListValueModel}. This composite list contains - * the combined items from all these component lists. - *

- * Terminology:

    - *
  • sources - the items in the wrapped list value model; these - * are converted into component LVMs by the transformer - *
  • component LVMs - the component list value models that are combined - * by this composite list value model - *
  • items - the items held by the component LVMs - *
- */ -public class CompositeListValueModel - extends ListValueModelWrapper - implements ListValueModel -{ - /** - * This is the (optional) user-supplied object that transforms - * the items in the wrapped list to list value models. - */ - private final Transformer> transformer; - - /** - * Cache of the sources, component LVMs, lists. - */ - private final ArrayList infoList = new ArrayList(); - protected class Info { - // the object passed to the transformer - final E1 source; - // the list value model generated by the transformer - final ListValueModel componentLVM; - // cache of the items held by the component LVM - final ArrayList items; - // the component LVM's beginning index within the composite LVM - int begin; - protected Info(E1 source, ListValueModel componentLVM, ArrayList items, int begin) { - super(); - this.source = source; - this.componentLVM = componentLVM; - this.items = items; - this.begin = begin; - } - } - - /** Listener that listens to all the component list value models. */ - private final ListChangeListener componentLVMListener; - - /** Cache the size of the composite list. */ - private int size; - - - // ********** constructors ********** - - /** - * Construct a list value model with the specified wrapped - * list value model. Use this constructor if
    - *
  • the wrapped list value model already contains other - * list value models, or - *
  • you want to override {@link #transform(E1)} - * instead of building a {@link Transformer} - *
- */ - public CompositeListValueModel(ListValueModel listHolder) { - this(listHolder, Transformer.Null.>instance()); - } - - /** - * Construct a list value model with the specified wrapped - * list value model and transformer. - */ - public CompositeListValueModel(ListValueModel listHolder, Transformer> transformer) { - super(listHolder); - this.transformer = transformer; - this.componentLVMListener = this.buildComponentLVMListener(); - this.size = 0; - } - - /** - * Construct a list value model with the specified, unchanging, wrapped - * list. Use this constructor if
    - *
  • the wrapped list value model already contains other - * list value models, or - *
  • you want to override {@link #transform(E1)} - * instead of building a {@link Transformer} - *
- */ - public CompositeListValueModel(List list) { - this(new StaticListValueModel(list)); - } - - /** - * Construct a list value model with the specified, unchanging, wrapped - * list and transformer. - */ - public CompositeListValueModel(List list, Transformer> transformer) { - this(new StaticListValueModel(list), transformer); - } - - /** - * Construct a list value model with the specified, unchanging, wrapped - * list. Use this constructor if
    - *
  • the wrapped list value model already contains other - * list value models, or - *
  • you want to override {@link #transform(E1)} - * instead of building a {@link Transformer} - *
- */ - public CompositeListValueModel(E1... list) { - this(new StaticListValueModel(list)); - } - - /** - * Construct a list value model with the specified, unchanging, wrapped - * list and transformer. - */ - public CompositeListValueModel(E1[] list, Transformer> transformer) { - this(new StaticListValueModel(list), transformer); - } - - - // ********** initialization ********** - - protected ListChangeListener buildComponentLVMListener() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - CompositeListValueModel.this.componentItemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - CompositeListValueModel.this.componentItemsRemoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - CompositeListValueModel.this.componentItemsReplaced(event); - } - public void itemsMoved(ListMoveEvent event) { - CompositeListValueModel.this.componentItemsMoved(event); - } - public void listCleared(ListClearEvent event) { - CompositeListValueModel.this.componentListCleared(event); - } - public void listChanged(ListChangeEvent event) { - CompositeListValueModel.this.componentListChanged(event); - } - @Override - public String toString() { - return "component LVM listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ListValueModel implementation ********** - - public E2 get(int index) { - if ((index < 0) || (index >= this.size)) { - throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + this.size); //$NON-NLS-1$ //$NON-NLS-2$ - } - // move backwards through the info list - for (int i = this.infoList.size(); i-- > 0; ) { - Info info = this.infoList.get(i); - if (index >= info.begin) { - return info.items.get(index - info.begin); - } - } - throw new IllegalStateException(); // something is wack - } - - public Iterator iterator() { - return this.listIterator(); - } - - public ListIterator listIterator() { - return new ReadOnlyCompositeListIterator(this.buildListsIterators()); - } - - protected ListIterator> buildListsIterators() { - return new TransformationListIterator>(this.infoList.listIterator()) { - @Override - protected ListIterator transform(Info info) { - return info.items.listIterator(); - } - }; - } - - public int size() { - return this.size; - } - - public Object[] toArray() { - return ArrayTools.array(this.listIterator(), this.size); - } - - - // ********** ListValueModelWrapper overrides/implementation ********** - - @Override - protected void engageModel() { - super.engageModel(); - // synch our cache *after* we start listening to the wrapped list, - // since its value might change when a listener is added - this.addComponentSources(0, this.listHolder, this.listHolder.size(), false); // false = do not fire event - } - - @Override - protected void disengageModel() { - super.disengageModel(); - // stop listening to the component LVMs... - for (Info info : this.infoList) { - info.componentLVM.removeListChangeListener(LIST_VALUES, this.componentLVMListener); - } - // ...and clear the cache - this.infoList.clear(); - this.size = 0; - } - - /** - * Some component sources were added; update our cache. - */ - @Override - protected void itemsAdded(ListAddEvent event) { - this.addComponentSources(event.getIndex(), this.getItems(event), event.getItemsSize(), true); // true = fire event - } - - /** - * Add infos corresponding to the specified sources to our cache. - * Fire the appropriate event if requested. - */ - protected void addComponentSources(int addedSourcesIndex, Iterable addedSources, int addedSourcesSize, boolean fireEvent) { - ArrayList newInfoList = new ArrayList(addedSourcesSize); - // the 'items' are either tacked on to the end or - // at the 'begin' index of the first 'info' that is being pushed back - int newItemsIndex = (addedSourcesIndex == this.infoList.size()) ? this.size : this.infoList.get(addedSourcesIndex).begin; - - int begin = newItemsIndex; - for (E1 source : addedSources) { - ListValueModel componentLVM = this.transform(source); - componentLVM.addListChangeListener(LIST_VALUES, this.componentLVMListener); - ArrayList items = new ArrayList(componentLVM.size()); - CollectionTools.addAll(items, componentLVM.listIterator()); - newInfoList.add(new Info(source, componentLVM, items, begin)); - begin += items.size(); - } - this.infoList.addAll(addedSourcesIndex, newInfoList); - int newItemsSize = begin - newItemsIndex; - this.size += newItemsSize; - - // bump the 'begin' index for all the infos that were pushed back by the insert - int movedInfosIndex = addedSourcesIndex + addedSourcesSize; - for (int i = movedInfosIndex; i < this.infoList.size(); i++) { - this.infoList.get(i).begin += newItemsSize; - } - - if (fireEvent) { - ArrayList newItems = new ArrayList(newItemsSize); - for (int i = addedSourcesIndex; i < movedInfosIndex; i++) { - newItems.addAll(this.infoList.get(i).items); - } - this.fireItemsAdded(LIST_VALUES, newItemsIndex, newItems); - } - } - - /** - * Some component sources were removed; update our cache. - */ - @Override - protected void itemsRemoved(ListRemoveEvent event) { - this.removeComponentSources(event.getIndex(), event.getItemsSize(), true); // true = fire event - } - - /** - * Remove the infos corresponding to the specified sources from our cache. - */ - protected void removeComponentSources(int removedSourcesIndex, int removedSourcesSize, boolean fireEvent) { - int removedItemsIndex = this.infoList.get(removedSourcesIndex).begin; - int movedSourcesIndex = removedSourcesIndex + removedSourcesSize; - int movedItemsIndex = (movedSourcesIndex == this.infoList.size()) ? this.size : this.infoList.get(movedSourcesIndex).begin; - int removedItemsSize = movedItemsIndex - removedItemsIndex; - this.size -= removedItemsSize; - - List subList = this.infoList.subList(removedSourcesIndex, removedSourcesIndex + removedSourcesSize); - ArrayList removedInfoList = new ArrayList(subList); // make a copy - subList.clear(); - - // decrement the 'begin' index for all the infos that were moved forward by the deletes - for (int i = removedSourcesIndex; i < this.infoList.size(); i++) { - this.infoList.get(i).begin -= removedItemsSize; - } - - for (Info removedInfo : removedInfoList) { - removedInfo.componentLVM.removeListChangeListener(LIST_VALUES, this.componentLVMListener); - } - - if (fireEvent) { - ArrayList removedItems = new ArrayList(removedItemsSize); - for (Info removedInfo : removedInfoList) { - removedItems.addAll(removedInfo.items); - } - this.fireItemsRemoved(LIST_VALUES, removedItemsIndex, removedItems); - } - } - - /** - * Some component sources were replaced; update our cache. - */ - @Override - protected void itemsReplaced(ListReplaceEvent event) { - this.replaceComponentSources(event.getIndex(), this.getNewItems(event), event.getItemsSize(), true); // true = fire event - } - - /** - * Replaced component sources will not (typically) map to a set of replaced - * items, so we remove and add the corresponding lists of items, resulting in - * two events. - */ - protected void replaceComponentSources(int replacedSourcesIndex, Iterable newSources, int replacedSourcesSize, boolean fireEvent) { - this.removeComponentSources(replacedSourcesIndex, replacedSourcesSize, fireEvent); - this.addComponentSources(replacedSourcesIndex, newSources, replacedSourcesSize, fireEvent); - } - - /** - * Some component sources were moved; update our cache. - */ - @Override - protected void itemsMoved(ListMoveEvent event) { - this.moveComponentSources(event.getTargetIndex(), event.getSourceIndex(), event.getLength(), true); // true = fire event - } - - protected void moveComponentSources(int targetSourcesIndex, int sourceSourcesIndex, int movedSourcesLength, boolean fireEvent) { - int sourceItemsIndex = this.infoList.get(sourceSourcesIndex).begin; - - int nextSourceSourceIndex = sourceSourcesIndex + movedSourcesLength; - int nextSourceItemIndex = (nextSourceSourceIndex == this.infoList.size()) ? this.size : this.infoList.get(nextSourceSourceIndex).begin; - int moveItemsLength = nextSourceItemIndex - sourceItemsIndex; - - int targetItemsIndex = -1; - if (sourceSourcesIndex > targetSourcesIndex) { - // move from high to low index - targetItemsIndex = this.infoList.get(targetSourcesIndex).begin; - } else { - // move from low to high index (higher items move down during move) - int nextTargetSourceIndex = targetSourcesIndex + movedSourcesLength; - targetItemsIndex = (nextTargetSourceIndex == this.infoList.size()) ? this.size : this.infoList.get(nextTargetSourceIndex).begin; - targetItemsIndex = targetItemsIndex - moveItemsLength; - } - - CollectionTools.move(this.infoList, targetSourcesIndex, sourceSourcesIndex, movedSourcesLength); - - // update the 'begin' indexes of all the affected 'infos' - int min = Math.min(targetSourcesIndex, sourceSourcesIndex); - int max = Math.max(targetSourcesIndex, sourceSourcesIndex) + movedSourcesLength; - int begin = Math.min(targetItemsIndex, sourceItemsIndex); - for (int i = min; i < max; i++) { - Info info = this.infoList.get(i); - info.begin = begin; - begin += info.componentLVM.size(); - } - - if (fireEvent) { - this.fireItemsMoved(LIST_VALUES, targetItemsIndex, sourceItemsIndex, moveItemsLength); - } - } - - /** - * The component sources were cleared; clear our cache. - */ - @Override - protected void listCleared(ListClearEvent event) { - this.clearComponentSources(); - } - - protected void clearComponentSources() { - this.removeComponentSources(0, this.infoList.size(), false); // false = do not fire event - this.fireListCleared(LIST_VALUES); - } - - /** - * The component sources changed; rebuild our cache. - */ - @Override - protected void listChanged(ListChangeEvent event) { - int newSize = this.listHolder.size(); - if (newSize == 0) { - this.clearComponentSources(); - return; - } - - int oldSize = this.infoList.size(); - if (oldSize == 0) { - this.addComponentSources(0, this.listHolder, newSize, true); // true = fire event - return; - } - - int min = Math.min(newSize, oldSize); - // handle replaced sources individually so we don't fire events for unchanged sources - for (int i = 0; i < min; i++) { - E1 newSource = this.listHolder.get(i); - E1 oldSource = this.infoList.get(i).source; - if (this.valuesAreDifferent(newSource, oldSource)) { - this.replaceComponentSources(i, new SingleElementIterable(newSource), 1, true); // true = fire event - } - } - - if (newSize == oldSize) { - return; - } - - if (newSize < oldSize) { - this.removeComponentSources(min, oldSize - newSize, true); // true = fire event - return; - } - - // newSize > oldSize - this.addComponentSources(min, this.buildSubListHolder(min), newSize - oldSize, true); // true = fire event - } - - protected Iterable buildSubListHolder(int fromIndex) { - int listHolderSize = this.listHolder.size(); - return CollectionTools.list(this.listHolder, listHolderSize).subList(fromIndex, listHolderSize); - } - - protected Iterable buildSubListHolder(int fromIndex, int toIndex) { - int listHolderSize = this.listHolder.size(); - return ((fromIndex == 0) && (toIndex == listHolderSize)) ? - this.listHolder : - CollectionTools.list(this.listHolder, listHolderSize).subList(fromIndex, toIndex); - } - - @Override - public void toString(StringBuilder sb) { - StringTools.append(sb, this); - } - - - // ********** internal methods ********** - - /** - * Transform the specified object into a list value model. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Transformer}. - */ - protected ListValueModel transform(E1 value) { - return this.transformer.transform(value); - } - - /** - * Return the index of the specified component LVM. - */ - protected int indexOf(ListValueModel componentLVM) { - for (int i = 0; i < this.infoList.size(); i++) { - if (this.infoList.get(i).componentLVM == componentLVM) { - return i; - } - } - throw new IllegalArgumentException("invalid component LVM: " + componentLVM); //$NON-NLS-1$ - } - - /** - * Return the index of the specified event's component LVM. - */ - protected int indexFor(ListEvent event) { - return this.indexOf(this.getComponentLVM(event)); - } - - /** - * Items were added to one of the component lists; - * synchronize our cache. - */ - protected void componentItemsAdded(ListAddEvent event) { - int componentLVMIndex = this.indexFor(event); - this.addComponentItems(componentLVMIndex, this.infoList.get(componentLVMIndex), event.getIndex(), this.getComponentItems(event), event.getItemsSize()); - } - - protected void addComponentItems(int componentLVMIndex, Info info, int addedItemsIndex, Iterable addedItems, int addedItemsSize) { - // update the affected 'begin' indices - for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) { - this.infoList.get(i).begin += addedItemsSize; - } - this.size += addedItemsSize; - - // synchronize the cached list - CollectionTools.addAll(info.items, addedItemsIndex, addedItems, addedItemsSize); - - // translate the event - this.fireItemsAdded(LIST_VALUES, info.begin + addedItemsIndex, info.items.subList(addedItemsIndex, addedItemsIndex + addedItemsSize)); - } - - /** - * Items were removed from one of the component lists; - * synchronize our cache. - */ - protected void componentItemsRemoved(ListRemoveEvent event) { - // update the affected 'begin' indices - int componentLVMIndex = this.indexFor(event); - int removedItemsSize = event.getItemsSize(); - for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) { - this.infoList.get(i).begin -= removedItemsSize; - } - this.size -= removedItemsSize; - - // synchronize the cached list - Info info = this.infoList.get(componentLVMIndex); - int itemIndex = event.getIndex(); - info.items.subList(itemIndex, itemIndex + event.getItemsSize()).clear(); - - // translate the event - this.fireItemsRemoved(event.clone(this, LIST_VALUES, info.begin)); - } - - /** - * Items were replaced in one of the component lists; - * synchronize our cache. - */ - protected void componentItemsReplaced(ListReplaceEvent event) { - // no changes to the 'begin' indices or size - - // synchronize the cached list - int componentLVMIndex = this.indexFor(event); - Info info = this.infoList.get(componentLVMIndex); - int i = event.getIndex(); - for (E2 item : this.getComponentItems(event)) { - info.items.set(i++, item); - } - - // translate the event - this.fireItemsReplaced(event.clone(this, LIST_VALUES, info.begin)); - } - - /** - * Items were moved in one of the component lists; - * synchronize our cache. - */ - protected void componentItemsMoved(ListMoveEvent event) { - // no changes to the 'begin' indices or size - - // synchronize the cached list - int componentLVMIndex = this.indexFor(event); - Info info = this.infoList.get(componentLVMIndex); - CollectionTools.move(info.items, event.getTargetIndex(), event.getSourceIndex(), event.getLength()); - - // translate the event - this.fireItemsMoved(event.clone(this, LIST_VALUES, info.begin)); - } - - /** - * One of the component lists was cleared; - * synchronize our cache. - */ - protected void componentListCleared(ListClearEvent event) { - int componentLVMIndex = this.indexFor(event); - this.clearComponentList(componentLVMIndex, this.infoList.get(componentLVMIndex)); - } - - protected void clearComponentList(int componentLVMIndex, Info info) { - // update the affected 'begin' indices - int removedItemsSize = info.items.size(); - if (removedItemsSize == 0) { - return; - } - - for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) { - this.infoList.get(i).begin -= removedItemsSize; - } - this.size -= removedItemsSize; - - // synchronize the cached list - ArrayList items = new ArrayList(info.items); // make a copy - info.items.clear(); - - // translate the event - this.fireItemsRemoved(LIST_VALUES, info.begin, items); - } - - /** - * One of the component lists changed; - * synchronize our cache by synchronizing the appropriate - * list and firing the appropriate events. - */ - protected void componentListChanged(ListChangeEvent event) { - int componentLVMIndex = this.indexFor(event); - Info info = this.infoList.get(componentLVMIndex); - - int newItemsSize = info.componentLVM.size(); - if (newItemsSize == 0) { - this.clearComponentList(componentLVMIndex, info); - return; - } - - int oldItemsSize = info.items.size(); - if (oldItemsSize == 0) { - this.addComponentItems(componentLVMIndex, info, 0, info.componentLVM, newItemsSize); - return; - } - - int min = Math.min(newItemsSize, oldItemsSize); - // handle replaced items individually so we don't fire events for unchanged items - for (int i = 0; i < min; i++) { - E2 newItem = info.componentLVM.get(i); - E2 oldItem = info.items.set(i, newItem); - this.fireItemReplaced(LIST_VALUES, info.begin + i, newItem, oldItem); - } - - int delta = newItemsSize - oldItemsSize; - if (delta == 0) { // newItemsSize == oldItemsSize - return; - } - - for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) { - this.infoList.get(i).begin += delta; - } - this.size += delta; - - if (delta < 0) { // newItemsSize < oldItemsSize - List subList = info.items.subList(newItemsSize, oldItemsSize); - ArrayList removedItems = new ArrayList(subList); // make a copy - subList.clear(); - this.fireItemsRemoved(LIST_VALUES, info.begin + newItemsSize, removedItems); - return; - } - - // newItemsSize > oldItemsSize - ArrayList addedItems = new ArrayList(delta); - for (int i = oldItemsSize; i < newItemsSize; i++) { - addedItems.add(info.componentLVM.get(i)); - } - info.items.addAll(addedItems); - this.fireItemsAdded(LIST_VALUES, info.begin + oldItemsSize, addedItems); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getComponentItems(ListAddEvent event) { - return (Iterable) event.getItems(); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getComponentItems(ListReplaceEvent event) { - return (Iterable) event.getNewItems(); - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected ListValueModel getComponentLVM(ListEvent event) { - return (ListValueModel) event.getSource(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositePropertyValueModel.java deleted file mode 100644 index 0654c0694c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/CompositePropertyValueModel.java +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; - -import org.eclipse.jpt.common.utility.internal.IdentityHashBag; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * A CompositePropertyValueModel adapts a - * {@link CollectionValueModel} holding other {@link PropertyValueModel}s - * to a single {@link PropertyValueModel}. - *

- * Subclasses must implement:

    - *
  • {@link #buildValue()}

    - * to return the current property value, as derived from the - * component values - *

- * NB: The wrapped collection must not contain any duplicates - * or this class will throw an exception. - */ -public abstract class CompositePropertyValueModel - extends CollectionPropertyValueModelAdapter -{ - /** - * Cache the component property value models so we can stop listening to - * them when they are removed from the collection value model. - */ - protected final IdentityHashBag> componentPVMs = - new IdentityHashBag>(); - - /** - * Listen to every property value model in the collection value model. - * If one changes, we need to re-calculate our value. - */ - protected final PropertyChangeListener propertyChangeListener; - - - // ********** constructors ********** - - /** - * Construct a property value model that is a composite of the specified - * property value models. - */ - public CompositePropertyValueModel(PropertyValueModel... collection) { - this(Arrays.asList(collection)); - } - - /** - * Construct a property value model that is a composite of the specified - * property value models. - */ - public > CompositePropertyValueModel(Collection collection) { - this(new StaticCollectionValueModel(collection)); - } - - /** - * Construct a property value model that is a composite of the specified - * property value models. - */ - public CompositePropertyValueModel(CollectionValueModel> collectionModel) { - super(collectionModel); - this.propertyChangeListener = this.buildPropertyChangeListener(); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildPropertyChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - CompositePropertyValueModel.this.propertyChanged(event); - } - @Override - public String toString() { - return "property change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - /** - * Subclasses can override this method if the event can be used to improve - * the performance of building a new value (e.g. some property changes may - * not necessitate the re-calculation of the value). - */ - protected void propertyChanged(@SuppressWarnings("unused") PropertyChangeEvent event) { - this.propertyChanged(); - } - - - // ********** CollectionPropertyValueModelAdapter overrides ********** - - @Override - protected void engageModel_() { - super.engageModel_(); - this.addComponentPVMs(this.getCollectionModel()); - } - - protected > void addComponentPVMs(Iterable pvms) { - for (PropertyValueModel each : pvms) { - this.componentPVMs.add(each); - each.addPropertyChangeListener(VALUE, this.propertyChangeListener); - } - } - - @Override - protected void disengageModel_() { - this.removeComponentPVMs(this.getCollectionModel()); - super.disengageModel_(); - } - - protected > void removeComponentPVMs(Iterable pvms) { - for (PropertyValueModel each : pvms) { - each.removePropertyChangeListener(VALUE, this.propertyChangeListener); - this.componentPVMs.remove(each); - } - } - - @Override - protected void itemsAdded(CollectionAddEvent event) { - this.addComponentPVMs(this.getItems(event)); - super.itemsAdded(event); - } - - @Override - protected void itemsRemoved(CollectionRemoveEvent event) { - this.removeComponentPVMs(this.getItems(event)); - super.itemsRemoved(event); - } - - @Override - protected void collectionCleared(CollectionClearEvent event) { - this.removeAllComponentPVMs(); - super.collectionCleared(event); - } - - protected void removeAllComponentPVMs() { - // copy the list so we don't eat our own tail - ArrayList> copy = new ArrayList>(this.componentPVMs); - this.removeComponentPVMs(copy); - } - - @Override - protected void collectionChanged(CollectionChangeEvent event) { - this.removeAllComponentPVMs(); - this.addComponentPVMs(this.getCollectionModel()); - super.collectionChanged(event); - } - - - // ********** convenience methods ********** - - /** - * Our constructor accepts only a {@link CollectionValueModel}{@code>}. - */ - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected CollectionValueModel> getCollectionModel() { - return (CollectionValueModel>) this.collectionModel; - } - - /** - * Our constructor accepts only a {@link CollectionValueModel}{@code>}. - */ - @SuppressWarnings("unchecked") - protected Iterable> getItems(CollectionAddEvent event) { - return (Iterable>) event.getItems(); - } - - /** - * Our constructor accepts only a {@link CollectionValueModel}{@code>}. - */ - @SuppressWarnings("unchecked") - protected Iterable> getItems(CollectionRemoveEvent event) { - return (Iterable>) event.getItems(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ExtendedListValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ExtendedListValueModelWrapper.java deleted file mode 100644 index 6601615cc4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ExtendedListValueModelWrapper.java +++ /dev/null @@ -1,211 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyCompositeListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * This wrapper extends a {@link ListValueModel} (or {@link CollectionValueModel}) - * with fixed collections of items on either end. - *

- * NB: Be careful using or wrapping this list value model, since the - * "extended" items may be unexpected by the client code or wrapper. - */ -public class ExtendedListValueModelWrapper - extends ListValueModelWrapper - implements ListValueModel -{ - /** the items "prepended" to the wrapped list */ - protected List prefix; - - /** the items "appended" to the wrapped list */ - protected List suffix; - - - // ********** lots o' constructors ********** - - /** - * Extend the specified list with a prefix and suffix. - */ - public ExtendedListValueModelWrapper(List prefix, ListValueModel listHolder, List suffix) { - super(listHolder); - this.prefix = new ArrayList(prefix); - this.suffix = new ArrayList(suffix); - } - - /** - * Extend the specified list with a prefix and suffix. - */ - public ExtendedListValueModelWrapper(E prefix, ListValueModel listHolder, E suffix) { - super(listHolder); - this.prefix = Collections.singletonList(prefix); - this.suffix = Collections.singletonList(suffix); - } - - /** - * Extend the specified list with a prefix. - */ - public ExtendedListValueModelWrapper(List prefix, ListValueModel listHolder) { - super(listHolder); - this.prefix = new ArrayList(prefix); - this.suffix = Collections.emptyList(); - } - - /** - * Extend the specified list with a prefix. - */ - public ExtendedListValueModelWrapper(E prefix, ListValueModel listHolder) { - super(listHolder); - this.prefix = Collections.singletonList(prefix); - this.suffix = Collections.emptyList(); - } - - /** - * Extend the specified list with a suffix. - */ - public ExtendedListValueModelWrapper(ListValueModel listHolder, List suffix) { - super(listHolder); - this.prefix = Collections.emptyList(); - this.suffix = new ArrayList(suffix); - } - - /** - * Extend the specified list with a suffix. - */ - public ExtendedListValueModelWrapper(ListValueModel listHolder, E suffix) { - super(listHolder); - this.prefix = Collections.emptyList(); - this.suffix = Collections.singletonList(suffix); - } - - /** - * Extend the specified list with a prefix containing a single null item. - */ - public ExtendedListValueModelWrapper(ListValueModel listHolder) { - super(listHolder); - this.prefix = Collections.singletonList(null); - this.suffix = Collections.emptyList(); - } - - - // ********** ListValueModel implementation ********** - - public Iterator iterator() { - return this.listIterator(); - } - - public ListIterator listIterator() { - return new ReadOnlyListIterator(this.listIterator_()); - } - - @SuppressWarnings("unchecked") - protected ListIterator listIterator_() { - return new ReadOnlyCompositeListIterator( - this.prefix.listIterator(), - this.listHolder.listIterator(), - this.suffix.listIterator() - ); - } - - public E get(int index) { - int prefixSize = this.prefix.size(); - if (index < prefixSize) { - return this.prefix.get(index); - } else if (index >= prefixSize + this.listHolder.size()) { - return this.suffix.get(index - (prefixSize + this.listHolder.size())); - } else { - return this.listHolder.get(index - prefixSize); - } - } - - public int size() { - return this.prefix.size() + this.listHolder.size() + this.suffix.size(); - } - - public Object[] toArray() { - ArrayList list = new ArrayList(this.size()); - list.addAll(this.prefix); - CollectionTools.addAll(list, this.listHolder.iterator()); - list.addAll(this.suffix); - return list.toArray(); - } - - - // ********** ListValueModelWrapper implementation/overrides ********** - - @Override - protected void itemsAdded(ListAddEvent event) { - this.fireItemsAdded(event.clone(this, LIST_VALUES, this.prefix.size())); - } - - @Override - protected void itemsRemoved(ListRemoveEvent event) { - this.fireItemsRemoved(event.clone(this, LIST_VALUES, this.prefix.size())); - } - - @Override - protected void itemsReplaced(ListReplaceEvent event) { - this.fireItemsReplaced(event.clone(this, LIST_VALUES, this.prefix.size())); - } - - @Override - protected void itemsMoved(ListMoveEvent event) { - this.fireItemsMoved(event.clone(this, LIST_VALUES, this.prefix.size())); - } - - @Override - protected void listCleared(ListClearEvent event) { - this.fireListChanged(LIST_VALUES, this.buildList()); // not "cleared" - } - - @Override - protected void listChanged(ListChangeEvent event) { - this.fireListChanged(LIST_VALUES, this.buildList()); - } - - @Override - public void toString(StringBuilder sb) { - StringTools.append(sb, this); - } - - - // ********** miscellaneous ********** - - public void setPrefix(List prefix) { - this.prefix = prefix; - this.fireListChanged(LIST_VALUES, this.buildList()); - } - - public void setSuffix(List suffix) { - this.suffix = suffix; - this.fireListChanged(LIST_VALUES, this.buildList()); - } - - private List buildList() { - return CollectionTools.list(this.listIterator_()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringCollectionValueModel.java deleted file mode 100644 index 3defd4f00d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringCollectionValueModel.java +++ /dev/null @@ -1,179 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * A FilteringCollectionValueModel wraps another - * {@link CollectionValueModel} and uses a {@link Filter} - * to determine which items in the collection are returned by calls - * to {@link #iterator()}. - *

- * The filter can be changed at any time; allowing the same - * adapter to be used with different filter criteria (e.g. when the user - * wants to view a list of .java files). - *

- * NB: If the objects in the "filtered" collection can change in such a way - * that they should be removed from the "filtered" collection, you will - * need to wrap the original collection in an {@link ItemAspectListValueModelAdapter}. - * For example, if the filter only "accepts" items whose names begin - * with "X" and the names of the items can change, you will need to - * wrap the original list of unfiltered items with an - * {@link ItemPropertyListValueModelAdapter} that listens for changes to each - * item's name and fires the appropriate event whenever an item's name - * changes. The event will cause this wrapper to re-filter the changed - * item and add or remove it from the "filtered" collection as appropriate. - */ -public class FilteringCollectionValueModel - extends CollectionValueModelWrapper - implements CollectionValueModel -{ - /** This filters the items in the nested collection. */ - private Filter filter; - - /** Cache the items that were accepted by the filter */ - private final Collection filteredItems = new ArrayList(); - - - // ********** constructors ********** - - /** - * Construct a collection value model with the specified wrapped - * collection value model and a filter that simply accepts every object. - */ - public FilteringCollectionValueModel(CollectionValueModel collectionHolder) { - this(collectionHolder, Filter.Null.instance()); - } - - /** - * Construct a collection value model with the specified wrapped - * collection value model and filter. - */ - public FilteringCollectionValueModel(CollectionValueModel collectionHolder, Filter filter) { - super(collectionHolder); - this.filter = filter; - } - - /** - * Construct a collection value model with the specified wrapped - * list value model and a filter that simply accepts every object. - */ - public FilteringCollectionValueModel(ListValueModel listHolder) { - this(new ListCollectionValueModelAdapter(listHolder)); - } - - /** - * Construct a collection value model with the specified wrapped - * list value model and filter. - */ - public FilteringCollectionValueModel(ListValueModel listHolder, Filter filter) { - this(new ListCollectionValueModelAdapter(listHolder), filter); - } - - - // ********** CollectionValueModel implementation ********** - - public Iterator iterator() { - return new ReadOnlyIterator(this.filteredItems); - } - - public int size() { - return this.filteredItems.size(); - } - - - // ********** CollectionValueModelWrapper overrides/implementation ********** - - @Override - protected void engageModel() { - super.engageModel(); - // synch our cache *after* we start listening to the nested collection, - // since its value might change when a listener is added - CollectionTools.addAll(this.filteredItems, this.filter(this.collectionHolder)); - } - - @Override - protected void disengageModel() { - super.disengageModel(); - // clear out the cache when we are not listening to the nested collection - this.filteredItems.clear(); - } - - @Override - protected void itemsAdded(CollectionAddEvent event) { - // filter the values before propagating the change event - this.addItemsToCollection(this.filter(this.getItems(event)), this.filteredItems, VALUES); - } - - @Override - protected void itemsRemoved(CollectionRemoveEvent event) { - // do *not* filter the values, because they may no longer be - // "accepted" and that might be why they were removed in the first place; - // anyway, any extraneous items are harmless - this.removeItemsFromCollection(event.getItems(), this.filteredItems, VALUES); - } - - @Override - protected void collectionCleared(CollectionClearEvent event) { - this.clearCollection(this.filteredItems, VALUES); - } - - @Override - protected void collectionChanged(CollectionChangeEvent event) { - this.rebuildFilteredItems(); - } - - - // ********** miscellaneous ********** - - /** - * Change the filter and rebuild the collection. - */ - public void setFilter(Filter filter) { - this.filter = filter; - this.rebuildFilteredItems(); - } - - /** - * Return an iterable that filters the specified iterable. - */ - protected Iterable filter(Iterable items) { - return new FilteringIterable(items, this.filter); - } - - /** - * Synchronize our cache with the wrapped collection. - */ - protected void rebuildFilteredItems() { - this.filteredItems.clear(); - CollectionTools.addAll(this.filteredItems, this.filter(this.collectionHolder)); - this.fireCollectionChanged(VALUES, this.filteredItems); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.filteredItems); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringPropertyValueModel.java deleted file mode 100644 index 56935822d8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringPropertyValueModel.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * A FilteringPropertyValueModel wraps another - * {@link PropertyValueModel} and uses a {@link Filter} - * to determine when the wrapped value is to be returned by calls - * to {@link #getValue()}. - *

- * As an alternative to building a {@link Filter}, a subclass - * can override {@link #accept(T)}. - *

- * One, possibly undesirable, side-effect of using this value model is that - * it must return *something* as the value. The default behavior is - * to return null whenever the wrapped value is not "accepted", - * which can be configured and/or overridden ({@link #getDefaultValue()}). - */ -public class FilteringPropertyValueModel - extends PropertyValueModelWrapper - implements PropertyValueModel -{ - protected final Filter filter; - protected final T defaultValue; - - - // ********** constructors ********** - - /** - * Construct a filtering property value model with the specified nested - * property value model and a disabled filter. - * Use this constructor if you want to override {@link #accept(T)} - * instead of building a {@link Filter}. - * The default value will be null. - */ - public FilteringPropertyValueModel(PropertyValueModel valueHolder) { - this(valueHolder, Filter.Disabled.instance(), null); - } - - /** - * Construct a filtering property value model with the specified nested - * property value model, specified default value, and a disabled filter. - * Use this constructor if you want to override {@link #accept(T)} - * instead of building a {@link Filter} - * and you need to specify - * a default value other than null. - */ - public FilteringPropertyValueModel(PropertyValueModel valueHolder, T defaultValue) { - this(valueHolder, Filter.Disabled.instance(), defaultValue); - } - - /** - * Construct a filtering property value model with the specified nested - * property value model and filter. - * The default value will be null. - */ - public FilteringPropertyValueModel(PropertyValueModel valueHolder, Filter filter) { - this(valueHolder, filter, null); - } - - /** - * Construct a filtering property value model with the specified nested - * property value model, filter, and default value. - */ - public FilteringPropertyValueModel(PropertyValueModel valueHolder, Filter filter, T defaultValue) { - super(valueHolder); - this.filter = filter; - this.defaultValue = defaultValue; - } - - - // ********** PropertyValueModel implementation ********** - - public T getValue() { - return this.filterValue(this.valueHolder.getValue()); - } - - - // ********** PropertyValueModelWrapper implementation ********** - - @Override - protected void valueChanged(PropertyChangeEvent event) { - // filter the values before propagating the change event - @SuppressWarnings("unchecked") - T eventOldValue = (T) event.getOldValue(); - Object oldValue = this.filterValue(eventOldValue); - @SuppressWarnings("unchecked") - T eventNewValue = (T) event.getNewValue(); - Object newValue = this.filterValue(eventNewValue); - this.firePropertyChanged(VALUE, oldValue, newValue); - } - - - // ********** queries ********** - - /** - * If the specified value is "accepted" simply return it, - * otherwise return the default value. - */ - protected T filterValue(T value) { - return this.accept(value) ? value : this.getDefaultValue(); - } - - /** - * Return whether the filtering property value model should - * return the specified value from a call to - * {@link #getValue()}; the value came - * from the nested property value model - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link Filter}. - */ - protected boolean accept(T value) { - return this.filter.accept(value); - } - - /** - * Return the object that should be returned if - * the nested value was rejected by the filter. - * The default is null. - */ - protected T getDefaultValue() { - return this.defaultValue; - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getValue()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringWritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringWritablePropertyValueModel.java deleted file mode 100644 index 61eac0eec9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/FilteringWritablePropertyValueModel.java +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.BidiFilter; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * A FilteringWritablePropertyValueModel wraps another - * {@link WritablePropertyValueModel} and uses a {@link BidiFilter} - * to determine when the wrapped value is to be returned by calls - * to {@link FilteringPropertyValueModel#getValue() getValue()} and modified by calls to - * {@link #setValue(T)}. - *

- * As an alternative to building a {@link BidiFilter}, a subclass - * can override {@link FilteringPropertyValueModel#accept(T) accept(T)} and {@link #reverseAccept(T)}. - *

- * One, possibly undesirable, side-effect of using this value model is that - * it must return *something* as the value. The default behavior is - * to return null whenever the wrapped value is not "accepted", - * which can be configured and/or overridden ({@link FilteringPropertyValueModel#getDefaultValue() getDefaultValue()}). - *

- * Similarly, if an incoming value is not "reverse accepted", nothing - * will passed through to the wrapped value holder, not even null. - */ -public class FilteringWritablePropertyValueModel - extends FilteringPropertyValueModel - implements WritablePropertyValueModel -{ - - - // ********** constructors ********** - - /** - * Construct a filtering property value model with the specified nested - * property value model and a disabled filter. - * Use this constructor if you want to override - * {@link #accept(T)} and {@link #reverseAccept(T)} - * instead of building a {@link BidiFilter}. - * The default value will be null. - */ - public FilteringWritablePropertyValueModel(WritablePropertyValueModel valueHolder) { - this(valueHolder, BidiFilter.Disabled.instance(), null); - } - - /** - * Construct a filtering property value model with the specified nested - * property value model, specified default value, and a disabled filter. - * Use this constructor if you want to override - * {@link #accept(T)} and {@link #reverseAccept(T)} - * instead of building a {@link BidiFilter}. - * and you need to specify - * a default value other than null. - */ - public FilteringWritablePropertyValueModel(WritablePropertyValueModel valueHolder, T defaultValue) { - this(valueHolder, BidiFilter.Disabled.instance(), defaultValue); - } - - /** - * Construct an property value model with the specified nested - * property value model and filter. - * The default value will be null. - */ - public FilteringWritablePropertyValueModel(WritablePropertyValueModel valueHolder, BidiFilter filter) { - this(valueHolder, filter, null); - } - - /** - * Construct an property value model with the specified nested - * property value model, filter, and default value. - */ - public FilteringWritablePropertyValueModel(WritablePropertyValueModel valueHolder, BidiFilter filter, T defaultValue) { - super(valueHolder, filter, defaultValue); - } - - - // ********** WritablePropertyValueModel implementation ********** - - public void setValue(T value) { - if (this.reverseAccept(value)) { - this.getValueHolder().setValue(value); - } - } - - - // ********** queries ********** - - /** - * Return whether the filtering writable property value model - * should pass through the specified value to the nested - * writable property value model in a call to - * {@link #setValue(T)}. - *

- * This method can be overridden by a subclass as an - * alternative to building a {@link BidiFilter}. - */ - protected boolean reverseAccept(T value) { - return this.getFilter().reverseAccept(value); - } - - /** - * Our constructor accepts only a {@link WritablePropertyValueModel}{@code}. - */ - @SuppressWarnings("unchecked") - protected WritablePropertyValueModel getValueHolder() { - return (WritablePropertyValueModel) this.valueHolder; - } - - /** - * Our constructors accept only a bidirectional filter. - */ - protected BidiFilter getFilter() { - return (BidiFilter) this.filter; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemAspectListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemAspectListValueModelAdapter.java deleted file mode 100644 index eff8183982..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemAspectListValueModelAdapter.java +++ /dev/null @@ -1,274 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.EventObject; -import java.util.IdentityHashMap; -import java.util.Iterator; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.SimpleIntReference; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * Abstract list value model that provides behavior for wrapping a {@link ListValueModel} - * (or {@link CollectionValueModel}) and listening for changes to aspects of the - * items held by the list (or collection). Changes to the actual list - * (or collection) are also monitored. - * - * This is useful if you have a collection of items that can be modified by adding - * or removing items or the items themselves might change in a fashion that - * might change the list or collection's external appearance. - * - * Subclasses need to override two methods:

    - *
  • {@link #engageItem_(Model)}

    - * begin listening to the appropriate aspect of the specified item and call - * {@link #itemAspectChanged(EventObject)} whenever the aspect changes - *

  • {@link #disengageItem_(Model)}

    - * stop listening to the appropriate aspect of the specified item - *

- */ -public abstract class ItemAspectListValueModelAdapter - extends ListValueModelWrapper - implements ListValueModel -{ - - /** - * Maintain a counter for each of the items in the - * wrapped list holder we are listening to. - */ - protected final IdentityHashMap counters; - - - // ********** constructors ********** - - /** - * Constructor - the list holder is required. - */ - protected ItemAspectListValueModelAdapter(ListValueModel listHolder) { - super(listHolder); - this.counters = new IdentityHashMap(); - } - - /** - * Constructor - the collection holder is required. - */ - protected ItemAspectListValueModelAdapter(CollectionValueModel collectionHolder) { - this(new CollectionListValueModelAdapter(collectionHolder)); - } - - - // ********** ListValueModel implementation ********** - - public Iterator iterator() { - return this.listIterator(); - } - - public ListIterator listIterator() { - return new ReadOnlyListIterator(this.listHolder.listIterator()); - } - - public E get(int index) { - return this.listHolder.get(index); - } - - public int size() { - return this.listHolder.size(); - } - - public Object[] toArray() { - return this.listHolder.toArray(); - } - - - // ********** behavior ********** - - /** - * Start listening to the list holder and the items in the list. - */ - @Override - protected void engageModel() { - super.engageModel(); - this.engageAllItems(); - } - - protected void engageAllItems() { - this.engageItems(this.listHolder); - } - - protected void engageItems(Iterable items) { - for (E item : items) { - this.engageItem(item); - } - } - - protected void engageItem(E item) { - // listen to each item only once - SimpleIntReference counter = this.counters.get(item); - if (counter == null) { - counter = new SimpleIntReference(); - this.counters.put(item, counter); - this.engageItem_((Model) item); - } - counter.increment(); - } - - /** - * Start listening to the specified item. - */ - protected abstract void engageItem_(Model item); - - /** - * Stop listening to the list holder and the items in the list. - */ - @Override - protected void disengageModel() { - this.disengageAllItems(); - super.disengageModel(); - } - - protected void disengageAllItems() { - this.disengageItems(this.listHolder); - } - - protected void disengageItems(Iterable items) { - for (E item : items) { - this.disengageItem(item); - } - } - - protected void disengageItem(E item) { - // stop listening to each item only once - SimpleIntReference counter = this.counters.get(item); - if (counter == null) { - // something is wrong if this happens... ~bjv - throw new IllegalStateException("missing counter: " + item); //$NON-NLS-1$ - } - if (counter.decrement() == 0) { - this.counters.remove(item); - this.disengageItem_((Model) item); - } - } - - /** - * Stop listening to the specified item. - */ - protected abstract void disengageItem_(Model item); - - @Override - public void toString(StringBuilder sb) { - StringTools.append(sb, this); - } - - - // ********** list change support ********** - - /** - * Items were added to the wrapped list holder. - * Forward the event and begin listening to the added items. - */ - @Override - protected void itemsAdded(ListAddEvent event) { - // re-fire event with the wrapper as the source - this.fireItemsAdded(event.clone(this, LIST_VALUES)); - this.engageItems(this.getItems(event)); - } - - /** - * Items were removed from the wrapped list holder. - * Stop listening to the removed items and forward the event. - */ - @Override - protected void itemsRemoved(ListRemoveEvent event) { - this.disengageItems(this.getItems(event)); - // re-fire event with the wrapper as the source - this.fireItemsRemoved(event.clone(this, LIST_VALUES)); - } - - /** - * Items were replaced in the wrapped list holder. - * Stop listening to the removed items, forward the event, - * and begin listening to the added items. - */ - @Override - protected void itemsReplaced(ListReplaceEvent event) { - this.disengageItems(this.getOldItems(event)); - // re-fire event with the wrapper as the source - this.fireItemsReplaced(event.clone(this, LIST_VALUES)); - this.engageItems(this.getNewItems(event)); - } - - /** - * Items were moved in the wrapped list holder. - * No need to change any listeners; just forward the event. - */ - @Override - protected void itemsMoved(ListMoveEvent event) { - // re-fire event with the wrapper as the source - this.fireItemsMoved(event.clone(this, LIST_VALUES)); - } - - /** - * The wrapped list holder was cleared. - * Stop listening to the removed items and forward the event. - */ - @Override - protected void listCleared(ListClearEvent event) { - // we should only need to disengage each item once... - // make a copy to prevent a ConcurrentModificationException - Collection keys = new ArrayList(this.counters.keySet()); - this.disengageItems(keys); - this.counters.clear(); - // re-fire event with the wrapper as the source - this.fireListCleared(LIST_VALUES); - } - - /** - * The wrapped list holder has changed in some dramatic fashion. - * Reconfigure our listeners and forward the event. - */ - @Override - protected void listChanged(ListChangeEvent event) { - // we should only need to disengage each item once... - // make a copy to prevent a ConcurrentModificationException - Collection keys = new ArrayList(this.counters.keySet()); - this.disengageItems(keys); - this.counters.clear(); - // re-fire event with the wrapper as the source - this.fireListChanged(event.clone(this)); - this.engageAllItems(); - } - - - // ********** item change support ********** - - /** - * The specified item has a bound property that has changed. - * Notify listeners of the change. The listeners will have to determine - * whether the item aspect change is significant. - */ - protected void itemAspectChanged(@SuppressWarnings("unused") EventObject event) { - this.fireListChanged(LIST_VALUES, CollectionTools.list(this.listHolder, this.listHolder.size())); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemChangeListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemChangeListValueModelAdapter.java deleted file mode 100644 index b6f817b79c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemChangeListValueModelAdapter.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.SimpleChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * Extend {@link ItemAspectListValueModelAdapter} to listen to all of the changes - * of each item in the wrapped list model. - */ -public class ItemChangeListValueModelAdapter - extends ItemAspectListValueModelAdapter -{ - /** Listener that listens to all the items in the list. */ - protected final ChangeListener itemChangeListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified items. - */ - public ItemChangeListValueModelAdapter(ListValueModel listHolder) { - super(listHolder); - this.itemChangeListener = this.buildItemChangeListener(); - } - - - // ********** initialization ********** - - protected ChangeListener buildItemChangeListener() { - return new SimpleChangeListener() { - @Override - protected void modelChanged(ChangeEvent event) { - ItemChangeListValueModelAdapter.this.itemAspectChanged(event); - } - @Override - public String toString() { - return "item change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - @Override - protected void engageItem_(Model item) { - item.addChangeListener(this.itemChangeListener); - } - - @Override - protected void disengageItem_(Model item) { - item.removeChangeListener(this.itemChangeListener); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemCollectionListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemCollectionListValueModelAdapter.java deleted file mode 100644 index 8079739d76..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemCollectionListValueModelAdapter.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * Extend {@link ItemAspectListValueModelAdapter} to listen to one or more collection - * aspects of each item in the wrapped list model. - */ -public class ItemCollectionListValueModelAdapter - extends ItemAspectListValueModelAdapter -{ - - /** The names of the items' collections that we listen to. */ - protected final String[] collectionNames; - - /** Listener that listens to all the items in the list. */ - protected final CollectionChangeListener itemCollectionListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified item Collections. - */ - public ItemCollectionListValueModelAdapter(ListValueModel listHolder, String... collectionNames) { - super(listHolder); - this.collectionNames = collectionNames; - this.itemCollectionListener = this.buildItemCollectionListener(); - } - - /** - * Construct an adapter for the specified item Collections. - */ - public ItemCollectionListValueModelAdapter(CollectionValueModel collectionHolder, String... collectionNames) { - this(new CollectionListValueModelAdapter(collectionHolder), collectionNames); - } - - - // ********** initialization ********** - - /** - * All we really care about is the fact that a Collection aspect has - * changed. Do the same thing no matter which event occurs. - */ - protected CollectionChangeListener buildItemCollectionListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - ItemCollectionListValueModelAdapter.this.itemAspectChanged(event); - } - public void itemsRemoved(CollectionRemoveEvent event) { - ItemCollectionListValueModelAdapter.this.itemAspectChanged(event); - } - public void collectionCleared(CollectionClearEvent event) { - ItemCollectionListValueModelAdapter.this.itemAspectChanged(event); - } - public void collectionChanged(CollectionChangeEvent event) { - ItemCollectionListValueModelAdapter.this.itemAspectChanged(event); - } - @Override - public String toString() { - return "item collection listener: " + Arrays.asList(ItemCollectionListValueModelAdapter.this.collectionNames); //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - @Override - protected void engageItem_(Model item) { - for (String collectionName : this.collectionNames) { - item.addCollectionChangeListener(collectionName, this.itemCollectionListener); - } - } - - @Override - protected void disengageItem_(Model item) { - for (String collectionName : this.collectionNames) { - item.removeCollectionChangeListener(collectionName, this.itemCollectionListener); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemListListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemListListValueModelAdapter.java deleted file mode 100644 index 79cac2cdcc..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemListListValueModelAdapter.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * Extend {@link ItemAspectListValueModelAdapter} to listen to one or more list - * aspects of each item in the wrapped list model. - */ -public class ItemListListValueModelAdapter - extends ItemAspectListValueModelAdapter -{ - - /** The names of the subject's lists that we listen to. */ - protected final String[] listNames; - - /** Listener that listens to all the items in the list. */ - protected final ListChangeListener itemListListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified item List aspects. - */ - public ItemListListValueModelAdapter(ListValueModel listHolder, String... listNames) { - super(listHolder); - this.listNames = listNames; - this.itemListListener = this.buildItemListListener(); - } - - /** - * Construct an adapter for the specified item List aspects. - */ - public ItemListListValueModelAdapter(CollectionValueModel collectionHolder, String... listNames) { - this(new CollectionListValueModelAdapter(collectionHolder), listNames); - } - - - // ********** initialization ********** - - /** - * All we really care about is the fact that the List aspect has - * changed. Do the same thing no matter which event occurs. - */ - protected ListChangeListener buildItemListListener() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - ItemListListValueModelAdapter.this.itemAspectChanged(event); - } - public void itemsRemoved(ListRemoveEvent event) { - ItemListListValueModelAdapter.this.itemAspectChanged(event); - } - public void itemsReplaced(ListReplaceEvent event) { - ItemListListValueModelAdapter.this.itemAspectChanged(event); - } - public void itemsMoved(ListMoveEvent event) { - ItemListListValueModelAdapter.this.itemAspectChanged(event); - } - public void listCleared(ListClearEvent event) { - ItemListListValueModelAdapter.this.itemAspectChanged(event); - } - public void listChanged(ListChangeEvent event) { - ItemListListValueModelAdapter.this.itemAspectChanged(event); - } - @Override - public String toString() { - return "item list listener: " + Arrays.asList(ItemListListValueModelAdapter.this.listNames); //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - @Override - protected void engageItem_(Model item) { - for (String listName : this.listNames) { - item.addListChangeListener(listName, this.itemListListener); - } - } - - @Override - protected void disengageItem_(Model item) { - for (String listName : this.listNames) { - item.removeListChangeListener(listName, this.itemListListener); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemPropertyListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemPropertyListValueModelAdapter.java deleted file mode 100644 index 870a36590f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemPropertyListValueModelAdapter.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * Extend {@link ItemAspectListValueModelAdapter} to listen to one or more - * properties of each item in the wrapped list model. - */ -public class ItemPropertyListValueModelAdapter - extends ItemAspectListValueModelAdapter -{ - - /** The names of the items' properties that we listen to. */ - protected final String[] propertyNames; - - /** Listener that listens to all the items in the list. */ - protected final PropertyChangeListener itemPropertyListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified item properties. - */ - public ItemPropertyListValueModelAdapter(ListValueModel listHolder, String... propertyNames) { - super(listHolder); - this.propertyNames = propertyNames; - this.itemPropertyListener = this.buildItemPropertyListener(); - } - - /** - * Construct an adapter for the specified item properties. - */ - public ItemPropertyListValueModelAdapter(CollectionValueModel collectionHolder, String... propertyNames) { - this(new CollectionListValueModelAdapter(collectionHolder), propertyNames); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildItemPropertyListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - ItemPropertyListValueModelAdapter.this.itemAspectChanged(event); - } - @Override - public String toString() { - return "item property listener: " + Arrays.asList(ItemPropertyListValueModelAdapter.this.propertyNames); //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - @Override - protected void engageItem_(Model item) { - for (String propertyName : this.propertyNames) { - item.addPropertyChangeListener(propertyName, this.itemPropertyListener); - } - } - - @Override - protected void disengageItem_(Model item) { - for (String propertyName : this.propertyNames) { - item.removePropertyChangeListener(propertyName, this.itemPropertyListener); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemStateListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemStateListValueModelAdapter.java deleted file mode 100644 index b4dc5ee61d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemStateListValueModelAdapter.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * Extend {@link ItemAspectListValueModelAdapter} to listen to the - * "state" of each item in the wrapped list model. - */ -public class ItemStateListValueModelAdapter - extends ItemAspectListValueModelAdapter -{ - /** Listener that listens to all the items in the list. */ - protected final StateChangeListener itemStateListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the item state. - */ - public ItemStateListValueModelAdapter(ListValueModel listHolder) { - super(listHolder); - this.itemStateListener = this.buildItemStateListener(); - } - - /** - * Construct an adapter for the item state. - */ - public ItemStateListValueModelAdapter(CollectionValueModel collectionHolder) { - this(new CollectionListValueModelAdapter(collectionHolder)); - } - - - // ********** initialization ********** - - protected StateChangeListener buildItemStateListener() { - return new StateChangeListener() { - public void stateChanged(StateChangeEvent event) { - ItemStateListValueModelAdapter.this.itemAspectChanged(event); - } - @Override - public String toString() { - return "item state listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - @Override - protected void engageItem_(Model item) { - item.addStateChangeListener(this.itemStateListener); - } - - @Override - protected void disengageItem_(Model item) { - item.removeStateChangeListener(this.itemStateListener); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemTreeListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemTreeListValueModelAdapter.java deleted file mode 100644 index 5ae5a968bd..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ItemTreeListValueModelAdapter.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * Extend {@link ItemAspectListValueModelAdapter} to listen to one or more tree - * aspects of each item in the wrapped list model. - */ -public class ItemTreeListValueModelAdapter - extends ItemAspectListValueModelAdapter -{ - - /** The names of the items' tree that we listen to. */ - protected final String[] treeNames; - - /** Listener that listens to all the items in the list. */ - protected final TreeChangeListener itemTreeListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified item trees. - */ - public ItemTreeListValueModelAdapter(ListValueModel listHolder, String... treeNames) { - super(listHolder); - this.treeNames = treeNames; - this.itemTreeListener = this.buildItemTreeListener(); - } - - /** - * Construct an adapter for the specified item trees. - */ - public ItemTreeListValueModelAdapter(CollectionValueModel collectionHolder, String... treeNames) { - this(new CollectionListValueModelAdapter(collectionHolder), treeNames); - } - - - // ********** initialization ********** - - /** - * All we really care about is the fact that a tree aspect has - * changed. Do the same thing no matter which event occurs. - */ - protected TreeChangeListener buildItemTreeListener() { - return new TreeChangeListener() { - public void nodeAdded(TreeAddEvent event) { - ItemTreeListValueModelAdapter.this.itemAspectChanged(event); - } - public void nodeRemoved(TreeRemoveEvent event) { - ItemTreeListValueModelAdapter.this.itemAspectChanged(event); - } - public void treeCleared(TreeClearEvent event) { - ItemTreeListValueModelAdapter.this.itemAspectChanged(event); - } - public void treeChanged(TreeChangeEvent event) { - ItemTreeListValueModelAdapter.this.itemAspectChanged(event); - } - @Override - public String toString() { - return "item tree listener: " + Arrays.asList(ItemTreeListValueModelAdapter.this.treeNames); //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - @Override - protected void engageItem_(Model item) { - for (String treeName : this.treeNames) { - item.addTreeChangeListener(treeName, this.itemTreeListener); - } - } - - @Override - protected void disengageItem_(Model item) { - for (String treeName : this.treeNames) { - item.removeTreeChangeListener(treeName, this.itemTreeListener); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListAspectAdapter.java deleted file mode 100644 index 82b5eb4e9b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListAspectAdapter.java +++ /dev/null @@ -1,176 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; -import java.util.Collection; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This extension of {@link AspectListValueModelAdapter} provides - * basic list change support. - * This converts a set of one or more lists into - * a single {@link #LIST_VALUES} list. - *

- * The typical subclass will override the following methods (see the descriptions - * in {@link AspectListValueModelAdapter}):

    - *
  • {@link #listIterator_()} - *
  • {@link #get(int)} - *
  • {@link #size_()} - *
  • {@link #toArray_()} - *
  • {@link #listIterator()} - *
  • {@link #size()} - *
  • {@link #toArray()} - *
- */ -public abstract class ListAspectAdapter - extends AspectListValueModelAdapter -{ - /** - * The name of the subject's lists that we use for the value. - */ - protected final String[] listNames; - protected static final String[] EMPTY_LIST_NAMES = new String[0]; - - /** A listener that listens to the subject's list aspects. */ - protected final ListChangeListener listChangeListener; - - - // ********** constructors ********** - - /** - * Construct a list aspect adapter for the specified subject - * and list. - */ - protected ListAspectAdapter(String listName, S subject) { - this(new String[] {listName}, subject); - } - - /** - * Construct a list aspect adapter for the specified subject - * and lists. - */ - protected ListAspectAdapter(String[] listNames, S subject) { - this(new StaticPropertyValueModel(subject), listNames); - } - - /** - * Construct a list aspect adapter for the specified subject holder - * and lists. - */ - protected ListAspectAdapter(PropertyValueModel subjectHolder, String... listNames) { - super(subjectHolder); - this.listNames = listNames; - this.listChangeListener = this.buildListChangeListener(); - } - - /** - * Construct a list aspect adapter for the specified subject holder - * and lists. - */ - protected ListAspectAdapter(PropertyValueModel subjectHolder, Collection listNames) { - this(subjectHolder, listNames.toArray(new String[listNames.size()])); - } - - /** - * Construct a list aspect adapter for an "unchanging" list in - * the specified subject. This is useful for a list aspect that does not - * change for a particular subject; but the subject will change, resulting in - * a new list. - */ - protected ListAspectAdapter(PropertyValueModel subjectHolder) { - this(subjectHolder, EMPTY_LIST_NAMES); - } - - - // ********** initialization ********** - - protected ListChangeListener buildListChangeListener() { - // transform the subject's list change events into VALUE list change events - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - ListAspectAdapter.this.itemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - ListAspectAdapter.this.itemsRemoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - ListAspectAdapter.this.itemsReplaced(event); - } - public void itemsMoved(ListMoveEvent event) { - ListAspectAdapter.this.itemsMoved(event); - } - public void listCleared(ListClearEvent event) { - ListAspectAdapter.this.listCleared(event); - } - public void listChanged(ListChangeEvent event) { - ListAspectAdapter.this.listChanged(event); - } - @Override - public String toString() { - return "list change listener: " + Arrays.asList(ListAspectAdapter.this.listNames); //$NON-NLS-1$ - } - }; - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected void engageSubject_() { - for (String listName : this.listNames) { - ((Model) this.subject).addListChangeListener(listName, this.listChangeListener); - } - } - - @Override - protected void disengageSubject_() { - for (String listName : this.listNames) { - ((Model) this.subject).removeListChangeListener(listName, this.listChangeListener); - } - } - - - // ********** behavior ********** - - protected void itemsAdded(ListAddEvent event) { - this.fireItemsAdded(event.clone(this, LIST_VALUES)); - } - - protected void itemsRemoved(ListRemoveEvent event) { - this.fireItemsRemoved(event.clone(this, LIST_VALUES)); - } - - protected void itemsReplaced(ListReplaceEvent event) { - this.fireItemsReplaced(event.clone(this, LIST_VALUES)); - } - - protected void itemsMoved(ListMoveEvent event) { - this.fireItemsMoved(event.clone(this, LIST_VALUES)); - } - - protected void listCleared(ListClearEvent event) { - this.fireListCleared(event.clone(this, LIST_VALUES)); - } - - protected void listChanged(ListChangeEvent event) { - this.fireListChanged(event.clone(this, LIST_VALUES)); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCollectionValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCollectionValueModelAdapter.java deleted file mode 100644 index e37f223a6f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCollectionValueModelAdapter.java +++ /dev/null @@ -1,233 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * An adapter that allows us to make a {@link ListValueModel} behave like - * a read-only {@link CollectionValueModel}, sorta. - *

- * We keep an internal collection somewhat in synch with the wrapped list. - *

- * NB: Since we only listen to the wrapped list when we have - * listeners ourselves and we can only stay in synch with the wrapped - * list while we are listening to it, results to various methods - * (e.g. {@link #size()}, {@link iterator()}) will be unpredictable whenever - * we do not have any listeners. This should not be too painful since, - * most likely, client objects will also be listeners. - */ -public class ListCollectionValueModelAdapter - extends AbstractCollectionValueModel - implements CollectionValueModel -{ - /** The wrapped list value model. */ - protected final ListValueModel listHolder; - - /** A listener that forwards any events fired by the list holder. */ - protected final ListChangeListener listChangeListener; - - /** - * Our internal collection, which holds the same elements as - * the wrapped list. - */ - // we declare this an ArrayList so we can use #clone() and #ensureCapacity(int) - protected final ArrayList collection; - - - // ********** constructors ********** - - /** - * Wrap the specified list value model. - */ - public ListCollectionValueModelAdapter(ListValueModel listHolder) { - super(); - if (listHolder == null) { - throw new NullPointerException(); - } - this.listHolder = listHolder; - this.listChangeListener = this.buildListChangeListener(); - this.collection = new ArrayList(); - // postpone building the collection and listening to the underlying list - // until we have listeners ourselves... - } - - - // ********** initialization ********** - - /** - * The wrapped list has changed, forward an equivalent - * collection change event to our listeners. - */ - protected ListChangeListener buildListChangeListener() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - ListCollectionValueModelAdapter.this.itemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - ListCollectionValueModelAdapter.this.itemsRemoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - ListCollectionValueModelAdapter.this.itemsReplaced(event); - } - public void itemsMoved(ListMoveEvent event) { - ListCollectionValueModelAdapter.this.itemsMoved(event); - } - public void listCleared(ListClearEvent event) { - ListCollectionValueModelAdapter.this.listCleared(event); - } - public void listChanged(ListChangeEvent event) { - ListCollectionValueModelAdapter.this.listChanged(event); - } - @Override - public String toString() { - return "list change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** CollectionValueModel implementation ********** - - public Iterator iterator() { - // try to prevent backdoor modification of the list - return new ReadOnlyIterator(this.collection); - } - - public int size() { - return this.collection.size(); - } - - - // ********** AbstractCollectionValueModel implementation ********** - - @Override - protected void engageModel() { - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - // synch our collection *after* we start listening to the list holder, - // since its value might change when a listener is added - this.buildCollection(); - } - - @Override - protected void disengageModel() { - this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - // clear out the collection when we are not listening to the list holder - this.collection.clear(); - } - - - // ********** behavior ********** - - protected void itemsAdded(ListAddEvent event) { - this.addItemsToCollection(this.getItems(event), this.collection, VALUES); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(ListAddEvent event) { - return (Iterable) event.getItems(); - } - - protected void itemsRemoved(ListRemoveEvent event) { - this.removeItemsFromCollection(this.getItems(event), this.collection, VALUES); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(ListRemoveEvent event) { - return (Iterable) event.getItems(); - } - - protected void itemsReplaced(ListReplaceEvent event) { - this.removeItemsFromCollection(this.getOldItems(event), this.collection, VALUES); - this.addItemsToCollection(this.getNewItems(event), this.collection, VALUES); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getOldItems(ListReplaceEvent event) { - return (Iterable) event.getOldItems(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getNewItems(ListReplaceEvent event) { - return (Iterable) event.getNewItems(); - } - - protected void itemsMoved(@SuppressWarnings("unused") ListMoveEvent event) { - // do nothing? moving items in a list has no net effect on a collection... - } - - protected void listCleared(@SuppressWarnings("unused") ListClearEvent event) { - // put in empty check so we don't fire events unnecessarily - if ( ! this.collection.isEmpty()) { - this.collection.clear(); - this.fireCollectionCleared(VALUES); - } - } - - /** - * synchronize our internal collection with the wrapped list - * and fire the appropriate events - */ - protected void listChanged(@SuppressWarnings("unused") ListChangeEvent event) { - if (this.listHolder.size() == 0) { - if (this.collection.isEmpty()) { - // no change - } else { - this.clearCollection(this.collection, VALUES); - } - } else { - if (this.collection.isEmpty()) { - this.buildCollection(); - this.fireItemsAdded(VALUES, this.collection); - } else { - this.collection.clear(); - this.buildCollection(); - this.fireCollectionChanged(VALUES, this.collection); - } - } - } - - protected void buildCollection() { - // if the new list is empty, do nothing - int size = this.listHolder.size(); - if (size != 0) { - this.buildCollection(size); - } - } - - protected void buildCollection(int size) { - this.collection.ensureCapacity(size); - for (E each : this.listHolder) { - this.collection.add(each); - } - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.collection); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCurator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCurator.java deleted file mode 100644 index 753638b098..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListCurator.java +++ /dev/null @@ -1,226 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.EventListener; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This extension of {@link AspectAdapter} provides list change support - * by adapting a subject's state change events to a minimum set - * of list change events. - */ -public abstract class ListCurator - extends AspectAdapter - implements ListValueModel -{ - /** How the list looked before the last state change */ - private final ArrayList record; - - /** A listener that listens for the subject's state to change */ - private final StateChangeListener stateChangeListener; - - - // ********** constructors ********** - - /** - * Construct a curator for the specified subject. - */ - protected ListCurator(S subject) { - this(new StaticPropertyValueModel(subject)); - } - - /** - * Construct a curator for the specified subject holder. - * The subject holder cannot be null. - */ - protected ListCurator(PropertyValueModel subjectHolder) { - super(subjectHolder); - this.record = new ArrayList(); - this.stateChangeListener = this.buildStateChangeListener(); - } - - - // ********** initialization ********** - - /** - * The subject's state has changed, do inventory and report to listeners. - */ - protected StateChangeListener buildStateChangeListener() { - return new StateChangeListener() { - public void stateChanged(StateChangeEvent event) { - ListCurator.this.submitInventoryReport(); - } - @Override - public String toString() { - return "state change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ListValueModel implementation ********** - - public ListIterator iterator() { - return this.listIterator(); - } - - public ListIterator listIterator() { - return new ReadOnlyListIterator(this.record); - } - - /** - * Return the item at the specified index of the subject's list aspect. - */ - public E get(int index) { - return this.record.get(index); - } - - /** - * Return the size of the subject's list aspect. - */ - public int size() { - return this.record.size(); - } - - /** - * Return an array manifestation of the subject's list aspect. - */ - public Object[] toArray() { - return this.record.toArray(); - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected ListIterator getValue() { - return this.iterator(); - } - - @Override - protected Class getListenerClass() { - return ListChangeListener.class; - } - - @Override - protected String getListenerAspectName() { - return LIST_VALUES; - } - - @Override - protected boolean hasListeners() { - return this.hasAnyListChangeListeners(LIST_VALUES); - } - - /** - * The aspect has changed, notify listeners appropriately. - */ - @Override - protected void fireAspectChanged(Object oldValue, Object newValue) { - this.fireListChanged(LIST_VALUES, this.record); - } - - /** - * The subject is not null - add our listener. - */ - @Override - protected void engageSubject_() { - ((Model) this.subject).addStateChangeListener(this.stateChangeListener); - // synch our list *after* we start listening to the subject, - // since its value might change when a listener is added - CollectionTools.addAll(this.record, this.iteratorForRecord()); - } - - /** - * The subject is not null - remove our listener. - */ - @Override - protected void disengageSubject_() { - ((Model) this.subject).removeStateChangeListener(this.stateChangeListener); - // clear out the list when we are not listening to the subject - this.record.clear(); - } - - - // ********** ListCurator protocol ********** - - /** - * This is intended to be different from {@link ListValueModel#iterator()}. - * It is intended to be used only when the subject changes or the - * subject's "state" changes (as signified by a state change event). - */ - protected abstract Iterator iteratorForRecord(); - - - // ********** behavior ********** - - void submitInventoryReport() { - List newRecord = CollectionTools.list(this.iteratorForRecord()); - int recordIndex = 0; - - // add items from the new record - for (E newItem : newRecord) { - this.inventoryNewItem(recordIndex, newItem); - recordIndex++; - } - - // clean out items that are no longer in the new record - for (recordIndex = 0; recordIndex < this.record.size(); ) { - E item = this.record.get(recordIndex); - - if (newRecord.contains(item)) { - recordIndex++; - } else { - this.removeItemFromInventory(recordIndex, item); - } - } - } - - private void inventoryNewItem(int recordIndex, E newItem) { - List rec = new ArrayList(this.record); - - if ((recordIndex < rec.size()) && rec.get(recordIndex).equals(newItem)) { - return; - } - if (rec.contains(newItem)) { - this.removeItemFromInventory(recordIndex, rec.get(recordIndex)); - this.inventoryNewItem(recordIndex, newItem); - } else { - this.addItemToInventory(recordIndex, newItem); - } - } - - private void addItemToInventory(int index, E item) { - this.addItemToList(index, item, this.record, LIST_VALUES); - } - - private void removeItemFromInventory(int index, @SuppressWarnings("unused") E item) { - this.removeItemFromList(index, this.record, LIST_VALUES); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.record); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListPropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListPropertyValueModelAdapter.java deleted file mode 100644 index e3f7105771..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListPropertyValueModelAdapter.java +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * This abstract class provides the infrastructure needed to wrap - * a list value model, "lazily" listen to it, and convert - * its change notifications into property value model change - * notifications. - *

- * Subclasses must override:

    - *
  • {@link #buildValue()}

    - * to return the current property value, as derived from the - * current list value - *

- * Subclasses might want to override the following methods - * to improve performance (by not recalculating the value, if possible):
    - *
  • {@link #itemsAdded(ListAddEvent event)} - *
  • {@link #itemsRemoved(ListRemoveEvent event)} - *
  • {@link #itemsReplaced(ListReplaceEvent event)} - *
  • {@link #itemsMoved(ListMoveEvent event)} - *
  • {@link #listCleared(ListClearEvent event)} - *
  • {@link #listChanged(ListChangeEvent event)} - *
- */ -public abstract class ListPropertyValueModelAdapter - extends AbstractPropertyValueModelAdapter -{ - /** The wrapped list value model. */ - protected final ListValueModel listHolder; - - /** A listener that allows us to synch with changes to the wrapped list holder. */ - protected final ListChangeListener listChangeListener; - - - // ********** constructor/initialization ********** - - /** - * Construct a property value model with the specified wrapped - * list value model. - */ - protected ListPropertyValueModelAdapter(ListValueModel listHolder) { - super(); - this.listHolder = listHolder; - this.listChangeListener = this.buildListChangeListener(); - } - - protected ListChangeListener buildListChangeListener() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - ListPropertyValueModelAdapter.this.itemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - ListPropertyValueModelAdapter.this.itemsRemoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - ListPropertyValueModelAdapter.this.itemsReplaced(event); - } - public void itemsMoved(ListMoveEvent event) { - ListPropertyValueModelAdapter.this.itemsMoved(event); - } - public void listCleared(ListClearEvent event) { - ListPropertyValueModelAdapter.this.listCleared(event); - } - public void listChanged(ListChangeEvent event) { - ListPropertyValueModelAdapter.this.listChanged(event); - } - @Override - public String toString() { - return "list change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - /** - * Start listening to the list holder. - */ - @Override - protected void engageModel_() { - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - - /** - * Stop listening to the list holder. - */ - @Override - protected void disengageModel_() { - this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - - - // ********** collection change support ********** - - /** - * Items were added to the wrapped list holder; - * propagate the change notification appropriately. - */ - protected void itemsAdded(@SuppressWarnings("unused") ListAddEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * Items were removed from the wrapped list holder; - * propagate the change notification appropriately. - */ - protected void itemsRemoved(@SuppressWarnings("unused") ListRemoveEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * Items were replaced in the wrapped list holder; - * propagate the change notification appropriately. - */ - protected void itemsReplaced(@SuppressWarnings("unused") ListReplaceEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * Items were moved in the wrapped list holder; - * propagate the change notification appropriately. - */ - protected void itemsMoved(@SuppressWarnings("unused") ListMoveEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * The wrapped list holder was cleared; - * propagate the change notification appropriately. - */ - protected void listCleared(@SuppressWarnings("unused") ListClearEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * The value of the wrapped list holder has changed; - * propagate the change notification appropriately. - */ - protected void listChanged(@SuppressWarnings("unused") ListChangeEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListValueModelWrapper.java deleted file mode 100644 index 7e01a399f3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ListValueModelWrapper.java +++ /dev/null @@ -1,164 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * This abstract class provides the infrastructure needed to wrap - * another list value model, "lazily" listen to it, and propagate - * its change notifications. Subclasses must implement the appropriate - * {@link ListValueModel}. - */ -public abstract class ListValueModelWrapper - extends AbstractListValueModel -{ - /** The wrapped list value model. */ - protected final ListValueModel listHolder; - - /** A listener that allows us to synch with changes to the wrapped list holder. */ - protected final ListChangeListener listChangeListener; - - - // ********** constructors ********** - - /** - * Construct a list value model with the specified wrapped - * list value model. - */ - protected ListValueModelWrapper(ListValueModel listHolder) { - super(); - if (listHolder == null) { - throw new NullPointerException(); - } - this.listHolder = listHolder; - this.listChangeListener = this.buildListChangeListener(); - } - - - // ********** initialization ********** - - protected ListChangeListener buildListChangeListener() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - ListValueModelWrapper.this.itemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - ListValueModelWrapper.this.itemsRemoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - ListValueModelWrapper.this.itemsReplaced(event); - } - public void itemsMoved(ListMoveEvent event) { - ListValueModelWrapper.this.itemsMoved(event); - } - public void listCleared(ListClearEvent event) { - ListValueModelWrapper.this.listCleared(event); - } - public void listChanged(ListChangeEvent event) { - ListValueModelWrapper.this.listChanged(event); - } - @Override - public String toString() { - return "list change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - /** - * Start listening to the list holder. - */ - @Override - protected void engageModel() { - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - - /** - * Stop listening to the list holder. - */ - @Override - protected void disengageModel() { - this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(ListAddEvent event) { - return (Iterable) event.getItems(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(ListRemoveEvent event) { - return (Iterable) event.getItems(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getNewItems(ListReplaceEvent event) { - return (Iterable) event.getNewItems(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getOldItems(ListReplaceEvent event) { - return (Iterable) event.getOldItems(); - } - - - // ********** list change support ********** - - /** - * Items were added to the wrapped list holder; - * propagate the change notification appropriately. - */ - protected abstract void itemsAdded(ListAddEvent event); - - /** - * Items were removed from the wrapped list holder; - * propagate the change notification appropriately. - */ - protected abstract void itemsRemoved(ListRemoveEvent event); - - /** - * Items were replaced in the wrapped list holder; - * propagate the change notification appropriately. - */ - protected abstract void itemsReplaced(ListReplaceEvent event); - - /** - * Items were moved in the wrapped list holder; - * propagate the change notification appropriately. - */ - protected abstract void itemsMoved(ListMoveEvent event); - - /** - * The wrapped list holder was cleared; - * propagate the change notification appropriately. - */ - protected abstract void listCleared(ListClearEvent event); - - /** - * The value of the wrapped list holder has changed; - * propagate the change notification appropriately. - */ - protected abstract void listChanged(ListChangeEvent event); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullCollectionValueModel.java deleted file mode 100644 index ba1061b96c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullCollectionValueModel.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; - -/** - * A read-only collection value model for when you - * don't need to support a collection. In particular, this - * is useful for the leaf nodes of a tree that never have - * children. - *

- * We don't use a singleton because we hold on to listeners. - */ -public final class NullCollectionValueModel - extends AbstractModel - implements CollectionValueModel -{ - private static final long serialVersionUID = 1L; - - /** - * Default constructor. - */ - public NullCollectionValueModel() { - super(); - } - - - // ********** CollectionValueModel implementation ********** - - public int size() { - return 0; - } - - public Iterator iterator() { - return EmptyIterator.instance(); - } - - - // ********** Object overrides ********** - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullListValueModel.java deleted file mode 100644 index 78801cce30..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullListValueModel.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Iterator; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * An empty list value model for when you don't - * need to support a list. - *

- * We don't use a singleton because we hold on to listeners. - */ -public final class NullListValueModel - extends AbstractModel - implements ListValueModel -{ - private static final Object[] EMPTY_ARRAY = new Object[0]; - private static final long serialVersionUID = 1L; - - /** - * Default constructor. - */ - public NullListValueModel() { - super(); - } - - - // ********** ListValueModel implementation ********** - - public Iterator iterator() { - return EmptyIterator.instance(); - } - - public ListIterator listIterator() { - return EmptyListIterator.instance(); - } - - public int size() { - return 0; - } - - public E get(int index) { - throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - public Object[] toArray() { - return EMPTY_ARRAY; - } - - - // ********** Object overrides ********** - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullPropertyValueModel.java deleted file mode 100644 index f445d96b36..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullPropertyValueModel.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * A property value model for when you - * don't need to support a value. - *

- * We don't use a singleton because we hold on to listeners. - */ -public final class NullPropertyValueModel - extends AbstractModel - implements PropertyValueModel -{ - private static final long serialVersionUID = 1L; - - /** - * Default constructor. - */ - public NullPropertyValueModel() { - super(); - } - - - // ********** PropertyValueModel implementation ********** - - public T getValue() { - return null; - } - - - // ********** Object overrides ********** - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullTreeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullTreeValueModel.java deleted file mode 100644 index ad4b960b6e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/NullTreeValueModel.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.value.TreeValueModel; - -/** - * A tree value model for when you - * don't need to support any nodes. - *

- * We don't use a singleton because we hold on to listeners. - */ -public final class NullTreeValueModel - extends AbstractModel - implements TreeValueModel -{ - private static final long serialVersionUID = 1L; - - /** - * Default constructor. - */ - public NullTreeValueModel() { - super(); - } - - - // ********** TreeValueModel implementation ********** - - public Iterator nodes() { - return EmptyIterator.instance(); - } - - - // ********** Object overrides ********** - - @Override - public String toString() { - return this.getClass().getSimpleName(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyAspectAdapter.java deleted file mode 100644 index 327a7342d3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyAspectAdapter.java +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; -import java.util.Collection; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This {@link AspectPropertyValueModelAdapter} provides basic property change support. - * This converts a set of one or more standard properties into - * a single {@link #VALUE} property. - *

- * The typical subclass will override the following methods (see the descriptions - * in {@link AspectPropertyValueModelAdapter}):

    - *
  • {@link #buildValue_()} - *
  • {@link #setValue_(Object)} - *
  • {@link #buildValue()} - *
  • {@link #setValue(Object)} - *
- */ -public abstract class PropertyAspectAdapter - extends AspectPropertyValueModelAdapter -{ - /** The name of the subject's properties that we use for the value. */ - protected final String[] propertyNames; - protected static final String[] EMPTY_PROPERTY_NAMES = new String[0]; - - /** A listener that listens to the appropriate properties of the subject. */ - protected final PropertyChangeListener propertyChangeListener; - - - // ********** constructors ********** - - /** - * Construct a property aspect adapter for the specified subject - * and property. - */ - protected PropertyAspectAdapter(String propertyName, S subject) { - this(new String[] {propertyName}, subject); - } - - /** - * Construct a property aspect adapter for the specified subject - * and properties. - */ - protected PropertyAspectAdapter(String[] propertyNames, S subject) { - this(new StaticPropertyValueModel(subject), propertyNames); - } - - /** - * Construct a property aspect adapter for the specified subject holder - * and properties. - */ - protected PropertyAspectAdapter(PropertyValueModel subjectHolder, String... propertyNames) { - super(subjectHolder); - this.propertyNames = propertyNames; - this.propertyChangeListener = this.buildPropertyChangeListener(); - } - - /** - * Construct a property aspect adapter for the specified subject holder - * and properties. - */ - protected PropertyAspectAdapter(PropertyValueModel subjectHolder, Collection propertyNames) { - this(subjectHolder, propertyNames.toArray(new String[propertyNames.size()])); - } - - /** - * Construct a property aspect adapter for an "unchanging" property in - * the specified subject. This is useful for a property aspect that does not - * change for a particular subject; but the subject will change, resulting in - * a new property. (A {@link TransformationPropertyValueModel} could also be - * used in this situation.) - */ - protected PropertyAspectAdapter(PropertyValueModel subjectHolder) { - this(subjectHolder, EMPTY_PROPERTY_NAMES); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildPropertyChangeListener() { - // transform the subject's property change events into VALUE property change events - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - PropertyAspectAdapter.this.propertyChanged(event); - } - @Override - public String toString() { - return "property change listener: " + Arrays.asList(PropertyAspectAdapter.this.propertyNames); //$NON-NLS-1$ - } - }; - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected void engageSubject_() { - for (String propertyName : this.propertyNames) { - ((Model) this.subject).addPropertyChangeListener(propertyName, this.propertyChangeListener); - } - } - - @Override - protected void disengageSubject_() { - for (String propertyName : this.propertyNames) { - ((Model) this.subject).removePropertyChangeListener(propertyName, this.propertyChangeListener); - } - } - - protected void propertyChanged(@SuppressWarnings("unused") PropertyChangeEvent event) { - this.propertyChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyCollectionValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyCollectionValueModelAdapter.java deleted file mode 100644 index 1d432aeda5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyCollectionValueModelAdapter.java +++ /dev/null @@ -1,141 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Collections; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * An adapter that allows us to make a {@link PropertyValueModel} behave like - * a read-only, single-element {@link CollectionValueModel}, sorta. - *

- * If the property's value is null, an empty iterator is returned - * (i.e. you can't have a collection with a null element). - */ -public class PropertyCollectionValueModelAdapter - extends AbstractCollectionValueModel - implements CollectionValueModel -{ - /** The wrapped property value model. */ - protected final PropertyValueModel valueHolder; - - /** A listener that forwards any events fired by the value holder. */ - protected final PropertyChangeListener propertyChangeListener; - - /** Cache the value. */ - protected E value; - - - // ********** constructors/initialization ********** - - /** - * Convert the specified property value model to a collection - * value model. - */ - public PropertyCollectionValueModelAdapter(PropertyValueModel valueHolder) { - super(); - if (valueHolder == null) { - throw new NullPointerException(); - } - this.valueHolder = valueHolder; - this.propertyChangeListener = this.buildPropertyChangeListener(); - this.value = null; - // postpone building the value and listening to the underlying value - // until we have listeners ourselves... - } - - /** - * The wrapped value has changed, forward an equivalent - * collection change event to our listeners. - */ - protected PropertyChangeListener buildPropertyChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - @SuppressWarnings("unchecked") - E eventNewValue = (E) event.getNewValue(); - PropertyCollectionValueModelAdapter.this.valueChanged(eventNewValue); - } - @Override - public String toString() { - return "property change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** CollectionValueModel implementation ********** - - public Iterator iterator() { - return (this.value == null) ? EmptyIterator.instance() : this.iterator_(); - } - - protected Iterator iterator_() { - return new SingleElementIterator(this.value); - } - - public int size() { - return (this.value == null) ? 0 : 1; - } - - - // ********** AbstractCollectionValueModel implementation ********** - - @Override - protected void engageModel() { - this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener); - // synch our value *after* we start listening to the value holder, - // since its value might change when a listener is added - this.value = this.valueHolder.getValue(); - } - - @Override - protected void disengageModel() { - this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener); - // clear out the value when we are not listening to the value holder - this.value = null; - } - - - // ********** behavior ********** - - /** - * synchronize our internal value with the wrapped value - * and fire the appropriate events - */ - protected void valueChanged(E newValue) { - E oldValue = this.value; - this.value = newValue; - if (oldValue == null) { - // we wouldn't get the event if the new value were null too - this.fireItemAdded(VALUES, newValue); - } else { - if (newValue == null) { - this.fireItemRemoved(VALUES, oldValue); - } else { - // we wouldn't get the event if the new value was the same as the old - this.fireCollectionChanged(VALUES, Collections.singleton(newValue)); - } - } - } - - @Override - public void toString(StringBuilder sb) { - StringTools.append(sb, this); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyListValueModelAdapter.java deleted file mode 100644 index 81fa3cc8a8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyListValueModelAdapter.java +++ /dev/null @@ -1,157 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Iterator; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementListIterator; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * An adapter that allows us to make a {@link PropertyValueModel} behave like - * a read-only, single-element {@link ListValueModel}, sorta. - *

- * If the property's value is null, an empty iterator is returned - * (i.e. you can't have a collection with a null element). - */ -public class PropertyListValueModelAdapter - extends AbstractListValueModel - implements ListValueModel -{ - /** The wrapped property value model. */ - protected final PropertyValueModel valueHolder; - - /** A listener that forwards any events fired by the value holder. */ - protected final PropertyChangeListener propertyChangeListener; - - /** Cache the value. */ - protected E value; - - - // ********** constructors/initialization ********** - - /** - * Convert the specified property value model to a list - * value model. - */ - public PropertyListValueModelAdapter(PropertyValueModel valueHolder) { - super(); - if (valueHolder == null) { - throw new NullPointerException(); - } - this.valueHolder = valueHolder; - this.propertyChangeListener = this.buildPropertyChangeListener(); - // postpone building the value and listening to the underlying value - // until we have listeners ourselves... - } - - /** - * The wrapped value has changed, forward an equivalent - * list change event to our listeners. - */ - protected PropertyChangeListener buildPropertyChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - @SuppressWarnings("unchecked") - E eventNewValue = (E) event.getNewValue(); - PropertyListValueModelAdapter.this.valueChanged(eventNewValue); - } - @Override - public String toString() { - return "property change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ListValueModel implementation ********** - - public Iterator iterator() { - return this.listIterator(); - } - - public ListIterator listIterator() { - return (this.value == null) ? - EmptyListIterator.instance() - : - new SingleElementListIterator(this.value); - } - - public int size() { - return (this.value == null) ? 0 : 1; - } - - public E get(int index) { - if (this.value == null) { - throw this.buildIOOBE(index, 0); - } - if (index > 0) { - throw this.buildIOOBE(index, 1); - } - return this.value; - } - - protected static final Object[] EMPTY_OBJECT_ARRAY = new Object[0]; - public Object[] toArray() { - return (this.value == null) ? EMPTY_OBJECT_ARRAY : new Object[] {this.value}; - } - - - // ********** behavior ********** - - protected IndexOutOfBoundsException buildIOOBE(int index, int size) { - return new IndexOutOfBoundsException("Index: " + index + ", Size: " + size); //$NON-NLS-1$ //$NON-NLS-2$ - } - - @Override - protected void engageModel() { - this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener); - // synch our value *after* we start listening to the value holder, - // since its value might change when a listener is added - this.value = this.valueHolder.getValue(); - } - - @Override - protected void disengageModel() { - this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener); - // clear out the value when we are not listening to the value holder - this.value = null; - } - - /** - * synchronize our internal value with the wrapped value - * and fire the appropriate events - */ - protected void valueChanged(E newValue) { - E oldValue = this.value; - this.value = newValue; - if (oldValue == null) { - this.fireItemAdded(LIST_VALUES, 0, newValue); - } else { - if (newValue == null) { - this.fireItemRemoved(LIST_VALUES, 0, oldValue); - } else { - this.fireItemReplaced(LIST_VALUES, 0, newValue, oldValue); - } - } - } - - @Override - public void toString(StringBuilder sb) { - StringTools.append(sb, this); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyValueModelWrapper.java deleted file mode 100644 index 241b85d609..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/PropertyValueModelWrapper.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This abstract class provides the infrastructure needed to wrap - * another property value model, "lazily" listen to it, and propagate - * its change notifications. Subclasses must implement the appropriate - * {@link PropertyValueModel}. - *

- * Subclasses must implement the following methods:

    - *
  • {@link #valueChanged(PropertyChangeEvent)}

    - * implement this method to propagate the appropriate change notification - *

- */ -public abstract class PropertyValueModelWrapper - extends AbstractPropertyValueModel -{ - /** The wrapped property value model. */ - protected final PropertyValueModel valueHolder; - - /** A listener that allows us to synch with changes to the wrapped value holder. */ - protected final PropertyChangeListener valueChangeListener; - - - // ********** constructors/initialization ********** - - /** - * Construct a property value model with the specified wrapped - * property value model. The value holder is required. - */ - protected PropertyValueModelWrapper(PropertyValueModel valueHolder) { - super(); - if (valueHolder == null) { - throw new NullPointerException(); - } - this.valueHolder = valueHolder; - this.valueChangeListener = this.buildValueChangeListener(); - } - - protected PropertyChangeListener buildValueChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - PropertyValueModelWrapper.this.valueChanged(event); - } - @Override - public String toString() { - return "value change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - /** - * Begin listening to the value holder. - */ - @Override - protected void engageModel() { - this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener); - } - - /** - * Stop listening to the value holder. - */ - @Override - protected void disengageModel() { - this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener); - } - - - // ********** property change support ********** - - /** - * The value of the wrapped value holder has changed; - * propagate the change notification appropriately. - */ - protected abstract void valueChanged(PropertyChangeEvent event); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java deleted file mode 100644 index dcf7b97594..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * A simple implementation of {@link WritablePropertyValueModel} that actually - * ... isn't ... writable. It can however be used in places that require a - * {@link WritablePropertyValueModel} and where the developer is sure that no - * attempt will be made to write to it. - */ -public class ReadOnlyWritablePropertyValueModelWrapper - extends PropertyValueModelWrapper - implements WritablePropertyValueModel -{ - public ReadOnlyWritablePropertyValueModelWrapper(PropertyValueModel valueHolder) { - super(valueHolder); - } - - - public T getValue() { - return this.valueHolder.getValue(); - } - - public void setValue(T value) { - throw new UnsupportedOperationException(); - } - - @Override - protected void valueChanged(PropertyChangeEvent event) { - this.firePropertyChanged(event.clone(this)); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getValue()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SetCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SetCollectionValueModel.java deleted file mode 100644 index d04722f9ff..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SetCollectionValueModel.java +++ /dev/null @@ -1,134 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * A SetCollectionValueModel wraps another - * {@link CollectionValueModel} and returns the items in the collection - * only once. - */ -public class SetCollectionValueModel - extends CollectionValueModelWrapper - implements CollectionValueModel -{ - private final HashBag bag = new HashBag(); - - - // ********** constructors ********** - - /** - * Construct a collection value model with the specified wrapped - * collection value model and a filter that simply accepts every object. - */ - public SetCollectionValueModel(CollectionValueModel collectionHolder) { - super(collectionHolder); - } - - /** - * Construct a collection value model with the specified wrapped - * list value model and a filter that simply accepts every object. - */ - public SetCollectionValueModel(ListValueModel listHolder) { - this(new ListCollectionValueModelAdapter(listHolder)); - } - - - // ********** CollectionValueModel implementation ********** - - public Iterator iterator() { - return new ReadOnlyIterator(this.bag.uniqueIterator()); - } - - public int size() { - return this.bag.uniqueCount(); - } - - - // ********** CollectionValueModelWrapper overrides/implementation ********** - - @Override - protected void engageModel() { - super.engageModel(); - // synch our cache *after* we start listening to the nested collection, - // since its value might change when a listener is added - CollectionTools.addAll(this.bag, this.collectionHolder); - } - - @Override - protected void disengageModel() { - super.disengageModel(); - // clear out the cache when we are not listening to the nested collection - this.bag.clear(); - } - - @Override - protected void itemsAdded(CollectionAddEvent event) { - ArrayList addedItems = new ArrayList(event.getItemsSize()); - int uniqueCount = this.bag.uniqueCount(); - for (E item : this.getItems(event)) { - this.bag.add(item); - if (this.bag.uniqueCount() > uniqueCount) { - uniqueCount = this.bag.uniqueCount(); - addedItems.add(item); - } - } - this.fireItemsAdded(VALUES, addedItems); - } - - @Override - protected void itemsRemoved(CollectionRemoveEvent event) { - ArrayList removedItems = new ArrayList(event.getItemsSize()); - int uniqueCount = this.bag.uniqueCount(); - for (E item : this.getItems(event)) { - if (this.bag.remove(item)) { - if (this.bag.uniqueCount() < uniqueCount) { - uniqueCount = this.bag.uniqueCount(); - removedItems.add(item); - } - } else { - throw new IllegalStateException("missing item: " + item); //$NON-NLS-1$ - } - } - this.fireItemsRemoved(VALUES, removedItems); - } - - @Override - protected void collectionCleared(CollectionClearEvent event) { - this.clearCollection(this.bag, VALUES); - } - - @Override - protected void collectionChanged(CollectionChangeEvent event) { - this.bag.clear(); - CollectionTools.addAll(this.bag, this.collectionHolder); - this.fireCollectionChanged(VALUES, new HashSet(this.bag)); - } - - @Override - public void toString(StringBuilder sb) { - StringTools.append(sb, this); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleCollectionValueModel.java deleted file mode 100644 index 794eec1e11..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleCollectionValueModel.java +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Collection; -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel; - -/** - * Implementation of {@link WritableCollectionValueModel} and {@link Collection} - * that simply holds a collection and notifies listeners of any changes. - */ -public class SimpleCollectionValueModel - extends AbstractModel - implements WritableCollectionValueModel, Collection -{ - /** The collection. */ - protected final Collection collection; - - - // ********** constructors ********** - - /** - * Construct a collection value model for the specified collection. - */ - public SimpleCollectionValueModel(Collection collection) { - super(); - if (collection == null) { - throw new NullPointerException(); - } - this.collection = collection; - } - - /** - * Construct a collection value model with an empty initial collection. - */ - public SimpleCollectionValueModel() { - this(new HashBag()); - } - - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, CollectionChangeListener.class, VALUES); - } - - - // ********** CollectionValueModel implementation ********** - - public Iterator iterator() { - return new LocalIterator(this.collection.iterator()); - } - - public int size() { - return this.collection.size(); - } - - - // ********** WritableCollectionValueModel implementation ********** - - /** - * Allow the collection's elements to be replaced. - */ - public void setValues(Iterable values) { - if (values == null) { - throw new NullPointerException(); - } - this.collection.clear(); - CollectionTools.addAll(this.collection, values); - this.fireCollectionChanged(VALUES, this.collection); - } - - - // ********** Collection implementation ********** - - public boolean isEmpty() { - return this.collection.isEmpty(); - } - - public boolean contains(Object o) { - return this.collection.contains(o); - } - - public Object[] toArray() { - return this.collection.toArray(); - } - - public T[] toArray(T[] a) { - return this.collection.toArray(a); - } - - public boolean add(E o) { - return this.addItemToCollection(o, this.collection, VALUES); - } - - public boolean remove(Object o) { - return this.removeItemFromCollection(o, this.collection, VALUES); - } - - public boolean containsAll(Collection c) { - return this.collection.containsAll(c); - } - - public boolean addAll(Collection c) { - return this.addItemsToCollection(c, this.collection, VALUES); - } - - public boolean removeAll(Collection c) { - return this.removeItemsFromCollection(c, this.collection, VALUES); - } - - public boolean retainAll(Collection c) { - return this.retainItemsInCollection(c, this.collection, VALUES); - } - - public void clear() { - this.clearCollection(this.collection, VALUES); - } - - @Override - public boolean equals(Object o) { - if (o == this) { - return true; - } - if ((o instanceof Collection) && (o instanceof CollectionValueModel)) { - Collection c1 = CollectionTools.collection(this.collection); - @SuppressWarnings("unchecked") - Collection c2 = CollectionTools.collection(((Collection) o).iterator()); - return c1.equals(c2); - } - return false; - } - - @Override - public int hashCode() { - return CollectionTools.collection(this.collection).hashCode(); - } - - - // ********** miscellaneous ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(this.collection); - } - - - // ********** iterator ********** - - private class LocalIterator implements Iterator { - private final Iterator iterator; - private T next; - - LocalIterator(Iterator iterator) { - super(); - this.iterator = iterator; - } - - public boolean hasNext() { - return this.iterator.hasNext(); - } - - public T next() { - return this.next = this.iterator.next(); - } - - @SuppressWarnings("synthetic-access") - public void remove() { - this.iterator.remove(); - SimpleCollectionValueModel.this.fireItemRemoved(VALUES, this.next); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleListValueModel.java deleted file mode 100644 index 90943f9af1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimpleListValueModel.java +++ /dev/null @@ -1,322 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritableListValueModel; - -/** - * Implementation of {@link ListValueModel} and {@link List} that simply holds a - * list and notifies listeners of any changes. - */ -public class SimpleListValueModel - extends AbstractModel - implements WritableListValueModel, List -{ - /** The list. */ - protected List list; - - - // ********** constructors ********** - - /** - * Construct a list value model for the specified list. - */ - public SimpleListValueModel(List list) { - super(); - if (list == null) { - throw new NullPointerException(); - } - this.list = list; - } - - /** - * Construct a list value model with an empty initial list. - */ - public SimpleListValueModel() { - this(new ArrayList()); - } - - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, ListChangeListener.class, LIST_VALUES); - } - - - // ********** ListValueModel implementation ********** - - public Iterator iterator() { - return new LocalIterator(this.list.iterator()); - } - - public ListIterator listIterator() { - return new LocalListIterator(this.list.listIterator()); - } - - public int size() { - return this.list.size(); - } - - public E get(int index) { - return this.list.get(index); - } - - - // ********** WritableListValueModel implementation ********** - - /** - * Allow the list's elements to be replaced. - */ - public void setListValues(Iterable list) { - if (list == null) { - throw new NullPointerException(); - } - this.list.clear(); - CollectionTools.addAll(this.list, list); - this.fireListChanged(LIST_VALUES, this.list); - } - - - // ********** List implementation ********** - - public boolean isEmpty() { - return this.list.isEmpty(); - } - - public boolean contains(Object o) { - return this.list.contains(o); - } - - public Object[] toArray() { - return this.list.toArray(); - } - - public T[] toArray(T[] a) { - return this.list.toArray(a); - } - - public boolean add(E o) { - return this.addItemToList(o, this.list, LIST_VALUES); - } - - public boolean remove(Object o) { - return this.removeItemFromList(o, this.list, LIST_VALUES); - } - - public boolean containsAll(Collection c) { - return this.list.containsAll(c); - } - - public boolean addAll(Collection c) { - return this.addItemsToList(c, this.list, LIST_VALUES); - } - - public boolean addAll(int index, Collection c) { - return this.addItemsToList(index, c, this.list, LIST_VALUES); - } - - public boolean removeAll(Collection c) { - return this.removeItemsFromList(c, this.list, LIST_VALUES); - } - - public boolean retainAll(Collection c) { - return this.retainItemsInList(c, this.list, LIST_VALUES); - } - - public void clear() { - this.clearList(this.list, LIST_VALUES); - } - - @Override - public boolean equals(Object o) { - if (o == this) { - return true; - } - if ((o instanceof List) && (o instanceof ListValueModel)) { - List l1 = CollectionTools.list(this.list); - @SuppressWarnings("unchecked") - List l2 = CollectionTools.list(((List) o).iterator()); - return l1.equals(l2); - } - return false; - } - - @Override - public int hashCode() { - return this.list.hashCode(); - } - - public E set(int index, E element) { - return this.setItemInList(index, element, this.list, LIST_VALUES); - } - - public void add(int index, E element) { - this.addItemToList(index, element, this.list, LIST_VALUES); - } - - public E remove(int index) { - return this.removeItemFromList(index, this.list, LIST_VALUES); - } - - public int indexOf(Object o) { - return this.list.indexOf(o); - } - - public int lastIndexOf(Object o) { - return this.list.lastIndexOf(o); - } - - public ListIterator listIterator(int index) { - return new LocalListIterator(this.list.listIterator(index)); - } - - public List subList(int fromIndex, int toIndex) { - // TODO hmmm ~bjv - throw new UnsupportedOperationException(); - } - - - // ********** additional behavior ********** - - /** - * Move a single element. - */ - public void move(int targetIndex, int sourceIndex) { - this.moveItemInList(targetIndex, sourceIndex, this.list, LIST_VALUES); - } - - /** - * Move a sub-list of elements. - */ - public void move(int targetIndex, int sourceIndex, int length) { - this.moveItemsInList(targetIndex, sourceIndex, length, this.list, LIST_VALUES); - } - - /** - * Remove a range of elements. - */ - public void remove(int index, int length) { - this.removeItemsFromList(index, length, this.list, LIST_VALUES); - } - - /** - * Set a range of elements. - */ - public void set(int index, List elements) { - this.setItemsInList(index, elements, this.list, LIST_VALUES); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.list); - } - - - // ********** iterators ********** - - private class LocalIterator implements Iterator { - private final Iterator iterator; - private int index = -1; - private T next; - - LocalIterator(Iterator iterator) { - super(); - this.iterator = iterator; - } - - public boolean hasNext() { - return this.iterator.hasNext(); - } - - public T next() { - this.next = this.iterator.next(); - this.index++; - return this.next; - } - - @SuppressWarnings("synthetic-access") - public void remove() { - this.iterator.remove(); - SimpleListValueModel.this.fireItemRemoved(LIST_VALUES, this.index, this.next); - } - - } - - private class LocalListIterator implements ListIterator { - private final ListIterator iterator; - private int last = -1; - private int next = 0; - private T current; - - LocalListIterator(ListIterator iterator) { - super(); - this.iterator = iterator; - } - - public boolean hasNext() { - return this.iterator.hasNext(); - } - - public T next() { - this.current = this.iterator.next(); - this.last = this.next++; - return this.current; - } - - public int nextIndex() { - return this.iterator.nextIndex(); - } - - public boolean hasPrevious() { - return this.iterator.hasPrevious(); - } - - public T previous() { - this.current = this.iterator.previous(); - this.last = --this.next; - return this.current; - } - - public int previousIndex() { - return this.iterator.previousIndex(); - } - - @SuppressWarnings("synthetic-access") - public void set(T o) { - this.iterator.set(o); - SimpleListValueModel.this.fireItemReplaced(LIST_VALUES, this.last, o, this.current); - } - - @SuppressWarnings("synthetic-access") - public void add(T o) { - this.iterator.add(o); - SimpleListValueModel.this.fireItemAdded(LIST_VALUES, this.next, o); - } - - @SuppressWarnings("synthetic-access") - public void remove() { - this.iterator.remove(); - SimpleListValueModel.this.fireItemRemoved(LIST_VALUES, this.last, this.current); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimplePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimplePropertyValueModel.java deleted file mode 100644 index 844d1c693e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SimplePropertyValueModel.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Implementation of {@link WritablePropertyValueModel} that simply holds on to an - * object and uses it as the value. - */ -public class SimplePropertyValueModel - extends AbstractModel - implements WritablePropertyValueModel -{ - /** The value. */ - protected T value; - - - /** - * Construct a property value model for the specified value. - */ - public SimplePropertyValueModel(T value) { - super(); - this.value = value; - } - - /** - * Construct a property value model with a starting value of null. - */ - public SimplePropertyValueModel() { - this(null); - } - - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, PropertyChangeListener.class, VALUE); - } - - - public T getValue() { - return this.value; - } - - public void setValue(T value) { - T old = this.value; - this.value = value; - this.firePropertyChanged(VALUE, old, value); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.value); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelAdapter.java deleted file mode 100644 index 0f1ff4cf55..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelAdapter.java +++ /dev/null @@ -1,125 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.Range; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; - -/** - * An adapter that allows us to make a {@link CollectionValueModel} - * (or {@link ListValueModel}) behave like a {@link ListValueModel} - * that keeps its contents sorted and notifies listeners appropriately. - *

- * The {@link Comparator} can be changed at any time; allowing the same - * adapter to be used with different sort criteria (e.g. when the user - * wants to sort a list of files first by name, then by date, then by size). - *

- * NB: Since we only listen to the wrapped collection when we have - * listeners ourselves and we can only stay in synch with the wrapped - * collection while we are listening to it, results to various methods - * (e.g. {@link #size()}, {@link #get(int)}) will be - * unpredictable whenever - * we do not have any listeners. This should not be too painful since, - * most likely, client objects will also be listeners. - * - * @see SortedListValueModelWrapper - */ -public class SortedListValueModelAdapter - extends CollectionListValueModelAdapter -{ - /** - * A comparator used for sorting the elements; - * if it is null, we use "natural ordering". - */ - protected Comparator comparator; - - - // ********** constructors ********** - - /** - * Wrap the specified collection value model and sort its contents - * using the specified comparator. - */ - public SortedListValueModelAdapter(CollectionValueModel collectionHolder, Comparator comparator) { - super(collectionHolder); - this.comparator = comparator; - } - - /** - * Wrap the specified collection value model and sort its contents - * based on the elements' "natural ordering". - */ - public SortedListValueModelAdapter(CollectionValueModel collectionHolder) { - this(collectionHolder, null); - } - - - // ********** accessors ********** - - public void setComparator(Comparator comparator) { - this.comparator = comparator; - this.sortList(); - } - - - // ********** behavior ********** - - /** - * Sort the internal list before the superclass - * sends out change notification. - */ - @Override - protected void buildList(int size) { - super.buildList(size); - Collections.sort(this.list, this.comparator); - } - - /** - * Sort the list after adding the items. - */ - @Override - protected void itemsAdded(CollectionAddEvent event) { - @SuppressWarnings("unchecked") - ArrayList newList = (ArrayList) this.list.clone(); - newList.ensureCapacity(newList.size() + event.getItemsSize()); - CollectionTools.addAll(newList, this.getItems(event)); - Collections.sort(newList, this.comparator); - this.synchronizeList(newList, this.list, LIST_VALUES); - } - - @Override - protected Iterable buildSyncList() { - return CollectionTools.sortedSet(this.collectionHolder, this.comparator, this.collectionHolder.size()); - } - - /** - * sort the list and notify our listeners, if necessary; - */ - protected void sortList() { - // save the unsorted state of the sorted list so we can minimize the number of "replaced" items - @SuppressWarnings("unchecked") - ArrayList unsortedList = (ArrayList) this.list.clone(); - Collections.sort(this.list, this.comparator); - Range diffRange = CollectionTools.identityDiffRange(unsortedList, this.list); - if (diffRange.size > 0) { - List unsortedItems = unsortedList.subList(diffRange.start, diffRange.end + 1); - List sortedItems = this.list.subList(diffRange.start, diffRange.end + 1); - this.fireItemsReplaced(LIST_VALUES, diffRange.start, sortedItems, unsortedItems); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelWrapper.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelWrapper.java deleted file mode 100644 index 8514f37266..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/SortedListValueModelWrapper.java +++ /dev/null @@ -1,250 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.Range; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * A wrapper that keeps the contents of a {@link ListValueModel} sorted - * and notifies listeners appropriately. - *

- * The {@link Comparator} can be changed at any time; allowing the same - * adapter to be used with different sort criteria (e.g. when the user - * wants to sort a list of files first by name, then by date, then by size). - *

- * NB: Since we only listen to the wrapped collection when we have - * listeners ourselves and we can only stay in synch with the wrapped - * collection while we are listening to it, results to various methods - * (e.g. {@link #size()}, {@link #get(int)}) will be unpredictable whenever - * we do not have any listeners. This should not be too painful since, - * most likely, client objects will also be listeners. - * - * @see SortedListValueModelAdapter - */ -public class SortedListValueModelWrapper - extends ListValueModelWrapper - implements ListValueModel -{ - /** - * A comparator used for sorting the elements; - * if it is null, we use "natural ordering". - */ - protected Comparator comparator; - - /** - * Our internal list, which holds the same elements as - * the wrapped list, but keeps them sorted. - */ - // we declare this an ArrayList so we can use #clone() and #ensureCapacity(int) - protected final ArrayList sortedList; - - - // ********** constructors ********** - - /** - * Wrap the specified list value model and sort its contents - * using the specified comparator. - */ - public SortedListValueModelWrapper(ListValueModel listHolder, Comparator comparator) { - super(listHolder); - this.comparator = comparator; - this.sortedList = new ArrayList(listHolder.size()); - // postpone building the sorted list and listening to the wrapped list - // until we have listeners ourselves... - } - - /** - * Wrap the specified list value model and sort its contents - * based on the elements' "natural ordering". - */ - public SortedListValueModelWrapper(ListValueModel listHolder) { - this(listHolder, null); - } - - - // ********** ListValueModel implementation ********** - - public Iterator iterator() { - return this.listIterator(); - } - - public ListIterator listIterator() { - return new ReadOnlyListIterator(this.sortedList); - } - - public E get(int index) { - return this.sortedList.get(index); - } - - public int size() { - return this.sortedList.size(); - } - - public Object[] toArray() { - return this.sortedList.toArray(); - } - - - // ********** accessors ********** - - public void setComparator(Comparator comparator) { - this.comparator = comparator; - this.sortList(); - } - - - // ********** behavior ********** - - @Override - protected void engageModel() { - super.engageModel(); - // synch the sorted list *after* we start listening to the wrapped list holder, - // since its value might change when a listener is added - this.buildSortedList(); - } - - @Override - protected void disengageModel() { - super.disengageModel(); - // clear out the sorted list when we are not listening to the wrapped list holder - this.sortedList.clear(); - } - - protected void buildSortedList() { - // if the new list is empty, do nothing - int size = this.listHolder.size(); - if (size != 0) { - this.buildSortedList(size); - } - } - - protected void buildSortedList(int size) { - this.sortedList.ensureCapacity(size); - for (E each : this.listHolder) { - this.sortedList.add(each); - } - Collections.sort(this.sortedList, this.comparator); - } - - - // ********** list change support ********** - - /** - * Items were added to the wrapped list. - */ - @Override - protected void itemsAdded(ListAddEvent event) { - // first add the items and notify our listeners... - this.addItemsToList(this.getItems(event), this.sortedList, LIST_VALUES); - // ...then sort the list and notify our listeners - this.sortList(); - } - - /** - * Items were removed from the wrapped list. - */ - @Override - protected void itemsRemoved(ListRemoveEvent event) { - this.removeItemsFromList(this.getItems(event), this.sortedList, LIST_VALUES); - // no sorting needed - } - - /** - * Items were replaced in the wrapped list. - */ - @Override - protected void itemsReplaced(ListReplaceEvent event) { - // first remove the old items and notify our listeners... - this.removeItemsFromList(this.getOldItems(event), this.sortedList, LIST_VALUES); - // then add the new items and notify our listeners... - this.addItemsToList(this.getNewItems(event), this.sortedList, LIST_VALUES); - // ...then sort the list and notify our listeners - this.sortList(); - } - - /** - * Items were moved in the wrapped list. - */ - @Override - protected void itemsMoved(ListMoveEvent event) { - // do nothing - sort order should remain unchanged - } - - /** - * The wrapped list was cleared. - */ - @Override - protected void listCleared(ListClearEvent event) { - this.clearList(this.sortedList, LIST_VALUES); - } - - /** - * The wrapped list has changed in some dramatic fashion. - * Rebuild our sorted list and notify our listeners. - */ - @Override - protected void listChanged(ListChangeEvent event) { - int size = this.listHolder.size(); - if (size == 0) { - if (this.sortedList.isEmpty()) { - // no change - } else { - this.clearList(this.sortedList, LIST_VALUES); - } - } else { - if (this.sortedList.isEmpty()) { - this.buildSortedList(size); - this.fireItemsAdded(LIST_VALUES, 0, this.sortedList); - } else { - this.sortedList.clear(); - this.buildSortedList(size); - this.fireListChanged(LIST_VALUES, this.sortedList); - } - } - } - - /** - * sort the sorted list and notify our listeners, if necessary; - */ - protected void sortList() { - // save the unsorted state of the sorted list so we can minimize the number of "replaced" items - @SuppressWarnings("unchecked") - ArrayList unsortedList = (ArrayList) this.sortedList.clone(); - Collections.sort(this.sortedList, this.comparator); - Range diffRange = CollectionTools.identityDiffRange(unsortedList, this.sortedList); - if (diffRange.size > 0) { - List unsortedItems = unsortedList.subList(diffRange.start, diffRange.end + 1); - List sortedItems = this.sortedList.subList(diffRange.start, diffRange.end + 1); - this.fireItemsReplaced(LIST_VALUES, diffRange.start, sortedItems, unsortedItems); - } - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.sortedList); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StatePropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StatePropertyValueModelAdapter.java deleted file mode 100644 index 6d179ffa63..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StatePropertyValueModelAdapter.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; - -/** - * This abstract class provides the infrastructure needed to wrap - * a model, "lazily" listen to it, and convert - * its state change notifications into property value model change - * notifications. - *

- * Subclasses must implement:

    - *
  • {@link #buildValue()}

    - * to return the current property value, as derived from the - * current model - *

- * Subclasses might want to override the following methods - * to improve performance (by not recalculating the value, if possible):
    - *
  • {@link #stateChanged(StateChangeEvent event)} - *
- */ -public abstract class StatePropertyValueModelAdapter - extends AbstractPropertyValueModelAdapter -{ - /** The wrapped model. */ - protected final Model model; - - /** A listener that allows us to synch with changes to the wrapped model. */ - protected final StateChangeListener stateChangeListener; - - - // ********** constructor/initialization ********** - - /** - * Construct a property value model with the specified wrapped model. - */ - protected StatePropertyValueModelAdapter(Model model) { - super(); - this.model = model; - this.stateChangeListener = this.buildStateChangeListener(); - } - - protected StateChangeListener buildStateChangeListener() { - return new StateChangeListener() { - public void stateChanged(StateChangeEvent event) { - StatePropertyValueModelAdapter.this.stateChanged(event); - } - @Override - public String toString() { - return "state change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - /** - * Start listening to the model. - */ - @Override - protected void engageModel_() { - this.model.addStateChangeListener(this.stateChangeListener); - } - - /** - * Stop listening to the model. - */ - @Override - protected void disengageModel_() { - this.model.removeStateChangeListener(this.stateChangeListener); - } - - - // ********** state change support ********** - - /** - * The model's state changed; - * propagate the change notification appropriately. - */ - protected void stateChanged(@SuppressWarnings("unused") StateChangeEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticCollectionValueModel.java deleted file mode 100644 index 854528690a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticCollectionValueModel.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; - -/** - * Implementation of {@link CollectionValueModel} that can be used for - * returning an iterator on a static collection, but still allows listeners to be added. - * Listeners will never be notified of any changes, because there should be none. - */ -public class StaticCollectionValueModel - extends AbstractModel - implements CollectionValueModel -{ - /** The elements. */ - protected final Object[] elements; - - private static final long serialVersionUID = 1L; - - - /** - * Construct a static collection value model for the specified array. - */ - public StaticCollectionValueModel(E... elements) { - super(); - this.elements = elements.clone(); - } - - /** - * Construct a static collection value model for the specified elements. - */ - public StaticCollectionValueModel(Iterable elements) { - super(); - this.elements = ArrayTools.array(elements); - } - - - // ********** CollectionValueModel implementation ********** - - public int size() { - return this.elements.length; - } - - @SuppressWarnings("unchecked") - public Iterator iterator() { - // we can cast here since our constructors require the elements to be - // of type E and ArrayIterator is read-only - return (Iterator) new ArrayIterator(this.elements); - } - - - // ********** Object overrides ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(Arrays.toString(this.elements)); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticListValueModel.java deleted file mode 100644 index c08b6f42e8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticListValueModel.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; -import java.util.Iterator; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayListIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * Implementation of {@link ListValueModel} that can be used for - * returning a list iterator on a static list, but still allows listeners to be added. - * Listeners will never be notified of any changes, because there should be none. - */ -public class StaticListValueModel - extends AbstractModel - implements ListValueModel -{ - /** The elements. */ - protected final Object[] elements; - - private static final long serialVersionUID = 1L; - - - /** - * Construct a static list value model for the specified elements. - */ - public StaticListValueModel(E... elements) { - super(); - this.elements = elements.clone(); - } - - /** - * Construct a static list value model for the specified elements. - */ - public StaticListValueModel(Iterable elements) { - super(); - this.elements = ArrayTools.array(elements); - } - - - // ********** ListValueModel implementation ********** - - @SuppressWarnings("unchecked") - public Iterator iterator() { - // we can cast here since our constructors require the elements to be - // of type E and ArrayIterator is read-only - return (Iterator) new ArrayIterator(this.elements); - } - - @SuppressWarnings("unchecked") - public ListIterator listIterator() { - // we can cast here since our constructors require the elements to be - // of type E and ArrayListIterator is read-only - return (ListIterator) new ArrayListIterator(this.elements); - } - - public int size() { - return this.elements.length; - } - - @SuppressWarnings("unchecked") - public E get(int index) { - // we can cast here since our constructors require the elements to be - // of type E - return (E) this.elements[index]; - } - - public Object[] toArray() { - return this.elements.clone(); - } - - - // ********** Object overrides ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(Arrays.toString(this.elements)); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticPropertyValueModel.java deleted file mode 100644 index 678f5aaefd..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticPropertyValueModel.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * Implementation of {@link PropertyValueModel} that can be used for - * returning a static value, but still allows listeners to be added. - * Listeners will never be notified of any changes, because there should be none. - */ -public class StaticPropertyValueModel - extends AbstractModel - implements PropertyValueModel -{ - /** The value. */ - protected final T value; - - private static final long serialVersionUID = 1L; - - - /** - * Construct a static property value model for the specified value. - */ - public StaticPropertyValueModel(T value) { - super(); - this.value = value; - } - - - // ********** PropertyValueModel implementation ********** - - public T getValue() { - return this.value; - } - - - // ********** Object overrides ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(this.value); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticTreeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticTreeValueModel.java deleted file mode 100644 index 576e608985..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/StaticTreeValueModel.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Iterator; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.value.TreeValueModel; - -/** - * Implementation of {@link TreeValueModel} that can be used for - * returning an iterator on a static tree, but still allows listeners to be added. - * Listeners will never be notified of any changes, because there should be none. - */ -public class StaticTreeValueModel - extends AbstractModel - implements TreeValueModel -{ - /** The tree's nodes. */ - protected final Iterable nodes; - - private static final long serialVersionUID = 1L; - - - /** - * Construct a read-only tree value model for the specified nodes. - */ - public StaticTreeValueModel(Iterable nodes) { - super(); - if (nodes == null) { - throw new NullPointerException(); - } - this.nodes = nodes; - } - - // ********** TreeValueModel implementation ********** - - public Iterator nodes() { - return new ReadOnlyIterator(this.nodes.iterator()); - } - - - // ********** Object overrides ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(this.nodes); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationListValueModel.java deleted file mode 100644 index 4a241b3004..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationListValueModel.java +++ /dev/null @@ -1,309 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * An adapter that allows us to transform a {@link ListValueModel} - * (or adapted {@link CollectionValueModel}) into a read-only {@link ListValueModel} - * whose items are tranformations of the items in the wrapped - * {@link ListValueModel}. It will keep its contents in synch with - * the contents of the wrapped {@link ListValueModel} and notifies its - * listeners of any changes. - *

- * The {@link Transformer} can be changed at any time; allowing the same - * adapter to be used with different transformations. - *

- * As an alternative to building a {@link Transformer}, - * a subclass of TransformationListValueModelAdapter can - * either override {@link #transformItem_(Object)} or, - * if something other than null should be returned when the wrapped item - * is null, override {@link #transformItem(Object)}. - *

- * NB: Since we only listen to the wrapped list when we have - * listeners ourselves and we can only stay in synch with the wrapped - * list while we are listening to it, results to various methods - * (e.g. {@link #size()}, {@link #get(int)}) will be unpredictable whenever - * we do not have any listeners. This should not be too painful since, - * most likely, clients will also be listeners. - * - * @see Transformer - */ -public class TransformationListValueModel - extends ListValueModelWrapper - implements ListValueModel -{ - - /** This transforms the items, unless the subclass overrides {@link #transformItem(Object)}). */ - protected Transformer transformer; - - /** The list of transformed items. */ - protected final List transformedList; - - - // ********** constructors ********** - - /** - * Construct a list value model with the specified nested - * list value model and transformer. - */ - public TransformationListValueModel(ListValueModel listHolder, Transformer transformer) { - super(listHolder); - this.transformer = transformer; - this.transformedList = new ArrayList(); - } - - /** - * Construct a list value model with the specified nested - * list value model and the default transformer. - * Use this constructor if you want to override - * {@link #transformItem_(Object)} or {@link #transformItem(Object)} - * method instead of building a {@link Transformer}. - */ - public TransformationListValueModel(ListValueModel listHolder) { - super(listHolder); - this.transformer = this.buildTransformer(); - this.transformedList = new ArrayList(); - } - - /** - * Construct a list value model with the specified nested - * collection value model and transformer. - */ - public TransformationListValueModel(CollectionValueModel collectionHolder, Transformer transformer) { - this(new CollectionListValueModelAdapter(collectionHolder), transformer); - } - - /** - * Construct a list value model with the specified nested - * collection value model and the default transformer. - * Use this constructor if you want to override - * {@link #transformItem_(Object)} or {@link #transformItem(Object)} - * method instead of building a {@link Transformer}. - */ - public TransformationListValueModel(CollectionValueModel collectionHolder) { - this(new CollectionListValueModelAdapter(collectionHolder)); - } - - protected Transformer buildTransformer() { - return new DefaultTransformer(); - } - - - // ********** ListValueModel implementation ********** - - public Iterator iterator() { - return this.listIterator(); - } - - public ListIterator listIterator() { - return new ReadOnlyListIterator(this.transformedList); - } - - public E2 get(int index) { - return this.transformedList.get(index); - } - - public int size() { - return this.transformedList.size(); - } - - public Object[] toArray() { - return this.transformedList.toArray(); - } - - // ********** behavior ********** - - @Override - protected void engageModel() { - super.engageModel(); - // synch the transformed list *after* we start listening to the list holder, - // since its value might change when a listener is added - this.transformedList.addAll(this.transformItems(this.listHolder)); - } - - @Override - protected void disengageModel() { - super.disengageModel(); - // clear out the list when we are not listening to the collection holder - this.transformedList.clear(); - } - - /** - * Transform the items in the specified list value model. - */ - protected List transformItems(ListValueModel lvm) { - return this.transformItems(lvm, lvm.size()); - } - - /** - * Transform the items associated with the specified event. - */ - protected List transformItems(ListAddEvent event) { - return this.transformItems(this.getItems(event), event.getItemsSize()); - } - - /** - * Transform the items associated with the specified event. - */ - protected List transformItems(ListRemoveEvent event) { - return this.transformItems(this.getItems(event), event.getItemsSize()); - } - - /** - * Transform the new items associated with the specified event. - */ - protected List transformNewItems(ListReplaceEvent event) { - return this.transformItems(this.getNewItems(event), event.getItemsSize()); - } - - /** - * Transform the old items associated with the specified event. - */ - protected List transformOldItems(ListReplaceEvent event) { - return this.transformItems(this.getOldItems(event), event.getItemsSize()); - } - - /** - * Transform the specified items. - */ - protected List transformItems(Iterable items, int size) { - List result = new ArrayList(size); - for (E1 item : items) { - result.add(this.transformItem(item)); - } - return result; - } - - /** - * Transform the specified item. - */ - protected E2 transformItem(E1 item) { - return this.transformer.transform(item); - } - - /** - * Transform the specified, non-null, item and return the result. - */ - protected E2 transformItem_(@SuppressWarnings("unused") E1 item) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - /** - * Change the transformer and rebuild the collection. - */ - public void setTransformer(Transformer transformer) { - this.transformer = transformer; - this.rebuildTransformedList(); - } - - /** - * Synchronize our cache with the wrapped collection. - */ - protected void rebuildTransformedList() { - this.synchronizeList(this.transformItems(this.listHolder), this.transformedList, LIST_VALUES); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.transformedList); - } - - - // ********** list change support ********** - - /** - * Items were added to the wrapped list holder. - * Transform them, add them to our transformation list, - * and notify our listeners. - */ - @Override - protected void itemsAdded(ListAddEvent event) { - this.addItemsToList(event.getIndex(), this.transformItems(event), this.transformedList, LIST_VALUES); - } - - /** - * Items were removed from the wrapped list holder. - * Remove the corresponding items from our transformation list - * and notify our listeners. - */ - @Override - protected void itemsRemoved(ListRemoveEvent event) { - this.removeItemsFromList(event.getIndex(), event.getItemsSize(), this.transformedList, LIST_VALUES); - } - - /** - * Items were replaced in the wrapped list holder. - * Replace the corresponding items in our transformation list - * and notify our listeners. - */ - @Override - protected void itemsReplaced(ListReplaceEvent event) { - this.setItemsInList(event.getIndex(), this.transformNewItems(event), this.transformedList, LIST_VALUES); - } - - /** - * Items were moved in the wrapped list holder. - * Move the corresponding items in our transformation list - * and notify our listeners. - */ - @Override - protected void itemsMoved(ListMoveEvent event) { - this.moveItemsInList(event.getTargetIndex(), event.getSourceIndex(), event.getLength(), this.transformedList, LIST_VALUES); - } - - /** - * The wrapped list holder was cleared. - * Clear our transformation list and notify our listeners. - */ - @Override - protected void listCleared(ListClearEvent event) { - this.clearList(this.transformedList, LIST_VALUES); - } - - /** - * The wrapped list holder has changed in some dramatic fashion. - * Rebuild our transformation list and notify our listeners. - */ - @Override - protected void listChanged(ListChangeEvent event) { - this.rebuildTransformedList(); - } - - - // ********** default transformer ********** - - /** - * The default transformer will return null if the wrapped item is null. - * If the wrapped item is not null, it is transformed by a subclass - * implementation of {@link TransformationListValueModel#transformItem_(Object)}. - */ - protected class DefaultTransformer implements Transformer { - public E2 transform(E1 item) { - return (item == null) ? null : TransformationListValueModel.this.transformItem_(item); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationPropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationPropertyValueModel.java deleted file mode 100644 index 6c7dadb7c4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationPropertyValueModel.java +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * A TransformationPropertyValueModel wraps another - * {@link PropertyValueModel} and uses a {@link Transformer} - * to transform the wrapped value before it is returned by {@link #getValue()}. - *

- * As an alternative to building a {@link Transformer}, - * a subclass of TransformationPropertyValueModel can - * either override {@link #transform_(Object)} or, - * if something other than null should be returned when the wrapped value - * is null, override {@link #transform(Object)}. - * - * @see Transformer - */ -public class TransformationPropertyValueModel - extends PropertyValueModelWrapper - implements PropertyValueModel -{ - protected final Transformer transformer; - - - // ********** constructors/initialization ********** - - /** - * Construct a property value model with the specified nested - * property value model and the default transformer. - * Use this constructor if you want to override - * {@link #transform_(Object)} or {@link #transform(Object)} - * method instead of building a {@link Transformer}. - */ - public TransformationPropertyValueModel(PropertyValueModel valueHolder) { - super(valueHolder); - this.transformer = this.buildTransformer(); - } - - /** - * Construct a property value model with the specified nested - * property value model and transformer. - */ - public TransformationPropertyValueModel(PropertyValueModel valueHolder, Transformer transformer) { - super(valueHolder); - this.transformer = transformer; - } - - protected Transformer buildTransformer() { - return new DefaultTransformer(); - } - - - // ********** PropertyValueModel implementation ********** - - public T2 getValue() { - // transform the object returned by the nested value model before returning it - return this.transform(this.valueHolder.getValue()); - } - - - // ********** PropertyValueModelWrapper implementation ********** - - @Override - protected void valueChanged(PropertyChangeEvent event) { - // transform the values before propagating the change event - @SuppressWarnings("unchecked") - T1 eventOldValue = (T1) event.getOldValue(); - Object oldValue = this.transformOld(eventOldValue); - @SuppressWarnings("unchecked") - T1 eventNewValue = (T1) event.getNewValue(); - Object newValue = this.transformNew(eventNewValue); - this.firePropertyChanged(VALUE, oldValue, newValue); - } - - - // ********** behavior ********** - - /** - * Transform the specified value and return the result. - * This is called by - * {@link #getValue()}, - * {@link #transformOld(Object)}, and - * {@link #transformNew(Object)}. - */ - protected T2 transform(T1 value) { - return this.transformer.transform(value); - } - - /** - * Transform the specified, non-null, value and return the result. - */ - protected T2 transform_(@SuppressWarnings("unused") T1 value) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - /** - * Transform the specified old value and return the result. - * By default, call {@link #transform(Object)}. - * This is called by {@link #valueChanged(PropertyChangeEvent)}. - */ - protected T2 transformOld(T1 value) { - return this.transform(value); - } - - /** - * Transform the specified new value and return the result. - * By default, call {@link #transform(Object)}. - * This is called by {@link #valueChanged(PropertyChangeEvent)}. - */ - protected T2 transformNew(T1 value) { - return this.transform(value); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getValue()); - } - - - // ********** default transformer ********** - - /** - * The default transformer will return null if the wrapped value is null. - * If the wrapped value is not null, it is transformed by a subclass - * implementation of {@link TransformationPropertyValueModel#transform_(Object)}. - */ - protected class DefaultTransformer implements Transformer { - public T2 transform(T1 value) { - return (value == null) ? null : TransformationPropertyValueModel.this.transform_(value); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationWritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationWritablePropertyValueModel.java deleted file mode 100644 index 1d42d4c54e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TransformationWritablePropertyValueModel.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.BidiTransformer; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * A TransformationWritablePropertyValueModel wraps another - * {@link WritablePropertyValueModel} and uses a {@link BidiTransformer} - * to:

    - *
  • transform the wrapped value before it is returned by {@link #getValue()} - *
  • "reverse-transform" the new value that comes in via - * {@link #setValue(Object)} - *
- * As an alternative to building a {@link BidiTransformer}, - * a subclass of TransformationWritablePropertyValueModel can - * override {@link #transform_(Object)} and {@link #reverseTransform_(Object)}; - * or, if something other than null should be returned when the wrapped value - * is null or the new value is null, override {@link #transform(Object)} - * and {@link #reverseTransform(Object)}. - */ -public class TransformationWritablePropertyValueModel - extends TransformationPropertyValueModel - implements WritablePropertyValueModel -{ - - // ********** constructors/initialization ********** - - /** - * Construct a writable property value model with the specified nested - * writable property value model and the default bidi transformer. - * Use this constructor if you want to override the - * {@link #transform_(Object)} and {@link #reverseTransform_(Object)} - * (or {@link #transform(Object)} and {@link #reverseTransform(Object)}) - * methods instead of building a {@link BidiTransformer}. - */ - public TransformationWritablePropertyValueModel(WritablePropertyValueModel valueHolder) { - super(valueHolder); - } - - /** - * Construct a writable property value model with the specified nested - * writable property value model and bidi transformer. - */ - public TransformationWritablePropertyValueModel(WritablePropertyValueModel valueHolder, BidiTransformer transformer) { - super(valueHolder, transformer); - } - - @Override - protected BidiTransformer buildTransformer() { - return new DefaultBidiTransformer(); - } - - - // ********** WritablePropertyValueModel implementation ********** - - public void setValue(T2 value) { - // "reverse-transform" the object before passing it to the the nested value model - this.getValueHolder().setValue(this.reverseTransform(value)); - } - - - // ********** behavior ********** - - /** - * "Reverse-transform" the specified value and return the result. - * This is called by {@link #setValue(Object)}. - */ - protected T1 reverseTransform(T2 value) { - return this.getTransformer().reverseTransform(value); - } - - /** - * "Reverse-transform" the specified, non-null, - * value and return the result. - */ - protected T1 reverseTransform_(@SuppressWarnings("unused") T2 value) { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - - - // ********** queries ********** - - /** - * Our constructors accept only a {@link WritablePropertyValueModel}, - * so this cast should be safe. - */ - @SuppressWarnings("unchecked") - protected WritablePropertyValueModel getValueHolder() { - return (WritablePropertyValueModel) this.valueHolder; - } - - /** - * Our constructors accept only a {@link BidiTransformer}, - * so this cast should be safe. - */ - protected BidiTransformer getTransformer() { - return (BidiTransformer) this.transformer; - } - - - // ********** default bidi transformer ********** - - /** - * The default bidi transformer will return null if the - * wrapped value is null. - * If the wrapped value is not null, it is transformed by a subclass - * implementation of {@link #transform_(Object)}. - * The default bidi transformer will also return null - * if the new value is null. - * If the new value is not null, it is reverse-transformed - * by a subclass implementation of {@link #reverseTransform_(Object)}. - */ - protected class DefaultBidiTransformer - extends DefaultTransformer - implements BidiTransformer - { - public T1 reverseTransform(T2 value) { - return (value == null) ? null : TransformationWritablePropertyValueModel.this.reverseTransform_(value); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreeAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreeAspectAdapter.java deleted file mode 100644 index 178d1ed2bb..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreeAspectAdapter.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; -import java.util.Collection; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This extension of {@link AspectTreeValueModelAdapter} provides - * basic tree change support. - * This converts a set of one or more trees into - * a single {@link #NODES} tree. - *

- * The typical subclass will override the following methods (see the descriptions - * in {@link AspectTreeValueModelAdapter}):

    - *
  • {@link #nodes_()} - *
  • {@link #nodes()} - *
- */ -public abstract class TreeAspectAdapter - extends AspectTreeValueModelAdapter -{ - /** - * The name of the subject's trees that we use for the value. - */ - protected final String[] treeNames; - protected static final String[] EMPTY_TREE_NAMES = new String[0]; - - /** A listener that listens to the subject's tree aspects. */ - protected final TreeChangeListener treeChangeListener; - - - // ********** constructors ********** - - /** - * Construct a tree aspect adapter for the specified subject - * and tree. - */ - protected TreeAspectAdapter(String treeName, S subject) { - this(new String[] {treeName}, subject); - } - - /** - * Construct a tree aspect adapter for the specified subject - * and trees. - */ - protected TreeAspectAdapter(String[] treeNames, S subject) { - this(new StaticPropertyValueModel(subject), treeNames); - } - - /** - * Construct a tree aspect adapter for the specified subject holder - * and trees. - */ - protected TreeAspectAdapter(PropertyValueModel subjectHolder, String... treeNames) { - super(subjectHolder); - this.treeNames = treeNames; - this.treeChangeListener = this.buildTreeChangeListener(); - } - - /** - * Construct a tree aspect adapter for the specified subject holder - * and trees. - */ - protected TreeAspectAdapter(PropertyValueModel subjectHolder, Collection treeNames) { - this(subjectHolder, treeNames.toArray(new String[treeNames.size()])); - } - - /** - * Construct a tree aspect adapter for an "unchanging" tree in - * the specified subject. This is useful for a tree aspect that does not - * change for a particular subject; but the subject will change, resulting in - * a new tree. - */ - protected TreeAspectAdapter(PropertyValueModel subjectHolder) { - this(subjectHolder, EMPTY_TREE_NAMES); - } - - - // ********** initialization ********** - - protected TreeChangeListener buildTreeChangeListener() { - // transform the subject's tree change events into VALUE tree change events - return new TreeChangeListener() { - public void nodeAdded(TreeAddEvent event) { - TreeAspectAdapter.this.nodeAdded(event); - } - public void nodeRemoved(TreeRemoveEvent event) { - TreeAspectAdapter.this.nodeRemoved(event); - } - public void treeCleared(TreeClearEvent event) { - TreeAspectAdapter.this.treeCleared(event); - } - public void treeChanged(TreeChangeEvent event) { - TreeAspectAdapter.this.treeChanged(event); - } - @Override - public String toString() { - return "tree change listener: " + Arrays.asList(TreeAspectAdapter.this.treeNames); //$NON-NLS-1$ - } - }; - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected void engageSubject_() { - for (String treeName : this.treeNames) { - ((Model) this.subject).addTreeChangeListener(treeName, this.treeChangeListener); - } - } - - @Override - protected void disengageSubject_() { - for (String treeName : this.treeNames) { - ((Model) this.subject).removeTreeChangeListener(treeName, this.treeChangeListener); - } - } - - - // ********** behavior ********** - - protected void nodeAdded(TreeAddEvent event) { - this.fireNodeAdded(event.clone(this, NODES)); - } - - protected void nodeRemoved(TreeRemoveEvent event) { - this.fireNodeRemoved(event.clone(this, NODES)); - } - - protected void treeCleared(TreeClearEvent event) { - this.fireTreeCleared(event.clone(this, NODES)); - } - - protected void treeChanged(TreeChangeEvent event) { - this.fireTreeChanged(event.clone(this, NODES)); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreePropertyValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreePropertyValueModelAdapter.java deleted file mode 100644 index 66258c2108..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/TreePropertyValueModelAdapter.java +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; -import org.eclipse.jpt.common.utility.model.value.TreeValueModel; - -/** - * This abstract class provides the infrastructure needed to wrap - * a tree value model, "lazily" listen to it, and convert - * its change notifications into property value model change - * notifications. - *

- * Subclasses must override:

    - *
  • {@link #buildValue()}

    - * to return the current property value, as derived from the - * current collection value - *

- * Subclasses might want to override the following methods - * to improve performance (by not recalculating the value, if possible):
    - *
  • {@link #nodeAdded(TreeChangeEvent event)} - *
  • {@link #nodeRemoved(TreeChangeEvent event)} - *
  • {@link #treeCleared(TreeChangeEvent event)} - *
  • {@link #treeChanged(TreeChangeEvent event)} - *
- */ -public abstract class TreePropertyValueModelAdapter - extends AbstractPropertyValueModelAdapter -{ - /** The wrapped tree value model. */ - protected final TreeValueModel treeHolder; - - /** A listener that allows us to synch with changes to the wrapped tree holder. */ - protected final TreeChangeListener treeChangeListener; - - - // ********** constructor/initialization ********** - - /** - * Construct a property value model with the specified wrapped - * tree value model. - */ - protected TreePropertyValueModelAdapter(TreeValueModel treeHolder) { - super(); - this.treeHolder = treeHolder; - this.treeChangeListener = this.buildTreeChangeListener(); - } - - protected TreeChangeListener buildTreeChangeListener() { - return new TreeChangeListener() { - public void nodeAdded(TreeAddEvent event) { - TreePropertyValueModelAdapter.this.nodeAdded(event); - } - public void nodeRemoved(TreeRemoveEvent event) { - TreePropertyValueModelAdapter.this.nodeRemoved(event); - } - public void treeCleared(TreeClearEvent event) { - TreePropertyValueModelAdapter.this.treeCleared(event); - } - public void treeChanged(TreeChangeEvent event) { - TreePropertyValueModelAdapter.this.treeChanged(event); - } - @Override - public String toString() { - return "tree change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** behavior ********** - - /** - * Start listening to the tree holder. - */ - @Override - protected void engageModel_() { - this.treeHolder.addTreeChangeListener(TreeValueModel.NODES, this.treeChangeListener); - } - - /** - * Stop listening to the tree holder. - */ - @Override - protected void disengageModel_() { - this.treeHolder.removeTreeChangeListener(TreeValueModel.NODES, this.treeChangeListener); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.treeHolder); - } - - - // ********** state change support ********** - - /** - * Nodes were added to the wrapped tree holder; - * propagate the change notification appropriately. - */ - protected void nodeAdded(@SuppressWarnings("unused") TreeAddEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * Nodes were removed from the wrapped tree holder; - * propagate the change notification appropriately. - */ - protected void nodeRemoved(@SuppressWarnings("unused") TreeRemoveEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * The wrapped tree holder was cleared; - * propagate the change notification appropriately. - */ - protected void treeCleared(@SuppressWarnings("unused") TreeClearEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - - /** - * The wrapped tree holder changed; - * propagate the change notification appropriately. - */ - protected void treeChanged(@SuppressWarnings("unused") TreeChangeEvent event) { - // by default, simply recalculate the value and fire an event - this.propertyChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueAspectAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueAspectAdapter.java deleted file mode 100644 index 5876d5e444..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueAspectAdapter.java +++ /dev/null @@ -1,201 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Abstract class that provides support for wrapping a {@link WritablePropertyValueModel} - * and listening for changes to aspects of the value contained - * by the {@link WritablePropertyValueModel}. Changes to the {@link WritablePropertyValueModel}'s - * value are also monitored. - *

- * This is useful if you have a value that may change, but whose aspects can also - * change in a fashion that might be of interest to the client. - *

- * NB: Clients will need to listen for two different change notifications: - * a property change event will be be fired when the value changes; - * a state change event will be fired when an aspect of the value changes. - *

- * Subclasses need to override two methods:

    - *
  • {@link #engageValue_()}

    - * begin listening to the appropriate aspect of the value and call - * {@link #valueAspectChanged()} whenever the aspect changes - * (this will fire a state change event) - *

  • {@link #disengageValue_()}

    - * stop listening to the appropriate aspect of the value - *

- */ -public abstract class ValueAspectAdapter - extends PropertyValueModelWrapper - implements WritablePropertyValueModel -{ - /** Cache the value so we can disengage. Null until we have a listener*/ - protected V value; - - - // ********** constructors/initialization ********** - - /** - * Constructor - the value holder is required. - */ - protected ValueAspectAdapter(WritablePropertyValueModel valueHolder) { - super(valueHolder); - this.value = null; - } - - /** - * Override to allow both property and state change listeners. - */ - @Override - protected ChangeSupport buildChangeSupport() { - return new ChangeSupport(this); - } - - - // ********** PropertyValueModel implementation ********** - - public V getValue() { - return this.value; - } - - - // ********** WritablePropertyValueModel implementation ********** - - public void setValue(V value) { - this.getValueHolder().setValue(value); - } - - - // ********** PropertyValueModelWrapper implementation ********** - - @Override - protected void valueChanged(PropertyChangeEvent event) { - this.disengageValue(); - this.engageValue(); - this.firePropertyChanged(event.clone(this)); - } - - - // ********** extend change support ********** - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public synchronized void addStateChangeListener(StateChangeListener listener) { - if (this.hasNoListeners()) { - this.engageModel(); - } - super.addStateChangeListener(listener); - } - - /** - * Extend to stop listening to the underlying model if necessary. - */ - @Override - public synchronized void removeStateChangeListener(StateChangeListener listener) { - super.removeStateChangeListener(listener); - if (this.hasNoListeners()) { - this.disengageModel(); - } - } - - - // ********** AbstractPropertyValueModel overrides ********** - - /** - * Extend to check for state change listeners. - */ - @Override - protected boolean hasListeners() { - return this.hasAnyStateChangeListeners() || super.hasListeners(); - } - - - // ********** PropertyValueModelWrapper overrides ********** - - /** - * Extend to engage an aspect of the value model's value. - */ - @Override - protected void engageModel() { - super.engageModel(); - this.engageValue(); - } - - /** - * Extend to disengage an aspect of the value model's value. - */ - @Override - protected void disengageModel() { - this.disengageValue(); - super.disengageModel(); - } - - - // ********** behavior ********** - - /** - * Start listening to an aspect of the current value. - */ - protected void engageValue() { - this.value = this.valueHolder.getValue(); - if (this.value != null) { - this.engageValue_(); - } - } - - /** - * Start listening to some aspect of the current value. - * At this point we can be sure the value is not null. - */ - protected abstract void engageValue_(); - - /** - * Stop listening to an aspect of the current value. - */ - protected void disengageValue() { - if (this.value != null) { - this.disengageValue_(); - this.value = null; - } - } - - /** - * Stop listening to an aspect of the current value. - * At this point we can be sure the value is not null. - */ - protected abstract void disengageValue_(); - - /** - * Subclasses should call this method whenever the value's aspect changes. - */ - protected void valueAspectChanged() { - this.fireStateChanged(); - } - - /** - * Our constructor accepts only a {@link WritablePropertyValueModel}{@code}. - */ - @SuppressWarnings("unchecked") - protected WritablePropertyValueModel getValueHolder() { - return (WritablePropertyValueModel) this.valueHolder; - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getValue()); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueChangeAdapter.java deleted file mode 100644 index 36dca8e8dd..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueChangeAdapter.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.SimpleChangeListener; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Extend {@link ValueAspectAdapter} to listen to all the aspects - * of the value in the wrapped value model. - */ -public class ValueChangeAdapter - extends ValueAspectAdapter -{ - /** Listener that listens to the value. */ - protected final ChangeListener valueAspectListener; - - - // ********** constructors ********** - - /** - * Construct a change adapter for the specified value. - */ - public ValueChangeAdapter(WritablePropertyValueModel valueHolder) { - super(valueHolder); - this.valueAspectListener = this.buildValueAspectListener(); - } - - - // ********** initialization ********** - - protected ChangeListener buildValueAspectListener() { - return new SimpleChangeListener() { - @Override - protected void modelChanged(ChangeEvent event) { - ValueChangeAdapter.this.valueAspectChanged(event); - } - @Override - public String toString() { - return "value change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ValueAspectAdapter implementation ********** - - @Override - protected void engageValue_() { - this.value.addChangeListener(this.valueAspectListener); - } - - @Override - protected void disengageValue_() { - this.value.removeChangeListener(this.valueAspectListener); - } - - - // ********** change events ********** - - protected void valueAspectChanged(@SuppressWarnings("unused") ChangeEvent event) { - this.valueAspectChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueCollectionAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueCollectionAdapter.java deleted file mode 100644 index a06dfbb2f3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueCollectionAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Extend {@link ValueAspectAdapter} to listen to one or more collection - * aspects of the value in the wrapped value model. - */ -public class ValueCollectionAdapter - extends ValueAspectAdapter -{ - /** The names of the value's collections that we listen to. */ - protected final String[] collectionNames; - - /** Listener that listens to the value. */ - protected final CollectionChangeListener valueCollectionListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified value collections. - */ - public ValueCollectionAdapter(WritablePropertyValueModel valueHolder, String... collectionNames) { - super(valueHolder); - this.collectionNames = collectionNames; - this.valueCollectionListener = this.buildValueCollectionListener(); - } - - - // ********** initialization ********** - - protected CollectionChangeListener buildValueCollectionListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - ValueCollectionAdapter.this.itemsAdded(event); - } - public void itemsRemoved(CollectionRemoveEvent event) { - ValueCollectionAdapter.this.itemsRemoved(event); - } - public void collectionCleared(CollectionClearEvent event) { - ValueCollectionAdapter.this.collectionCleared(event); - } - public void collectionChanged(CollectionChangeEvent event) { - ValueCollectionAdapter.this.collectionChanged(event); - } - @Override - public String toString() { - return "value collection listener: " + Arrays.asList(ValueCollectionAdapter.this.collectionNames); //$NON-NLS-1$ - } - }; - } - - - // ********** ValueAspectAdapter implementation ********** - - @Override - protected void engageValue_() { - for (String collectionName : this.collectionNames) { - this.value.addCollectionChangeListener(collectionName, this.valueCollectionListener); - } - } - - @Override - protected void disengageValue_() { - for (String collectionName : this.collectionNames) { - this.value.removeCollectionChangeListener(collectionName, this.valueCollectionListener); - } - } - - - // ********** change events ********** - - protected void itemsAdded(@SuppressWarnings("unused") CollectionAddEvent event) { - this.valueAspectChanged(); - } - - protected void itemsRemoved(@SuppressWarnings("unused") CollectionRemoveEvent event) { - this.valueAspectChanged(); - } - - protected void collectionCleared(@SuppressWarnings("unused") CollectionClearEvent event) { - this.valueAspectChanged(); - } - - protected void collectionChanged(@SuppressWarnings("unused") CollectionChangeEvent event) { - this.valueAspectChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueListAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueListAdapter.java deleted file mode 100644 index ba69a17da3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueListAdapter.java +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Extend {@link ValueAspectAdapter} to listen to one or more list - * aspects of the value in the wrapped value model. - */ -public class ValueListAdapter - extends ValueAspectAdapter -{ - /** The names of the value's lists that we listen to. */ - protected final String[] listNames; - - /** Listener that listens to the value. */ - protected final ListChangeListener valueListListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified value lists. - */ - public ValueListAdapter(WritablePropertyValueModel valueHolder, String... listNames) { - super(valueHolder); - this.listNames = listNames; - this.valueListListener = this.buildValueListListener(); - } - - - // ********** initialization ********** - - protected ListChangeListener buildValueListListener() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - ValueListAdapter.this.itemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - ValueListAdapter.this.itemsRemoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - ValueListAdapter.this.itemsReplaced(event); - } - public void itemsMoved(ListMoveEvent event) { - ValueListAdapter.this.itemsMoved(event); - } - public void listCleared(ListClearEvent event) { - ValueListAdapter.this.listCleared(event); - } - public void listChanged(ListChangeEvent event) { - ValueListAdapter.this.listChanged(event); - } - @Override - public String toString() { - return "value list listener: " + Arrays.asList(ValueListAdapter.this.listNames); //$NON-NLS-1$ - } - }; - } - - - // ********** ValueAspectAdapter implementation ********** - - @Override - protected void engageValue_() { - for (String listName : this.listNames) { - this.value.addListChangeListener(listName, this.valueListListener); - } - } - - @Override - protected void disengageValue_() { - for (String listName : this.listNames) { - this.value.removeListChangeListener(listName, this.valueListListener); - } - } - - - // ********** change events ********** - - protected void itemsAdded(@SuppressWarnings("unused") ListAddEvent event) { - this.valueAspectChanged(); - } - - protected void itemsRemoved(@SuppressWarnings("unused") ListRemoveEvent event) { - this.valueAspectChanged(); - } - - protected void itemsReplaced(@SuppressWarnings("unused") ListReplaceEvent event) { - this.valueAspectChanged(); - } - - protected void itemsMoved(@SuppressWarnings("unused") ListMoveEvent event) { - this.valueAspectChanged(); - } - - protected void listCleared(@SuppressWarnings("unused") ListClearEvent event) { - this.valueAspectChanged(); - } - - protected void listChanged(@SuppressWarnings("unused") ListChangeEvent event) { - this.valueAspectChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValuePropertyAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValuePropertyAdapter.java deleted file mode 100644 index cbb6be7df8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValuePropertyAdapter.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Extend {@link ValueAspectAdapter} to listen to one or more - * properties of the value in the wrapped value model. - */ -public class ValuePropertyAdapter - extends ValueAspectAdapter -{ - /** The names of the value's properties we listen to. */ - protected final String[] propertyNames; - - /** Listener that listens to the value. */ - protected final PropertyChangeListener valuePropertyListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified value properties. - */ - public ValuePropertyAdapter(WritablePropertyValueModel valueHolder, String... propertyNames) { - super(valueHolder); - this.propertyNames = propertyNames; - this.valuePropertyListener = this.buildValuePropertyListener(); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildValuePropertyListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - ValuePropertyAdapter.this.propertyChanged(event); - } - @Override - public String toString() { - return "value property listener: " + Arrays.asList(ValuePropertyAdapter.this.propertyNames); //$NON-NLS-1$ - } - }; - } - - - // ********** ValueAspectAdapter implementation ********** - - @Override - protected void engageValue_() { - for (String propertyName : this.propertyNames) { - this.value.addPropertyChangeListener(propertyName, this.valuePropertyListener); - } - } - - @Override - protected void disengageValue_() { - for (String propertyName : this.propertyNames) { - this.value.removePropertyChangeListener(propertyName, this.valuePropertyListener); - } - } - - - // ********** change events ********** - - protected void propertyChanged(@SuppressWarnings("unused") PropertyChangeEvent event) { - this.valueAspectChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueStateAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueStateAdapter.java deleted file mode 100644 index ed9e6372c2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueStateAdapter.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Extend {@link ValueAspectAdapter} to listen to the - * "state" of the value in the wrapped value model. - */ -public class ValueStateAdapter - extends ValueAspectAdapter -{ - /** Listener that listens to value. */ - protected final StateChangeListener valueStateListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the value state. - */ - public ValueStateAdapter(WritablePropertyValueModel valueHolder) { - super(valueHolder); - this.valueStateListener = this.buildValueStateListener(); - } - - - // ********** initialization ********** - - protected StateChangeListener buildValueStateListener() { - return new StateChangeListener() { - public void stateChanged(StateChangeEvent event) { - ValueStateAdapter.this.stateChanged(event); - } - @Override - public String toString() { - return "value state listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ValueAspectAdapter implementation ********** - - @Override - protected void engageValue_() { - this.value.addStateChangeListener(this.valueStateListener); - } - - @Override - protected void disengageValue_() { - this.value.removeStateChangeListener(this.valueStateListener); - } - - - // ********** change events ********** - - protected void stateChanged(@SuppressWarnings("unused") StateChangeEvent event) { - this.valueAspectChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueTreeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueTreeAdapter.java deleted file mode 100644 index a8ec0af59a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/ValueTreeAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Arrays; - -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Extend {@link ValueAspectAdapter} to listen to one or more - * tree aspects of the value in the wrapped value model. - */ -public class ValueTreeAdapter - extends ValueAspectAdapter -{ - /** The names of the value's trees that we listen to. */ - protected final String[] treeNames; - - /** Listener that listens to the value. */ - protected final TreeChangeListener valueTreeListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified value trees. - */ - public ValueTreeAdapter(WritablePropertyValueModel valueHolder, String... treeNames) { - super(valueHolder); - this.treeNames = treeNames; - this.valueTreeListener = this.buildValueTreeListener(); - } - - - // ********** initialization ********** - - protected TreeChangeListener buildValueTreeListener() { - return new TreeChangeListener() { - public void nodeAdded(TreeAddEvent event) { - ValueTreeAdapter.this.nodeAdded(event); - } - public void nodeRemoved(TreeRemoveEvent event) { - ValueTreeAdapter.this.nodeRemoved(event); - } - public void treeCleared(TreeClearEvent event) { - ValueTreeAdapter.this.treeCleared(event); - } - public void treeChanged(TreeChangeEvent event) { - ValueTreeAdapter.this.treeChanged(event); - } - @Override - public String toString() { - return "value tree listener: " + Arrays.asList(ValueTreeAdapter.this.treeNames); //$NON-NLS-1$ - } - }; - } - - - // ********** ValueAspectAdapter implementation ********** - - @Override - protected void engageValue_() { - for (String treeName : this.treeNames) { - this.value.addTreeChangeListener(treeName, this.valueTreeListener); - } - } - - @Override - protected void disengageValue_() { - for (String treeName : this.treeNames) { - this.value.removeTreeChangeListener(treeName, this.valueTreeListener); - } - } - - - // ********** change events ********** - - protected void nodeAdded(@SuppressWarnings("unused") TreeAddEvent event) { - this.valueAspectChanged(); - } - - protected void nodeRemoved(@SuppressWarnings("unused") TreeRemoveEvent event) { - this.valueAspectChanged(); - } - - protected void treeCleared(@SuppressWarnings("unused") TreeClearEvent event) { - this.valueAspectChanged(); - } - - protected void treeChanged(@SuppressWarnings("unused") TreeChangeEvent event) { - this.valueAspectChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyCollectionValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyCollectionValueModelAdapter.java deleted file mode 100644 index be61d4904b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyCollectionValueModelAdapter.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * An adapter that allows us to make a {@link WritablePropertyValueModel} behave like - * a single-element {@link WritableCollectionValueModel}, sorta. - *

- * If the property's value is null, an empty iterator is returned - * (i.e. you can't have a collection with a null element). - * Also, only a single-element collection can be written to the adapter. - */ -public class WritablePropertyCollectionValueModelAdapter - extends PropertyCollectionValueModelAdapter - implements WritableCollectionValueModel -{ - - // ********** constructor ********** - - /** - * Convert the specified writable property value model to a writable - * collection value model. - */ - public WritablePropertyCollectionValueModelAdapter(WritablePropertyValueModel valueHolder) { - super(valueHolder); - } - - - // ********** WritableCollectionValueModel implementation ********** - - public void setValues(Iterable values) { - Iterator stream = values.iterator(); - if (stream.hasNext()) { - E newValue = stream.next(); - if (stream.hasNext()) { - throw new IllegalArgumentException("non-singleton collection: " + values); //$NON-NLS-1$ - } - this.getValueHolder().setValue(newValue); - } else { - this.getValueHolder().setValue(null); - } - } - - // our constructor takes only writable property value models - @SuppressWarnings("unchecked") - protected WritablePropertyValueModel getValueHolder() { - return (WritablePropertyValueModel) this.valueHolder; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyListValueModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyListValueModelAdapter.java deleted file mode 100644 index c9f30847cd..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/WritablePropertyListValueModelAdapter.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value; - -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.model.value.WritableListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * An adapter that allows us to make a {@link WritablePropertyValueModel} behave like - * a single-element {@link WritableListValueModel}, sorta. - *

- * If the property's value is null, an empty iterator is returned - * (i.e. you can't have a list with a null element). - * Also, only a single-element list can be written to the adapter. - */ -public class WritablePropertyListValueModelAdapter - extends PropertyListValueModelAdapter - implements WritableListValueModel -{ - - // ********** constructor ********** - - /** - * Convert the specified writable property value model to a writable - * collection value model. - */ - public WritablePropertyListValueModelAdapter(WritablePropertyValueModel valueHolder) { - super(valueHolder); - } - - - // ********** WritableListValueModel implementation ********** - - public void setListValues(Iterable listValues) { - Iterator stream = listValues.iterator(); - if (stream.hasNext()) { - E newValue = stream.next(); - if (stream.hasNext()) { - throw new IllegalArgumentException("non-singleton list: " + listValues); //$NON-NLS-1$ - } - this.getValueHolder().setValue(newValue); - } else { - this.getValueHolder().setValue(null); - } - } - - // our constructor takes only writable property value models - @SuppressWarnings("unchecked") - protected WritablePropertyValueModel getValueHolder() { - return (WritablePropertyValueModel) this.valueHolder; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencePropertyValueModel.java deleted file mode 100644 index 2b6670abe4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencePropertyValueModel.java +++ /dev/null @@ -1,346 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.prefs; - -import java.util.EventListener; -import java.util.prefs.PreferenceChangeEvent; -import java.util.prefs.PreferenceChangeListener; -import java.util.prefs.Preferences; - -import org.eclipse.jpt.common.utility.internal.BidiStringConverter; -import org.eclipse.jpt.common.utility.internal.model.value.AspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This adapter wraps a Preference and converts it into a PropertyValueModel. - * It listens for the appropriate "preference" changes and converts them into - * VALUE property changes. It also allows the specification of a default value - * for the Preference, which, by default, is null (and is probably *not* a very - * good default). - * - * You can configure whether the preference's value is returned, - * unchanged, as a string or as some other object (e.g. an Integer) by - * setting the adapter's converter. Internally, the preference's value - * is stored as the converted object; and the conversions take place - * when reading or writing from the preferences node or retrieving the - * value from an event fired by the preferences node. - * - * This adapter is a bit different from most other adapters because the - * change events fired off by a Preferences node are asynchronous from - * the change itself. (AbstractPreferences uses an event dispatch daemon.) - * As a result, a client can set our value with #setValue(Object) and we - * will return from that method before we ever receive notification from - * the Preferences node that *it* has changed. This means we cannot - * rely on that event to keep our internally cached value in synch. - */ -public class PreferencePropertyValueModel

- extends AspectAdapter - implements WritablePropertyValueModel

-{ - /** The key to the preference we use for the value. */ - protected final String key; - - /** - * Cache the current (object) value of the preference so we - * can pass an "old value" when we fire a property change event. - */ - protected P value; - - /** - * The default (object) value returned if there is no value - * associated with the preference. - */ - protected final P defaultValue; - - /** - * This converter is used to convert the preference's - * string value to and from an object. - */ - protected final BidiStringConverter

converter; - - /** A listener that listens to the appropriate preference. */ - protected final PreferenceChangeListener preferenceChangeListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified preference. - * The default value of the preference will be null. - */ - public PreferencePropertyValueModel(Preferences preferences, String key) { - this(preferences, key, null); - } - - /** - * Construct an adapter for the specified preference with - * the specified default value for the preference. - */ - public PreferencePropertyValueModel(Preferences preferences, String key, P defaultValue) { - this(preferences, key, defaultValue, BidiStringConverter.Default.

instance()); - } - - /** - * Construct an adapter for the specified preference with - * the specified default value for the preference. - */ - public PreferencePropertyValueModel(Preferences preferences, String key, P defaultValue, BidiStringConverter

converter) { - this(new StaticPropertyValueModel(preferences), key, defaultValue, converter); - } - - /** - * Construct an adapter for the specified preference with - * the specified default value for the preference. - */ - public static PreferencePropertyValueModel forBoolean(Preferences preferences, String key, boolean defaultValue) { - return new PreferencePropertyValueModel( - preferences, - key, - defaultValue ? Boolean.TRUE : Boolean.FALSE, - BidiStringConverter.BooleanConverter.instance() - ); - } - - /** - * Construct an adapter for the specified preference with - * the specified default value for the preference. - */ - public static PreferencePropertyValueModel forInteger(Preferences preferences, String key, int defaultValue) { - return new PreferencePropertyValueModel( - preferences, - key, - Integer.valueOf(defaultValue), - BidiStringConverter.IntegerConverter.instance() - ); - } - - /** - * Construct an adapter for the specified preference. - * The default value of the preference will be null. - */ - public PreferencePropertyValueModel(PropertyValueModel preferencesHolder, String key) { - this(preferencesHolder, key, null); - } - - /** - * Construct an adapter for the specified preference with - * the specified default value for the preference. - */ - public PreferencePropertyValueModel(PropertyValueModel preferencesHolder, String key, P defaultValue) { - this(preferencesHolder, key, defaultValue, BidiStringConverter.Default.

instance()); - } - - /** - * Construct an adapter for the specified preference with - * the specified default value for the preference. - */ - public PreferencePropertyValueModel(PropertyValueModel preferencesHolder, String key, P defaultValue, BidiStringConverter

converter) { - super(preferencesHolder); - this.key = key; - this.defaultValue = defaultValue; - this.converter = converter; - this.preferenceChangeListener = this.buildPreferenceChangeListener(); - // our value is null when we are not listening to the preference - this.value = null; - } - - - // ********** initialization ********** - - /** - * A preference has changed, notify the listeners if necessary. - */ - protected PreferenceChangeListener buildPreferenceChangeListener() { - // transform the preference change events into VALUE property change events - return new PreferenceChangeListener() { - public void preferenceChange(PreferenceChangeEvent event) { - PreferencePropertyValueModel.this.preferenceChanged(event.getKey(), event.getNewValue()); - } - @Override - public String toString() { - return "preference change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ValueModel implementation ********** - - /** - * Return the cached (converted) value. - */ - @Override - public synchronized P getValue() { - return this.value; - } - - - // ********** PropertyValueModel implementation ********** - - /** - * Set the cached value, then set the appropriate preference value. - */ - public synchronized void setValue(P value) { - if (this.hasNoListeners()) { - return; // no changes allowed when we have no listeners - } - - Object old = this.value; - this.value = value; - this.fireAspectChanged(old, value); - - if ((this.subject != null) && this.preferenceIsToBeSet(old, value)) { - this.setValue_(value); - } - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected Class getListenerClass() { - return PropertyChangeListener.class; - } - - @Override - protected String getListenerAspectName() { - return VALUE; - } - - @Override - protected boolean hasListeners() { - return this.hasAnyPropertyChangeListeners(VALUE); - } - - @Override - protected void fireAspectChanged(Object oldValue, Object newValue) { - this.firePropertyChanged(VALUE, oldValue, newValue); - } - - @Override - protected synchronized void engageSubject_() { - this.subject.addPreferenceChangeListener(this.preferenceChangeListener); - this.value = this.buildValue(); - } - - @Override - protected synchronized void disengageSubject_() { - try { - this.subject.removePreferenceChangeListener(this.preferenceChangeListener); - } catch (IllegalStateException ex) { - // for some odd reason, we are not allowed to remove a listener from a "dead" - // preferences node; so handle the exception that gets thrown here - if ( ! ex.getMessage().equals("Node has been removed.")) { //$NON-NLS-1$ - // if it is not the expected exception, re-throw it - throw ex; - } - } - this.value = null; - } - - - // ********** AbstractModel implementation ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(this.key); - sb.append(" => "); //$NON-NLS-1$ - sb.append(this.value); - } - - - // ********** public API ********** - - /** - * Return the preference's key. - */ - public String getKey() { - return this.key; - } - - - // ********** internal methods ********** - - /** - * Return the preference's value. - * At this point the subject may be null. - */ - protected P buildValue() { - return (this.subject == null) ? null : this.buildValue_(); - } - - /** - * Return the appropriate preference, converted to the appropriate object. - * At this point we can be sure that the subject is not null. - */ - protected P buildValue_() { - return this.convertToObject(this.subject.get(this.key, this.convertToString(this.defaultValue))); - } - - /** - * Set the appropriate preference after converting the value to a string. - * At this point we can be sure that the subject is not null. - */ - protected void setValue_(P value) { - this.subject.put(this.key, this.convertToString(value)); - } - - /** - * Return whether the specified new value should be passed - * through to the preference. By default, only if the value has changed, - * will it be passed through to the preference. This also has the - * effect of not creating new preferences in the "backing store" - * if the new value is the same as the default value. - * - * Subclasses can override this method to return true if they - * would like to ALWAYS pass through the new value to the preference. - */ - protected boolean preferenceIsToBeSet(Object oldValue, Object newValue) { - return this.attributeValueHasChanged(oldValue, newValue); - } - - /** - * Convert the specified object to a string that can be stored as - * the value of the preference. - */ - protected String convertToString(P o) { - return this.converter.convertToString(o); - } - - /** - * Convert the specified preference value string to an - * appropriately-typed object to be returned to the client. - */ - protected P convertToObject(String s) { - return this.converter.convertToObject(s); - } - - protected void preferenceChanged(String prefKey, @SuppressWarnings("unused") String newValue) { - if (prefKey.equals(this.key)) { - this.preferenceChanged(); - } - } - - /** - * The underlying preference changed; either because we changed it - * in #setValue_(Object) or a third-party changed it. - * If this is called because of our own change, the event will be - * swallowed because the old and new values are the same. - */ - protected synchronized void preferenceChanged() { - Object old = this.value; - this.value = this.buildValue(); - this.fireAspectChanged(old, this.value); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java deleted file mode 100644 index f12a84f138..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java +++ /dev/null @@ -1,203 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.prefs; - -import java.util.EventListener; -import java.util.HashMap; -import java.util.Iterator; -import java.util.prefs.BackingStoreException; -import java.util.prefs.PreferenceChangeEvent; -import java.util.prefs.PreferenceChangeListener; -import java.util.prefs.Preferences; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.common.utility.internal.model.value.AspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; - -/** - * This adapter wraps a Preferences node and converts its preferences into a - * CollectionValueModel of PreferencePropertyValueModels. It listens for - * "preference" changes and converts them into VALUE collection changes. - */ -public class PreferencesCollectionValueModel

- extends AspectAdapter - implements CollectionValueModel> -{ - - /** Cache the current preferences, stored in models and keyed by name. */ - protected final HashMap> preferences; - - /** A listener that listens to the preferences node for added or removed preferences. */ - protected final PreferenceChangeListener preferenceChangeListener; - - - // ********** constructors ********** - - /** - * Construct an adapter for the specified preferences node. - */ - public PreferencesCollectionValueModel(Preferences preferences) { - this(new StaticPropertyValueModel(preferences)); - } - - /** - * Construct an adapter for the specified preferences node. - */ - public PreferencesCollectionValueModel(PropertyValueModel preferencesHolder) { - super(preferencesHolder); - this.preferences = new HashMap>(); - this.preferenceChangeListener = this.buildPreferenceChangeListener(); - } - - - // ********** initialization ********** - - /** - * A preferences have changed, notify the listeners. - */ - protected PreferenceChangeListener buildPreferenceChangeListener() { - // transform the preference change events into VALUE collection change events - return new PreferenceChangeListener() { - public void preferenceChange(PreferenceChangeEvent event) { - PreferencesCollectionValueModel.this.preferenceChanged(event.getKey(), event.getNewValue()); - } - @Override - public String toString() { - return "preference change listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** CollectionValueModel implementation ********** - - /** - * Return an iterator on the preference models. - */ - public synchronized Iterator> iterator() { - return this.preferences.values().iterator(); - } - - public synchronized int size() { - return this.preferences.size(); - } - - - // ********** AspectAdapter implementation ********** - - @Override - protected Object getValue() { - return this.iterator(); - } - - @Override - protected Class getListenerClass() { - return CollectionChangeListener.class; - } - - @Override - protected String getListenerAspectName() { - return VALUES; - } - - @Override - protected boolean hasListeners() { - return this.hasAnyCollectionChangeListeners(VALUES); - } - - @Override - protected void fireAspectChanged(Object oldValue, Object newValue) { - @SuppressWarnings("unchecked") Iterator> iterator = (Iterator>) newValue; - this.fireCollectionChanged(VALUES, CollectionTools.collection(iterator)); - } - - @Override - protected void engageSubject_() { - this.subject.addPreferenceChangeListener(this.preferenceChangeListener); - for (Iterator> stream = this.preferenceModels(); stream.hasNext(); ) { - PreferencePropertyValueModel

preferenceModel = stream.next(); - this.preferences.put(preferenceModel.getKey(), preferenceModel); - } - } - - @Override - protected void disengageSubject_() { - try { - this.subject.removePreferenceChangeListener(this.preferenceChangeListener); - } catch (IllegalStateException ex) { - // for some odd reason, we are not allowed to remove a listener from a "dead" - // preferences node; so handle the exception that gets thrown here - if ( ! ex.getMessage().equals("Node has been removed.")) { //$NON-NLS-1$ - // if it is not the expected exception, re-throw it - throw ex; - } - } - this.preferences.clear(); - } - - - // ********** AbstractModel implementation ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(this.subject); - } - - - // ********** internal methods ********** - - /** - * Return an iterator on the preference models. - * At this point we can be sure that the subject is not null. - */ - protected Iterator> preferenceModels() { - String[] keys; - try { - keys = this.subject.keys(); - } catch (BackingStoreException ex) { - throw new RuntimeException(ex); - } - return new TransformationIterator>(new ArrayIterator(keys)) { - @Override - protected PreferencePropertyValueModel

transform(String key) { - return PreferencesCollectionValueModel.this.buildPreferenceModel(key); - } - }; - } - - /** - * Override this method to tweak the model used to wrap the - * specified preference (e.g. to customize the model's converter). - */ - protected PreferencePropertyValueModel

buildPreferenceModel(String key) { - return new PreferencePropertyValueModel

(this.subjectHolder, key); - } - - protected synchronized void preferenceChanged(String key, String newValue) { - if (newValue == null) { - // a preference was removed - PreferencePropertyValueModel

preferenceModel = this.preferences.remove(key); - this.fireItemRemoved(VALUES, preferenceModel); - } else if ( ! this.preferences.containsKey(key)) { - // a preference was added - PreferencePropertyValueModel

preferenceModel = this.buildPreferenceModel(key); - this.preferences.put(key, preferenceModel); - this.fireItemAdded(VALUES, preferenceModel); - } else { - // a preference's value changed - do nothing - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/AbstractTreeModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/AbstractTreeModel.java deleted file mode 100644 index 0a3ab42d06..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/AbstractTreeModel.java +++ /dev/null @@ -1,216 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import java.io.Serializable; -import javax.swing.event.EventListenerList; -import javax.swing.event.TreeModelEvent; -import javax.swing.event.TreeModelListener; -import javax.swing.tree.TreeModel; - -/** - * Abstract class that should have been provided by the JDK - * (à la javax.swing.AbstractListModel). This class provides: - * - support for a collection of listeners - * - a number of convenience methods for firing events for those listeners - */ -public abstract class AbstractTreeModel - implements TreeModel, Serializable -{ - /** Our listeners. */ - protected final EventListenerList listenerList; - - - // ********** constructors/initialization ********** - - protected AbstractTreeModel() { - super(); - this.listenerList = new EventListenerList(); - } - - - // ********** partial TreeModel implementation ********** - - public void addTreeModelListener(TreeModelListener l) { - this.listenerList.add(TreeModelListener.class, l); - } - - public void removeTreeModelListener(TreeModelListener l) { - this.listenerList.remove(TreeModelListener.class, l); - } - - - // ********** queries ********** - - /** - * Return the model's current collection of listeners. - * (There seems to be a pattern of making this type of method public; - * although it should probably be protected....) - */ - public TreeModelListener[] treeModelListeners() { - return this.listenerList.getListeners(TreeModelListener.class); - } - - /** - * Return whether this model has no listeners. - */ - protected boolean hasNoTreeModelListeners() { - return this.listenerList.getListenerCount(TreeModelListener.class) == 0; - } - - /** - * Return whether this model has any listeners. - */ - protected boolean hasTreeModelListeners() { - return ! this.hasNoTreeModelListeners(); - } - - - // ********** behavior ********** - - /** - * Notify listeners of a model change. - * A significant property of the nodes changed, but the nodes themselves - * are still the same objects. - * @see javax.swing.event.TreeModelEvent - * @see javax.swing.event.TreeModelListener - */ - protected void fireTreeNodesChanged(Object[] path, int[] childIndices, Object[] children) { - // guaranteed to return a non-null array - Object[] listeners = this.listenerList.getListenerList(); - TreeModelEvent event = null; - // process the listeners last to first, notifying - // those that are interested in this event - for (int i = listeners.length-2; i>=0; i-=2) { - if (listeners[i]==TreeModelListener.class) { - // lazily create the event - if (event == null) { - event = new TreeModelEvent(this, path, childIndices, children); - } - ((TreeModelListener) listeners[i+1]).treeNodesChanged(event); - } - } - } - - - /** - * Notify listeners of a model change. - * A significant property of the node changed, but the node itself is the same object. - * @see javax.swing.event.TreeModelEvent - * @see javax.swing.event.TreeModelListener - */ - protected void fireTreeNodeChanged(Object[] path, int childIndex, Object child) { - this.fireTreeNodesChanged(path, new int[] {childIndex}, new Object[] {child}); - } - - /** - * Notify listeners of a model change. - * A significant property of the root changed, but the root itself is the same object. - * @see javax.swing.event.TreeModelEvent - * @see javax.swing.event.TreeModelListener - */ - protected void fireTreeRootChanged(Object root) { - this.fireTreeNodesChanged(new Object[] {root}, null, null); - } - - /** - * Notify listeners of a model change. - * @see javax.swing.event.TreeModelEvent - * @see javax.swing.event.TreeModelListener - */ - protected void fireTreeNodesInserted(Object[] path, int[] childIndices, Object[] children) { - // guaranteed to return a non-null array - Object[] listeners = this.listenerList.getListenerList(); - TreeModelEvent event = null; - // process the listeners last to first, notifying - // those that are interested in this event - for (int i = listeners.length-2; i>=0; i-=2) { - if (listeners[i]==TreeModelListener.class) { - // lazily create the event - if (event == null) { - event = new TreeModelEvent(this, path, childIndices, children); - } - ((TreeModelListener) listeners[i+1]).treeNodesInserted(event); - } - } - } - - /** - * Notify listeners of a model change. - * @see javax.swing.event.TreeModelEvent - * @see javax.swing.event.TreeModelListener - */ - protected void fireTreeNodeInserted(Object[] path, int childIndex, Object child) { - this.fireTreeNodesInserted(path, new int[] {childIndex}, new Object[] {child}); - } - - /** - * Notify listeners of a model change. - * @see javax.swing.event.TreeModelEvent - * @see javax.swing.event.TreeModelListener - */ - protected void fireTreeNodesRemoved(Object[] path, int[] childIndices, Object[] children) { - // guaranteed to return a non-null array - Object[] listeners = this.listenerList.getListenerList(); - TreeModelEvent event = null; - // process the listeners last to first, notifying - // those that are interested in this event - for (int i = listeners.length-2; i>=0; i-=2) { - if (listeners[i]==TreeModelListener.class) { - // lazily create the event - if (event == null) { - event = new TreeModelEvent(this, path, childIndices, children); - } - ((TreeModelListener) listeners[i+1]).treeNodesRemoved(event); - } - } - } - - /** - * Notify listeners of a model change. - * @see javax.swing.event.TreeModelEvent - * @see javax.swing.event.TreeModelListener - */ - protected void fireTreeNodeRemoved(Object[] path, int childIndex, Object child) { - this.fireTreeNodesRemoved(path, new int[] {childIndex}, new Object[] {child}); - } - - /** - * Notify listeners of a model change. - * @see javax.swing.event.TreeModelEvent - * @see javax.swing.event.TreeModelListener - */ - protected void fireTreeStructureChanged(Object[] path) { - // guaranteed to return a non-null array - Object[] listeners = this.listenerList.getListenerList(); - TreeModelEvent event = null; - // process the listeners last to first, notifying - // those that are interested in this event - for (int i = listeners.length-2; i>=0; i-=2) { - if (listeners[i]==TreeModelListener.class) { - // lazily create the event - if (event == null) { - event = new TreeModelEvent(this, path); - } - ((TreeModelListener) listeners[i+1]).treeStructureChanged(event); - } - } - } - - /** - * Notify listeners of a model change. - * @see javax.swing.event.TreeModelEvent - * @see javax.swing.event.TreeModelListener - */ - protected void fireTreeRootReplaced(Object newRoot) { - this.fireTreeStructureChanged(new Object[] {newRoot}); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/CheckBoxModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/CheckBoxModelAdapter.java deleted file mode 100644 index 78069cd6b0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/CheckBoxModelAdapter.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This javax.swing.ButtonModel can be used to keep a listener - * (e.g. a JCheckBox) in synch with a PropertyValueModel that - * holds a boolean. - * - * Maybe not the richest class in our toolbox, but it was the - * victim of refactoring.... ~bjv - */ -public class CheckBoxModelAdapter - extends ToggleButtonModelAdapter -{ - - // ********** constructors ********** - - /** - * Constructor - the boolean holder is required. - */ - public CheckBoxModelAdapter(WritablePropertyValueModel booleanHolder, boolean defaultValue) { - super(booleanHolder, defaultValue); - } - - /** - * Constructor - the boolean holder is required. - * The default value will be false. - */ - public CheckBoxModelAdapter(WritablePropertyValueModel booleanHolder) { - super(booleanHolder); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ColumnAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ColumnAdapter.java deleted file mode 100644 index e101823abc..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ColumnAdapter.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - - -/** - * This adapter is used by the table model adapter to - * convert a model object into the models used for each of - * the cells for the object's corresponding row in the table. - */ -public interface ColumnAdapter { - /** - * Return the number of columns in the table. - * Typically this is static. - */ - int columnCount(); - - /** - * Return the name of the specified column. - */ - String columnName(int index); - - /** - * Return the class of the specified column. - */ - Class columnClass(int index); - - /** - * Return whether the specified column is editable. - * Typically this is the same for every row. - */ - boolean columnIsEditable(int index); - - /** - * Return the cell models for the specified subject - * that corresponds to a single row in the table. - */ - WritablePropertyValueModel[] cellModels(Object subject); - -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ComboBoxModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ComboBoxModelAdapter.java deleted file mode 100644 index 7cb5f7d88e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ComboBoxModelAdapter.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import javax.swing.ComboBoxModel; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This javax.swing.ComboBoxModel can be used to keep a ListDataListener - * (e.g. a JComboBox) in synch with a ListValueModel (or a CollectionValueModel). - * For combo boxes, the model object that holds the current selection is - * typically a different model object than the one that holds the collection - * of choices. - * - * For example, a MWReference (the selectionOwner) has an attribute - * "sourceTable" (the collectionOwner) - * which holds on to a collection of MWDatabaseFields. When the selection - * is changed this model will keep the listeners aware of the changes. - * The inherited list model will keep its listeners aware of changes to the - * collection model - * - * In addition to the collection holder required by the superclass, - * an instance of this ComboBoxModel must be supplied with a - * selection holder, which is a PropertyValueModel that provides access - * to the selection (typically a PropertyAspectAdapter). - */ -public class ComboBoxModelAdapter - extends ListModelAdapter - implements ComboBoxModel -{ - protected final WritablePropertyValueModel selectionHolder; - protected final PropertyChangeListener selectionListener; - - - // ********** constructors ********** - - /** - * Constructor - the list holder and selection holder are required; - */ - public ComboBoxModelAdapter(ListValueModel listHolder, WritablePropertyValueModel selectionHolder) { - super(listHolder); - if (selectionHolder == null) { - throw new NullPointerException(); - } - this.selectionHolder = selectionHolder; - this.selectionListener = this.buildSelectionListener(); - } - - /** - * Constructor - the collection holder and selection holder are required; - */ - public ComboBoxModelAdapter(CollectionValueModel collectionHolder, WritablePropertyValueModel selectionHolder) { - super(collectionHolder); - if (selectionHolder == null) { - throw new NullPointerException(); - } - this.selectionHolder = selectionHolder; - this.selectionListener = this.buildSelectionListener(); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildSelectionListener() { - return new AWTPropertyChangeListenerWrapper(this.buildSelectionListener_()); - } - - protected PropertyChangeListener buildSelectionListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - // notify listeners that the selection has changed - ComboBoxModelAdapter.this.fireSelectionChanged(); - } - @Override - public String toString() { - return "selection listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ComboBoxModel implementation ********** - - public Object getSelectedItem() { - return this.selectionHolder.getValue(); - } - - public void setSelectedItem(Object selectedItem) { - this.selectionHolder.setValue(selectedItem); - } - - - // ********** behavior ********** - - /** - * Extend to engage the selection holder. - */ - @Override - protected void engageModel() { - super.engageModel(); - this.selectionHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.selectionListener); - } - - /** - * Extend to disengage the selection holder. - */ - @Override - protected void disengageModel() { - this.selectionHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.selectionListener); - super.disengageModel(); - } - - /** - * Notify the listeners that the selection has changed. - */ - protected void fireSelectionChanged() { - // I guess this will work... - this.fireContentsChanged(this, -1, -1); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.selectionHolder + ":" + this.listHolder); //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DateSpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DateSpinnerModelAdapter.java deleted file mode 100644 index 61ef8cee8f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DateSpinnerModelAdapter.java +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import java.util.Calendar; -import java.util.Date; -import javax.swing.SpinnerDateModel; -import javax.swing.event.ChangeListener; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This javax.swing.SpinnerDateModel can be used to keep a ChangeListener - * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a date. - * - * This class must be a sub-class of SpinnerDateModel because of some - * crappy jdk code.... ~bjv - * @see javax.swing.JSpinner#createEditor(javax.swing.SpinnerModel) - * - * If this class needs to be modified, it would behoove us to review the - * other, similar classes: - * @see ListSpinnerModelAdapter - * @see NumberSpinnerModelAdapter - */ -public class DateSpinnerModelAdapter - extends SpinnerDateModel -{ - - /** - * The default spinner value; used when the underlying model date value is null. - * The default is the current date. - */ - private final Date defaultValue; - - /** A value model on the underlying date. */ - private final WritablePropertyValueModel dateHolder; - - /** A listener that allows us to synchronize with changes made to the underlying date. */ - private final PropertyChangeListener dateChangeListener; - - - // ********** constructors ********** - - /** - * Constructor - the date holder is required. - * The default spinner value is the current date. - */ - public DateSpinnerModelAdapter(WritablePropertyValueModel dateHolder) { - this(dateHolder, new Date()); - } - - /** - * Constructor - the date holder and default value are required. - */ - public DateSpinnerModelAdapter(WritablePropertyValueModel dateHolder, Date defaultValue) { - this(dateHolder, null, null, Calendar.DAY_OF_MONTH, defaultValue); - } - - /** - * Constructor - the date holder is required. - * The default spinner value is the current date. - */ - public DateSpinnerModelAdapter(WritablePropertyValueModel dateHolder, Comparable start, Comparable end, int calendarField) { - this(dateHolder, start, end, calendarField, new Date()); - } - - /** - * Constructor - the date holder is required. - */ - public DateSpinnerModelAdapter(WritablePropertyValueModel dateHolder, Comparable start, Comparable end, int calendarField, Date defaultValue) { - super(dateHolder.getValue() == null ? defaultValue : (Date) dateHolder.getValue(), start, end, calendarField); - this.dateHolder = dateHolder; - this.dateChangeListener = this.buildDateChangeListener(); - // postpone listening to the underlying date - // until we have listeners ourselves... - this.defaultValue = defaultValue; - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildDateChangeListener() { - return new AWTPropertyChangeListenerWrapper(this.buildDateChangeListener_()); - } - - protected PropertyChangeListener buildDateChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - DateSpinnerModelAdapter.this.synchronize(event.getNewValue()); - } - @Override - public String toString() { - return "date listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** SpinnerModel implementation ********** - - /** - * Extend to check whether this method is being called before we - * have any listeners. - * This is necessary because some crappy jdk code gets the value - * from the model *before* listening to the model. ~bjv - * @see javax.swing.JSpinner.DefaultEditor(javax.swing.JSpinner) - */ - @Override - public Object getValue() { - if (this.getChangeListeners().length == 0) { - // sorry about this "lateral" call to super ~bjv - super.setValue(this.spinnerValueOf(this.dateHolder.getValue())); - } - return super.getValue(); - } - - /** - * Extend to update the underlying date directly. - * The resulting event will be ignored: @see #synchronize(Object). - */ - @Override - public void setValue(Object value) { - super.setValue(value); - this.dateHolder.setValue(value); - } - - /** - * Extend to start listening to the underlying date if necessary. - */ - @Override - public void addChangeListener(ChangeListener listener) { - if (this.getChangeListeners().length == 0) { - this.dateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.dateChangeListener); - this.synchronize(this.dateHolder.getValue()); - } - super.addChangeListener(listener); - } - - /** - * Extend to stop listening to the underlying date if appropriate. - */ - @Override - public void removeChangeListener(ChangeListener listener) { - super.removeChangeListener(listener); - if (this.getChangeListeners().length == 0) { - this.dateHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.dateChangeListener); - } - } - - - // ********** queries ********** - - protected Date getDefaultValue() { - return this.defaultValue; - } - - /** - * Convert to a non-null value. - */ - protected Object spinnerValueOf(Object value) { - return (value == null) ? this.getDefaultValue() : value; - } - - - // ********** behavior ********** - - /** - * Set the spinner value if it has changed. - */ - void synchronize(Object value) { - Object newValue = this.spinnerValueOf(value); - // check to see whether the spinner date has already been synchronized - // (via #setValue()) - if ( ! this.getValue().equals(newValue)) { - this.setValue(newValue); - } - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.dateHolder); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DocumentAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DocumentAdapter.java deleted file mode 100644 index 1f7f4043de..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/DocumentAdapter.java +++ /dev/null @@ -1,375 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.Serializable; -import java.util.EventObject; - -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.event.EventListenerList; -import javax.swing.event.UndoableEditEvent; -import javax.swing.event.UndoableEditListener; -import javax.swing.text.AttributeSet; -import javax.swing.text.BadLocationException; -import javax.swing.text.Document; -import javax.swing.text.Element; -import javax.swing.text.PlainDocument; -import javax.swing.text.Position; -import javax.swing.text.Segment; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This javax.swing.text.Document can be used to keep a DocumentListener - * (e.g. a JTextField) in synch with a PropertyValueModel that holds a string. - * - * NB: This model should only be used for "small" documents; - * i.e. documents used by text fields, not text panes. - * @see #synchronizeDelegate(String) - */ -public class DocumentAdapter - implements Document, Serializable -{ - - /** The delegate document whose behavior we "enhance". */ - protected final Document delegate; - - /** A listener that allows us to forward any changes made to the delegate document. */ - protected final CombinedListener delegateListener; - - /** A value model on the underlying model string. */ - protected final WritablePropertyValueModel stringHolder; - - /** A listener that allows us to synchronize with changes made to the underlying model string. */ - protected transient PropertyChangeListener stringListener; - - /** The event listener list for the document. */ - protected final EventListenerList listenerList = new EventListenerList(); - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Constructor - the string holder is required. - * Wrap the specified document. - */ - public DocumentAdapter(WritablePropertyValueModel stringHolder, Document delegate) { - super(); - if (stringHolder == null || delegate == null) { - throw new NullPointerException(); - } - this.stringHolder = stringHolder; - // postpone listening to the underlying model string - // until we have listeners ourselves... - this.delegate = delegate; - this.stringListener = this.buildStringListener(); - this.delegateListener = this.buildDelegateListener(); - } - - /** - * Constructor - the string holder is required. - * Wrap a plain document. - */ - public DocumentAdapter(WritablePropertyValueModel stringHolder) { - this(stringHolder, new PlainDocument()); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildStringListener() { - return new AWTPropertyChangeListenerWrapper(this.buildStringListener_()); - } - - protected PropertyChangeListener buildStringListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - DocumentAdapter.this.stringChanged(event); - } - @Override - public String toString() { - return "string listener"; //$NON-NLS-1$ - } - }; - } - - protected CombinedListener buildDelegateListener() { - return new InternalListener(); - } - - - // ********** Document implementation ********** - - public int getLength() { - return this.delegate.getLength(); - } - - /** - * Extend to start listening to the underlying models if necessary. - */ - public void addDocumentListener(DocumentListener listener) { - if (this.listenerList.getListenerCount(DocumentListener.class) == 0) { - this.delegate.addDocumentListener(this.delegateListener); - this.engageStringHolder(); - } - this.listenerList.add(DocumentListener.class, listener); - } - - /** - * Extend to stop listening to the underlying models if appropriate. - */ - public void removeDocumentListener(DocumentListener listener) { - this.listenerList.remove(DocumentListener.class, listener); - if (this.listenerList.getListenerCount(DocumentListener.class) == 0) { - this.disengageStringHolder(); - this.delegate.removeDocumentListener(this.delegateListener); - } - } - - /** - * Extend to start listening to the delegate document if necessary. - */ - public void addUndoableEditListener(UndoableEditListener listener) { - if (this.listenerList.getListenerCount(UndoableEditListener.class) == 0) { - this.delegate.addUndoableEditListener(this.delegateListener); - } - this.listenerList.add(UndoableEditListener.class, listener); - } - - /** - * Extend to stop listening to the delegate document if appropriate. - */ - public void removeUndoableEditListener(UndoableEditListener listener) { - this.listenerList.remove(UndoableEditListener.class, listener); - if (this.listenerList.getListenerCount(UndoableEditListener.class) == 0) { - this.delegate.removeUndoableEditListener(this.delegateListener); - } - } - - public Object getProperty(Object key) { - return this.delegate.getProperty(key); - } - - public void putProperty(Object key, Object value) { - this.delegate.putProperty(key, value); - } - - /** - * Extend to update the underlying model string directly. - * The resulting event will be ignored: @see #synchronizeDelegate(String). - */ - public void remove(int offset, int len) throws BadLocationException { - this.delegate.remove(offset, len); - this.stringHolder.setValue(this.delegate.getText(0, this.delegate.getLength())); - } - - /** - * Extend to update the underlying model string directly. - * The resulting event will be ignored: @see #synchronizeDelegate(String). - */ - public void insertString(int offset, String insertedString, AttributeSet a) throws BadLocationException { - this.delegate.insertString(offset, insertedString, a); - this.stringHolder.setValue(this.delegate.getText(0, this.delegate.getLength())); - } - - public String getText(int offset, int length) throws BadLocationException { - return this.delegate.getText(offset, length); - } - - public void getText(int offset, int length, Segment txt) throws BadLocationException { - this.delegate.getText(offset, length, txt); - } - - public Position getStartPosition() { - return this.delegate.getStartPosition(); - } - - public Position getEndPosition() { - return this.delegate.getEndPosition(); - } - - public Position createPosition(int offs) throws BadLocationException { - return this.delegate.createPosition(offs); - } - - public Element[] getRootElements() { - return this.delegate.getRootElements(); - } - - public Element getDefaultRootElement() { - return this.delegate.getDefaultRootElement(); - } - - public void render(Runnable r) { - this.delegate.render(r); - } - - - // ********** queries ********** - - public DocumentListener[] documentListeners() { - return this.listenerList.getListeners(DocumentListener.class); - } - - public UndoableEditListener[] undoableEditListeners() { - return this.listenerList.getListeners(UndoableEditListener.class); - } - - - // ********** behavior ********** - - /** - * A third party has modified the underlying model string. - * Synchronize the delegate document accordingly. - */ - protected void stringChanged(PropertyChangeEvent event) { - this.synchronizeDelegate((String) event.getNewValue()); - } - - /** - * Replace the document's entire text string with the new string. - */ - protected void synchronizeDelegate(String s) { - try { - int len = this.delegate.getLength(); - // check to see whether the delegate has already been synchronized - // (via #insertString() or #remove()) - if ( ! this.delegate.getText(0, len).equals(s)) { - this.delegate.remove(0, len); - this.delegate.insertString(0, s, null); - } - } catch (BadLocationException ex) { - throw new IllegalStateException(ex.getMessage()); // this should not happen... - } - } - - protected void engageStringHolder() { - this.stringHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.stringListener); - this.synchronizeDelegate(this.stringHolder.getValue()); - } - - protected void disengageStringHolder() { - this.stringHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.stringListener); - } - - protected void delegateChangedUpdate(DocumentEvent event) { - // no need to lazy-initialize the event; - // we wouldn't get here if we did not have listeners... - DocumentEvent ee = new InternalDocumentEvent(this, event); - DocumentListener[] listeners = this.documentListeners(); - for (int i = listeners.length; i-- > 0; ) { - listeners[i].changedUpdate(ee); - } - } - - protected void delegateInsertUpdate(DocumentEvent event) { - // no need to lazy-initialize the event; - // we wouldn't get here if we did not have listeners... - DocumentEvent ee = new InternalDocumentEvent(this, event); - DocumentListener[] listeners = this.documentListeners(); - for (int i = listeners.length; i-- > 0; ) { - listeners[i].insertUpdate(ee); - } - } - - protected void delegateRemoveUpdate(DocumentEvent event) { - // no need to lazy-initialize the event; - // we wouldn't get here if we did not have listeners... - DocumentEvent ee = new InternalDocumentEvent(this, event); - DocumentListener[] listeners = this.documentListeners(); - for (int i = listeners.length; i-- > 0; ) { - listeners[i].removeUpdate(ee); - } - } - - protected void delegateUndoableEditHappened(UndoableEditEvent event) { - // no need to lazy-initialize the event; - // we wouldn't get here if we did not have listeners... - UndoableEditEvent ee = new UndoableEditEvent(this, event.getEdit()); - UndoableEditListener[] listeners = this.undoableEditListeners(); - for (int i = listeners.length; i-- > 0; ) { - listeners[i].undoableEditHappened(ee); - } - } - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.stringHolder); - } - - private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException { - // read in any hidden stuff - s.defaultReadObject(); - this.stringListener = this.buildStringListener(); - } - - -// ********** inner class ********** - - protected interface CombinedListener extends DocumentListener, UndoableEditListener, Serializable { - // just consolidate the two interfaces - } - - protected class InternalListener implements CombinedListener { - private static final long serialVersionUID = 1L; - public void changedUpdate(DocumentEvent event) { - DocumentAdapter.this.delegateChangedUpdate(event); - } - public void insertUpdate(DocumentEvent event) { - DocumentAdapter.this.delegateInsertUpdate(event); - } - public void removeUpdate(DocumentEvent event) { - DocumentAdapter.this.delegateRemoveUpdate(event); - } - public void undoableEditHappened(UndoableEditEvent event) { - DocumentAdapter.this.delegateUndoableEditHappened(event); - } - } - - protected static class InternalDocumentEvent - extends EventObject - implements DocumentEvent - { - protected DocumentEvent delegate; - - protected InternalDocumentEvent(Document document, DocumentEvent delegate) { - super(document); - this.delegate = delegate; - } - public ElementChange getChange(Element elem) { - return this.delegate.getChange(elem); - } - public Document getDocument() { - return (Document) this.source; - } - public int getLength() { - return this.delegate.getLength(); - } - public int getOffset() { - return this.delegate.getOffset(); - } - public EventType getType() { - return this.delegate.getType(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListModelAdapter.java deleted file mode 100644 index 2d1c1e4b5d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListModelAdapter.java +++ /dev/null @@ -1,292 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import javax.swing.AbstractListModel; -import javax.swing.event.ListDataListener; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTListChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionListValueModelAdapter; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * This javax.swing.ListModel can be used to keep a ListDataListener - * (e.g. a JList) in synch with a ListValueModel (or a CollectionValueModel). - * - * An instance of this ListModel *must* be supplied with a value model, - * which is a ListValueModel on the bound list or a CollectionValueModel - * on the bound collection. This is required - the list (or collection) - * itself can be null, but the value model that holds it cannot. - */ -public class ListModelAdapter - extends AbstractListModel -{ - /** A value model on the underlying model list. */ - protected ListValueModel listHolder; - - /** - * Cache the size of the list for "dramatic" changes. - * @see #listChanged(ListChangeEvent) - */ - protected int listSize; - - /** A listener that allows us to forward changes made to the underlying model list. */ - protected final ListChangeListener listChangeListener; - - - // ********** constructors ********** - - /** - * Default constructor - initialize stuff. - */ - private ListModelAdapter() { - super(); - this.listSize = 0; - this.listChangeListener = this.buildListChangeListener(); - } - - /** - * Constructor - the list holder is required. - */ - public ListModelAdapter(ListValueModel listHolder) { - this(); - this.setModel(listHolder); - } - - /** - * Constructor - the collection holder is required. - */ - public ListModelAdapter(CollectionValueModel collectionHolder) { - this(); - this.setModel(collectionHolder); - } - - - // ********** initialization ********** - - protected ListChangeListener buildListChangeListener() { - return new AWTListChangeListenerWrapper(this.buildListChangeListener_()); - } - - protected ListChangeListener buildListChangeListener_() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - ListModelAdapter.this.itemsAdded(event); - } - public void itemsRemoved(ListRemoveEvent event) { - ListModelAdapter.this.itemsRemoved(event); - } - public void itemsReplaced(ListReplaceEvent event) { - ListModelAdapter.this.itemsReplaced(event); - } - public void itemsMoved(ListMoveEvent event) { - ListModelAdapter.this.itemsMoved(event); - } - public void listCleared(ListClearEvent event) { - ListModelAdapter.this.listCleared(); - } - public void listChanged(ListChangeEvent event) { - ListModelAdapter.this.listChanged(); - } - @Override - public String toString() { - return "list listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ListModel implementation ********** - - public int getSize() { - return this.listHolder.size(); - } - - public Object getElementAt(int index) { - return this.listHolder.get(index); - } - - /** - * Extend to start listening to the underlying model list if necessary. - */ - @Override - public void addListDataListener(ListDataListener l) { - if (this.hasNoListDataListeners()) { - this.engageModel(); - this.listSize = this.listHolder.size(); - } - super.addListDataListener(l); - } - - /** - * Extend to stop listening to the underlying model list if appropriate. - */ - @Override - public void removeListDataListener(ListDataListener l) { - super.removeListDataListener(l); - if (this.hasNoListDataListeners()) { - this.disengageModel(); - this.listSize = 0; - } - } - - - // ********** public API ********** - - /** - * Return the underlying list model. - */ - public ListValueModel model() { - return this.listHolder; - } - - /** - * Set the underlying list model. - */ - public void setModel(ListValueModel listHolder) { - if (listHolder == null) { - throw new NullPointerException(); - } - boolean hasListeners = this.hasListDataListeners(); - if (hasListeners) { - this.disengageModel(); - } - this.listHolder = listHolder; - if (hasListeners) { - this.engageModel(); - this.listChanged(); - } - } - - /** - * Set the underlying collection model. - */ - @SuppressWarnings({ "unchecked", "rawtypes" }) - public void setModel(CollectionValueModel collectionHolder) { - this.setModel(new CollectionListValueModelAdapter(collectionHolder)); - } - - - // ********** queries ********** - - /** - * Return whether this model has no listeners. - */ - protected boolean hasNoListDataListeners() { - return this.getListDataListeners().length == 0; - } - - /** - * Return whether this model has any listeners. - */ - protected boolean hasListDataListeners() { - return ! this.hasNoListDataListeners(); - } - - - // ********** behavior ********** - - protected void engageModel() { - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - - protected void disengageModel() { - this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - - - - // ********** list change support ********** - - /** - * Items were added to the underlying model list. - * Notify listeners of the changes. - */ - protected void itemsAdded(ListAddEvent event) { - int start = event.getIndex(); - int end = start + event.getItemsSize() - 1; - this.fireIntervalAdded(this, start, end); - this.listSize += event.getItemsSize(); - } - - /** - * Items were removed from the underlying model list. - * Notify listeners of the changes. - */ - protected void itemsRemoved(ListRemoveEvent event) { - int start = event.getIndex(); - int end = start + event.getItemsSize() - 1; - this.fireIntervalRemoved(this, start, end); - this.listSize -= event.getItemsSize(); - } - - /** - * Items were replaced in the underlying model list. - * Notify listeners of the changes. - */ - protected void itemsReplaced(ListReplaceEvent event) { - int start = event.getIndex(); - int end = start + event.getItemsSize() - 1; - this.fireContentsChanged(this, start, end); - } - - /** - * Items were moved in the underlying model list. - * Notify listeners of the changes. - */ - protected void itemsMoved(ListMoveEvent event) { - int start = Math.min(event.getSourceIndex(), event.getTargetIndex()); - int end = Math.max(event.getSourceIndex(), event.getTargetIndex()) + event.getLength() - 1; - this.fireContentsChanged(this, start, end); - } - - /** - * The underlying model list was cleared. - * Notify listeners of the changes. - */ - protected void listCleared() { - if (this.listSize != 0) { - this.fireIntervalRemoved(this, 0, this.listSize - 1); - this.listSize = 0; - } - } - - /** - * The underlying model list has changed "dramatically". - * Notify listeners of the changes. - */ - protected void listChanged() { - if (this.listSize != 0) { - this.fireIntervalRemoved(this, 0, this.listSize - 1); - } - this.listSize = this.listHolder.size(); - if (this.listSize != 0) { - this.fireIntervalAdded(this, 0, this.listSize - 1); - } - } - - - // ********** Object overrides ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.listHolder); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListSpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListSpinnerModelAdapter.java deleted file mode 100644 index af3e0b0187..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ListSpinnerModelAdapter.java +++ /dev/null @@ -1,218 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import java.util.Arrays; -import java.util.List; -import javax.swing.SpinnerListModel; -import javax.swing.event.ChangeListener; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This javax.swing.SpinnerListModel can be used to keep a ChangeListener - * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a value - * in the list. - * - * This class must be a sub-class of SpinnerListModel because of some - * crappy jdk code.... ~bjv - * @see javax.swing.JSpinner#createEditor(javax.swing.SpinnerModel) - * - * NB: This model should only be used for values that have a reasonably - * inexpensive #equals() implementation. - * @see #synchronize(Object) - * - * If this class needs to be modified, it would behoove us to review the - * other, similar classes: - * @see DateSpinnerModelAdapter - * @see NumberSpinnerModelAdapter - */ -public class ListSpinnerModelAdapter - extends SpinnerListModel -{ - - /** - * The default spinner value; used when the underlying model value is null. - * The default is the first item on the list. - */ - private final Object defaultValue; - - /** A value model on the underlying value. */ - private final WritablePropertyValueModel valueHolder; - - /** A listener that allows us to synchronize with changes made to the underlying value. */ - private final PropertyChangeListener valueChangeListener; - - - // ********** constructors ********** - - /** - * Constructor - the value holder is required. - * Use the model value itself as the default spinner value. - */ - public ListSpinnerModelAdapter(WritablePropertyValueModel valueHolder) { - this(valueHolder, valueHolder.getValue()); - } - - /** - * Constructor - the value holder is required. - */ - public ListSpinnerModelAdapter(WritablePropertyValueModel valueHolder, Object defaultValue) { - this(valueHolder, new Object[] {defaultValue}, defaultValue); - } - - /** - * Constructor - the value holder is required. - * Use the first item in the list of values as the default spinner value. - */ - public ListSpinnerModelAdapter(WritablePropertyValueModel valueHolder, Object[] values) { - this(valueHolder, values, values[0]); - } - - /** - * Constructor - the value holder is required. - */ - public ListSpinnerModelAdapter(WritablePropertyValueModel valueHolder, Object[] values, Object defaultValue) { - this(valueHolder, Arrays.asList(values), defaultValue); - } - - /** - * Constructor - the value holder is required. - * Use the first item in the list of values as the default spinner value. - */ - public ListSpinnerModelAdapter(WritablePropertyValueModel valueHolder, List values) { - this(valueHolder, values, values.get(0)); - } - - /** - * Constructor - the value holder is required. - */ - public ListSpinnerModelAdapter(WritablePropertyValueModel valueHolder, List values, Object defaultValue) { - super(values); - this.valueHolder = valueHolder; - this.valueChangeListener = this.buildValueChangeListener(); - // postpone listening to the underlying value - // until we have listeners ourselves... - this.defaultValue = defaultValue; - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildValueChangeListener() { - return new AWTPropertyChangeListenerWrapper(this.buildValueChangeListener_()); - } - - protected PropertyChangeListener buildValueChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - ListSpinnerModelAdapter.this.synchronize(event.getNewValue()); - } - @Override - public String toString() { - return "value listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** SpinnerModel implementation ********** - - /** - * Extend to check whether this method is being called before we - * have any listeners. - * This is necessary because some crappy jdk code gets the value - * from the model *before* listening to the model. ~bjv - * @see javax.swing.JSpinner.DefaultEditor(javax.swing.JSpinner) - */ - @Override - public Object getValue() { - if (this.getChangeListeners().length == 0) { - // sorry about this "lateral" call to super ~bjv - super.setValue(this.spinnerValueOf(this.valueHolder.getValue())); - } - return super.getValue(); - } - - /** - * Extend to update the underlying value directly. - * The resulting event will be ignored: @see #synchronize(Object). - */ - @Override - public void setValue(Object value) { - super.setValue(value); - this.valueHolder.setValue(value); - } - - /** - * Extend to start listening to the underlying value if necessary. - */ - @Override - public void addChangeListener(ChangeListener listener) { - if (this.getChangeListeners().length == 0) { - this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener); - this.synchronize(this.valueHolder.getValue()); - } - super.addChangeListener(listener); - } - - /** - * Extend to stop listening to the underlying value if appropriate. - */ - @Override - public void removeChangeListener(ChangeListener listener) { - super.removeChangeListener(listener); - if (this.getChangeListeners().length == 0) { - this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener); - } - } - - - // ********** queries ********** - - protected Object getDefaultValue() { - return this.defaultValue; - } - - /** - * Convert to a non-null value. - */ - protected Object spinnerValueOf(Object value) { - return (value == null) ? this.getDefaultValue() : value; - } - - - // ********** behavior ********** - - /** - * Set the spinner value if it has changed. - */ - void synchronize(Object value) { - Object newValue = this.spinnerValueOf(value); - // check to see whether the spinner value has already been synchronized - // (via #setValue()) - if ( ! this.getValue().equals(newValue)) { - this.setValue(newValue); - } - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.valueHolder); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java deleted file mode 100644 index 4a624639b5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java +++ /dev/null @@ -1,223 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import javax.swing.SpinnerNumberModel; -import javax.swing.event.ChangeListener; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This javax.swing.SpinnerNumberModel can be used to keep a ChangeListener - * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a number. - * - * This class must be a sub-class of SpinnerNumberModel because of some - * crappy jdk code.... ~bjv - * @see javax.swing.JSpinner#createEditor(javax.swing.SpinnerModel) - * - * If this class needs to be modified, it would behoove us to review the - * other, similar classes: - * @see DateSpinnerModelAdapter - * @see ListSpinnerModelAdapter - */ -public class NumberSpinnerModelAdapter - extends SpinnerNumberModel -{ - - /** - * The default spinner value; used when the - * underlying model number value is null. - */ - private final Number defaultValue; - - /** A value model on the underlying number. */ - private final WritablePropertyValueModel numberHolder; - - /** - * A listener that allows us to synchronize with - * changes made to the underlying number. - */ - private final PropertyChangeListener numberChangeListener; - - - // ********** constructors ********** - - /** - * Constructor - the number holder is required. - * The default spinner value is zero. - * The step size is one. - */ - public NumberSpinnerModelAdapter(WritablePropertyValueModel numberHolder) { - this(numberHolder, 0); - } - - /** - * Constructor - the number holder is required. - * The step size is one. - */ - public NumberSpinnerModelAdapter(WritablePropertyValueModel numberHolder, int defaultValue) { - this(numberHolder, null, null, Integer.valueOf(1), Integer.valueOf(defaultValue)); - } - - /** - * Constructor - the number holder is required. - * Use the minimum value as the default spinner value. - */ - public NumberSpinnerModelAdapter(WritablePropertyValueModel numberHolder, int minimum, int maximum, int stepSize) { - this(numberHolder, minimum, maximum, stepSize, minimum); - } - - /** - * Constructor - the number holder is required. - */ - public NumberSpinnerModelAdapter(WritablePropertyValueModel numberHolder, int minimum, int maximum, int stepSize, int defaultValue) { - this(numberHolder, Integer.valueOf(minimum), Integer.valueOf(maximum), Integer.valueOf(stepSize), Integer.valueOf(defaultValue)); - } - - /** - * Constructor - the number holder is required. - * Use the minimum value as the default spinner value. - */ - public NumberSpinnerModelAdapter(WritablePropertyValueModel numberHolder, double minimum, double maximum, double stepSize) { - this(numberHolder, minimum, maximum, stepSize, minimum); - } - - /** - * Constructor - the number holder is required. - */ - public NumberSpinnerModelAdapter(WritablePropertyValueModel numberHolder, double minimum, double maximum, double stepSize, double defaultValue) { - this(numberHolder, Double.valueOf(minimum), Double.valueOf(maximum), Double.valueOf(stepSize), Double.valueOf(defaultValue)); - } - - /** - * Constructor - the number holder is required. - */ - public NumberSpinnerModelAdapter(WritablePropertyValueModel numberHolder, Comparable minimum, Comparable maximum, Number stepSize, Number defaultValue) { - super(numberHolder.getValue() == null ? defaultValue : (Number) numberHolder.getValue(), minimum, maximum, stepSize); - this.numberHolder = numberHolder; - this.numberChangeListener = this.buildNumberChangeListener(); - // postpone listening to the underlying number - // until we have listeners ourselves... - this.defaultValue = defaultValue; - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildNumberChangeListener() { - return new AWTPropertyChangeListenerWrapper(this.buildNumberChangeListener_()); - } - - protected PropertyChangeListener buildNumberChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - NumberSpinnerModelAdapter.this.synchronize(event.getNewValue()); - } - @Override - public String toString() { - return "number listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** SpinnerModel implementation ********** - - /** - * Extend to check whether this method is being called before we - * have any listeners. - * This is necessary because some crappy jdk code gets the value - * from the model *before* listening to the model. ~bjv - * @see javax.swing.JSpinner.DefaultEditor(javax.swing.JSpinner) - */ - @Override - public Object getValue() { - if (this.getChangeListeners().length == 0) { - // sorry about this "lateral" call to super ~bjv - super.setValue(this.spinnerValueOf(this.numberHolder.getValue())); - } - return super.getValue(); - } - - /** - * Extend to update the underlying number directly. - * The resulting event will be ignored: @see #synchronizeDelegate(Object). - */ - @Override - public void setValue(Object value) { - super.setValue(value); - this.numberHolder.setValue((Number) value); - } - - /** - * Extend to start listening to the underlying number if necessary. - */ - @Override - public void addChangeListener(ChangeListener listener) { - if (this.getChangeListeners().length == 0) { - this.numberHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.numberChangeListener); - this.synchronize(this.numberHolder.getValue()); - } - super.addChangeListener(listener); - } - - /** - * Extend to stop listening to the underlying number if appropriate. - */ - @Override - public void removeChangeListener(ChangeListener listener) { - super.removeChangeListener(listener); - if (this.getChangeListeners().length == 0) { - this.numberHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.numberChangeListener); - } - } - - - // ********** queries ********** - - protected Number getDefaultValue() { - return this.defaultValue; - } - - /** - * Convert to a non-null value. - */ - protected Object spinnerValueOf(Object value) { - return (value == null) ? this.getDefaultValue() : value; - } - - - // ********** behavior ********** - - /** - * Set the spinner value if it has changed. - */ - void synchronize(Object value) { - Object newValue = this.spinnerValueOf(value); - // check to see whether the date has already been synchronized - // (via #setValue()) - if ( ! this.getValue().equals(newValue)) { - this.setValue(newValue); - } - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.numberHolder); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ObjectListSelectionModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ObjectListSelectionModel.java deleted file mode 100644 index 81647b2842..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ObjectListSelectionModel.java +++ /dev/null @@ -1,427 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; -import javax.swing.DefaultListSelectionModel; -import javax.swing.ListModel; -import javax.swing.event.ListDataEvent; -import javax.swing.event.ListDataListener; -import javax.swing.event.ListSelectionListener; -import org.eclipse.jpt.common.utility.internal.CollectionTools; - -/** - * This ListSelectionModel is aware of the ListModel and - * provides convenience methods to access and set the - * selected *objects*, as opposed to the selected *indexes*. - */ -public class ObjectListSelectionModel - extends DefaultListSelectionModel -{ - /** The list model referenced by the list selection model. */ - private final ListModel listModel; - - /** A listener that allows us to clear the selection when the list model has changed. */ - private final ListDataListener listDataListener; - - - // ********** constructors ********** - - /** - * Construct a list selection model for the specified list model. - */ - public ObjectListSelectionModel(ListModel listModel) { - super(); - this.listModel = listModel; - this.listDataListener = this.buildListDataListener(); - } - - - // ********** initialization ********** - - private ListDataListener buildListDataListener() { - return new ListDataListener() { - public void intervalAdded(ListDataEvent event) { - // this does not affect the selection - } - public void intervalRemoved(ListDataEvent event) { - // this does not affect the selection - } - public void contentsChanged(ListDataEvent event) { - ObjectListSelectionModel.this.listModelContentsChanged(event); - } - @Override - public String toString() { - return "list data listener"; //$NON-NLS-1$ - } - }; - } - - /** - * Typically, the selection does not need to be cleared when the - * contents of the list have changed. Most of the time this just - * means an item has changed in a way that affects its display string - * or icon. We typically only use the class for edits involving - * single selection. - * A subclass can override this method if the selection - * should be cleared because a change could mean the selection is invalid. - */ - protected void listModelContentsChanged(@SuppressWarnings("unused") ListDataEvent event) { - /**this.clearSelection();*/ - } - - - // ********** ListSelectionModel implementation ********** - - @Override - public void addListSelectionListener(ListSelectionListener l) { - if (this.hasNoListSelectionListeners()) { - this.listModel.addListDataListener(this.listDataListener); - } - super.addListSelectionListener(l); - } - - @Override - public void removeListSelectionListener(ListSelectionListener l) { - super.removeListSelectionListener(l); - if (this.hasNoListSelectionListeners()) { - this.listModel.removeListDataListener(this.listDataListener); - } - } - - - // ********** queries ********** - - /** - * Return whether this model has no listeners. - */ - protected boolean hasNoListSelectionListeners() { // private-protected - return this.getListSelectionListeners().length == 0; - } - - /** - * Return the list model referenced by the list selection model. - */ - public ListModel getListModel() { - return this.listModel; - } - - public int selectedValuesSize() { - int min = this.getMinSelectionIndex(); - int max = this.getMaxSelectionIndex(); - - if ((min < 0) || (max < 0)) { - return 0; - } - - int n = 0; - int count = this.getListModel().getSize(); - for (int i = min; i <= max; i++) { - if (this.isSelectedIndex(i) && (i < count)) { - n++; - } - } - return n; - } - - /** - * Return the first selected value. - * Return null if the selection is empty. - */ - public Object selectedValue() { - int index = this.getMinSelectionIndex(); - if (index == -1) { - return null; - } - if (this.getListModel().getSize() <= index) { - return null; - } - return this.getListModel().getElementAt(index); - } - - /** - * Return an array of the selected values. - */ - public Object[] selectedValues() { - int min = this.getMinSelectionIndex(); - int max = this.getMaxSelectionIndex(); - - if ((min < 0) || (max < 0)) { - return new Object[0]; - } - - int maxSize = (max - min) + 1; - Object[] temp = new Object[maxSize]; - int n = 0; - int count = this.getListModel().getSize(); - for (int i = min; i <= max; i++) { - if (this.isSelectedIndex(i) && (i < count)) { - temp[n++] = this.getListModel().getElementAt(i); - } - } - if (n == maxSize) { - // all the elements in the range were selected - return temp; - } - // only some of the elements in the range were selected - Object[] result = new Object[n]; - System.arraycopy(temp, 0, result, 0, n); - return result; - } - - /** - * Return an array of the selected indices in order. - */ - public int[] selectedIndices() { - int min = this.getMinSelectionIndex(); - int max = this.getMaxSelectionIndex(); - - if ((min < 0) || (max < 0)) { - return new int[0]; - } - - int maxSize = (max - min) + 1; - int[] temp = new int[maxSize]; - int n = 0; - int count = this.getListModel().getSize(); - for (int i = min; i <= max; i++) { - if (this.isSelectedIndex(i) && (i < count)) { - temp[n++] = i; - } - } - if (n == maxSize) { - // all the elements in the range were selected - Arrays.sort(temp); - return temp; - } - // only some of the elements in the range were selected - int[] result = new int[n]; - System.arraycopy(temp, 0, result, 0, n); - Arrays.sort(result); - return result; - } - - /** - * Set the selected value. - */ - public void setSelectedValue(Object object) { - this.setSelectedValues(CollectionTools.singletonIterator(object)); - } - - /** - * Set the current set of selected objects to the specified objects. - * @see javax.swing.ListSelectionModel#setSelectionInterval(int, int) - */ - public void setSelectedValues(Iterator objects) { - this.setValueIsAdjusting(true); - this.clearSelection(); - this.addSelectedValuesInternal(objects); - this.setValueIsAdjusting(false); - } - - /** - * Set the current set of selected objects to the specified objects. - * @see javax.swing.ListSelectionModel#setSelectionInterval(int, int) - */ - public void setSelectedValues(Collection objects) { - this.setSelectedValues(objects.iterator()); - } - - /** - * Set the current set of selected objects to the specified objects. - * @see javax.swing.ListSelectionModel#setSelectionInterval(int, int) - */ - public void setSelectedValues(Object[] objects) { - this.setSelectedValues(CollectionTools.iterator(objects)); - } - - /** - * Add the specified object to the current set of selected objects. - * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int) - */ - public void addSelectedValue(Object object) { - this.addSelectedValues(CollectionTools.singletonIterator(object)); - } - - /** - * Add the specified objects to the current set of selected objects. - * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int) - */ - public void addSelectedValues(Iterator objects) { - this.setValueIsAdjusting(true); - this.addSelectedValuesInternal(objects); - this.setValueIsAdjusting(false); - } - - /** - * Add the specified objects to the current set of selected objects. - * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int) - */ - public void addSelectedValues(Collection objects) { - this.addSelectedValues(objects.iterator()); - } - - /** - * Add the specified objects to the current set of selected objects. - * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int) - */ - public void addSelectedValues(Object[] objects) { - this.addSelectedValues(CollectionTools.iterator(objects)); - } - - /** - * Remove the specified object from the current set of selected objects. - * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int) - */ - public void removeSelectedValue(Object object) { - this.removeSelectedValues(CollectionTools.singletonIterator(object)); - } - - /** - * Remove the specified objects from the current set of selected objects. - * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int) - */ - public void removeSelectedValues(Iterator objects) { - this.setValueIsAdjusting(true); - ListModel lm = this.getListModel(); - int lmSize = lm.getSize(); - while (objects.hasNext()) { - int index = this.indexOf(objects.next(), lm, lmSize); - this.removeSelectionInterval(index, index); - } - this.setValueIsAdjusting(false); - } - - /** - * Remove the specified objects from the current set of selected objects. - * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int) - */ - public void removeSelectedValues(Collection objects) { - this.removeSelectedValues(objects.iterator()); - } - - /** - * Remove the specified objects from the current set of selected objects. - * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int) - */ - public void removeSelectedValues(Object[] objects) { - this.removeSelectedValues(CollectionTools.iterator(objects)); - } - - /** - * @see javax.swing.ListSelectionModel#getAnchorSelectionIndex() - * Return null if the anchor selection is empty. - */ - public Object getAnchorSelectedValue() { - int index = this.getAnchorSelectionIndex(); - if (index == -1) { - return null; - } - return this.getListModel().getElementAt(index); - } - - /** - * @see javax.swing.ListSelectionModel#setAnchorSelectionIndex(int) - */ - public void setAnchorSelectedValue(Object object) { - this.setAnchorSelectionIndex(this.indexOf(object)); - } - - /** - * @see javax.swing.ListSelectionModel#getLeadSelectionIndex() - * Return null if the lead selection is empty. - */ - public Object getLeadSelectedValue() { - int index = this.getLeadSelectionIndex(); - if (index == -1) { - return null; - } - return this.getListModel().getElementAt(index); - } - - /** - * @see javax.swing.ListSelectionModel#setLeadSelectionIndex(int) - */ - public void setLeadSelectedValue(Object object) { - this.setLeadSelectionIndex(this.indexOf(object)); - } - - /** - * @see javax.swing.ListSelectionModel#getMaxSelectionIndex() - * Return null if the max selection is empty. - */ - public Object getMaxSelectedValue() { - int index = this.getMaxSelectionIndex(); - if (index == -1) { - return null; - } - return this.getListModel().getElementAt(index); - } - - /** - * @see javax.swing.ListSelectionModel#getMinSelectionIndex() - * Return null if the min selection is empty. - */ - public Object getMinSelectedValue() { - int index = this.getMinSelectionIndex(); - if (index == -1) { - return null; - } - return this.getListModel().getElementAt(index); - } - - /** - * @see javax.swing.ListSelectionModel#isSelectedIndex(int) - */ - public boolean valueIsSelected(Object object) { - return this.isSelectedIndex(this.indexOf(object)); - } - - /** - * Add the specified objects to the current set of selected objects, - * without wrapping the actions in "adjusting" events. - */ - private void addSelectedValuesInternal(Iterator objects) { - ListModel lm = this.getListModel(); - int listModelSize = lm.getSize(); - while (objects.hasNext()) { - int index = this.indexOf(objects.next(), lm, listModelSize); - this.addSelectionInterval(index, index); - } - } - - /** - * Return the index in the list model of the specified object. - * Return -1 if the object is not in the list model. - */ - private int indexOf(Object object) { - ListModel lm = this.getListModel(); - return this.indexOf(object, lm, lm.getSize()); - } - - /** - * Return the index in the list model of the specified object. - * Return -1 if the object is not in the list model. - */ - // we're just jerking around with performance optimizations here - // (in memory of Phil...); - // call this method inside loops that do not modify the listModel - private int indexOf(Object object, ListModel lm, int listModelSize) { - for (int i = listModelSize; i-- > 0; ) { - if (lm.getElementAt(i).equals(object)) { - return i; - } - } - return -1; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/PrimitiveListTreeModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/PrimitiveListTreeModel.java deleted file mode 100644 index 9fe9fca0e8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/PrimitiveListTreeModel.java +++ /dev/null @@ -1,239 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import java.util.ArrayList; -import java.util.Iterator; - -import javax.swing.event.TreeModelListener; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.MutableTreeNode; -import javax.swing.tree.TreeNode; -import javax.swing.tree.TreePath; - -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTListChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * This TreeModel implementation provides a tree with a "null" root that - * has a set of "primitive" children. These "primitive" children do not have - * children themselves, making the tree a maximum of 2 levels deep. - * This model automatically synchronizes the root's children with a - * ListValueModel that holds a collection of primitive (non-model) objects - * (e.g. Strings). - * - * This is useful for providing an "editable" list of primitives. Since the JDK - * does not provide us with an editable listbox, we must use an editable tree. - * We wrap everything in DefaultMutableTreeNodes. - * - * Subclasses must implement #primitiveChanged(int, Object) and update - * the model appropriately. This method is called when the user edits the - * list directly and presses . - * - * The JTree using this model must be configured as "editable": - * tree.setEditable(true); - */ -// TODO convert to use an adapter instead of requiring subclass -public abstract class PrimitiveListTreeModel - extends DefaultTreeModel -{ - /** a model on the list of primitives */ - private final ListValueModel listHolder; - - /** a listener that handles the adding, removing, and replacing of the primitives */ - private final ListChangeListener listChangeListener; - - - // ********** constructors ********** - - /** - * Public constructor - the list holder is required - */ - public PrimitiveListTreeModel(ListValueModel listHolder) { - super(new DefaultMutableTreeNode(null, true)); // true = the root can have children - if (listHolder == null) { - throw new NullPointerException(); - } - this.listHolder = listHolder; - this.listChangeListener = this.buildListChangeListener(); - // postpone listening to the model until we have listeners ourselves - } - - protected ListChangeListener buildListChangeListener() { - return new AWTListChangeListenerWrapper(this.buildListChangeListener_()); - } - - protected ListChangeListener buildListChangeListener_() { - return new PrimitiveListChangeListener(); - } - - - // ********** behavior ********** - - /** - * Subclasses should override this method to update the - * model appropriately. The primitive at the specified index was - * edited directly by the user and the new value is as specified. - * Convert the value appropriately and place it in the model. - */ - protected abstract void primitiveChanged(int index, Object newValue); - - - // ********** TreeModel implementation ********** - - /** - * Override to change the underlying model instead of changing the node directly. - */ - @Override - public void valueForPathChanged(TreePath path, Object newValue) { - TreeNode node = (TreeNode) path.getLastPathComponent(); - int index = ((TreeNode) this.getRoot()).getIndex(node); - this.primitiveChanged(index, newValue); - } - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public void addTreeModelListener(TreeModelListener l) { - if (this.getTreeModelListeners().length == 0) { - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - this.synchronizeList(); - } - super.addTreeModelListener(l); - } - - /** - * Extend to stop listening to the underlying model if appropriate. - */ - @Override - public void removeTreeModelListener(TreeModelListener l) { - super.removeTreeModelListener(l); - if (this.getTreeModelListeners().length == 0) { - this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - } - - - // ********** behavior ********** - - /** - * Synchronize our list of nodes with the list of primitives - */ - void synchronizeList() { - this.clearList(); - this.buildList(); - } - - void clearList() { - int childcount = this.root.getChildCount(); - for (int i = childcount - 1; i >= 0; i--) { - this.removeNodeFromParent((MutableTreeNode)this.root.getChildAt(i)); - } - } - - private void buildList() { - for (Iterator stream = this.listHolder.iterator(); stream.hasNext(); ) { - this.addPrimitive(stream.next()); - } - } - - /** - * Add the specified primitive to the end of the list. - */ - private void addPrimitive(Object primitive) { - this.insertPrimitive(this.root.getChildCount(), primitive); - } - - /** - * Create a node for the specified primitive - * and insert it as a child of the root. - */ - void insertPrimitive(int index, Object primitive) { - DefaultMutableTreeNode node = new DefaultMutableTreeNode(primitive, false); // don't allow children on the child node - this.insertNodeInto(node, (MutableTreeNode) this.root, index); - } - - /** - * Remove node at the specified index. - */ - MutableTreeNode removeNode(int index) { - MutableTreeNode node = (MutableTreeNode) this.root.getChildAt(index); - this.removeNodeFromParent(node); - return node; - } - - /** - * Replace the user object of the node at childIndex. - */ - void replacePrimitive(int index, Object primitive) { - MutableTreeNode node = (MutableTreeNode) this.root.getChildAt(index); - node.setUserObject(primitive); - this.nodeChanged(node); - } - - - // ********** inner class ********** - - private class PrimitiveListChangeListener implements ListChangeListener { - PrimitiveListChangeListener() { - super(); - } - - public void itemsAdded(ListAddEvent event) { - int i = event.getIndex(); - for (Object item : event.getItems()) { - PrimitiveListTreeModel.this.insertPrimitive(i++, item); - } - } - - public void itemsRemoved(ListRemoveEvent event) { - for (int i = 0; i < event.getItemsSize(); i++) { - PrimitiveListTreeModel.this.removeNode(event.getIndex()); - } - } - - public void itemsReplaced(ListReplaceEvent event) { - int i = event.getIndex(); - for (Object item : event.getNewItems()) { - PrimitiveListTreeModel.this.replacePrimitive(i++, item); - } - } - - public void itemsMoved(ListMoveEvent event) { - ArrayList temp = new ArrayList(event.getLength()); - for (int i = 0; i < event.getLength(); i++) { - temp.add(PrimitiveListTreeModel.this.removeNode(event.getSourceIndex())); - } - int i = event.getTargetIndex(); - for (MutableTreeNode node : temp) { - PrimitiveListTreeModel.this.insertPrimitive(i++, node); - } - } - - public void listCleared(ListClearEvent event) { - PrimitiveListTreeModel.this.clearList(); - } - - public void listChanged(ListChangeEvent event) { - PrimitiveListTreeModel.this.synchronizeList(); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/RadioButtonModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/RadioButtonModelAdapter.java deleted file mode 100644 index 83d3113454..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/RadioButtonModelAdapter.java +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import org.eclipse.jpt.common.utility.internal.BidiFilter; -import org.eclipse.jpt.common.utility.internal.BidiTransformer; -import org.eclipse.jpt.common.utility.internal.model.value.FilteringWritablePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.TransformationWritablePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This javax.swing.ButtonModel can be used to keep a listener - * (e.g. a JRadioButton) in synch with a (typically shared) - * PropertyValueModel that holds one value out of a set of values. - * - * NOTE: Do *not* use this model with a ButtonGroup, since the - * shared value holder and the wrappers built by this adapter will - * keep the appropriate radio button checked. Also, this allows - * us to uncheck all the radio buttons in a group when the shared - * value is null. - */ -public class RadioButtonModelAdapter - extends ToggleButtonModelAdapter -{ - - // ********** constructors ********** - - /** - * Constructor - the value holder is required. - */ - public RadioButtonModelAdapter(WritablePropertyValueModel valueHolder, Object buttonValue, boolean defaultValue) { - super(buildBooleanHolder(valueHolder, buttonValue), defaultValue); - } - - /** - * Constructor - the value holder is required. - * The default value will be false. - */ - public RadioButtonModelAdapter(WritablePropertyValueModel valueHolder, Object buttonValue) { - super(buildBooleanHolder(valueHolder, buttonValue)); - } - - - // ********** static methods ********** - - /** - * Build up a set of wrappers that will convert the - * specified value holder and button value to/from a boolean. - * - * If the value holder's value matches the button value, - * the wrapper will return true. Likewise, if the value holder's - * value is set to true, the wrapper will set the value holder's - * value to the button value. - */ - public static WritablePropertyValueModel buildBooleanHolder(WritablePropertyValueModel valueHolder, Object buttonValue) { - WritablePropertyValueModel filteringPVM = new FilteringWritablePropertyValueModel(valueHolder, new RadioButtonFilter(buttonValue)); - return new TransformationWritablePropertyValueModel(filteringPVM, new RadioButtonTransformer(buttonValue)); - } - - - // ********** overrides ********** - - /** - * The user cannot de-select a radio button - the user - * can only *select* a radio button. Only the model can - * cause a radio button to be de-selected. We use the - * ARMED flag to indicate whether we are being de-selected - * by the user. - */ - @Override - public void setSelected(boolean b) { - // do not allow the user to de-select a radio button - // radio buttons can - if ((b == false) && this.isArmed()) { - return; - } - super.setSelected(b); - } - - - // ********** inner classes ********** - - /** - * This filter will only pass through a new value to the wrapped - * value holder when it matches the configured button value. - */ - public static class RadioButtonFilter implements BidiFilter { - private Object buttonValue; - - public RadioButtonFilter(Object buttonValue) { - super(); - this.buttonValue = buttonValue; - } - - /** - * always return the wrapped value - */ - public boolean accept(Object value) { - return true; - } - - /** - * pass through the value to the wrapped property value model - * *only* when it matches our button value - */ - public boolean reverseAccept(Object value) { - return (value != null) && value.equals(this.buttonValue); - } - - } - - /** - * This transformer will convert the wrapped value to Boolean.TRUE - * when it matches the configured button value. - */ - public static class RadioButtonTransformer implements BidiTransformer { - private Object buttonValue; - - public RadioButtonTransformer(Object buttonValue) { - super(); - this.buttonValue = buttonValue; - } - - /** - * if the wrapped value matches our button value return true, - * if it is some other value return false; - * but if it is null simply pass it through because it will cause the - * button model's default value to be used - */ - public Boolean transform(Object value) { - return (value == null) ? null : Boolean.valueOf(value.equals(this.buttonValue)); - } - - /** - * if the new value is true, pass through the our button value; - * otherwise pass through null - */ - public Object reverseTransform(Boolean value) { - return (value.booleanValue()) ? this.buttonValue : null; - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/SpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/SpinnerModelAdapter.java deleted file mode 100644 index 2490cae9d4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/SpinnerModelAdapter.java +++ /dev/null @@ -1,207 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import javax.swing.AbstractSpinnerModel; -import javax.swing.SpinnerModel; -import javax.swing.SpinnerNumberModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This javax.swing.SpinnerModel can be used to keep a ChangeListener - * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a value. - * - * Note: it is likely you want to use one of the following classes instead of - * this one: - * DateSpinnerModelAdapter - * NumberSpinnerModelAdapter - * ListSpinnerModelAdapter - * - * NB: This model should only be used for values that have a fairly - * inexpensive #equals() implementation. - * @see #synchronizeDelegate(Object) - */ -public class SpinnerModelAdapter - extends AbstractSpinnerModel -{ - /** The delegate spinner model whose behavior we "enhance". */ - protected final SpinnerModel delegate; - - /** A listener that allows us to forward any changes made to the delegate spinner model. */ - protected final ChangeListener delegateListener; - - /** A value model on the underlying value. */ - protected final WritablePropertyValueModel valueHolder; - - /** A listener that allows us to synchronize with changes made to the underlying value. */ - protected final PropertyChangeListener valueListener; - - - // ********** constructors ********** - - /** - * Constructor - the value holder and delegate are required. - */ - public SpinnerModelAdapter(WritablePropertyValueModel valueHolder, SpinnerModel delegate) { - super(); - if (valueHolder == null || delegate == null) { - throw new NullPointerException(); - } - this.valueHolder = valueHolder; - this.delegate = delegate; - // postpone listening to the underlying value - // until we have listeners ourselves... - this.valueListener = this.buildValueListener(); - this.delegateListener = this.buildDelegateListener(); - } - - /** - * Constructor - the value holder is required. - * This will wrap a simple number spinner model. - */ - public SpinnerModelAdapter(WritablePropertyValueModel valueHolder) { - this(valueHolder, new SpinnerNumberModel()); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildValueListener() { - return new AWTPropertyChangeListenerWrapper(this.buildValueListener_()); - } - - protected PropertyChangeListener buildValueListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - SpinnerModelAdapter.this.valueChanged(event); - } - @Override - public String toString() { - return "value listener"; //$NON-NLS-1$ - } - }; - } - - /** - * expand access a bit for inner class - */ - @Override - protected void fireStateChanged() { - super.fireStateChanged(); - } - - protected ChangeListener buildDelegateListener() { - return new ChangeListener() { - public void stateChanged(ChangeEvent event) { - // forward the event, with this as the source - SpinnerModelAdapter.this.fireStateChanged(); - } - @Override - public String toString() { - return "delegate listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** SpinnerModel implementation ********** - - public Object getValue() { - return this.delegate.getValue(); - } - - /** - * Extend to update the underlying value directly. - * The resulting event will be ignored: @see #synchronizeDelegate(Object). - */ - public void setValue(Object value) { - this.delegate.setValue(value); - this.valueHolder.setValue(value); - } - - public Object getNextValue() { - return this.delegate.getNextValue(); - } - - public Object getPreviousValue() { - return this.delegate.getPreviousValue(); - } - - /** - * Extend to start listening to the underlying value if necessary. - */ - @Override - public void addChangeListener(ChangeListener listener) { - if (this.listenerList.getListenerCount(ChangeListener.class) == 0) { - this.delegate.addChangeListener(this.delegateListener); - this.engageValueHolder(); - } - super.addChangeListener(listener); - } - - /** - * Extend to stop listening to the underlying value if appropriate. - */ - @Override - public void removeChangeListener(ChangeListener listener) { - super.removeChangeListener(listener); - if (this.listenerList.getListenerCount(ChangeListener.class) == 0) { - this.disengageValueHolder(); - this.delegate.removeChangeListener(this.delegateListener); - } - } - - - // ********** behavior ********** - - /** - * A third party has modified the underlying value. - * Synchronize the delegate model accordingly. - */ - protected void valueChanged(PropertyChangeEvent event) { - this.synchronizeDelegate(event.getNewValue()); - } - - /** - * Set the delegate's value if it has changed. - */ - protected void synchronizeDelegate(Object value) { - // check to see whether the delegate has already been synchronized - // (via #setValue()) - if ( ! this.delegate.getValue().equals(value)) { - this.delegate.setValue(value); - } - } - - protected void engageValueHolder() { - this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.valueListener); - this.synchronizeDelegate(this.valueHolder.getValue()); - } - - protected void disengageValueHolder() { - this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.valueListener); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.valueHolder); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TableModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TableModelAdapter.java deleted file mode 100644 index 8c29c1364b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TableModelAdapter.java +++ /dev/null @@ -1,420 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import javax.swing.event.TableModelListener; -import javax.swing.table.AbstractTableModel; - -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTListChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionListValueModelAdapter; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This TableModel can be used to keep a TableModelListener (e.g. a JTable) - * in synch with a ListValueModel that holds a collection of model objects, - * each of which corresponds to a row in the table. - * Typically, each column of the table will be bound to a different aspect - * of the contained model objects. - * - * For example, a MWTable has an attribute 'databaseFields' that holds - * a collection of MWDatabaseFields that would correspond to the rows of - * a JTable; and each MWDatabaseField has a number - * of attributes (e.g. name, type, size) that can be bound to the columns of - * a row in the JTable. As these database fields are added, removed, and - * changed, this model will keep the listeners aware of the changes. - * - * An instance of this TableModel must be supplied with a - * list holder (e.g. the 'databaseFields'), which is a value - * model on the bound collection This is required - the - * collection itself can be null, but the list value model that - * holds it is required. Typically this list will be sorted (@see - * SortedListValueModelAdapter). - * - * This TableModel must also be supplied with a ColumnAdapter that - * will be used to configure the headers, renderers, editors, and contents - * of the various columns. - * - * Design decision: - * Cell listener options (from low space/high time to high space/low time): - * - 1 cell listener listening to every cell (this is the current implementation) - * - 1 cell listener per row - * - 1 cell listener per cell - */ -public class TableModelAdapter - extends AbstractTableModel -{ - /** - * a list of user objects that are converted to - * rows via the column adapter - */ - private ListValueModel listHolder; - private final ListChangeListener listChangeListener; - - /** - * each row is an array of cell models - */ - // declare as ArrayList so we can use #ensureCapacity(int) - private final ArrayList[]> rows; - - /** - * client-supplied adapter that provides with the various column - * settings and converts the objects in the LVM - * into an array of cell models - */ - private final ColumnAdapter columnAdapter; - - /** - * the single listener that listens to every cell's model - */ - private final PropertyChangeListener cellListener; - - - // ********** constructors ********** - - /** - * Construct a table model adapter for the specified objects - * and adapter. - */ - public TableModelAdapter(ListValueModel listHolder, ColumnAdapter columnAdapter) { - super(); - if (listHolder == null) { - throw new NullPointerException(); - } - this.listHolder = listHolder; - this.columnAdapter = columnAdapter; - this.listChangeListener = this.buildListChangeListener(); - this.rows = new ArrayList[]>(); - this.cellListener = this.buildCellListener(); - } - - /** - * Construct a table model adapter for the specified objects - * and adapter. - */ - public TableModelAdapter(CollectionValueModel collectionHolder, ColumnAdapter columnAdapter) { - this(new CollectionListValueModelAdapter(collectionHolder), columnAdapter); - } - - - // ********** initialization ********** - - protected ListChangeListener buildListChangeListener() { - return new AWTListChangeListenerWrapper(this.buildListChangeListener_()); - } - - protected ListChangeListener buildListChangeListener_() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - TableModelAdapter.this.addRows(event.getIndex(), event.getItemsSize(), this.getItems(event)); - } - public void itemsRemoved(ListRemoveEvent event) { - TableModelAdapter.this.removeRows(event.getIndex(), event.getItemsSize()); - } - public void itemsReplaced(ListReplaceEvent event) { - TableModelAdapter.this.replaceRows(event.getIndex(), this.getNewItems(event)); - } - public void itemsMoved(ListMoveEvent event) { - TableModelAdapter.this.moveRows(event.getTargetIndex(), event.getSourceIndex(), event.getLength()); - } - public void listCleared(ListClearEvent event) { - TableModelAdapter.this.clearTable(); - } - public void listChanged(ListChangeEvent event) { - TableModelAdapter.this.rebuildTable(); - } - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getItems(ListAddEvent event) { - return (Iterable) event.getItems(); - } - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable getNewItems(ListReplaceEvent event) { - return (Iterable) event.getNewItems(); - } - @Override - public String toString() { - return "list listener"; //$NON-NLS-1$ - } - }; - } - - - protected PropertyChangeListener buildCellListener() { - return new AWTPropertyChangeListenerWrapper(this.buildCellListener_()); - } - - protected PropertyChangeListener buildCellListener_() { - return new PropertyChangeListener() { - @SuppressWarnings("unchecked") - public void propertyChanged(PropertyChangeEvent event) { - TableModelAdapter.this.cellChanged((WritablePropertyValueModel) event.getSource()); - } - @Override - public String toString() { - return "cell listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** TableModel implementation ********** - - public int getColumnCount() { - return this.columnAdapter.columnCount(); - } - - public int getRowCount() { - return this.rows.size(); - } - - @Override - public String getColumnName(int column) { - return this.columnAdapter.columnName(column); - } - - @Override - public Class getColumnClass(int columnIndex) { - return this.columnAdapter.columnClass(columnIndex); - } - - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return this.columnAdapter.columnIsEditable(columnIndex); - } - - public Object getValueAt(int rowIndex, int columnIndex) { - WritablePropertyValueModel[] row = this.rows.get(rowIndex); - return row[columnIndex].getValue(); - } - - @Override - public void setValueAt(Object value, int rowIndex, int columnIndex) { - WritablePropertyValueModel[] row = this.rows.get(rowIndex); - row[columnIndex].setValue(value); - } - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public void addTableModelListener(TableModelListener l) { - if (this.hasNoTableModelListeners()) { - this.engageModel(); - } - super.addTableModelListener(l); - } - - /** - * Extend to stop listening to the underlying model if necessary. - */ - @Override - public void removeTableModelListener(TableModelListener l) { - super.removeTableModelListener(l); - if (this.hasNoTableModelListeners()) { - this.disengageModel(); - } - } - - - // ********** public API ********** - - /** - * Return the underlying list model. - */ - public ListValueModel getModel() { - return this.listHolder; - } - - /** - * Set the underlying list model. - */ - public void setModel(ListValueModel listHolder) { - if (listHolder == null) { - throw new NullPointerException(); - } - boolean hasListeners = this.hasTableModelListeners(); - if (hasListeners) { - this.disengageModel(); - } - this.listHolder = listHolder; - if (hasListeners) { - this.engageModel(); - this.fireTableDataChanged(); - } - } - - /** - * Set the underlying collection model. - */ - public void setModel(CollectionValueModel collectionHolder) { - this.setModel(new CollectionListValueModelAdapter(collectionHolder)); - } - - - // ********** queries ********** - - /** - * Return whether this model has no listeners. - */ - protected boolean hasNoTableModelListeners() { - return this.listenerList.getListenerCount(TableModelListener.class) == 0; - } - - /** - * Return whether this model has any listeners. - */ - protected boolean hasTableModelListeners() { - return ! this.hasNoTableModelListeners(); - } - - - // ********** behavior ********** - - /** - * Start listening to the list of objects and the various aspects - * of the objects that make up the rows. - */ - private void engageModel() { - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - this.engageAllCells(); - } - - /** - * Convert the objects into rows and listen to the cells. - */ - private void engageAllCells() { - this.rows.ensureCapacity(this.listHolder.size()); - for (Iterator stream = this.listHolder.iterator(); stream.hasNext(); ) { - WritablePropertyValueModel[] row = this.columnAdapter.cellModels(stream.next()); - this.engageRow(row); - this.rows.add(row); - } - } - - /** - * Listen to the cells in the specified row. - */ - private void engageRow(WritablePropertyValueModel[] row) { - for (int i = row.length; i-- > 0; ) { - row[i].addPropertyChangeListener(PropertyValueModel.VALUE, this.cellListener); - } - } - - /** - * Stop listening. - */ - private void disengageModel() { - this.disengageAllCells(); - this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener); - } - - private void disengageAllCells() { - for (WritablePropertyValueModel[] row : this.rows) { - this.disengageRow(row); - } - this.rows.clear(); - } - - private void disengageRow(WritablePropertyValueModel[] row) { - for (int i = row.length; i-- > 0; ) { - row[i].removePropertyChangeListener(PropertyValueModel.VALUE, this.cellListener); - } - } - - /** - * brute-force search for the cell(s) that changed... - */ - void cellChanged(WritablePropertyValueModel cellHolder) { - for (int i = this.rows.size(); i-- > 0; ) { - WritablePropertyValueModel[] row = this.rows.get(i); - for (int j = row.length; j-- > 0; ) { - if (row[j] == cellHolder) { - this.fireTableCellUpdated(i, j); - } - } - } - } - - /** - * convert the items to rows - */ - void addRows(int index, int size, Iterable items) { - List[]> newRows = new ArrayList[]>(size); - for (Object item : items) { - WritablePropertyValueModel[] row = this.columnAdapter.cellModels(item); - this.engageRow(row); - newRows.add(row); - } - this.rows.addAll(index, newRows); - this.fireTableRowsInserted(index, index + size - 1); - } - - void removeRows(int index, int size) { - for (int i = 0; i < size; i++) { - this.disengageRow(this.rows.remove(index)); - } - this.fireTableRowsDeleted(index, index + size - 1); - } - - void replaceRows(int index, Iterable items) { - int i = index; - for (Object item : items) { - WritablePropertyValueModel[] row = this.rows.get(i); - this.disengageRow(row); - row = this.columnAdapter.cellModels(item); - this.engageRow(row); - this.rows.set(i, row); - i++; - } - this.fireTableRowsUpdated(index, i - 1); - } - - void moveRows(int targetIndex, int sourceIndex, int length) { - ArrayList[]> temp = new ArrayList[]>(length); - for (int i = 0; i < length; i++) { - temp.add(this.rows.remove(sourceIndex)); - } - this.rows.addAll(targetIndex, temp); - - int start = Math.min(targetIndex, sourceIndex); - int end = Math.max(targetIndex, sourceIndex) + length - 1; - this.fireTableRowsUpdated(start, end); - } - - void clearTable() { - this.disengageAllCells(); - this.fireTableDataChanged(); - } - - void rebuildTable() { - this.disengageAllCells(); - this.engageAllCells(); - this.fireTableDataChanged(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ToggleButtonModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ToggleButtonModelAdapter.java deleted file mode 100644 index 044b2658a5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/ToggleButtonModelAdapter.java +++ /dev/null @@ -1,224 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import java.awt.event.ActionListener; -import java.awt.event.ItemListener; -import javax.swing.JToggleButton.ToggleButtonModel; -import javax.swing.event.ChangeListener; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * This javax.swing.ButtonModel can be used to keep a listener - * (e.g. a JCheckBox or a JRadioButton) in synch with a PropertyValueModel - * on a boolean. - */ -public class ToggleButtonModelAdapter - extends ToggleButtonModel -{ - /** - * The default setting for the toggle button; for when the underlying model is null. - * The default [default value] is false (i.e. the toggle button is unchecked/empty). - */ - protected final boolean defaultValue; - - /** A value model on the underlying model boolean. */ - protected final WritablePropertyValueModel booleanHolder; - - /** - * A listener that allows us to synchronize with - * changes made to the underlying model boolean. - */ - protected final PropertyChangeListener booleanChangeListener; - - - // ********** constructors ********** - - /** - * Constructor - the boolean holder is required. - */ - public ToggleButtonModelAdapter(WritablePropertyValueModel booleanHolder, boolean defaultValue) { - super(); - if (booleanHolder == null) { - throw new NullPointerException(); - } - this.booleanHolder = booleanHolder; - this.booleanChangeListener = this.buildBooleanChangeListener(); - // postpone listening to the underlying model - // until we have listeners ourselves... - this.defaultValue = defaultValue; - } - - /** - * Constructor - the boolean holder is required. - * The default value will be false. - */ - public ToggleButtonModelAdapter(WritablePropertyValueModel booleanHolder) { - this(booleanHolder, false); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildBooleanChangeListener() { - return new AWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_()); - } - - protected PropertyChangeListener buildBooleanChangeListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - ToggleButtonModelAdapter.this.booleanChanged(event); - } - @Override - public String toString() { - return "boolean listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** ButtonModel implementation ********** - - /** - * Extend to update the underlying model if necessary. - */ - @Override - public void setSelected(boolean b) { - if (this.isSelected() != b) { // stop the recursion! - super.setSelected(b);//put the super call first, otherwise the following gets called twice - this.booleanHolder.setValue(Boolean.valueOf(b)); - } - } - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public void addActionListener(ActionListener l) { - if (this.hasNoListeners()) { - this.engageModel(); - } - super.addActionListener(l); - } - - /** - * Extend to stop listening to the underlying model if appropriate. - */ - @Override - public void removeActionListener(ActionListener l) { - super.removeActionListener(l); - if (this.hasNoListeners()) { - this.disengageModel(); - } - } - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public void addItemListener(ItemListener l) { - if (this.hasNoListeners()) { - this.engageModel(); - } - super.addItemListener(l); - } - - /** - * Extend to stop listening to the underlying model if appropriate. - */ - @Override - public void removeItemListener(ItemListener l) { - super.removeItemListener(l); - if (this.hasNoListeners()) { - this.disengageModel(); - } - } - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public void addChangeListener(ChangeListener l) { - if (this.hasNoListeners()) { - this.engageModel(); - } - super.addChangeListener(l); - } - - /** - * Extend to stop listening to the underlying model if appropriate. - */ - @Override - public void removeChangeListener(ChangeListener l) { - super.removeChangeListener(l); - if (this.hasNoListeners()) { - this.disengageModel(); - } - } - - - // ********** queries ********** - - /** - * Return whether we have no listeners at all. - */ - protected boolean hasNoListeners() { - return this.listenerList.getListenerCount() == 0; - } - - protected boolean getDefaultValue() { - return this.defaultValue; - } - - - // ********** behavior ********** - - /** - * Synchronize with the specified value. - * If it is null, use the default value (which is typically false). - */ - protected void setSelected(Boolean value) { - if (value == null) { - this.setSelected(this.getDefaultValue()); - } else { - this.setSelected(value.booleanValue()); - } - } - - /** - * The underlying model has changed - synchronize accordingly. - */ - protected void booleanChanged(PropertyChangeEvent event) { - this.setSelected((Boolean) event.getNewValue()); - } - - protected void engageModel() { - this.booleanHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener); - this.setSelected(this.booleanHolder.getValue()); - } - - protected void disengageModel() { - this.booleanHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.booleanHolder); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TreeModelAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TreeModelAdapter.java deleted file mode 100644 index 12f0faf3a7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/model/value/swing/TreeModelAdapter.java +++ /dev/null @@ -1,914 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.model.value.swing; - -import java.util.ArrayList; -import java.util.IdentityHashMap; -import java.util.List; - -import javax.swing.event.TreeModelListener; -import javax.swing.tree.TreePath; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTListChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.model.listener.awt.AWTStateChangeListenerWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.TreeNodeValueModel; - -/** - * This javax.swing.tree.TreeModel can be used to keep a TreeModelListener - * (e.g. a JTree) in synch with a tree of TreeNodeValueModel objects. Unlike - * javax.swing.tree.DefaultTreeModel, you do not add and remove nodes with - * methods implemented here. You can add and remove nodes by adding and - * removing them directly to/from the nodes (or, more typically, the domain - * objects the nodes are wrapping and listening to). - * - * Due to limitations in JTree, the root of the tree can never be null, - * which, typically, should not be a problem. (If you want to display an empty - * tree you can set the JTree's treeModel to null.) - */ -public class TreeModelAdapter - extends AbstractTreeModel -{ - /** - * A value model on the underlying tree's root node and its - * corresponding listener. This allows clients to swap out - * the entire tree. Due to limitations in JTree, the root should - * never be set to null while we have listeners. - */ - private final PropertyValueModel> rootHolder; - private final PropertyChangeListener rootListener; - - /** - * A listener that notifies us when a node's internal - * "state" changes (as opposed to the node's value or list of - * children), allowing us to forward notification to our listeners. - */ - private final StateChangeListener nodeStateListener; - - /** - * A listener that notifies us when a node's "value" - * changes (as opposed to the node's state or list of - * children), allowing us to forward notification to our listeners. - * Typically, this will only happen with nodes that hold - * primitive data. - */ - private final PropertyChangeListener nodeValueListener; - - /** - * A listener that notifies us when an underlying node's - * "list" of children changes, allowing us to keep our - * internal tree in synch with the underlying tree model. - */ - private final ListChangeListener childrenListener; - - /* these attributes make up our internal tree */ - /** - * The root cannot be null while we have listeners, which is - * most of the time. The root is cached so we can disengage - * from it when it has been swapped out. - */ - private TreeNodeValueModel root; - - /** - * Map the nodes to their lists of children. - * We cache these so we can swap out the entire list of children - * when we receive a #listChanged() event (which does not include - * the items that were affected). - * @see EventChangePolicy#rebuildChildren() - */ - final IdentityHashMap, List>> childrenLists; - - /** - * Map the children models to their parents. - * We cache these so we can figure out the "real" source of the - * list change events (the parent). - * @see EventChangePolicy#parent() - */ - final IdentityHashMap>, TreeNodeValueModel> parents; - - - // ********** constructors ********** - - /** - * Construct a tree model for the specified root. - */ - public TreeModelAdapter(PropertyValueModel> rootHolder) { - super(); - if (rootHolder == null) { - throw new NullPointerException(); - } - this.rootHolder = rootHolder; - this.rootListener = this.buildRootListener(); - this.nodeStateListener = this.buildNodeStateListener(); - this.nodeValueListener = this.buildNodeValueListener(); - this.childrenListener = this.buildChildrenListener(); - this.childrenLists = new IdentityHashMap, List>>(); - this.parents = new IdentityHashMap>, TreeNodeValueModel>(); - } - - /** - * Construct a tree model for the specified root. - */ - public TreeModelAdapter(TreeNodeValueModel root) { - this(new StaticPropertyValueModel>(root)); - } - - - // ********** initialization ********** - - protected PropertyChangeListener buildRootListener() { - return new AWTPropertyChangeListenerWrapper(this.buildRootListener_()); - } - - protected PropertyChangeListener buildRootListener_() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - TreeModelAdapter.this.rootChanged(); - } - @Override - public String toString() { - return "root listener"; //$NON-NLS-1$ - } - }; - } - - protected PropertyChangeListener buildNodeValueListener() { - return new AWTPropertyChangeListenerWrapper(this.buildNodeValueListener_()); - } - - protected PropertyChangeListener buildNodeValueListener_() { - return new PropertyChangeListener() { - @SuppressWarnings("unchecked") - public void propertyChanged(PropertyChangeEvent event) { - TreeModelAdapter.this.nodeChanged((TreeNodeValueModel) event.getSource()); - } - @Override - public String toString() { - return "node value listener"; //$NON-NLS-1$ - } - }; - } - - protected StateChangeListener buildNodeStateListener() { - return new AWTStateChangeListenerWrapper(this.buildNodeStateListener_()); - } - - protected StateChangeListener buildNodeStateListener_() { - return new StateChangeListener() { - @SuppressWarnings("unchecked") - public void stateChanged(StateChangeEvent event) { - TreeModelAdapter.this.nodeChanged((TreeNodeValueModel) event.getSource()); - } - @Override - public String toString() { - return "node state listener"; //$NON-NLS-1$ - } - }; - } - - protected ListChangeListener buildChildrenListener() { - return new AWTListChangeListenerWrapper(this.buildChildrenListener_()); - } - - protected ListChangeListener buildChildrenListener_() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent event) { - new AddEventChangePolicy(event).addChildren(); - } - public void itemsRemoved(ListRemoveEvent event) { - new RemoveEventChangePolicy(event).removeChildren(); - } - public void itemsReplaced(ListReplaceEvent event) { - new ReplaceEventChangePolicy(event).replaceChildren(); - } - public void itemsMoved(ListMoveEvent event) { - new MoveEventChangePolicy(event).moveChildren(); - } - public void listCleared(ListClearEvent event) { - new ClearEventChangePolicy(event).clearChildren(); - } - public void listChanged(ListChangeEvent event) { - new ChangeEventChangePolicy(event).rebuildChildren(); - } - @Override - public String toString() { - return "children listener"; //$NON-NLS-1$ - } - }; - } - - - // ********** TreeModel implementation ********** - - public Object getRoot() { - return this.root; - } - - @SuppressWarnings("unchecked") - public Object getChild(Object parent, int index) { - return ((TreeNodeValueModel) parent).child(index); - } - - @SuppressWarnings("unchecked") - public int getChildCount(Object parent) { - return ((TreeNodeValueModel) parent).childrenSize(); - } - - @SuppressWarnings("unchecked") - public boolean isLeaf(Object node) { - return ((TreeNodeValueModel) node).isLeaf(); - } - - @SuppressWarnings("unchecked") - public void valueForPathChanged(TreePath path, Object newValue) { - ((TreeNodeValueModel) path.getLastPathComponent()).setValue((T) newValue); - } - - @SuppressWarnings("unchecked") - public int getIndexOfChild(Object parent, Object child) { - return ((TreeNodeValueModel) parent).indexOfChild((TreeNodeValueModel) child); - } - - /** - * Extend to start listening to the underlying model if necessary. - */ - @Override - public void addTreeModelListener(TreeModelListener l) { - if (this.hasNoTreeModelListeners()) { - this.engageModel(); - } - super.addTreeModelListener(l); - } - - /** - * Extend to stop listening to the underlying model if appropriate. - */ - @Override - public void removeTreeModelListener(TreeModelListener l) { - super.removeTreeModelListener(l); - if (this.hasNoTreeModelListeners()) { - this.disengageModel(); - } - } - - - // ********** behavior ********** - - /** - * Listen to the root and all the other nodes - * in the underlying tree model. - */ - private void engageModel() { - this.rootHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.rootListener); - this.root = this.rootHolder.getValue(); - if (this.root == null) { - throw new NullPointerException(); // the root cannot be null while we have listeners - } - this.engageNode(this.root); - this.addRoot(); - } - - /** - * Add the root and all of the nodes to the underlying tree. - */ - private void addRoot() { - this.addNode(0, this.root); - } - - /** - * Stop listening to the root and all the other - * nodes in the underlying tree model. - */ - private void disengageModel() { - this.removeRoot(); - this.disengageNode(this.root); - this.root = null; - this.rootHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.rootListener); - } - - /** - * Remove the root and all of the nodes from the underlying tree. - */ - private void removeRoot() { - this.removeNode(0, this.root); - } - - /** - * The root has been swapped. - * This method is a bit gnarly because the API for notifying listeners - * that the root has changed is a bit inconsistent with that used for - * non-root nodes. - */ - void rootChanged() { - TreeNodeValueModel newRoot = this.rootHolder.getValue(); - if (newRoot == null) { - throw new NullPointerException(); // the root cannot be null while we have listeners - } - // remove all the current root's children from the tree - // and remove the it from the internal tree - this.removeRoot(); - - // save the old root and swap in the new root - TreeNodeValueModel oldRoot = this.root; - this.root = newRoot; - - // we must be listening to both the old and new roots when we fire the event - // because their values can be affected by whether they have listeners - this.engageNode(this.root); - this.fireTreeRootReplaced(this.root); - // now we can stop listening to the old root - this.disengageNode(oldRoot); - - // add the new root to the internal tree and - // add all its children to the tree also - this.addRoot(); - } - - /** - * Either the "value" or the "state" of the specified node has changed, - * forward notification to our listeners. - */ - void nodeChanged(TreeNodeValueModel node) { - TreeNodeValueModel parent = node.parent(); - if (parent == null) { - this.fireTreeRootChanged(node); - } else { - this.fireTreeNodeChanged(parent.path(), parent.indexOfChild(node), node); - } - } - - /** - * Listen to the nodes, notify our listeners that the nodes were added, - * and then add the nodes to our internal tree. - * We must listen to the nodes before notifying anybody, because - * adding a listener can change the value of a node. - */ - void addChildren(TreeNodeValueModel[] path, int[] childIndices, TreeNodeValueModel[] children) { - int len = childIndices.length; - for (int i = 0; i < len; i++) { - this.engageNode(children[i]); - } - this.fireTreeNodesInserted(path, childIndices, children); - for (int i = 0; i < len; i++) { - this.addNode(childIndices[i], children[i]); - } - } - - /** - * Listen to the node and its children model. - */ - private void engageNode(TreeNodeValueModel node) { - node.addStateChangeListener(this.nodeStateListener); - node.addPropertyChangeListener(PropertyValueModel.VALUE, this.nodeValueListener); - node.childrenModel().addListChangeListener(ListValueModel.LIST_VALUES, this.childrenListener); - } - - /** - * Add the node to our internal tree; - * then recurse down through the node's children, - * adding them to the internal tree also. - */ - private void addNode(int index, TreeNodeValueModel node) { - this.addNodeToInternalTree(node.parent(), index, node, node.childrenModel()); - new NodeChangePolicy(node).addChildren(); - } - - /** - * Add the specified node to our internal tree. - */ - private void addNodeToInternalTree(TreeNodeValueModel parent, int index, TreeNodeValueModel node, ListValueModel> childrenModel) { - List> siblings = this.childrenLists.get(parent); - if (siblings == null) { - siblings = new ArrayList>(); - this.childrenLists.put(parent, siblings); - } - siblings.add(index, node); - - this.parents.put(childrenModel, node); - } - - /** - * Remove nodes from our internal tree, notify our listeners that the - * nodes were removed, then stop listening to the nodes. - * We must listen to the nodes until after notifying anybody, because - * removing a listener can change the value of a node. - */ - void removeChildren(TreeNodeValueModel[] path, int[] childIndices, TreeNodeValueModel[] children) { - int len = childIndices.length; - for (int i = 0; i < len; i++) { - // the indices slide down a notch each time we remove a child - this.removeNode(childIndices[i] - i, children[i]); - } - this.fireTreeNodesRemoved(path, childIndices, children); - for (int i = 0; i < len; i++) { - this.disengageNode(children[i]); - } - } - - /** - * First, recurse down through the node's children, - * removing them from our internal tree; - * then remove the node itself from our internal tree. - */ - private void removeNode(int index, TreeNodeValueModel node) { - new NodeChangePolicy(node).removeChildren(); - this.removeNodeFromInternalTree(node.parent(), index, node.childrenModel()); - } - - /** - * Remove the specified node from our internal tree. - */ - private void removeNodeFromInternalTree(TreeNodeValueModel parent, int index, ListValueModel> childrenModel) { - this.parents.remove(childrenModel); - - List> siblings = this.childrenLists.get(parent); - siblings.remove(index); - if (siblings.isEmpty()) { - this.childrenLists.remove(parent); - } - } - - /** - * Stop listening to the node and its children model. - */ - private void disengageNode(TreeNodeValueModel node) { - node.childrenModel().removeListChangeListener(ListValueModel.LIST_VALUES, this.childrenListener); - node.removePropertyChangeListener(PropertyValueModel.VALUE, this.nodeValueListener); - node.removeStateChangeListener(this.nodeStateListener); - } - - void moveChildren(TreeNodeValueModel parent, int targetIndex, int sourceIndex, int length) { - List> childrenList = this.childrenLists.get(parent); - ArrayList> temp = new ArrayList>(length); - for (int i = 0; i < length; i++) { - temp.add(childrenList.remove(sourceIndex)); - } - childrenList.addAll(targetIndex, temp); - - this.fireTreeStructureChanged(parent.path()); - } - - - // ********** standard methods ********** - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.root); - } - - - // ********** inner classes ********** - - /** - * Coalesce some of the common change policy behavior. - */ - abstract class ChangePolicy { - - ChangePolicy() { - super(); - } - - /** - * Add the current set of children. - */ - void addChildren() { - TreeModelAdapter.this.addChildren(this.parent().path(), this.childIndices(), this.childArray()); - } - - /** - * Remove the current set of children. - */ - void removeChildren() { - TreeModelAdapter.this.removeChildren(this.parent().path(), this.childIndices(), this.childArray()); - } - - /** - * Return an array of the indices of the current set of children, - * which should be contiguous. - */ - int[] childIndices() { - return this.buildIndices(this.childrenStartIndex(), this.childrenSize()); - } - - /** - * Return an array of the current set of children. - */ - TreeNodeValueModel[] childArray() { - return this.buildArray(this.getChildren(), this.childrenSize()); - } - - /** - * Build an array to hold the elements in the specified iterator. - * If they are different sizes, something is screwed up... - */ - TreeNodeValueModel[] buildArray(Iterable> elements, int size) { - @SuppressWarnings("unchecked") - TreeNodeValueModel[] array = new TreeNodeValueModel[size]; - int i = 0; - for (TreeNodeValueModel element : elements) { - array[i++] = element; - } - return array; - } - - /** - * Return a set of indices, starting at zero and - * continuing for the specified size. - */ - int[] buildIndices(int size) { - return buildIndices(0, size); - } - - /** - * Return a set of indices, starting at the specified index and - * continuing for the specified size. - */ - int[] buildIndices(int start, int size) { - int[] indices = new int[size]; - int index = start; - for (int i = 0; i < size; i++) { - indices[i] = index++; - } - return indices; - } - - /** - * Return the parent of the current set of children. - */ - abstract TreeNodeValueModel parent(); - - /** - * Return the starting index for the current set of children. - */ - abstract int childrenStartIndex(); - - /** - * Return the size of the current set of children. - */ - abstract int childrenSize(); - - /** - * Return the current set of children. - */ - abstract Iterable> getChildren(); - - } - - - /** - * Wraps a ListEvent for adding, removing, replacing, - * and changing children. - */ - abstract class EventChangePolicy extends ChangePolicy { - final ListEvent event; - - EventChangePolicy(ListEvent event) { - super(); - this.event = event; - } - - /** - * Map the ListChangeEvent's source to the corresponding parent. - */ - @Override - TreeNodeValueModel parent() { - return TreeModelAdapter.this.parents.get(this.event.getSource()); - } - - } - - - /** - * Wraps a ListAddEvent for adding children. - */ - class AddEventChangePolicy extends EventChangePolicy { - - AddEventChangePolicy(ListAddEvent event) { - super(event); - } - - private ListAddEvent getEvent() { - return (ListAddEvent) this.event; - } - - /** - * The ListAddEvent's item index is the children start index. - */ - @Override - int childrenStartIndex() { - return this.getEvent().getIndex(); - } - - /** - * The ListAddEvent's size is the children size. - */ - @Override - int childrenSize() { - return this.getEvent().getItemsSize(); - } - - /** - * The ListAddEvent's items are the children. - */ - @Override - @SuppressWarnings("unchecked") - Iterable> getChildren() { - return (Iterable>) this.getEvent().getItems(); - } - - } - - - /** - * Wraps a ListRemoveEvent for adding children. - */ - class RemoveEventChangePolicy extends EventChangePolicy { - - RemoveEventChangePolicy(ListRemoveEvent event) { - super(event); - } - - private ListRemoveEvent getEvent() { - return (ListRemoveEvent) this.event; - } - - /** - * The ListRemoveEvent's item index is the children start index. - */ - @Override - int childrenStartIndex() { - return this.getEvent().getIndex(); - } - - /** - * The ListRemoveEvent's size is the children size. - */ - @Override - int childrenSize() { - return this.getEvent().getItemsSize(); - } - - /** - * The ListRemoveEvent's items are the children. - */ - @Override - @SuppressWarnings("unchecked") - Iterable> getChildren() { - return (Iterable>) this.getEvent().getItems(); - } - - } - - - /** - * Wraps a ListReplaceEvent for replacing children. - */ - class ReplaceEventChangePolicy extends EventChangePolicy { - - ReplaceEventChangePolicy(ListReplaceEvent event) { - super(event); - } - - private ListReplaceEvent getEvent() { - return (ListReplaceEvent) this.event; - } - - /** - * The ListReplaceEvent's item index is the children start index. - */ - @Override - int childrenStartIndex() { - return this.getEvent().getIndex(); - } - - /** - * The ListReplaceEvent's size is the children size. - */ - @Override - int childrenSize() { - return this.getEvent().getItemsSize(); - } - - /** - * The ListReplaceEvent's items are the children. - */ - @Override - @SuppressWarnings("unchecked") - Iterable> getChildren() { - return (Iterable>) this.getEvent().getNewItems(); - } - - /** - * Remove the old nodes and add the new ones. - */ - void replaceChildren() { - TreeNodeValueModel[] parentPath = this.parent().path(); - int[] childIndices = this.childIndices(); - TreeModelAdapter.this.removeChildren(parentPath, childIndices, this.getOldChildren()); - TreeModelAdapter.this.addChildren(parentPath, childIndices, this.childArray()); - } - - TreeNodeValueModel[] getOldChildren() { - return this.buildArray(this.getOldItems(), this.getEvent().getItemsSize()); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - protected Iterable> getOldItems() { - return (Iterable>) this.getEvent().getOldItems(); - } - - } - - - /** - * Wraps a ListMoveEvent for moving children. - */ - class MoveEventChangePolicy extends EventChangePolicy { - - MoveEventChangePolicy(ListMoveEvent event) { - super(event); - } - - private ListMoveEvent getEvent() { - return (ListMoveEvent) this.event; - } - - void moveChildren() { - TreeModelAdapter.this.moveChildren(this.parent(), this.getEvent().getTargetIndex(), this.getEvent().getSourceIndex(), this.getEvent().getLength()); - } - - @Override - int childrenStartIndex() { - throw new UnsupportedOperationException(); - } - - @Override - int childrenSize() { - throw new UnsupportedOperationException(); - } - - @Override - Iterable> getChildren() { - throw new UnsupportedOperationException(); - } - - } - - - /** - * Wraps a ListClearEvent for clearing children. - */ - class ClearEventChangePolicy extends EventChangePolicy { - - ClearEventChangePolicy(ListClearEvent event) { - super(event); - } - - /** - * Clear all the nodes. - */ - void clearChildren() { - TreeNodeValueModel parent = this.parent(); - TreeNodeValueModel[] parentPath = parent.path(); - List> childrenList = TreeModelAdapter.this.childrenLists.get(parent); - int[] childIndices = this.buildIndices(childrenList.size()); - TreeNodeValueModel[] childArray = this.buildArray(childrenList, childrenList.size()); - TreeModelAdapter.this.removeChildren(parentPath, childIndices, childArray); - } - - @Override - int childrenStartIndex() { - throw new UnsupportedOperationException(); - } - - @Override - int childrenSize() { - throw new UnsupportedOperationException(); - } - - @Override - Iterable> getChildren() { - throw new UnsupportedOperationException(); - } - - } - - - /** - * Wraps a ListChangeEvent for clearing children. - */ - class ChangeEventChangePolicy extends EventChangePolicy { - - ChangeEventChangePolicy(ListChangeEvent event) { - super(event); - } - - /** - * Remove all the old nodes and add all the new nodes. - */ - void rebuildChildren() { - TreeNodeValueModel parent = this.parent(); - TreeNodeValueModel[] parentPath = parent.path(); - List> childrenList = TreeModelAdapter.this.childrenLists.get(parent); - int[] childIndices = this.buildIndices(childrenList.size()); - TreeNodeValueModel[] childArray = this.buildArray(childrenList, childrenList.size()); - TreeModelAdapter.this.removeChildren(parentPath, childIndices, childArray); - - childIndices = this.buildIndices(parent.childrenModel().size()); - childArray = this.buildArray(parent.childrenModel(), parent.childrenSize()); - TreeModelAdapter.this.addChildren(parentPath, childIndices, childArray); - } - - @Override - int childrenStartIndex() { - throw new UnsupportedOperationException(); - } - - @Override - int childrenSize() { - throw new UnsupportedOperationException(); - } - - @Override - Iterable> getChildren() { - throw new UnsupportedOperationException(); - } - - } - - - /** - * Wraps a TreeNodeValueModel for adding and removing its children. - */ - class NodeChangePolicy extends ChangePolicy { - private final TreeNodeValueModel node; - - NodeChangePolicy(TreeNodeValueModel node) { - super(); - this.node = node; - } - - /** - * The node itself is the parent. - */ - @Override - TreeNodeValueModel parent() { - return this.node; - } - - /** - * Since we will always be dealing with all of the node's - * children, the children start index is always zero. - */ - @Override - int childrenStartIndex() { - return 0; - } - - /** - * Since we will always be dealing with all of the node's - * children, the children size is always equal to the size - * of the children model. - */ - @Override - int childrenSize() { - return this.node.childrenModel().size(); - } - - /** - * Since we will always be dealing with all of the node's - * children, the children are all the objects held by - * the children model. - */ - @Override - Iterable> getChildren() { - return this.node.childrenModel(); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AbstractNode.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AbstractNode.java deleted file mode 100644 index 3f32a57bfd..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AbstractNode.java +++ /dev/null @@ -1,941 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.node; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Set; -import java.util.Vector; - -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.AspectChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; - -/** - * Base class for Node classes. - * Provides support for the following: - * initialization - * enforced object identity wrt #equals()/#hashCode() - * containment hierarchy (parent/child) - * user comment - * dirty flag - * problems - * sorting - * - * Typically, subclasses should consider implementing the following methods: - * the appropriate constructors - * (with the appropriately-restrictive type declaration for parent) - * #initialize() - * #initialize(Node parentNode) - * #checkParent(Node parentNode) - * #addChildrenTo(List list) - * #nodeRemoved(Node) - * #validator() - * #transientAspectNames() or - * #addTransientAspectNamesTo(Set transientAspectNames) - * #addProblemsTo(List currentProblems) - * #nonValidatedAspectNames() - * #addNonValidatedAspectNamesTo(Set nonValidatedAspectNames) - * #displayString() - * #toString(StringBuilder sb) - */ -public abstract class AbstractNode - extends AbstractModel - implements Node -{ - - /** Containment hierarchy. */ - private Node parent; // pseudo-final - - /** Track whether the node has changed. */ - private volatile boolean dirty; - private volatile boolean dirtyBranch; - - /** - * The node's problems, as calculated during validation. - * This list should only be modified via a ProblemSynchronizer, - * allowing for asynchronous modification from another thread. - */ - private Vector problems; // pseudo-final - private static final Object[] EMPTY_PROBLEM_MESSAGE_ARGUMENTS = new Object[0]; - - /** - * Cache the node's "branch" problems, as calculated during validation. - * This list should only be modified via a ProblemSynchronizer, - * allowing for asynchronous modification from another thread. - * This must be recalculated every time this node or one of its - * descendants changes it problems. - */ - private Vector branchProblems; // pseudo-final - - /** User comment. */ - private volatile String comment; - - - // ********** static fields ********** - - /** - * Sets of transient aspect names, keyed by class. - * This is built up lazily, as the objects are modified. - */ - private static final HashMap, HashSet> transientAspectNameSets = new HashMap, HashSet>(); - - /** - * Sets of non-validated aspect names, keyed by class. - * This is built up lazily, as the objects are modified. - */ - private static final HashMap, HashSet> nonValidatedAspectNameSets = new HashMap, HashSet>(); - - - // ********** constructors ********** - - /** - * Most objects must have a parent. - * Use this constructor to create a new node. - * @see #initialize(Node) - */ - protected AbstractNode(Node parent) { - super(); - this.initialize(); - this.initialize(parent); - } - - - // ********** initialization ********** - - /** - * Initialize a newly-created instance. - * @see #initialize(Node) - */ - protected void initialize() { - this.comment = ""; //$NON-NLS-1$ - - // a new object is dirty, by definition - this.dirty = true; - this.dirtyBranch = true; - - this.problems = new Vector(); - this.branchProblems = new Vector(); - - // when you override this method, don't forget to include: - // super.initialize(); - } - - /** - * Initialize a newly-created instance. - * @see #initialize() - */ - protected void initialize(Node parentNode) { - this.checkParent(parentNode); - this.parent = parentNode; - // when you override this method, don't forget to include: - // super.initialize(parentNode); - } - - @Override - protected ChangeSupport buildChangeSupport() { - return new AspectChangeSupport(this, this.buildChangeSupportListener()); - } - - protected AspectChangeSupport.Listener buildChangeSupportListener() { - return new AspectChangeSupport.Listener() { - public void aspectChanged(String aspectName) { - AbstractNode.this.aspectChanged(aspectName); - } - }; - } - - - // ********** equality ********** - - /** - * Enforce object identity - do not allow objects to be equal unless - * they are the same object. - * Do NOT override this method - we rely on object identity extensively. - */ - @Override - public final boolean equals(Object o) { - return this == o; - } - - /** - * Enforce object identity - do not allow objects to be equal unless - * they are the same object. - * Do NOT override this method - we rely on object identity extensively. - */ - @Override - public final int hashCode() { - return super.hashCode(); - } - - - // ********** containment hierarchy (parent/children) ********** - - /** - * INTRA-TREE API? - * Return the node's parent in the containment hierarchy. - * Most nodes must have a parent. - * @see #children() - */ - public Node getParent() { - return this.parent; - } - - /** - * Throw an IllegalArgumentException if the parent is not valid - * for the node. - * By default require a non-null parent. Override if other restrictions exist - * or the parent should be null. - * NB: Root node model implementations will need to override this method. - */ - protected void checkParent(Node parentNode) { - if (parentNode == null) { - throw new IllegalArgumentException("The parent node cannot be null"); //$NON-NLS-1$ - } - } - - /** - * INTRA-TREE API? - * Return the node's children, which are also nodes. - * Do NOT override this method. - * Override #addChildrenTo(List). - * @see #getParent() - * @see #addChildrenTo(java.util.List) - */ - public final Iterator children() { - List children = new ArrayList(); - this.addChildrenTo(children); - return children.iterator(); - } - - /** - * Subclasses should override this method to add their children - * to the specified list. - * @see #children() - */ - protected void addChildrenTo(@SuppressWarnings("unused") List list) { - // this class has no children, subclasses will... - // when you override this method, don't forget to include: - // super.addChildrenTo(list); - } - - /** - * INTRA-TREE API? - * Return the containment hierarchy's root node. - * Most nodes must have a root. - * @see #getParent() - * NB: Assume the root has no parent. - */ - public Node root() { - Node p = this.parent; - return (p == null) ? this : p.root(); - } - - /** - * Return whether the node is a descendant of the specified node. - * By definition, a node is a descendant of itself. - */ - public boolean isDescendantOf(Node node) { - return (this == node) || this.parentIsDescendantOf(node); - } - - protected boolean parentIsDescendantOf(Node node) { - return (this.parent != null) && this.parent.isDescendantOf(node); - } - - /** - * Return a collection holding all the node's "references", and all - * the node's descendants' "references". "References" are - * objects that are "referenced" by another object, as opposed - * to "owned" by another object. - */ - public Iterator branchReferences() { - Collection branchReferences = new ArrayList(1000); // start big - this.addBranchReferencesTo(branchReferences); - return branchReferences.iterator(); - } - - /** - * INTRA-TREE API - * Add the node's "references", and all the node's descendants' - * "references", to the specified collection. "References" are - * objects that are "referenced" by another object, as opposed - * to "owned" by another object. - * This method is of particular concern to Handles, since most - * (hopefully all) "references" are held by Handles. - * @see Reference - * @see #children() - */ - public void addBranchReferencesTo(Collection branchReferences) { - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - child.addBranchReferencesTo(branchReferences); - } - } - - /** - * Return all the nodes in the object's branch of the tree, - * including the node itself. The nodes will probably returned - * in "depth-first" order. - * Only really used for testing and debugging. - */ - public Iterator allNodes() { - Collection nodes = new ArrayList(1000); // start big - this.addAllNodesTo(nodes); - return nodes.iterator(); - } - - /** - * INTRA-TREE API? - * Add all the nodes in the object's branch of the tree, - * including the node itself, to the specified collection. - * Only really used for testing and debugging. - */ - public void addAllNodesTo(Collection nodes) { - nodes.add(this); - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - child.addAllNodesTo(nodes); - } - } - - - // ********** model synchronization support ********** - - /** - * INTRA-TREE API - * This is a general notification that the specified node has been - * removed from the tree. The node receiving this notification - * should perform any necessary updates to remain in synch - * with the tree (e.g. clearing out or replacing any references - * to the removed node or any of the removed node's descendants). - * @see #isDescendantOf(Node) - */ - public void nodeRemoved(Node node) { - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - child.nodeRemoved(node); - } - // when you override this method, don't forget to include: - // super.nodeRemoved(node); - } - - /** - * convenience method - * return whether node1 is a descendant of node2; - * node1 can be null - */ - protected boolean nodeIsDescendantOf(Node node1, Node node2) { - return (node1 != null) && node1.isDescendantOf(node2); - } - - /** - * INTRA-TREE API - * This is a general notification that the specified node has been - * renamed. The node receiving this notification should mark its - * branch dirty if necessary (i.e. it references the renamed node - * or one of its descendants). This method is of particular concern - * to Handles. - * @see #isDescendantOf(Node) - */ - public void nodeRenamed(Node node) { - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - child.nodeRenamed(node); - } - // when you override this method, don't forget to include: - // super.nodeRenamed(node); - } - - - // ********** user comment ********** - - /** - * Return the object's user comment. - */ - public final String comment() { - return this.comment; - } - - /** - * Set the object's user comment. - */ - public final void setComment(String comment) { - Object old = this.comment; - this.comment = comment; - this.firePropertyChanged(COMMENT_PROPERTY, old, comment); - } - - - // ********** change support ********** - - /** - * An aspect of the node has changed: - * - if it is a persistent aspect, mark the object dirty - * - if it is a significant aspect, validate the object - */ - protected void aspectChanged(String aspectName) { - if (this.aspectIsPersistent(aspectName)) { - // System.out.println(Thread.currentThread() + " dirty change: " + this + ": " + aspectName); - this.markDirty(); - } - if (this.aspectChangeRequiresValidation(aspectName)) { - // System.out.println(Thread.currentThread() + " validation change: " + this + ": " + aspectName); - this.validate(); - } - } - - protected void validate() { - this.getValidator().validate(); - } - - /** - * INTRA-TREE API - * Return a validator that will be invoked whenever a - * "validated" aspect of the node tree changes. - * Typically only the root node directly holds a validator. - * NB: Root node model implementations will need to override this method. - */ - public Node.Validator getValidator() { - if (this.parent == null) { - throw new IllegalStateException("This node should not be firing change events during its construction."); //$NON-NLS-1$ - } - return this.parent.getValidator(); - } - - /** - * Set a validator that will be invoked whenever a - * "validated" aspect of the node tree changes. - * Typically only the root node directly holds a validator. - * NB: Root node model implementations will need to override this method. - */ - public void setValidator(Node.Validator validator) { - if (this.parent == null) { - throw new IllegalStateException("This root node should implement #setValidator(Node.Validator)."); //$NON-NLS-1$ - } - throw new UnsupportedOperationException("Only root nodes implement #setValidator(Node.Validator)."); //$NON-NLS-1$ - } - - - // ********** dirty flag support ********** - - /** - * Return whether any persistent aspects of the object - * have changed since the object was last read or saved. - * This does NOT include changes to the object's descendants. - */ - public final boolean isDirty() { - return this.dirty; - } - - /** - * Return whether any persistent aspects of the object, - * or any of its descendants, have changed since the object and - * its descendants were last read or saved. - */ - public final boolean isDirtyBranch() { - return this.dirtyBranch; - } - - /** - * Return whether the object is unmodified - * since it was last read or saved. - * This does NOT include changes to the object's descendants. - */ - public final boolean isClean() { - return ! this.dirty; - } - - /** - * Return whether the object and all of its descendants - * are unmodified since the object and - * its descendants were last read or saved. - */ - public final boolean isCleanBranch() { - return ! this.dirtyBranch; - } - - /** - * Set the dirty branch flag setting. This is set to true - * when either the object or one of its descendants becomes dirty. - */ - private void setIsDirtyBranch(boolean dirtyBranch) { - boolean old = this.dirtyBranch; - this.dirtyBranch = dirtyBranch; - this.firePropertyChanged(DIRTY_BRANCH_PROPERTY, old, dirtyBranch); - } - - /** - * Mark the object as dirty and as a dirty branch. - * An object is marked dirty when either a "persistent" attribute - * has changed or its save location has changed. - */ - private void markDirty() { - this.dirty = true; - this.markBranchDirty(); - } - - /** - * INTRA-TREE API - * Mark the node and its parent as dirty branches. - * This message is propagated up the containment - * tree when a particular node becomes dirty. - */ - public void markBranchDirty() { - // short-circuit any unnecessary propagation - if (this.dirtyBranch) { - // if this is already a dirty branch, the parent must be also - return; - } - - this.setIsDirtyBranch(true); - this.markParentBranchDirty(); - } - - protected void markParentBranchDirty() { - if (this.parent != null) { - this.parent.markBranchDirty(); - } - } - - /** - * Mark the object and all its descendants as dirty. - * This is used when the save location of some - * top-level object is changed and the entire - * containment tree must be marked dirty so it - * will be written out. - */ - public final void markEntireBranchDirty() { - this.markDirty(); - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - child.markEntireBranchDirty(); - } - } - - /** - * Mark the object and all its descendants as clean. - * Then notify the object's parent that it (the parent) - * might now be a clean branch also. - * Typically used when the object has just been - * read in or written out. - */ - public final void markEntireBranchClean() { - this.cascadeMarkEntireBranchClean(); - this.markParentBranchCleanIfPossible(); - } - - protected void markParentBranchCleanIfPossible() { - if (this.parent != null) { - this.parent.markBranchCleanIfPossible(); - } - } - - /** - * INTRA-TREE API - * Mark the node and all its descendants as clean. - * Typically used when the node has just been - * read in or written out. - * This method is for internal use only; it is not for - * client use. - * Not the best of method names.... :-( - */ - public final void cascadeMarkEntireBranchClean() { - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - child.cascadeMarkEntireBranchClean(); - } - this.dirty = false; - this.setIsDirtyBranch(false); - } - - /** - * INTRA-TREE API - * A child node's branch has been marked clean. If the node - * itself is clean and if all of its children are also clean, the - * node's branch can be marked clean. Then, if the node's - * branch is clean, the node will notify its parent that it might - * be clean also. This message is propagated up the containment - * tree when a particular node becomes clean. - */ - public final void markBranchCleanIfPossible() { - // short-circuit any unnecessary propagation - if (this.dirty) { - // if the object is "locally" dirty, it is still a dirty branch - return; - } - - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - if (child.isDirtyBranch()) { - return; - } - } - - this.setIsDirtyBranch(false); - this.markParentBranchCleanIfPossible(); - } - - private boolean aspectIsPersistent(String aspectName) { - return ! this.aspectIsTransient(aspectName); - } - - private boolean aspectIsTransient(String aspectName) { - return this.transientAspectNames().contains(aspectName); - } - - /** - * Return a set of the object's transient aspect names. - * These are the aspects that, when they change, will NOT cause the - * object to be marked dirty. - * If you need instance-based calculation of your transient aspects, - * override this method. If class-based calculation is sufficient, - * override #addTransientAspectNamesTo(Set). - */ - protected final Set transientAspectNames() { - synchronized (transientAspectNameSets) { - HashSet transientAspectNames = transientAspectNameSets.get(this.getClass()); - if (transientAspectNames == null) { - transientAspectNames = new HashSet(); - this.addTransientAspectNamesTo(transientAspectNames); - transientAspectNameSets.put(this.getClass(), transientAspectNames); - } - return transientAspectNames; - } - } - - /** - * Add the object's transient aspect names to the specified set. - * These are the aspects that, when they change, will NOT cause the - * object to be marked dirty. - * If class-based calculation of your transient aspects is sufficient, - * override this method. If you need instance-based calculation, - * override #transientAspectNames(). - */ - protected void addTransientAspectNamesTo(Set transientAspectNames) { - transientAspectNames.add(DIRTY_BRANCH_PROPERTY); - transientAspectNames.add(BRANCH_PROBLEMS_LIST); - transientAspectNames.add(HAS_BRANCH_PROBLEMS_PROPERTY); - // when you override this method, don't forget to include: - // super.addTransientAspectNamesTo(transientAspectNames); - } - - /** - * Return the dirty nodes in the object's branch of the tree, - * including the node itself (if appropriate). - * Only really used for testing and debugging. - */ - public final Iterator allDirtyNodes() { - return new FilteringIterator(this.allNodes()) { - @Override - protected boolean accept(Node node) { - return (node instanceof AbstractNode) && ((AbstractNode) node).isDirty(); - } - }; - } - - - // ********** problems ********** - - /** - * Return the node's problems. - * This does NOT include the problems of the node's descendants. - * @see #branchProblems() - */ - public final Iterator problems() { - return new CloneIterator(this.problems); // removes are not allowed - } - - /** - * Return the size of the node's problems. - * This does NOT include the problems of the node's descendants. - * @see #branchProblemsSize() - */ - public final int problemsSize() { - return this.problems.size(); - } - - /** - * Return whether the node has problems - * This does NOT include the problems of the node's descendants. - * @see #hasBranchProblems() - */ - public final boolean hasProblems() { - return ! this.problems.isEmpty(); - } - - /** - * Return all the node's problems along with all the - * node's descendants' problems. - */ - public final ListIterator branchProblems() { - return new CloneListIterator(this.branchProblems); // removes are not allowed - } - - /** - * Return the size of all the node's problems along with all the - * node's descendants' problems. - */ - public final int branchProblemsSize() { - return this.branchProblems.size(); - } - - /** - * Return whether the node or any of its descendants have problems. - */ - public final boolean hasBranchProblems() { - return ! this.branchProblems.isEmpty(); - } - - public final boolean containsBranchProblem(Problem problem) { - return this.branchProblems.contains(problem); - } - - protected final Problem buildProblem(String messageKey, int messageType, Object... messageArguments) { - return new DefaultProblem(this, messageKey, messageType, messageArguments); - } - - protected final Problem buildProblem(String messageKey, int messageType) { - return this.buildProblem(messageKey, messageType, EMPTY_PROBLEM_MESSAGE_ARGUMENTS); - } - - /** - * Validate the node and all of its descendants, - * and update their sets of "branch" problems. - * If the node's "branch" problems have changed, - * notify the node's parent. - */ - public void validateBranch() { - if (this.validateBranchInternal()) { - // if our "branch" problems have changed, then - // our parent must rebuild its "branch" problems also - this.rebuildParentBranchProblems(); - } - } - - protected void rebuildParentBranchProblems() { - if (this.parent != null) { - this.parent.rebuildBranchProblems(); - } - } - - /** - * INTRA-TREE API - * Validate the node and all of its descendants, - * and update their sets of "branch" problems. - * Return true if the collection of "branch" problems has changed. - * This method is for internal use only; it is not for - * client use. - */ - public boolean validateBranchInternal() { - // rebuild "branch" problems in children first - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - // ignore the return value because we are going to rebuild our "branch" - // problems no matter what, to see if they have changed - child.validateBranchInternal(); - } - - this.problems.clear(); - this.addProblemsTo(this.problems); - - return this.checkBranchProblems(); - } - - /** - * Check for any problems and add them to the specified list. - * This method should ONLY add problems for this particular node; - * it should NOT add problems for any of this node's descendants - * or ancestors. (Although there will be times when it is debatable - * as to which node a problem "belongs" to....) - * - * NB: This method should NOT modify ANY part of the node's state! - * It is a READ-ONLY behavior. ONLY the list of current problems - * passed in to the method should be modified. - */ - protected void addProblemsTo(@SuppressWarnings("unused") List currentProblems) { - // The default is to do nothing. - // When you override this method, don't forget to include: - // super.addProblemsTo(currentProblems); - } - - /** - * Rebuild the "branch" problems and return whether they have - * changed. - * NB: The entire collection of "branch" problems must be re-calculated - * with EVERY "significant" change - we cannot keep it in synch via - * change notifications because if a descendant with problems is - * removed or replaced we will not receive notification that its - * problems were removed from our "branch" problems. - */ - private boolean checkBranchProblems() { - Vector oldBranchProblems = new Vector(this.branchProblems); - int oldSize = this.branchProblems.size(); - - this.branchProblems.clear(); - this.branchProblems.addAll(this.problems); - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - child.addBranchProblemsTo(this.branchProblems); - } - - // if the size has changed to or from zero, our virtual flag has changed - int newSize = this.branchProblems.size(); - if ((oldSize == 0) && (newSize != 0)) { - this.firePropertyChanged(HAS_BRANCH_PROBLEMS_PROPERTY, false, true); - } else if ((oldSize != 0) && (newSize == 0)) { - this.firePropertyChanged(HAS_BRANCH_PROBLEMS_PROPERTY, true, false); - } - - if (oldBranchProblems.equals(this.branchProblems)) { - return false; // our "branch" problems did not change - } - // our "branch" problems changed - this.fireListChanged(BRANCH_PROBLEMS_LIST, this.branchProblems); - return true; - } - - /** - * INTRA-TREE API - * Add all the problems of the node and all - * the problems of its descendants to the - * specified collection. - */ - public final void addBranchProblemsTo(List list) { - list.addAll(this.branchProblems); - } - - /** - * INTRA-TREE API - * A child node's "branch" problems changed; - * therefore the node's "branch" problems have changed also and - * must be rebuilt. - */ - public final void rebuildBranchProblems() { - if ( ! this.checkBranchProblems()) { - throw new IllegalStateException("we should not get here unless our \"branch\" problems have changed"); //$NON-NLS-1$ - } - this.rebuildParentBranchProblems(); - } - - /** - * Clear the node's "branch" problems and the "branch" - * problems of all of its descendants. - * If the node's "branch" problems have changed, - * notify the node's parent. - */ - public final void clearAllBranchProblems() { - if (this.clearAllBranchProblemsInternal()) { - // if our "branch" problems have changed, then - // our parent must rebuild its "branch" problems also - this.rebuildParentBranchProblems(); - } - } - - /** - * INTRA-TREE API - * Clear the node's "branch" problems and the "branch" - * problems of all of its descendants. - * Return true if the collection of "branch" problems has changed. - * This method is for internal use only; it is not for - * client use. - */ - public final boolean clearAllBranchProblemsInternal() { - if (this.branchProblems.isEmpty()) { - return false; - } - for (Iterator stream = this.children(); stream.hasNext(); ) { - Node child = stream.next(); // pull out the child to ease debugging - // ignore the return value because we are going to clear our "branch" - // problems no matter what - child.clearAllBranchProblemsInternal(); - } - this.problems.clear(); - this.branchProblems.clear(); - this.firePropertyChanged(HAS_BRANCH_PROBLEMS_PROPERTY, true, false); - this.fireListChanged(BRANCH_PROBLEMS_LIST, this.branchProblems); - return true; - } - - /** - * Return whether a change to specified aspect requires a re-validation - * of the node's tree. - */ - private boolean aspectChangeRequiresValidation(String aspectName) { - return ! this.aspectChangeDoesNotRequireValidation(aspectName); - } - - private boolean aspectChangeDoesNotRequireValidation(String aspectName) { - return this.nonValidatedAspectNames().contains(aspectName); - } - - /** - * Return a set of the object's "non-validated" aspect names. - * These are the aspects that, when they change, will NOT cause the - * object (or its containing tree) to be validated, i.e. checked for problems. - * If you need instance-based calculation of your "non-validated" aspects, - * override this method. If class-based calculation is sufficient, - * override #addNonValidatedAspectNamesTo(Set). - */ - protected final Set nonValidatedAspectNames() { - synchronized (nonValidatedAspectNameSets) { - HashSet nonValidatedAspectNames = nonValidatedAspectNameSets.get(this.getClass()); - if (nonValidatedAspectNames == null) { - nonValidatedAspectNames = new HashSet(); - this.addNonValidatedAspectNamesTo(nonValidatedAspectNames); - nonValidatedAspectNameSets.put(this.getClass(), nonValidatedAspectNames); - } - return nonValidatedAspectNames; - } - } - - /** - * Add the object's "non-validated" aspect names to the specified set. - * These are the aspects that, when they change, will NOT cause the - * object (or its containing tree) to be validated, i.e. checked for problems. - * If class-based calculation of your "non-validated" aspects is sufficient, - * override this method. If you need instance-based calculation, - * override #nonValidatedAspectNames(). - */ - protected void addNonValidatedAspectNamesTo(Set nonValidatedAspectNames) { - nonValidatedAspectNames.add(COMMENT_PROPERTY); - nonValidatedAspectNames.add(DIRTY_BRANCH_PROPERTY); - nonValidatedAspectNames.add(BRANCH_PROBLEMS_LIST); - nonValidatedAspectNames.add(HAS_BRANCH_PROBLEMS_PROPERTY); - // when you override this method, don't forget to include: - // super.addNonValidatedAspectNamesTo(nonValidatedAspectNames); - } - - - // ********** display methods ********** - - /** - * Return a developer-friendly String. If you want something useful for - * displaying in a user interface, use #displayString(). - * If you want to give more information in your #toString(), - * override #toString(StringBuilder sb). - * Whatever you add to that string buffer will show up between the parentheses. - * @see AbstractModel#toString(StringBuilder sb) - * @see #displayString() - */ - @Override - public final String toString() { - return super.toString(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AsynchronousValidator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AsynchronousValidator.java deleted file mode 100644 index 88a06f1b08..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/AsynchronousValidator.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.node; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean; - -/** - * This implementation of the PluggableValidator.Delegate interface - * simply sets a shared "validate" flag to true. This should trigger a - * separate "validation" thread to begin validating the appropriate - * branch of nodes. - */ -public class AsynchronousValidator - implements PluggableValidator.Delegate -{ - private SynchronizedBoolean validateFlag; - - /** - * Construct a validator delegate with the specified shared - * "validate" flag. This flag should be shared with - * another thread that will perform the actual validation. - */ - public AsynchronousValidator(SynchronizedBoolean validateFlag) { - super(); - this.validateFlag = validateFlag; - } - - /** - * Set the shared "validate" flag to true, triggering - * an asynchronous validation of the appropriate - * branch of nodes. - */ - public void validate() { - this.validateFlag.setTrue(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.validateFlag); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/DefaultProblem.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/DefaultProblem.java deleted file mode 100644 index 6ba2f3a7ad..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/DefaultProblem.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.node; - -import java.util.Arrays; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * This class is a straightforward implementation of the Problem interface. - */ -public class DefaultProblem - implements Problem -{ - private final Node source; - private final String messageKey; - private final int messageType; - private final Object[] messageArguments; - - - DefaultProblem(Node source, String messageKey, int messageType, Object[] messageArguments) { - super(); - this.source = source; - this.messageKey = messageKey; - this.messageType = messageType; - this.messageArguments = messageArguments; - } - - - // ********** Problem implementation ********** - - public Node source() { - return this.source; - } - - public String messageKey() { - return this.messageKey; - } - - public int messageType() { - return this.messageType; - } - - public Object[] messageArguments() { - return this.messageArguments; - } - - - // ********** Object overrides ********** - - /** - * We implement #equals(Object) because problems are repeatedly - * re-calculated and the resulting problems merged with the existing - * set of problems; and we want to keep the original problems and - * ignore any freshly-generated duplicates. - * Also, problems are not saved to disk.... - */ - @Override - public boolean equals(Object o) { - if ( ! (o instanceof Problem)) { - return false; - } - Problem other = (Problem) o; - return this.source == other.source() - && this.messageKey.equals(other.messageKey()) - && Arrays.equals(this.messageArguments, other.messageArguments()); - } - - @Override - public int hashCode() { - return this.source.hashCode() ^ this.messageKey.hashCode(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.messageKey); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Node.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Node.java deleted file mode 100644 index 2eab200247..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Node.java +++ /dev/null @@ -1,377 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.node; - -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * This interface defines the methods that must be implemented - * by any class whose instances are to be part of a containment hierarchy - * that supports a "dirty" state and validation "problems". - * - * Note: Methods marked "INTRA-TREE API" are typically only used by - * the nodes themselves, as opposed to clients of the nodes. These - * methods are called by a node on either its parent or its children. - */ -public interface Node extends Model { - - - // ********** containment hierarchy (parent/children) ********** - - /** - * INTRA-TREE API? - * Return the node's parent in the containment hierarchy. - * Most nodes must have a parent. The parent is immutable. - * @see #children() - */ - Node getParent(); - - /** - * INTRA-TREE API? - * Return the node's children, which are also nodes. - * @see #getParent() - */ - Iterator children(); - - /** - * INTRA-TREE API? - * Return the containment hierarchy's root node. - * Most nodes must have a root. - * @see #getParent() - */ - Node root(); - - /** - * Return whether the node is a descendant of the specified node. - * By definition, a node is a descendant of itself. - */ - boolean isDescendantOf(Node node); - - /** - * INTRA-TREE API - * Add the node's "references", and all the node's descendants' - * "references", to the specified collection. "References" are - * objects that are "referenced" by another object, as opposed - * to "owned" by another object. - * This method is of particular concern to Handles, since most - * (hopefully all) "references" are held by Handles. - * @see Reference - * @see #children() - */ - void addBranchReferencesTo(Collection branchReferences); - - /** - * INTRA-TREE API? - * Add all the nodes in the object's branch of the tree, - * including the node itself, to the specified collection. - * Only really used for testing and debugging. - */ - void addAllNodesTo(Collection nodes); - - - // ********** model synchronization support ********** - - /** - * INTRA-TREE API - * This is a general notification that the specified node has been - * removed from the tree. The node receiving this notification - * should perform any necessary updates to remain in synch - * with the tree (e.g. clearing out or replacing any references - * to the removed node or any of the removed node's descendants). - * @see #isDescendantOf(Node) - */ - void nodeRemoved(Node node); - - /** - * INTRA-TREE API - * This is a general notification that the specified node has been - * renamed. The node receiving this notification should mark its - * branch dirty if necessary (i.e. it references the renamed node - * or one of its descendants). This method is of particular concern - * to Handles. - * @see #isDescendantOf(Node) - */ - void nodeRenamed(Node node); - - - // ********** dirty flag support ********** - - /** - * Return whether any persistent aspects of the node, - * or any of its descendants, have changed since the node and - * its descendants were last read or saved. - */ - boolean isDirtyBranch(); - String DIRTY_BRANCH_PROPERTY = "dirtyBranch"; //$NON-NLS-1$ - - /** - * INTRA-TREE API - * Mark the node and its parent as dirty branches. - * This message is propagated up the containment - * tree when a particular node becomes dirty. - */ - void markBranchDirty(); - - /** - * Mark the node and all its descendants as dirty. - * This is used when the save location of some - * top-level node is changed and the entire - * containment tree must be marked dirty so it - * will be written out. - */ - void markEntireBranchDirty(); - - /** - * INTRA-TREE API - * A child node's branch has been marked clean. If the node - * itself is clean and if all of its children are also clean, the - * node's branch can be marked clean. Then, if the node's - * branch is clean, the node will notify its parent that it might - * be clean also. This message is propagated up the containment - * tree when a particular node becomes clean. - */ - void markBranchCleanIfPossible(); - - /** - * INTRA-TREE API - * Mark the node and all its descendants as clean. - * Typically used when the node has just been - * read in or written out. - * This method is for internal use only; it is not for - * client use. - * Not the best of method names.... :-( - */ - void cascadeMarkEntireBranchClean(); - - - // ********** problems ********** - - /** - * INTRA-TREE API - * Return a validator that will be invoked whenever a - * "validated" aspect of the node tree changes. - * Typically only the root node directly holds a validator. - */ - Validator getValidator(); - - /** - * Set a validator that will be invoked whenever a - * "validated" aspect of the node tree changes. - * Typically only the root node directly holds a validator. - */ - void setValidator(Validator validator); - - /** - * Validate the node and its descendants. - * This is an explicit request invoked by a client; and it will - * typically be followed by a call to one of the following methods: - * #branchProblems() - * #hasBranchProblems() - * Whether the node maintains its problems on the fly - * or waits until this method is called is determined by the - * implementation. - * @see Problem - */ - void validateBranch(); - - /** - * INTRA-TREE API - * Validate the node and all of its descendants, - * and update their sets of "branch" problems. - * Return true if the collection of "branch" problems has changed. - * This method is for internal use only; it is not for - * client use. - */ - boolean validateBranchInternal(); - - /** - * Return all the node's problems along with all the - * node's descendants' problems. - */ - ListIterator branchProblems(); - String BRANCH_PROBLEMS_LIST = "branchProblems"; //$NON-NLS-1$ - - /** - * Return the size of all the node's problems along with all the - * node's descendants' problems. - */ - int branchProblemsSize(); - - /** - * Return whether the node or any of its descendants have problems. - */ - boolean hasBranchProblems(); - String HAS_BRANCH_PROBLEMS_PROPERTY = "hasBranchProblems"; //$NON-NLS-1$ - - /** - * Return whether the node contains the specified branch problem. - */ - boolean containsBranchProblem(Problem problem); - - /** - * INTRA-TREE API - * Something changed, rebuild the node's collection of branch problems. - */ - void rebuildBranchProblems(); - - /** - * INTRA-TREE API - * Add the node's problems, and all the node's descendants' - * problems, to the specified list. - * A call to this method should be immediately preceded by a call to - * #validateBranch() or all of the problems might not be - * added to the list. - * @see Problem - */ - void addBranchProblemsTo(List branchProblems); - - /** - * Clear the node's "branch" problems and the "branch" - * problems of all of its descendants. - */ - void clearAllBranchProblems(); - - /** - * INTRA-TREE API - * Clear the node's "branch" problems and the "branch" - * problems of all of its descendants. - * Return true if the collection of "branch" problems has changed. - * This method is for internal use only; it is not for - * client use. - */ - boolean clearAllBranchProblemsInternal(); - - - // ********** comment ********** - - /** - * Return the user comment concerning the node. - */ - String comment(); - String COMMENT_PROPERTY = "comment"; //$NON-NLS-1$ - - /** - * Set the user comment concerning the node. - */ - void setComment(String comment); - - - // ********** displaying/sorting ********** - - /** - * Return a string representation of the model, suitable for sorting. - */ - String displayString(); - - - // ********** sub-interfaces ********** - - /** - * Simple interface defining a "reference" between two nodes. - * @see Node#addBranchReferencesTo(java.util.Collection) - */ - interface Reference { - - /** - * Return the "source" node of the reference, i.e. the node that - * references the "target" node. - */ - Node source(); - - /** - * Return the "target" node of the reference, i.e. the node that - * is referenced by the "source" node. - */ - Node target(); - - } - - - /** - * A validator will validate a node as appropriate. - * Typically the validation will - * - occur whenever a node has changed - * - encompass the entire tree containing the node - * - execute asynchronously - */ - interface Validator { - - /** - * A "significant" aspect has changed; - * validate the node as appropriate - */ - void validate(); - - /** - * Stop all validation of the node until #resume() is called. - * This can be used to improve the performance of any long-running - * action that triggers numerous changes to the node. Be sure to - * match a call to this method with a corresponding call to - * #resume(). - */ - void pause(); - - /** - * Resume validation of the node. This method can only be - * called after a matching call to #pause(). - */ - void resume(); - - } - - - // ********** helper implementations ********** - - /** - * Straightforward implementation of the Reference interface - * defined above. - */ - public class SimpleReference implements Reference { - private Node source; - private Node target; - public SimpleReference(Node source, Node target) { - super(); - if (source == null || target == null) { - throw new NullPointerException(); - } - this.source = source; - this.target = target; - } - public Node source() { - return this.source; - } - public Node target() { - return this.target; - } - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.source + " => " + this.target); //$NON-NLS-1$ - } - } - - - /** - * This validator does nothing to validate the node. - */ - Validator NULL_VALIDATOR = - new PluggableValidator(PluggableValidator.Delegate.Null.instance()) { - @Override - public String toString() { - return "Node.NULL_VALIDATOR"; //$NON-NLS-1$ - } - }; - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/PluggableValidator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/PluggableValidator.java deleted file mode 100644 index 33a283c0bf..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/PluggableValidator.java +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.node; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean; - -/** - * This implementation of the Validator interface implements the - * pause/resume portion of the protocol, but delegates the actual - * validation to a "pluggable" delegate. - */ -public class PluggableValidator - implements Node.Validator -{ - private boolean pause; - private boolean validateOnResume; - private final Delegate delegate; - - - /** - * Convenience factory method. - */ - public static Node.Validator buildAsynchronousValidator(SynchronizedBoolean validateFlag) { - return new PluggableValidator(new AsynchronousValidator(validateFlag)); - } - - /** - * Convenience factory method. - */ - public static Node.Validator buildSynchronousValidator(Node node) { - return new PluggableValidator(new SynchronousValidator(node)); - } - - /** - * Construct a validator with the specified delegate. - */ - public PluggableValidator(Delegate delegate) { - super(); - this.pause = false; - this.validateOnResume = false; - this.delegate = delegate; - } - - public synchronized void validate() { - if (this.pause) { - this.validateOnResume = true; - } else { - this.delegate.validate(); - } - } - - public synchronized void pause() { - if (this.pause) { - throw new IllegalStateException("already paused"); //$NON-NLS-1$ - } - this.pause = true; - } - - public synchronized void resume() { - if ( ! this.pause) { - throw new IllegalStateException("not paused"); //$NON-NLS-1$ - } - this.pause = false; - // validate any changes that occurred while the validation was paused - if (this.validateOnResume) { - this.validateOnResume = false; - this.delegate.validate(); - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.delegate); - } - - - // ********** member interface ********** - - /** - * Interface implemented by any delegates of a pluggable validator. - */ - public interface Delegate { - - /** - * The validator is not "paused" - perform the appropriate validation. - */ - void validate(); - - - /** - * This delegate does nothing. - */ - final class Null implements Delegate { - public static final Delegate INSTANCE = new Null(); - public static Delegate instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - public void validate() { - // do nothing - } - @Override - public String toString() { - return "PluggableValidator.Delegate.Null"; //$NON-NLS-1$ - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Problem.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Problem.java deleted file mode 100644 index 13b4778a71..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/Problem.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.node; - -/** - * Define an interface describing the problems associated with a node. - */ -public interface Problem { - - /** - * Return the node most closely associated with the problem. - */ - Node source(); - - /** - * Return a key that can be used to uniquely identify the problem's message. - */ - String messageKey(); - - /** - * Return the arguments associate with the problem's message. - */ - Object[] messageArguments(); - - /** - * Return the type of the identified problem's message - */ - int messageType(); - - /** - * Return whether the problem is equal to the specified object. - * It is equal if the specified object is a implementation of the - * Problem interface and its source, message key, and message - * arguments are all equal to this problem's. - */ - boolean equals(Object o); - - /** - * Return the problem's hash code, which should calculated as an - * XOR of the source's hash code and the message key's hash code. - */ - int hashCode(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/SynchronousValidator.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/SynchronousValidator.java deleted file mode 100644 index b176685613..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/node/SynchronousValidator.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.node; - -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * This implementation of the PluggableValidator.Delegate interface - * will validate the node immediately. - * - * This is useful for debugging in a single thread or generating - * problem reports. - */ -public class SynchronousValidator - implements PluggableValidator.Delegate -{ - private final Node node; - - /** - * Construct a validator that will immediately validate the - * specified node. - */ - public SynchronousValidator(Node node) { - super(); - this.node = node; - } - - public void validate() { - this.node.validateBranch(); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.node); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CachingComboBoxModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CachingComboBoxModel.java deleted file mode 100644 index cd6412e91e..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CachingComboBoxModel.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import javax.swing.ComboBoxModel; - -/** - * This interface allows a client to better control the performance of - * a combo box model by allowing the client to specify when it is - * acceptable for the model to "cache" and "uncache" its list of elements. - * The model may ignore these hints if appropriate. - */ -public interface CachingComboBoxModel extends ComboBoxModel { - - /** - * Cache the comboBoxModel List. If you call this, you - * must make sure to call uncacheList() as well. Otherwise - * stale data will be in the ComboBox until cacheList() is - * called again or uncacheList() is called. - */ - void cacheList(); - - /** - * Clear the cached list. Next time the list is needed it will - * be built when it is not cached. - */ - void uncacheList(); - - /** - * Check to see if the list is already cached. This can be used for - * MouseEvents, since they are not terribly predictable. - */ - boolean isCached(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CheckBoxTableCellRenderer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CheckBoxTableCellRenderer.java deleted file mode 100644 index 87a2b2e5ef..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/CheckBoxTableCellRenderer.java +++ /dev/null @@ -1,206 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import java.awt.Color; -import java.awt.Component; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import javax.swing.BorderFactory; -import javax.swing.Icon; -import javax.swing.JCheckBox; -import javax.swing.JTable; -import javax.swing.SwingConstants; -import javax.swing.UIManager; -import javax.swing.border.Border; -import org.eclipse.jpt.common.utility.internal.swing.TableCellEditorAdapter.ImmediateEditListener; - -/** - * Make the cell look like a check box. - */ -public class CheckBoxTableCellRenderer implements TableCellEditorAdapter.Renderer { - - /** the component used to paint the cell */ - private final JCheckBox checkBox; - - /** the listener to be notified on an immediate edit */ - protected TableCellEditorAdapter.ImmediateEditListener immediateEditListener; - - /** "normal" border - assume the default table "focus" border is 1 pixel thick */ - private static final Border NO_FOCUS_BORDER = BorderFactory.createEmptyBorder(1, 1, 1, 1); - - - // ********** constructors/initialization ********** - - /** - * Construct a cell renderer with no label or icon. - */ - public CheckBoxTableCellRenderer() { - super(); - this.checkBox = this.buildCheckBox(); - // by default, check boxes do not paint their borders - this.checkBox.setBorderPainted(true); - // this setting is recommended for check boxes inside of trees and tables - this.checkBox.setBorderPaintedFlat(true); - } - - /** - * Construct a cell renderer with the specified text and icon, - * either of which may be null. - */ - public CheckBoxTableCellRenderer(String text, Icon icon) { - this(); - this.setText(text); - this.setIcon(icon); - } - - /** - * Construct a cell renderer with the specified text. - */ - public CheckBoxTableCellRenderer(String text) { - this(text, null); - } - - /** - * Construct a cell renderer with the specified icon. - */ - public CheckBoxTableCellRenderer(Icon icon) { - this(null, icon); - } - - protected JCheckBox buildCheckBox() { - JCheckBox cb = new JCheckBox(); - cb.addActionListener(this.buildActionListener()); - return cb; - } - - private ActionListener buildActionListener() { - return new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (CheckBoxTableCellRenderer.this.immediateEditListener != null) { - CheckBoxTableCellRenderer.this.immediateEditListener.immediateEdit(); - } - } - }; - } - - - // ********** TableCellRenderer implementation ********** - - public Component getTableCellRendererComponent(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) { - this.checkBox.setHorizontalAlignment(SwingConstants.CENTER); - this.checkBox.setComponentOrientation(table.getComponentOrientation()); - this.checkBox.setFont(table.getFont()); - this.checkBox.setEnabled(table.isEnabled()); - - this.checkBox.setForeground(this.foregroundColor(table, value, selected, hasFocus, row, column)); - this.checkBox.setBackground(this.backgroundColor(table, value, selected, hasFocus, row, column)); - // once the colors are set, calculate opaque setting - this.checkBox.setOpaque(this.cellIsOpaqueIn(table, value, selected, hasFocus, row, column)); - this.checkBox.setBorder(this.border(table, value, selected, hasFocus, row, column)); - - this.setValue(value); - return this.checkBox; - } - - /** - * Return the cell's foreground color. - */ - protected Color foregroundColor(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, int row, int column) { - if (selected) { - if (hasFocus && table.isCellEditable(row, column)) { - return UIManager.getColor("Table.focusCellForeground"); //$NON-NLS-1$ - } - return table.getSelectionForeground(); - } - return table.getForeground(); - } - - /** - * Return the cell's background color. - */ - protected Color backgroundColor(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, int row, int column) { - if (selected) { - if (hasFocus && table.isCellEditable(row, column)) { - return UIManager.getColor("Table.focusCellBackground"); //$NON-NLS-1$ - } - return table.getSelectionBackground(); - } - return table.getBackground(); - } - - /** - * Return the cell's border. - */ - protected Border border(@SuppressWarnings("unused") JTable table, @SuppressWarnings("unused") Object value, @SuppressWarnings("unused") boolean selected, boolean hasFocus, @SuppressWarnings("unused") int row, @SuppressWarnings("unused") int column) { - return hasFocus ? UIManager.getBorder("Table.focusCellHighlightBorder") : NO_FOCUS_BORDER; //$NON-NLS-1$ - } - - /** - * Return whether the cell should be opaque in the table. - * If the cell's background is the same as the table's background - * and table is opaque, we don't need to paint the background - - * the table will do it. - */ - protected boolean cellIsOpaqueIn(JTable table, @SuppressWarnings("unused") Object value, @SuppressWarnings("unused") boolean selected, @SuppressWarnings("unused") boolean hasFocus, @SuppressWarnings("unused") int row, @SuppressWarnings("unused") int column) { - Color cellBackground = this.checkBox.getBackground(); - Color tableBackground = table.getBackground(); - return ! (table.isOpaque() && cellBackground.equals(tableBackground)); - } - - /** - * Set the check box's value. - */ - protected void setValue(Object value) { - // CR#3999318 - This null check needs to be removed once JDK bug is fixed - if (value == null) { - value = Boolean.FALSE; - } - this.checkBox.setSelected(((Boolean) value).booleanValue()); - } - - - // ********** TableCellEditorAdapter.Renderer implementation ********** - - public Object getValue() { - return Boolean.valueOf(this.checkBox.isSelected()); - } - - public void setImmediateEditListener(ImmediateEditListener listener) { - this.immediateEditListener = listener; - } - - // ********** public API ********** - - /** - * Set the check box's text; which by default is blank. - */ - public void setText(String text) { - this.checkBox.setText(text); - } - - /** - * Set the check box's icon; which by default is not present. - */ - public void setIcon(Icon icon) { - this.checkBox.setIcon(icon); - } - - /** - * Return the renderer's preferred height. This allows you - * to set the table's row height to something the check box - * will look good in.... - */ - public int preferredHeight() { - // add in space for the border top and bottom - return (int) this.checkBox.getPreferredSize().getHeight() + 2; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ComboBoxTableCellRenderer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ComboBoxTableCellRenderer.java deleted file mode 100644 index 055a43b09b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ComboBoxTableCellRenderer.java +++ /dev/null @@ -1,328 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import java.awt.Color; -import java.awt.Component; -import java.awt.Graphics; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import javax.swing.BorderFactory; -import javax.swing.ComboBoxModel; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JTable; -import javax.swing.ListCellRenderer; -import javax.swing.SwingConstants; -import javax.swing.UIManager; -import javax.swing.border.Border; -import javax.swing.event.PopupMenuEvent; -import javax.swing.event.PopupMenuListener; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; - -/** - * Make the cell look like a combo-box. - */ -public class ComboBoxTableCellRenderer implements TableCellEditorAdapter.Renderer { - - /* caching the combo box because we are caching the comboBoxModel. - * Everytime we rebuilt the comboBox we would set the model on it and not - * remove the model from the old combo box. This meant that new listeners - * kept being added to the comboBoxModel for every comboBox build. - * Not sure if there is a way to clear out the old combo box, or why - * we were buildig a new combo box every time so I went with caching it. - */ - private JComboBox comboBox; - - /** the items used to populate the combo box */ - private CachingComboBoxModel model; - private ListCellRenderer renderer; - Object value; - private static int height = -1; - boolean fakeFocusFlag; - - /** the listener to be notified on an immediate edit */ - protected TableCellEditorAdapter.ImmediateEditListener immediateEditListener; - - /** hold the original colors of the combo-box */ - private static Color defaultForeground; - private static Color defaultBackground; - - /** "normal" border - assume the default table "focus" border is 1 pixel thick */ - private static final Border NO_FOCUS_BORDER = BorderFactory.createEmptyBorder(1, 1, 1, 1); - - - // ********** constructors/initialization ********** - - /** - * Default constructor. - */ - private ComboBoxTableCellRenderer() { - super(); - initialize(); - } - - /** - * Construct a cell renderer that uses the specified combo-box model. - */ - public ComboBoxTableCellRenderer(ComboBoxModel model) { - this(new NonCachingComboBoxModel(model)); - } - - /** - * Construct a cell renderer that uses the specified caching combo-box model. - */ - public ComboBoxTableCellRenderer(CachingComboBoxModel model) { - this(); - this.model = model; - } - - /** - * Construct a cell renderer that uses the specified - * combo-box model and renderer. - */ - public ComboBoxTableCellRenderer(ComboBoxModel model, ListCellRenderer renderer) { - this(new NonCachingComboBoxModel(model), renderer); - } - - /** - * Construct a cell renderer that uses the specified - * caching combo-box model and renderer. - */ - public ComboBoxTableCellRenderer(CachingComboBoxModel model, ListCellRenderer renderer) { - this(model); - this.renderer = renderer; - } - - protected void initialize() { - // save the original colors of the combo-box, so we - // can use them to paint non-selected cells - if (height == -1) { - JComboBox cb = new JComboBox(); - cb.addItem("m"); //$NON-NLS-1$ - - // add in space for the border top and bottom - height = cb.getPreferredSize().height + 2; - - defaultForeground = cb.getForeground(); - defaultBackground = cb.getBackground(); - } - } - - static JLabel prototypeLabel = new JLabel("Prototype", new EmptyIcon(16), SwingConstants.LEADING); //$NON-NLS-1$ - - protected JComboBox buildComboBox() { - - final JComboBox result = new JComboBox() { - private boolean fakeFocus; - @Override - public boolean hasFocus() { - return fakeFocus || super.hasFocus(); - } - @Override - public void paint(Graphics g) { - fakeFocus = ComboBoxTableCellRenderer.this.fakeFocusFlag; - super.paint(g); - fakeFocus = false; - } - //wrap the renderer to deal with the prototypeDisplayValue - @Override - public void setRenderer(final ListCellRenderer aRenderer) { - super.setRenderer(new ListCellRenderer(){ - public Component getListCellRendererComponent(JList list, Object v, int index, boolean isSelected, boolean cellHasFocus) { - if (v == prototypeLabel) { - return prototypeLabel; - } - return aRenderer.getListCellRendererComponent(list, v, index, isSelected, cellHasFocus); - } - }); - } - @Override - public int getSelectedIndex() { - boolean listNotCached = !listIsCached(); - if (listNotCached) { - cacheList(); - } - - int index = super.getSelectedIndex(); - - if (listNotCached) { - uncacheList(); - } - return index; - } - - }; - // stole this code from javax.swing.DefaultCellEditor - result.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); //$NON-NLS-1$ - result.addActionListener(this.buildActionListener()); - result.addPopupMenuListener(this.buildPopupMenuListener()); - - //These are used to workaround problems with Swing trying to - //determine the size of a comboBox with a large model - result.setPrototypeDisplayValue(prototypeLabel); - getListBox(result).setPrototypeCellValue(prototypeLabel); - - return result; - } - - - private JList getListBox(JComboBox result) { - return (JList) ReflectionTools.getFieldValue(result.getUI(), "listBox"); //$NON-NLS-1$ - } - - - private ActionListener buildActionListener() { - return new ActionListener() { - public void actionPerformed(ActionEvent e) { - JComboBox cb = (JComboBox) e.getSource(); - Object selectedItem = cb.getSelectedItem(); - - // Only update the selected item and invoke immediateEdit() if the - // selected item actually changed, during the initialization of the - // editing, the model changes and causes this method to be invoked, - // it causes CR#3963675 to occur because immediateEdit() stop the - // editing, which is done at the wrong time - if (ComboBoxTableCellRenderer.this.value != selectedItem) { - ComboBoxTableCellRenderer.this.value = cb.getSelectedItem(); - ComboBoxTableCellRenderer.this.immediateEdit(); - } - } - }; - } - - void immediateEdit() { - if (this.immediateEditListener != null) { - this.immediateEditListener.immediateEdit(); - } - } - - private PopupMenuListener buildPopupMenuListener() { - return new PopupMenuListener() { - - public void popupMenuWillBecomeVisible(PopupMenuEvent e) { - if (listIsCached()) { - uncacheList(); - } - cacheList(); - } - - public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { - if (listIsCached()) { - uncacheList(); - } - - } - - public void popupMenuCanceled(PopupMenuEvent e) { - if (listIsCached()) { - uncacheList(); - } - } - }; - } - - - void cacheList() { - this.model.cacheList(); - } - - void uncacheList() { - this.model.uncacheList(); - } - - boolean listIsCached() { - return this.model.isCached(); - } - // ********** TableCellRenderer implementation ********** - - public Component getTableCellRendererComponent(JTable table, Object val, boolean selected, boolean hasFocus, int row, int column) { - this.fakeFocusFlag = selected || hasFocus; - if (this.comboBox == null) { - this.comboBox = this.buildComboBox(); - - this.comboBox.setComponentOrientation(table.getComponentOrientation()); - this.comboBox.setModel(this.model); - if (this.renderer != null) { - this.comboBox.setRenderer(this.renderer); - } - this.comboBox.setFont(table.getFont()); - this.comboBox.setEnabled(table.isEnabled()); - this.comboBox.setBorder(this.border(table, val, selected, hasFocus, row, column)); - } - - // We need to go through the model since JComboBox might prevent us from - // selecting the value. This can happen when the value is not contained - // in the model, see CR#3950044 for an example - this.model.setSelectedItem(val); - - return this.comboBox; - } - - /** - * Return the cell's foreground color. - */ - protected Color foregroundColor(JTable table, @SuppressWarnings("unused") Object val, boolean selected, boolean hasFocus, int row, int column) { - if (selected) { - if (hasFocus && table.isCellEditable(row, column)) { - return defaultForeground; - } - return table.getSelectionForeground(); - } - return defaultForeground; - } - - /** - * Return the cell's background color. - */ - protected Color backgroundColor(JTable table, @SuppressWarnings("unused") Object val, boolean selected, boolean hasFocus, int row, int column) { - if (selected) { - if (hasFocus && table.isCellEditable(row, column)) { - return defaultBackground; - } - return table.getSelectionBackground(); - } - return defaultBackground; - } - - /** - * Return the cell's border. - */ - protected Border border(@SuppressWarnings("unused") JTable table, @SuppressWarnings("unused") Object val, @SuppressWarnings("unused") boolean selected, boolean hasFocus, @SuppressWarnings("unused") int row, @SuppressWarnings("unused") int column) { - return hasFocus ? - UIManager.getBorder("Table.focusCellHighlightBorder") //$NON-NLS-1$ - : - NO_FOCUS_BORDER; - } - - - // ********** TableCellEditorAdapter.Renderer implementation ********** - - public Object getValue() { - return this.value; - } - - public void setImmediateEditListener(TableCellEditorAdapter.ImmediateEditListener listener) { - this.immediateEditListener = listener; - } - - - // ********** public API ********** - - /** - * Return the renderer's preferred height. This allows you - * to set the row height to something the combo-box will look good in.... - */ - public int preferredHeight() { - return height; - } - -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/Displayable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/Displayable.java deleted file mode 100644 index 5a3adb7cc4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/Displayable.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import javax.swing.Icon; - -import org.eclipse.jpt.common.utility.model.Model; - -/** - * Used by general-purpose UI models and renderers to cast - * application model objects to something displayable. - */ -public interface Displayable - extends Model -{ - - /** - * Return a string that can be used to identify the model - * in a textual UI setting (typically the object's name). - * When the display string changes, the model should fire - * the appropriate change notification: - * this.firePropertyChanged(DISPLAY_STRING_PROPERTY, oldDisplayString, this.displayString()); - */ - String displayString(); - String DISPLAY_STRING_PROPERTY = "displayString"; //$NON-NLS-1$ - - /** - * Return an icon that can be used to identify the model - * in a UI component that supports icons (the icon can be null). - * When the icon changes, the model should fire - * the appropriate change notification: - * this.firePropertyChanged(ICON_PROPERTY, oldIcon, this.icon()); - */ - Icon icon(); - String ICON_PROPERTY = "icon"; //$NON-NLS-1$ - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/EmptyIcon.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/EmptyIcon.java deleted file mode 100644 index b04fbcf4b0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/EmptyIcon.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import java.awt.Component; -import java.awt.Graphics; -import javax.swing.Icon; - -/** - * Implement the Icon interface with an icon that has a size but - * does not paint anything on the graphics context. - */ -public class EmptyIcon - implements Icon -{ - private final int width; - private final int height; - - public static final EmptyIcon NULL_INSTANCE = new EmptyIcon(0); - - - public EmptyIcon(int width, int height) { - super(); - this.width = width; - this.height = height; - } - - public EmptyIcon(int size) { - this(size, size); - } - - - // ********** Icon implementation ********** - - public void paintIcon(Component c, Graphics g, int x, int y) { - // don't paint anything for an empty icon - } - - public int getIconWidth() { - return this.width; - } - - public int getIconHeight() { - return this.height; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListBrowser.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListBrowser.java deleted file mode 100644 index 68ee9aa0ec..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListBrowser.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import javax.swing.Icon; -import javax.swing.JComboBox; -import javax.swing.JOptionPane; -import javax.swing.ListModel; - -/** - * This implementation of LongListComponent.Browser uses a - * JOptionPane to prompt the user for the selection. The JOPtionPane - * is passed a FilteringListPanel to assist the user in making - * a selection. - */ -public class FilteringListBrowser - implements ListChooser.ListBrowser -{ - private FilteringListPanel panel; - - /** - * Default constructor. - */ - public FilteringListBrowser() { - super(); - this.panel = this.buildPanel(); - } - - protected FilteringListPanel buildPanel() { - return new LocalFilteringListPanel(); - } - - /** - * Prompt the user using a JOptionPane with a filtering - * list panel. - */ - public void browse(ListChooser chooser) { - this.initializeCellRenderer(chooser); - - int option = - JOptionPane.showOptionDialog( - chooser, - this.message(chooser), - this.title(chooser), - this.optionType(chooser), - this.messageType(chooser), - this.icon(chooser), - this.selectionValues(chooser), - this.initialSelectionValue(chooser) - ); - - if (option == JOptionPane.OK_OPTION) { - chooser.getModel().setSelectedItem(this.panel.selection()); - } - - // clear the text field so the list box is re-filtered - this.panel.textField().setText(""); //$NON-NLS-1$ - } - - protected void initializeCellRenderer(JComboBox comboBox) { - // default behavior should be to use the cell renderer from the combobox. - this.panel.listBox().setCellRenderer(comboBox.getRenderer()); - } - - /** - * the message can be anything - here we build a component - */ - protected Object message(JComboBox comboBox) { - this.panel.setCompleteList(this.convertToArray(comboBox.getModel())); - this.panel.setSelection(comboBox.getModel().getSelectedItem()); - return this.panel; - } - - protected String title(@SuppressWarnings("unused") JComboBox comboBox) { - return null; - } - - protected int optionType(@SuppressWarnings("unused") JComboBox comboBox) { - return JOptionPane.OK_CANCEL_OPTION; - } - - protected int messageType(@SuppressWarnings("unused") JComboBox comboBox) { - return JOptionPane.QUESTION_MESSAGE; - } - - protected Icon icon(@SuppressWarnings("unused") JComboBox comboBox) { - return null; - } - - protected Object[] selectionValues(@SuppressWarnings("unused") JComboBox comboBox) { - return null; - } - - protected Object initialSelectionValue(@SuppressWarnings("unused") JComboBox comboBox) { - return null; - } - - /** - * Convert the list of objects in the specified list model - * into an array. - */ - protected Object[] convertToArray(ListModel model) { - int size = model.getSize(); - Object[] result = new Object[size]; - for (int i = 0; i < size; i++) { - result[i] = model.getElementAt(i); - } - return result; - } - - - // ********** custom panel ********** - - protected static class LocalFilteringListPanel extends FilteringListPanel { - protected static final Object[] EMPTY_ARRAY = new Object[0]; - - protected LocalFilteringListPanel() { - super(EMPTY_ARRAY, null); - } - - /** - * Disable the performance tweak because JOptionPane - * will try open wide enough to disable the horizontal scroll bar; - * and it looks a bit clumsy. - */ - @Override - protected String prototypeCellValue() { - return null; - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListPanel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListPanel.java deleted file mode 100644 index e58608c9e4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/FilteringListPanel.java +++ /dev/null @@ -1,455 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import java.awt.BorderLayout; -import java.awt.Font; -import javax.swing.AbstractListModel; -import javax.swing.BorderFactory; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextField; -import javax.swing.ListCellRenderer; -import javax.swing.ListModel; -import javax.swing.ListSelectionModel; -import javax.swing.border.Border; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import org.eclipse.jpt.common.utility.internal.SimpleStringMatcher; -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.internal.StringMatcher; - -/** - * This panel presents an entry field and a list box of choices that - * allows the user to filter the entries in the list box by entering - * a pattern in the entry field. - * - * By default, two wildcards are allowed in the pattern: - * '*' will match any set of zero or more characters - * '?' will match any single character - * - * The panel consists of 4 components that can be customized: - * - 1 text field - * - 1 list box - * - 2 labels, one for each of the above - * - * Other aspects of the panel's behavior can be changed: - * - the string converter determines how the objects in the - * list are converted to strings and compared to the pattern - * entered in the text field; by default the converter simply - * uses the result of the object's #toString() method - * (if you replace the string converter, you will probably - * want to replace the list box's cell renderer also) - * - the string matcher can also be changed if you would - * like different pattern matching behavior than that - * described above - * - you can specify the maximum size of the list - this may - * force the user to enter a pattern restrictive enough - * to result in a list smaller than the maximum size; the - * default is -1, which disables the restriction - * - * This panel is not a typical panel, in the sense that it does not share - * its model with clients via value models. Instead, this panel's model - * is set and queried directly because it is designed to be used in a - * dialog that directs the user's behavior (as opposed to a "normal" - * window). - */ -public class FilteringListPanel extends JPanel { - - /** - * The complete list of available choices - * (as opposed to the partial list held by the list box). - */ - private Object[] completeList; - - /** - * An adapter used to convert the objects in the list - * to strings so they can be run through the matcher - * and displayed in the text field. - */ - StringConverter stringConverter; - - /** The text field. */ - private JTextField textField; - private JLabel textFieldLabel; - private DocumentListener textFieldListener; - - /** The list box. */ - private JList listBox; - private JLabel listBoxLabel; - - /** The maximum number of entries displayed in the list box. */ - private int maxListSize; - - /** - * The matcher used to filter the list against - * the pattern entered in the text field. By default, - * this allows the two wildcard characters described in - * the class comment. - */ - private StringMatcher stringMatcher; - - /** - * Performance tweak: We use this buffer instead of - * a temporary variable during filtering so we don't have - * to keep re-allocating it. - */ - private Object[] buffer; - - private static final Border TEXT_FIELD_LABEL_BORDER = BorderFactory.createEmptyBorder(0, 0, 5, 0); - private static final Border LIST_BOX_LABEL_BORDER = BorderFactory.createEmptyBorder(5, 0, 5, 0); - - - // ********** constructors ********** - - /** - * Construct a FilteringListPanel with the specified list of choices - * and initial selection. Use the default string converter to convert the - * choices and selection to strings (which simply calls #toString() on - * the objects). - */ - public FilteringListPanel(Object[] completeList, Object initialSelection) { - this(completeList, initialSelection, StringConverter.Default.instance()); - } - - /** - * Construct a FilteringListPanel with the specified list of choices - * and initial selection. Use the specified string converter to convert the - * choices and selection to strings. - */ - public FilteringListPanel(Object[] completeList, Object initialSelection, StringConverter stringConverter) { - super(new BorderLayout()); - this.completeList = completeList; - this.stringConverter = stringConverter; - this.initialize(initialSelection); - } - - - // ********** initialization ********** - - private void initialize(Object initialSelection) { - this.maxListSize = this.defaultMaxListSize(); - this.buffer = this.buildBuffer(); - - this.textFieldListener = this.buildTextFieldListener(); - - this.stringMatcher = this.buildStringMatcher(); - - this.initializeLayout(initialSelection); - } - - private Object[] buildBuffer() { - return new Object[this.max()]; - } - - /** - * Return the current max number of entries allowed in the list box. - */ - private int max() { - if (this.maxListSize == -1) { - return this.completeList.length; - } - return Math.min(this.maxListSize, this.completeList.length); - } - - /** - * Build a listener that will listen to changes in the text field - * and filter the list appropriately. - */ - private DocumentListener buildTextFieldListener() { - return new DocumentListener() { - public void insertUpdate(DocumentEvent e) { - FilteringListPanel.this.filterList(); - } - public void changedUpdate(DocumentEvent e) { - FilteringListPanel.this.filterList(); - } - public void removeUpdate(DocumentEvent e) { - FilteringListPanel.this.filterList(); - } - @Override - public String toString() { - return "text field listener"; //$NON-NLS-1$ - } - }; - } - - private int defaultMaxListSize() { - return -1; - } - - private StringMatcher buildStringMatcher() { - return new SimpleStringMatcher(); - } - - private void initializeLayout(Object initialSelection) { - // text field - JPanel textFieldPanel = new JPanel(new BorderLayout()); - this.textFieldLabel = new JLabel(); - this.textFieldLabel.setBorder(TEXT_FIELD_LABEL_BORDER); - textFieldPanel.add(this.textFieldLabel, BorderLayout.NORTH); - - this.textField = new JTextField(); - this.textField.getDocument().addDocumentListener(this.textFieldListener); - this.textFieldLabel.setLabelFor(this.textField); - textFieldPanel.add(this.textField, BorderLayout.CENTER); - - this.add(textFieldPanel, BorderLayout.NORTH); - - // list box - JPanel listBoxPanel = new JPanel(new BorderLayout()); - this.listBoxLabel = new JLabel(); - this.listBoxLabel.setBorder(LIST_BOX_LABEL_BORDER); - listBoxPanel.add(this.listBoxLabel, BorderLayout.NORTH); - - this.listBox = new JList(); - this.listBox.setDoubleBuffered(true); - this.listBox.setModel(this.buildPartialArrayListModel(this.completeList, this.max())); - this.listBox.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - // performance tweak(?) - this.listBox.setPrototypeCellValue(this.prototypeCellValue()); - this.listBox.setPrototypeCellValue(null); - this.listBox.setCellRenderer(this.buildDefaultCellRenderer()); - this.listBoxLabel.setLabelFor(this.listBox); - // bug 2777802 - scroll bars shouldn't be on the tab sequence - JScrollPane listBoxScrollPane = new JScrollPane(this.listBox); - listBoxScrollPane.getHorizontalScrollBar().setFocusable(false); - listBoxScrollPane.getVerticalScrollBar().setFocusable(false); - listBoxPanel.add(listBoxScrollPane, BorderLayout.CENTER); - - // initialize the widgets - this.listBox.setSelectedValue(initialSelection, true); - this.textField.select(0, this.textField.getText().length()); - - this.add(listBoxPanel, BorderLayout.CENTER); - } - - - // ********** public API ********** - - public Object selection() { - return this.listBox.getSelectedValue(); - } - - public void setSelection(Object selection) { - this.listBox.setSelectedValue(selection, true); - } - - public Object[] completeList() { - return this.completeList; - } - - /** - * rebuild the filtering buffer and re-apply the filter - * to the new list - */ - public void setCompleteList(Object[] completeList) { - this.completeList = completeList; - if (this.buffer.length < this.max()) { - // the buffer will never shrink - might want to re-consider... ~bjv - this.buffer = this.buildBuffer(); - } - this.filterList(); - } - - public int maxListSize() { - return this.maxListSize; - } - - public void setMaxListSize(int maxListSize) { - this.maxListSize = maxListSize; - if (this.buffer.length < this.max()) { - // the buffer will never shrink - might want to re-consider... ~bjv - this.buffer = this.buildBuffer(); - } - this.filterList(); - } - - public StringConverter stringConverter() { - return this.stringConverter; - } - - /** - * apply the new filter to the list - */ - public void setStringConverter(StringConverter stringConverter) { - this.stringConverter = stringConverter; - this.filterList(); - } - - /** - * allow client code to access the text field - * (so we can set the focus) - */ - public JTextField textField() { - return this.textField; - } - - /** - * allow client code to access the text field label - */ - public JLabel textFieldLabel() { - return this.textFieldLabel; - } - - /** - * convenience method - */ - public void setTextFieldLabelText(String text) { - this.textFieldLabel.setText(text); - } - - /** - * allow client code to access the list box - * (so we can add mouse listeners for double-clicking) - */ - public JList listBox() { - return this.listBox; - } - - /** - * convenience method - */ - public void setListBoxCellRenderer(ListCellRenderer renderer) { - this.listBox.setCellRenderer(renderer); - } - - /** - * allow client code to access the list box label - */ - public JLabel listBoxLabel() { - return this.listBoxLabel; - } - - /** - * convenience method - */ - public void setListBoxLabelText(String text) { - this.listBoxLabel.setText(text); - } - - /** - * convenience method - */ - public void setComponentsFont(Font font) { - this.textFieldLabel.setFont(font); - this.textField.setFont(font); - this.listBoxLabel.setFont(font); - this.listBox.setFont(font); - } - - public StringMatcher stringMatcher() { - return this.stringMatcher; - } - - /** - * re-apply the filter to the list - */ - public void setStringMatcher(StringMatcher stringMatcher) { - this.stringMatcher = stringMatcher; - this.filterList(); - } - - - // ********** internal methods ********** - - /** - * Allow subclasses to disable performance tweak - * by returning null here. - */ - protected String prototypeCellValue() { - return "==========> A_STRING_THAT_IS_DEFINITELY_LONGER_THAN_EVERY_STRING_IN_THE_LIST <=========="; //$NON-NLS-1$ - } - - /** - * By default, use the string converter to build the text - * used by the list box's cell renderer. - */ - protected ListCellRenderer buildDefaultCellRenderer() { - return new SimpleListCellRenderer() { - @Override - @SuppressWarnings("unchecked") - protected String buildText(Object value) { - return FilteringListPanel.this.stringConverter.convertToString((T) value); - } - }; - } - - /** - * Something has changed that requires us to filter the list. - * - * This method is synchronized because a fast typist can - * generate events quicker than we can filter the list. (? ~bjv) - */ - synchronized void filterList() { - // temporarily stop listening to the list box selection, since we will - // be changing the selection during the filtering and don't want - // that to affect the text field - this.filterList(this.textField.getText()); - } - - /** - * Filter the contents of the list box to match the - * specified pattern. - */ - private void filterList(String pattern) { - if (pattern.length() == 0) { - this.listBox.setModel(this.buildPartialArrayListModel(this.completeList, this.max())); - } else { - this.stringMatcher.setPatternString(pattern); - int j = 0; - int len = this.completeList.length; - int max = this.max(); - for (int i = 0; i < len; i++) { - if (this.stringMatcher.matches(this.stringConverter.convertToString(this.entry(i)))) { - this.buffer[j++] = this.completeList[i]; - } - if (j == max) { - break; - } - } - this.listBox.setModel(this.buildPartialArrayListModel(this.buffer, j)); - } - - // after filtering the list, determine the appropriate selection - if (this.listBox.getModel().getSize() == 0) { - this.listBox.getSelectionModel().clearSelection(); - } else { - this.listBox.getSelectionModel().setAnchorSelectionIndex(0); - this.listBox.getSelectionModel().setLeadSelectionIndex(0); - this.listBox.ensureIndexIsVisible(0); - } - } - - /** - * minimize scope of suppressed warnings - */ - @SuppressWarnings("unchecked") - private T entry(int index) { - return (T) this.completeList[index]; - } - - /** - * Build a list model that wraps only a portion of the specified array. - * The model will include the array entries from 0 to (size - 1). - */ - private ListModel buildPartialArrayListModel(final Object[] array, final int size) { - return new AbstractListModel() { - public int getSize() { - return size; - } - public Object getElementAt(int index) { - return array[index]; - } - }; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ListChooser.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ListChooser.java deleted file mode 100644 index 84bad23fc9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/ListChooser.java +++ /dev/null @@ -1,430 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import java.awt.AWTEvent; -import java.awt.AWTException; -import java.awt.Component; -import java.awt.EventQueue; -import java.awt.Point; -import java.awt.Robot; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; -import java.awt.event.MouseEvent; -import javax.swing.ComboBoxModel; -import javax.swing.DefaultListCellRenderer; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.ListCellRenderer; -import javax.swing.SwingConstants; -import javax.swing.event.PopupMenuEvent; -import javax.swing.event.PopupMenuListener; -import javax.swing.plaf.basic.BasicComboBoxUI; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; - -/** - * This component provides a way to handle selecting an item from a - * list that may grow too large to be handled conveniently by a combo-box. - * If the list's size is less than the designated "long" list size, - * the choice list will be displayed in a normal combo-box popup; - * otherwise, a dialog will be used to prompt the user to choose a selection. - * - * To change the browse mechanism, subclasses may - * - override the method #buildBrowser() - * - override the method #browse(), in which case the method - * #buildBrowser() may be ignored. - */ -public class ListChooser - extends JComboBox -{ - - /** the size of a "long" list - anything smaller is a "short" list */ - int longListSize = DEFAULT_LONG_LIST_SIZE; - - /** the default size of a "long" list, which is 20 (to match JOptionPane's behavior) */ - public static final int DEFAULT_LONG_LIST_SIZE = 20; - - /** property change associated with long list size */ - public static final String LONG_LIST_SIZE_PROPERTY = "longListSize"; //$NON-NLS-1$ - - static JLabel prototypeLabel = new JLabel("Prototype", new EmptyIcon(17), SwingConstants.LEADING); //$NON-NLS-1$ - - /** - * whether the chooser is choosable. if a chooser is not choosable, - * it only serves as a display widget. a user may not change its - * selected value. - */ - boolean choosable = true; - - /** property change associated with choosable */ - public static final String CHOOSABLE_PROPERTY = "choosable"; //$NON-NLS-1$ - - /** the browser used to make a selection from the long list - typically via a dialog */ - private ListBrowser browser; - - private NodeSelector nodeSelector; - - /** INTERNAL - The popup is being shown. Used to prevent infinite loop. */ - boolean popupAlreadyInProgress; - - - // **************** Constructors ****************************************** - - /** - * Construct a list chooser for the specified model. - */ - public ListChooser(ComboBoxModel model) { - this(model, new NodeSelector.DefaultNodeSelector()); - } - - public ListChooser(CachingComboBoxModel model) { - this(model, new NodeSelector.DefaultNodeSelector()); - } - - public ListChooser(ComboBoxModel model, NodeSelector nodeSelector) { - this(new NonCachingComboBoxModel(model), nodeSelector); - } - - public ListChooser(CachingComboBoxModel model, NodeSelector nodeSelector) { - super(model); - this.initialize(); - this.nodeSelector = nodeSelector; - } - // **************** Initialization **************************************** - - protected void initialize() { - this.addPopupMenuListener(this.buildPopupMenuListener()); - this.setRenderer(new DefaultListCellRenderer()); - this.addKeyListener(buildF3KeyListener()); - - //These are used to workaround problems with Swing trying to - //determine the size of a comboBox with a large model - setPrototypeDisplayValue(prototypeLabel); - listBox().setPrototypeCellValue(prototypeLabel); - } - - - private JList listBox() { - return (JList) ReflectionTools.getFieldValue(this.ui, "listBox"); //$NON-NLS-1$ - } - - /** - * When the popup is about to be shown, the event is consumed, and - * PopupHandler determines whether to reshow the popup or to show - * the long list browser. - */ - private PopupMenuListener buildPopupMenuListener() { - return new PopupMenuListener() { - public void popupMenuWillBecomeVisible(PopupMenuEvent e) { - ListChooser.this.aboutToShowPopup(); - } - public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { - // do nothing - } - public void popupMenuCanceled(PopupMenuEvent e) { - // do nothing - } - @Override - public String toString() { - return "pop-up menu listener"; //$NON-NLS-1$ - } - }; - } - - /** - * If this code is being reached due to the PopupHandler already being in progress, - * then do nothing. Otherwise, set the flag to true and launch the PopupHandler. - */ - void aboutToShowPopup() { - if (this.popupAlreadyInProgress) { - return; - } - - this.popupAlreadyInProgress = true; - EventQueue.invokeLater(new PopupHandler()); - } - - - private KeyListener buildF3KeyListener() { - return new KeyAdapter() { - @Override - public void keyPressed(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_F3) { - goToSelectedItem(); - } - } - @Override - public String toString() { - return "F3 key listener"; //$NON-NLS-1$ - } - }; - } - - public void goToSelectedItem() { - if (getSelectedItem() != null) { - ListChooser.this.nodeSelector.selectNodeFor(getSelectedItem()); - } - } - - // **************** Browsing ********************************************** - - /** - * Lazily initialize because subclasses may have further initialization to do - * before browser can be built. - */ - protected void browse() { - if (this.browser == null) { - this.browser = this.buildBrowser(); - } - - this.browser.browse(this); - } - - /** - * Return the "browser" used to make a selection from the long list, - * typically via a dialog. - */ - protected ListChooser.ListBrowser buildBrowser() { - return new SimpleListBrowser(); - } - - - // **************** Choosable functionality ******************************* - - /** override behavior - consume selection if chooser is not choosable */ - @Override - public void setSelectedIndex(int anIndex) { - if (this.choosable) { - super.setSelectedIndex(anIndex); - } - } - - private void updateArrowButton() { - try { - BasicComboBoxUI comboBoxUi = (BasicComboBoxUI) ListChooser.this.getUI(); - JButton arrowButton = (JButton) ReflectionTools.getFieldValue(comboBoxUi, "arrowButton"); //$NON-NLS-1$ - arrowButton.setEnabled(this.isEnabled() && this.choosable); - } - catch (Exception e) { - // this is a huge hack to try and make the combo box look right, - // so if it doesn't work, just swallow the exception - } - } - - - // **************** List Caching ******************************* - - void cacheList() { - ((CachingComboBoxModel) getModel()).cacheList(); - } - - void uncacheList() { - ((CachingComboBoxModel) getModel()).uncacheList(); - } - - boolean listIsCached() { - return ((CachingComboBoxModel) getModel()).isCached(); - } - - // **************** Public ************************************************ - - public int longListSize() { - return this.longListSize; - } - - public void setLongListSize(int newLongListSize) { - int oldLongListSize = this.longListSize; - this.longListSize = newLongListSize; - this.firePropertyChange(LONG_LIST_SIZE_PROPERTY, oldLongListSize, newLongListSize); - } - - public boolean isChoosable() { - return this.choosable; - } - - public void setChoosable(boolean newValue) { - boolean oldValue = this.choosable; - this.choosable = newValue; - this.firePropertyChange(CHOOSABLE_PROPERTY, oldValue, newValue); - this.updateArrowButton(); - } - - // **************** Handle selecting null as a value ********************** - - private boolean selectedIndexIsNoneSelectedItem(int index) { - return index == -1 && - getModel().getSize() > 0 && - getModel().getElementAt(0) == null; - } - - @Override - public int getSelectedIndex() { - boolean listNotCached = !listIsCached(); - if (listNotCached) { - cacheList(); - } - - int index = super.getSelectedIndex(); - - // Use index 0 to show the item since the actual value is - // null and JComboBox does not handle null values - if (selectedIndexIsNoneSelectedItem(index)) { - index = 0; - } - - if (listNotCached) { - uncacheList(); - } - return index; - } - - //wrap the renderer to deal with the prototypeDisplayValue - @Override - public void setRenderer(final ListCellRenderer aRenderer) { - super.setRenderer(new ListCellRenderer(){ - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - if (value == prototypeLabel) { - return prototypeLabel; - } - return aRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - } - }); - } - - - // **************** Member classes **************************************** - - /** - * Define the API required by this ListChooser when it must - * prompt the user to select an item from the "long" list. - */ - public interface ListBrowser - { - /** - * Prompt the user to make a selection from the specified - * combo-box's model. - */ - void browse(ListChooser parentChooser); - } - - - /** - * Runnable class that consumes popup window and determines whether - * to reshow popup or to launch browser, based on the size of the list. - */ - private class PopupHandler - implements Runnable - { - /** The mouse event */ - private MouseEvent lastMouseEvent; - - /** The component from which the last mouse event was thrown */ - private JComponent eventComponent; - - /** The location of the component at the time the last mouse event was thrown */ - private Point componentLocation; - - /** The location of the mouse at the time the last mouse event was thrown */ - private Point mouseLocation; - - - PopupHandler() { - this.initialize(); - } - - private void initialize() { - AWTEvent event = EventQueue.getCurrentEvent(); - - if (event instanceof MouseEvent) { - this.lastMouseEvent = (MouseEvent) event; - this.eventComponent = (JComponent) this.lastMouseEvent.getSource(); - this.componentLocation = this.eventComponent.getLocationOnScreen(); - this.mouseLocation = this.lastMouseEvent.getPoint(); - } - else { - this.eventComponent = null; - this.componentLocation = null; - this.mouseLocation = null; - } - } - - public void run() { - ListChooser.this.hidePopup(); - - cacheList(); - if (ListChooser.this.choosable == true) { - // If the combo box model is of sufficient length, the browser will be shown. - // Asking the combo box model for its size should be enough to ensure that - // its size is recalculated. - if (ListChooser.this.getModel().getSize() > ListChooser.this.longListSize) { - this.checkComboBoxButton(); - ListChooser.this.browse(); - } - else { - ListChooser.this.showPopup(); - this.checkMousePosition(); - } - } - if (listIsCached()) { - uncacheList(); - } - - ListChooser.this.popupAlreadyInProgress = false; - } - - /** If this is not done, the button never becomes un-pressed */ - private void checkComboBoxButton() { - try { - BasicComboBoxUI comboBoxUi = (BasicComboBoxUI) ListChooser.this.getUI(); - JButton arrowButton = (JButton) ReflectionTools.getFieldValue(comboBoxUi, "arrowButton"); //$NON-NLS-1$ - arrowButton.getModel().setPressed(false); - } - catch (Exception ex) { - // this is a huge hack to try and make the combo box look right, - // so if it doesn't work, just swallow the exception - this.handleException(ex); - } - } - - private void handleException(@SuppressWarnings("unused") Exception ex) { - // do nothing for now - } - - /** - * Moves the mouse back to its original position before any jiggery pokery that we've done. - */ - private void checkMousePosition() { - if (this.eventComponent == null) { - return; - } - - final Point newComponentLocation = this.eventComponent.getLocationOnScreen(); - boolean componentMoved = - newComponentLocation.x - this.componentLocation.x != 0 - || newComponentLocation.y - this.componentLocation.y != 0; - - if (componentMoved) { - try { - new Robot().mouseMove( - newComponentLocation.x + this.mouseLocation.x, - newComponentLocation.y + this.mouseLocation.y - ); - } - catch (AWTException ex) { - // move failed - do nothing - } - } - } - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NodeSelector.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NodeSelector.java deleted file mode 100644 index 64079be527..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NodeSelector.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -/** - * This will be called when the user presses F3 or chooses - * 'Go To' in the context menu - */ -public interface NodeSelector -{ - /** - * Select the appropriate Node in the tree or the editor panel. - */ - void selectNodeFor(Object item); - - /** - * This NodeSelector will do nothing when selectNodeFor(Object) is called - */ - class DefaultNodeSelector implements NodeSelector { - - public void selectNodeFor(Object item) { - //default is to do nothing - } - } -} \ No newline at end of file diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NonCachingComboBoxModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NonCachingComboBoxModel.java deleted file mode 100644 index aef9a7c6ed..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/NonCachingComboBoxModel.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import javax.swing.ComboBoxModel; -import javax.swing.event.ListDataListener; - -/** - * This implementation of the CachingComboBoxModel interface can be used - * whenever there is no need for caching (i.e. the contents of the selection - * list can be generated with little latency). All the normal ComboBoxModel - * behavior is delegated to a client-supplied ComboBoxModel. - */ -public class NonCachingComboBoxModel implements CachingComboBoxModel { - private ComboBoxModel wrappedComboBoxModel; - - public NonCachingComboBoxModel(ComboBoxModel wrappedComboBoxModel) { - this.wrappedComboBoxModel = wrappedComboBoxModel; - } - - - // ********** CachingComboBoxModel implementation ********** - - public void cacheList() { - //do nothing - } - - public void uncacheList() { - //do nothing - } - - public boolean isCached() { - return false; - } - - - // ********** ComboBoxModel implementation ********** - - public void setSelectedItem(Object anItem) { - this.wrappedComboBoxModel.setSelectedItem(anItem); - } - - public Object getSelectedItem() { - return this.wrappedComboBoxModel.getSelectedItem(); - } - - - // ********** ListModel implementation ********** - - public int getSize() { - return this.wrappedComboBoxModel.getSize(); - } - - public Object getElementAt(int index) { - return this.wrappedComboBoxModel.getElementAt(index); - } - - public void addListDataListener(ListDataListener l) { - this.wrappedComboBoxModel.addListDataListener(l); - } - - public void removeListDataListener(ListDataListener l) { - this.wrappedComboBoxModel.removeListDataListener(l); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleDisplayable.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleDisplayable.java deleted file mode 100644 index d10b6b44db..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleDisplayable.java +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import javax.swing.Icon; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; - -/** - * This implementation of Displayable converts any Object - * to a Displayable. Subclass it to override #displayString() and - * #icon() if necessary. Change notification will be fired if the - * object is changed. - * - * This can be used for Strings - the display string - * will simply be the String itself. - */ -public class SimpleDisplayable - extends AbstractModel - implements Displayable -{ - /** The object to be converted to a Displayable. */ - protected Object object; - - - /** - * Construct a displayable for the specified object. - */ - public SimpleDisplayable(Object object) { - super(); - this.object = object; - } - - public SimpleDisplayable(boolean b) { - this(Boolean.valueOf(b)); - } - - public SimpleDisplayable(char c) { - this(Character.valueOf(c)); - } - - public SimpleDisplayable(byte b) { - this(Byte.valueOf(b)); - } - - public SimpleDisplayable(short s) { - this(Short.valueOf(s)); - } - - public SimpleDisplayable(int i) { - this(Integer.valueOf(i)); - } - - public SimpleDisplayable(long l) { - this(Long.valueOf(l)); - } - - public SimpleDisplayable(float f) { - this(Float.valueOf(f)); - } - - public SimpleDisplayable(double d) { - this(Double.valueOf(d)); - } - - - // ********** Displayable implementation ********** - - public String displayString() { - return this.object.toString(); - } - - public Icon icon() { - return null; - } - - - // ********** accessors ********** - - public Object getObject() { - return this.object; - } - - public void setObject(Object object) { - String oldDisplayString = this.displayString(); - Icon oldIcon = this.icon(); - this.object = object; - this.firePropertyChanged(DISPLAY_STRING_PROPERTY, oldDisplayString, this.displayString()); - this.firePropertyChanged(ICON_PROPERTY, oldIcon, this.icon()); - } - - public boolean getBoolean() { - return ((Boolean) this.object).booleanValue(); - } - - public void setBoolean(boolean b) { - this.setObject(Boolean.valueOf(b)); - } - - public char getChar() { - return ((Character) this.object).charValue(); - } - - public void setChar(char c) { - this.setObject(Character.valueOf(c)); - } - - public byte getByte() { - return ((Byte) this.object).byteValue(); - } - - public void setByte(byte b) { - this.setObject(Byte.valueOf(b)); - } - - public short getShort() { - return ((Short) this.object).shortValue(); - } - - public void setShort(short s) { - this.setObject(Short.valueOf(s)); - } - - public int getInt() { - return ((Integer) this.object).intValue(); - } - - public void setInt(int i) { - this.setObject(Integer.valueOf(i)); - } - - public long getLong() { - return ((Long) this.object).longValue(); - } - - public void setLong(long l) { - this.setObject(Long.valueOf(l)); - } - - public float getFloat() { - return ((Float) this.object).floatValue(); - } - - public void setFloat(float f) { - this.setObject(Float.valueOf(f)); - } - - public double getDouble() { - return ((Double) this.object).doubleValue(); - } - - public void setDouble(double d) { - this.setObject(Double.valueOf(d)); - } - - - // ********** override methods ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(this.object); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListBrowser.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListBrowser.java deleted file mode 100644 index a600532a12..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListBrowser.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import javax.swing.Icon; -import javax.swing.JComboBox; -import javax.swing.JOptionPane; -import javax.swing.ListModel; - -/** - * This implementation of ListChooser.Browser uses a - * JOptionPane to prompt the user for the selection. Subclasses - * can change the dialog's title, message, and/or icon. - */ -public class SimpleListBrowser - implements ListChooser.ListBrowser -{ - /** Default constructor */ - protected SimpleListBrowser() { - super(); - } - - /** - * Prompt the user using a JOptionPane. - */ - public void browse(ListChooser chooser) { - Object selection = - JOptionPane.showInputDialog( - chooser, - this.message(chooser), - this.title(chooser), - this.messageType(chooser), - this.icon(chooser), - this.selectionValues(chooser), - this.initialSelectionValue(chooser) - ); - - if (selection != null) { - chooser.getModel().setSelectedItem(selection); - } - } - - protected Object message(@SuppressWarnings("unused") JComboBox comboBox) { - return null; - } - - protected String title(@SuppressWarnings("unused") JComboBox comboBox) { - return null; - } - - protected int messageType(@SuppressWarnings("unused") JComboBox comboBox) { - return JOptionPane.QUESTION_MESSAGE; - } - - protected Icon icon(@SuppressWarnings("unused") JComboBox comboBox) { - return null; - } - - protected Object[] selectionValues(JComboBox comboBox) { - return this.convertToArray(comboBox.getModel()); - } - - protected Object initialSelectionValue(JComboBox comboBox) { - return comboBox.getModel().getSelectedItem(); - } - - /** - * Convert the list of objects in the specified list model - * into an array. - */ - protected Object[] convertToArray(ListModel model) { - int size = model.getSize(); - Object[] result = new Object[size]; - for (int i = 0; i < size; i++) { - result[i] = model.getElementAt(i); - } - return result; - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListCellRenderer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListCellRenderer.java deleted file mode 100644 index 6bbd290d0f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SimpleListCellRenderer.java +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import java.awt.Component; -import javax.swing.DefaultListCellRenderer; -import javax.swing.Icon; -import javax.swing.JList; - -/** - * This renderer should behave the same as the DefaultListCellRenderer; - * but it slightly refactors the calculation of the icon and text of the list - * cell so that subclasses can easily override the methods that build - * the icon and text. - * - * In most cases, you need only override: - * #buildIcon(Object value) - * #buildText(Object value) - */ -public class SimpleListCellRenderer - extends DefaultListCellRenderer -{ - - /** - * Construct a simple renderer. - */ - public SimpleListCellRenderer() { - super(); - } - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - // substitute null for the cell value so nothing is drawn initially... - super.getListCellRendererComponent(list, null, index, isSelected, cellHasFocus); - this.setOpaque(true); - - // ...then set the icon and text manually - this.setIcon(this.buildIcon(list, value, index, isSelected, cellHasFocus)); - this.setText(this.buildText(list, value, index, isSelected, cellHasFocus)); - - this.setToolTipText(this.buildToolTipText(list, value, index, isSelected, cellHasFocus)); - - // the context will be initialized only if a reader is running - if (this.accessibleContext != null) { - this.accessibleContext.setAccessibleName(this.buildAccessibleName(list, value, index, isSelected, cellHasFocus)); - } - - return this; - } - - /** - * Return the icon representation of the specified cell - * value and other settings. (Even more settings are - * accessible via inherited getters: hasFocus, isEnabled, etc.) - */ - protected Icon buildIcon(@SuppressWarnings("unused") JList list, Object value, @SuppressWarnings("unused") int index, @SuppressWarnings("unused") boolean isSelected, @SuppressWarnings("unused") boolean cellHasFocus) { - return this.buildIcon(value); - } - - /** - * Return the icon representation of the specified cell - * value. The default is to display no icon at all unless the - * value itself is an icon. - */ - protected Icon buildIcon(Object value) { - // replicate the default behavior - return (value instanceof Icon) ? (Icon) value : null; - } - - /** - * Return the textual representation of the specified cell - * value and other settings. (Even more settings are - * accessible via inherited getters: hasFocus, isEnabled, etc.) - */ - protected String buildText(@SuppressWarnings("unused") JList list, Object value, @SuppressWarnings("unused") int index, @SuppressWarnings("unused") boolean isSelected, @SuppressWarnings("unused") boolean cellHasFocus) { - return this.buildText(value); - } - - /** - * Return the textual representation of the specified cell - * value. The default is to display the object's default string - * representation (as returned by #toString()); unless the - * value itself is an icon, in which case no text is displayed. - */ - protected String buildText(Object value) { - return (value instanceof Icon) ? "" : ((value == null) ? "" : value.toString()); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Return the text displayed when the cursor lingers over the specified cell. - * (Even more settings are accessible via inherited getters: hasFocus, isEnabled, etc.) - */ - protected String buildToolTipText(@SuppressWarnings("unused") JList list, Object value, @SuppressWarnings("unused") int index, @SuppressWarnings("unused") boolean isSelected, @SuppressWarnings("unused") boolean cellHasFocus) { - return this.buildToolTipText(value); - } - - /** - * Return the text displayed when the cursor lingers over the specified cell. - */ - protected String buildToolTipText(@SuppressWarnings("unused") Object value) { - return null; - } - - /** - * Return the accessible name to be given to the component used to render - * the given value and other settings. (Even more settings are accessible via - * inherited getters: hasFocus, isEnabled, etc.) - */ - protected String buildAccessibleName(@SuppressWarnings("unused") JList list, Object value, @SuppressWarnings("unused") int index, @SuppressWarnings("unused") boolean isSelected, @SuppressWarnings("unused") boolean cellHasFocus) { - return this.buildAccessibleName(value); - } - - /** - * Return the accessible name to be given to the component used to render - * the given value. - */ - protected String buildAccessibleName(@SuppressWarnings("unused") Object value) { - return null; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SpinnerTableCellRenderer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SpinnerTableCellRenderer.java deleted file mode 100644 index f97ada2066..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/SpinnerTableCellRenderer.java +++ /dev/null @@ -1,186 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import java.awt.Color; -import java.awt.Component; -import javax.swing.BorderFactory; -import javax.swing.JComponent; -import javax.swing.JSpinner; -import javax.swing.JTable; -import javax.swing.SpinnerModel; -import javax.swing.UIManager; -import javax.swing.border.Border; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -/** - * Make the cell look like a spinner. - */ -public class SpinnerTableCellRenderer implements TableCellEditorAdapter.Renderer { - - /** the component used to paint the cell */ - protected JSpinner spinner; - - /** the listener to be notified on an immediate edit */ - protected TableCellEditorAdapter.ImmediateEditListener immediateEditListener; - - - // ********** constructors/initialization ********** - - /** - * Construct a cell renderer that uses the default - * spinner model, which is a "number" model. - */ - public SpinnerTableCellRenderer() { - super(); - this.initialize(); - } - - /** - * Construct a cell renderer that uses the specified - * spinner model, which will determine how the values are displayed. - */ - public SpinnerTableCellRenderer(SpinnerModel model) { - this(); - this.setModel(model); - } - - protected void initialize() { - this.spinner = this.buildSpinner(); - } - - protected JSpinner buildSpinner() { - JSpinner s = new JSpinner(); - s.addChangeListener(this.buildChangeListener()); - return s; - } - - private ChangeListener buildChangeListener() { - return new ChangeListener() { - public void stateChanged(ChangeEvent e) { - if (SpinnerTableCellRenderer.this.immediateEditListener != null) { - SpinnerTableCellRenderer.this.immediateEditListener.immediateEdit(); - } - } - }; - } - - - // ********** TableCellRenderer implementation ********** - - public Component getTableCellRendererComponent(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) { - this.spinner.setComponentOrientation(table.getComponentOrientation()); - this.spinner.setFont(table.getFont()); - this.spinner.setEnabled(table.isEnabled()); - - JComponent editor = this.editor(); - editor.setForeground(this.foregroundColor(table, value, selected, hasFocus, row, column)); - editor.setBackground(this.backgroundColor(table, value, selected, hasFocus, row, column)); - this.spinner.setBorder(this.border(table, value, selected, hasFocus, row, column)); - - this.setValue(value); - return this.spinner; - } - - /** - * Return the cell's foreground color. - */ - protected Color foregroundColor(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, int row, int column) { - if (selected) { - if (hasFocus && table.isCellEditable(row, column)) { - return UIManager.getColor("Table.focusCellForeground"); //$NON-NLS-1$ - } - return table.getSelectionForeground(); - } - return table.getForeground(); - } - - /** - * Return the cell's background color. - */ - protected Color backgroundColor(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, int row, int column) { - if (selected) { - if (hasFocus && table.isCellEditable(row, column)) { - return UIManager.getColor("Table.focusCellBackground"); //$NON-NLS-1$ - } - return table.getSelectionBackground(); - } - return table.getBackground(); - } - - /** - * Return the cell's border. - */ - protected Border border(JTable table, @SuppressWarnings("unused") Object value, boolean selected, boolean hasFocus, @SuppressWarnings("unused") int row, @SuppressWarnings("unused") int column) { - if (hasFocus) { - return UIManager.getBorder("Table.focusCellHighlightBorder"); //$NON-NLS-1$ - } - if (selected) { - return BorderFactory.createLineBorder(table.getSelectionBackground(), 1); - } - return BorderFactory.createLineBorder(table.getBackground(), 1); - } - - /** - * Return the editor component whose colors should be set - * by the renderer. - */ - protected JComponent editor() { - JComponent editor = this.spinner.getEditor(); - if (editor instanceof JSpinner.DefaultEditor) { - // typically, the editor will be the default or one of its subclasses... - editor = ((JSpinner.DefaultEditor) editor).getTextField(); - } - return editor; - } - - /** - * Set the spinner's value - */ - protected void setValue(Object value) { - // CR#3999318 - This null check needs to be removed once JDK bug is fixed - if (value == null) { - value = Integer.valueOf(0); - } - this.spinner.setValue(value); - } - - - // ********** TableCellEditorAdapter.Renderer implementation ********** - - public Object getValue() { - return this.spinner.getValue(); - } - - public void setImmediateEditListener(TableCellEditorAdapter.ImmediateEditListener listener) { - this.immediateEditListener = listener; - } - - - // ********** public API ********** - - /** - * Set the spinner's model. - */ - public void setModel(SpinnerModel model) { - this.spinner.setModel(model); - } - - /** - * Return the renderer's preferred height. This allows you - * to set the row height to something the spinner will look good in.... - */ - public int preferredHeight() { - // add in space for the border top and bottom - return (int) this.spinner.getPreferredSize().getHeight() + 2; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/TableCellEditorAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/TableCellEditorAdapter.java deleted file mode 100644 index bfe82bbf6b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/swing/TableCellEditorAdapter.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.swing; - -import java.awt.Component; -import javax.swing.AbstractCellEditor; -import javax.swing.JTable; -import javax.swing.table.TableCellEditor; -import javax.swing.table.TableCellRenderer; - -/** - * A table cell editor that wraps a table cell renderer. - */ -public class TableCellEditorAdapter extends AbstractCellEditor implements TableCellEditor { - - /** delegate to a renderer */ - private Renderer renderer; - - - // ********** constructors/initialization ********** - - private TableCellEditorAdapter() { - super(); - } - - /** - * Construct a cell editor that behaves like the specified renderer. - */ - public TableCellEditorAdapter(Renderer renderer) { - this(); - this.initialize(renderer); - } - - protected void initialize(Renderer r) { - this.renderer = r; - r.setImmediateEditListener(this.buildImmediateEditListener()); - } - - private ImmediateEditListener buildImmediateEditListener() { - return new ImmediateEditListener() { - public void immediateEdit() { - TableCellEditorAdapter.this.stopCellEditing(); - } - }; - } - - - // ********** CellEditor implementation ********** - - public Object getCellEditorValue() { - return this.renderer.getValue(); - } - - - // ********** TableCellEditor implementation ********** - - public Component getTableCellEditorComponent(JTable table, Object value, boolean selected, int row, int column) { - return this.renderer.getTableCellRendererComponent(table, value, selected, true, row, column); - } - - - // ********** Member classes ********************************************** - - /** - * This interface defines the methods that must be implemented by a renderer - * that can be wrapped by a TableCellEditorAdapter. - */ - public interface Renderer extends TableCellRenderer { - - /** - * Return the current value of the renderer. - */ - Object getValue(); - - /** - * Set the immediate edit listener - */ - void setImmediateEditListener(ImmediateEditListener listener); - } - - - public interface ImmediateEditListener { - - /** - * Called when the renderer does an "immediate edit" - */ - void immediateEdit(); - } -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/AsynchronousSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/AsynchronousSynchronizer.java deleted file mode 100644 index da4a234623..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/AsynchronousSynchronizer.java +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.synchronizers; - -import java.util.concurrent.ThreadFactory; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.ConsumerThreadCoordinator; -import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean; -import org.eclipse.jpt.common.utility.synchronizers.Synchronizer; - -/** - * This synchronizer will perform synchronizations in a separate thread, - * allowing calls to {@link Synchronizer#synchronize()} to return immediately. - *

- * NB: The client-supplied command should handle any exceptions - * appropriately (e.g. log the exception and return gracefully so the thread - * can continue the synchronization process). - */ -public class AsynchronousSynchronizer - implements Synchronizer -{ - /** - * This flag is shared with the synchronization/consumer thread. Setting it to true - * will trigger the synchronization to begin or, if the synchronization is - * currently executing, to execute again, once the current execution is - * complete. - */ - final SynchronizedBoolean synchronizeFlag = new SynchronizedBoolean(false); - - /** - * Most of the thread-related behavior is delegated to this coordinator. - */ - private final ConsumerThreadCoordinator consumerThreadCoordinator; - - - // ********** construction ********** - - /** - * Construct an asynchronous synchronizer that uses the specified command to - * perform the synchronization. - * Use simple JDK thread(s) for the synchronization thread(s). - * Allow the synchronization thread(s) to be assigned - * JDK-generated names. - */ - public AsynchronousSynchronizer(Command command) { - this(command, null, null); - } - - /** - * Construct an asynchronous synchronizer that uses the specified command to - * perform the synchronization. - * Use the specified thread factory to construct the synchronization thread(s). - * Allow the synchronization thread(s) to be assigned - * JDK-generated names. - */ - public AsynchronousSynchronizer(Command command, ThreadFactory threadFactory) { - this(command, threadFactory, null); - } - - /** - * Construct an asynchronous synchronizer that uses the specified command to - * perform the synchronization. Assign the synchronization thread(s) the specified - * name. - * Use simple JDK thread(s) for the synchronization thread(s). - */ - public AsynchronousSynchronizer(Command command, String threadName) { - this(command, null, threadName); - } - - /** - * Construct an asynchronous synchronizer that uses the specified command to - * perform the synchronization. - * Use the specified thread factory to construct the synchronization thread(s). - * Assign the synchronization thread(s) the specified - * name. - */ - public AsynchronousSynchronizer(Command command, ThreadFactory threadFactory, String threadName) { - super(); - if (command == null) { - throw new NullPointerException(); - } - this.consumerThreadCoordinator = new ConsumerThreadCoordinator(this.buildConsumer(command), threadFactory, threadName); - } - - ConsumerThreadCoordinator.Consumer buildConsumer(Command command) { - return new Consumer(command); - } - - - // ********** Synchronizer implementation ********** - - /** - * Build and start the synchronization thread, but postpone the first - * synchronization until requested, i.e. via a call to - * {@link #synchronize()}. - *

- * Note: We don't clear the "synchronize" flag here; so if the flag has - * been set before getting here, the first synchronization will - * start promptly (albeit, asynchronously). - * The "synchronize" flag will be set if:

    - *
  • {@link #synchronize()} was called after the synchronizer was - * constructed but before {@link #start()} was called; or - *
  • {@link #synchronize()} was called after {@link #stop()} was called - * but before {@link #start()} was called (to restart the synchronizer); or - *
  • {@link #stop()} was called when there was an outstanding request - * for a synchronization (i.e. the "synchronization" flag was set at - * the time {@link #stop()} was called) - *
- */ - public void start() { - this.consumerThreadCoordinator.start(); - } - - /** - * Set the "synchronize" flag so the synchronization thread will either
    - *
  • if the thread is quiesced, start a synchronization immediately, or - *
  • if the thread is currently executing a synchronization, execute another - * synchronization once the current synchronization is complete - *
- */ - public void synchronize() { - this.synchronizeFlag.setTrue(); - } - - /** - * Interrupt the synchronization thread so that it stops executing at the - * end of the current synchronization. Suspend the current thread until - * the synchronization thread is finished executing. If any uncaught - * exceptions were thrown while the synchronization thread was executing, - * wrap them in a composite exception and throw the composite exception. - */ - public void stop() { - this.consumerThreadCoordinator.stop(); - } - - - // ********** consumer ********** - - /** - * This implementation of {@link ConsumerThreadCoordinator.Consumer} - * will execute the client-supplied "synchronize" command. - * It will wait until the shared "synchronize" flag is set to execute the - * command. Once the comand is executed, the thread will quiesce until - * the flag is set again. If the flag was set during the execution of the - * command (either recursively by the command itself or by another thread), - * the command will be re-executed immediately. Stop the thread by calling - * {@link Thread#interrupt()}. - */ - class Consumer - implements ConsumerThreadCoordinator.Consumer - { - /** - * The client-supplied command that executes on the - * synchronization/consumer thread. - */ - private final Command command; - - Consumer(Command command) { - super(); - this.command = command; - } - - /** - * Wait until the "synchronize" flag is set, - * then clear it and allow the "synchronize" command to execute. - */ - public void waitForProducer() throws InterruptedException { - AsynchronousSynchronizer.this.synchronizeFlag.waitToSetFalse(); - } - - /** - * Execute the client-supplied command. - */ - public void execute() { - this.command.execute(); - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackAsynchronousSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackAsynchronousSynchronizer.java deleted file mode 100644 index 06af819213..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackAsynchronousSynchronizer.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.synchronizers; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.ConsumerThreadCoordinator; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.synchronizers.CallbackSynchronizer; - -/** - * Extend the asynchronous synchronizer to notify listeners - * when a synchronization "cycle" is complete; i.e. the synchronization has, - * for the moment, handled every outstanding "synchronize" request and quiesced. - * This notification is not guaranteed to occur with every - * synchronization "cycle"; since other, unrelated, synchronizations can be - * triggered concurrently. - *

- * NB: Listeners should handle any exceptions - * appropriately (e.g. log the exception and return gracefully so the thread - * can continue the synchronization process). - */ -public class CallbackAsynchronousSynchronizer - extends AsynchronousSynchronizer - implements CallbackSynchronizer -{ - private final ListenerList listenerList = new ListenerList(Listener.class); - - - // ********** construction ********** - - /** - * Construct a callback asynchronous synchronizer that uses the specified - * command to perform the synchronization. Allow the synchronization thread(s) - * to be assigned JDK-generated names. - */ - public CallbackAsynchronousSynchronizer(Command command) { - super(command); - } - - /** - * Construct a callback asynchronous synchronizer that uses the specified - * command to perform the synchronization. Assign the synchronization thread(s) - * the specified name. - */ - public CallbackAsynchronousSynchronizer(Command command, String threadName) { - super(command, threadName); - } - - /** - * Build a consumer that will let us know when the synchronization has - * quiesced. - */ - @Override - ConsumerThreadCoordinator.Consumer buildConsumer(Command command) { - return new CallbackConsumer(command); - } - - - // ********** CallbackSynchronizer implementation ********** - - public void addListener(Listener listener) { - this.listenerList.add(listener); - } - - public void removeListener(Listener listener) { - this.listenerList.remove(listener); - } - - /** - * Notify our listeners. - */ - void synchronizationQuiesced() { - for (Listener listener : this.listenerList.getListeners()) { - listener.synchronizationQuiesced(this); - } - } - - - // ********** synchronization thread runnable ********** - - /** - * Extend {@link AsynchronousSynchronizer.Consumer} - * to notify the synchronizer when the synchronization has quiesced - * (i.e. the command has finished executing and there are no further - * requests for synchronization). - * Because synchronization is asynchronous, no other thread will be able to - * initiate another synchronization until the synchronizer's listeners have been - * notified. Note also, the synchronizer's listeners can, themselves, - * trigger another synchronization (by directly or indirectly calling - * {@link org.eclipse.jpt.common.utility.synchronizers.Synchronizer#synchronize()}); - * but this synchronization will not occur until after all the - * listeners have been notified. - */ - class CallbackConsumer - extends Consumer - { - CallbackConsumer(Command command) { - super(command); - } - - @Override - public void execute() { - super.execute(); - // hmmm - we will notify listeners even when we our thread is "interrupted"; - // that seems ok... ~bjv - if (CallbackAsynchronousSynchronizer.this.synchronizeFlag.isFalse()) { - CallbackAsynchronousSynchronizer.this.synchronizationQuiesced(); - } - } - - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackSynchronousSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackSynchronousSynchronizer.java deleted file mode 100644 index d811067b8b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/CallbackSynchronousSynchronizer.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.synchronizers; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.synchronizers.CallbackSynchronizer; - -/** - * Extend the synchronous synchronizer to notify listeners - * when a synchronization "cycle" is complete; i.e. the synchronization has, - * for the moment, handled every "synchronize" request and quiesced. - * This notification is not guaranteed to occur with every - * synchronization "cycle"; - * since other, unrelated, synchronizations can be triggered concurrently. - *

- * NB: If another synchronization is initiated while we are - * notifying the synchronizer's listeners (i.e. the 'again' flag is set), it will not - * start until all the listeners are notified. - * Note also, the synchronizer's listeners can, themselves, - * trigger another synchronization (by directly or indirectly calling - * {@link org.eclipse.jpt.common.utility.synchronizers.Synchronizer#synchronize()}); - * but this synchronization will not occur until after all the - * listeners have been notified. - */ -public class CallbackSynchronousSynchronizer - extends SynchronousSynchronizer - implements CallbackSynchronizer -{ - private final ListenerList listenerList = new ListenerList(Listener.class); - - - // ********** construction ********** - - /** - * Construct a callback synchronous synchronizer that uses the specified - * command to perform the synchronization. - */ - public CallbackSynchronousSynchronizer(Command command) { - super(command); - } - - - // ********** CallbackSynchronizer implementation ********** - - public void addListener(Listener listener) { - this.listenerList.add(listener); - } - - public void removeListener(Listener listener) { - this.listenerList.remove(listener); - } - - /** - * Notify our listeners. - */ - private void synchronizationQuiesced() { - for (Listener listener : this.listenerList.getListeners()) { - listener.synchronizationQuiesced(this); - } - } - - - // ********** override ********** - - @Override - void execute_() { - super.execute_(); - if (this.state.getValue() != State.REPEAT) { - // hmmm - we will notify listeners even when we are "stopped"; - // that seems ok... ~bjv - this.synchronizationQuiesced(); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/SynchronousSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/SynchronousSynchronizer.java deleted file mode 100644 index 7a232f6c0b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/synchronizers/SynchronousSynchronizer.java +++ /dev/null @@ -1,263 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.internal.synchronizers; - -import java.util.Vector; -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.CompositeException; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.SynchronizedObject; -import org.eclipse.jpt.common.utility.synchronizers.Synchronizer; - -/** - * This synchronizer will synchronize immediately and not return until the - * synchronization and any nested (recursive) synchronizations are complete. - * In some situations this implementation should be used sparingly, and for as - * short a time as possible, as it increases the probability of deadlocks. A - * deadlock can occur when {@link Synchronizer#synchronize()} is called from multiple - * threads and multiple resources are locked by the synchronization in varying - * orders. - *

- * As defined in the {@link Synchronizer} interface, {@link Synchronizer#start()} - * and {@link Synchronizer#stop()} - * should be called in the same thread, but it is not required. - * {@link Synchronizer#synchronize()} should - * always be called in the same thread (i.e. only recursively, beyond the - * initial call); although, this too is not required. - * This thread need not be the same thread that executes - * {@link Synchronizer#start()} and {@link Synchronizer#stop()}. - */ -public class SynchronousSynchronizer - implements Synchronizer -{ - /** - * The client-supplied command that performs the synchronization. It may - * trigger further calls to {@link #synchronize()} (i.e. the - * synchronization may recurse). - */ - private final Command command; - - /** - * The synchronizer's current state. - */ - final SynchronizedObject state; - - /** - * The synchronizer's initial state is {@link #STOPPED}. - */ - enum State { - STOPPED, - READY, - EXECUTING, - REPEAT, - STOPPING - } - - /** - * A list of the uncaught exceptions thrown by the command. - */ - final Vector exceptions = new Vector(); - - - // ********** construction ********** - - /** - * Construct a synchronous synchronizer that uses the specified command to - * perform the synchronization. - */ - public SynchronousSynchronizer(Command command) { - super(); - if (command == null) { - throw new NullPointerException(); - } - this.command = command; - // use the synchronizer as the mutex so it is freed up by the wait in #stop() - this.state = new SynchronizedObject(State.STOPPED, this); - } - - - // ********** Synchronizer implementation ********** - - /** - * Set the synchronizer's {@link #state} to {@link State#READY READY} - * and execute the first synchronization. Throw an exception if the - * synchronizer is not {@link State#STOPPED STOPPED}. - */ - public synchronized void start() { - switch (this.state.getValue()) { - case STOPPED: - this.state.setValue(State.READY); - this.synchronize(); - break; - case READY: - case EXECUTING: - case REPEAT: - case STOPPING: - default: - throw this.buildIllegalStateException(); - } - } - - /** - * It's possible to come back here if the synchronization command recurses - * and triggers another synchronization. - */ - public void synchronize() { - if (this.beginSynchronization()) { - this.synchronize_(); - } - } - - /** - * A client has requested a synchronization. - * Return whether we can begin a new synchronization. - * If a synchronization is already under way, return false; - * but set the {@link #state} to {@link State#REPEAT REPEAT} - * so another synchronization will occur once the current - * synchronization is complete. - */ - private synchronized boolean beginSynchronization() { - switch (this.state.getValue()) { - case STOPPED: - // synchronization is not allowed - return false; - case READY: - // begin a new synchronization - this.state.setValue(State.EXECUTING); - return true; - case EXECUTING: - // set flag so a new synchronization will occur once the current one is finished - this.state.setValue(State.REPEAT); - return false; - case REPEAT: - // the "repeat" flag is already set - return false; - case STOPPING: - // no further synchronizations are allowed - return false; - default: - throw this.buildIllegalStateException(); - } - } - - /** - * This method should be called only once per set of "recursing" - * synchronizations. Any recursive call to {@link #synchronize()} will - * simply set the {@link #state} to {@link State#REPEAT REPEAT}, - * causing the command to execute again. - */ - private void synchronize_() { - do { - this.execute(); - } while (this.repeatSynchronization()); - } - - /** - * Execute the client-supplied command. Do not allow any unhandled - * exceptions to kill the thread. Store them up for later pain. - */ - private void execute() { - try { - this.execute_(); - } catch (Throwable ex) { - this.exceptions.add(ex); - } - } - - /** - * By default, just execute the command. - */ - void execute_() { - this.command.execute(); - } - - /** - * The current synchronization has finished. - * Return whether we should begin another synchronization. - */ - private synchronized boolean repeatSynchronization() { - switch (this.state.getValue()) { - case STOPPED: - case READY: - throw this.buildIllegalStateException(); - case EXECUTING: - // synchronization has finished and there are no outstanding requests for another; return to "ready" - this.state.setValue(State.READY); - return false; - case REPEAT: - // the "repeat" flag was set; clear it and start another synchronization - this.state.setValue(State.EXECUTING); - return true; - case STOPPING: - // a client has initiated a "stop"; mark the "stop" complete and perform no more synchronizations - this.state.setValue(State.STOPPED); - return false; - default: - throw this.buildIllegalStateException(); - } - } - - /** - * Set the flags so that no further synchronizations occur. If any uncaught - * exceptions were thrown while the synchronization was executing, - * wrap them in a composite exception and throw the composite exception. - */ - public synchronized void stop() { - switch (this.state.getValue()) { - case STOPPED: - throw this.buildIllegalStateException(); - case READY: - // simply return to "stopped" state - this.state.setValue(State.STOPPED); - break; - case EXECUTING: - case REPEAT: - // set the "stopping" flag and wait until the synchronization has finished - this.state.setValue(State.STOPPING); - this.waitUntilStopped(); - break; - case STOPPING: - throw this.buildIllegalStateException(); - default: - throw this.buildIllegalStateException(); - } - - if (this.exceptions.size() > 0) { - Throwable[] temp = this.exceptions.toArray(new Throwable[this.exceptions.size()]); - this.exceptions.clear(); - throw new CompositeException(temp); - } - } - - /** - * This wait will free up the synchronizer's synchronized methods - * (since the synchronizer is the state's mutex). - */ - private void waitUntilStopped() { - try { - this.state.waitUntilValueIs(State.STOPPED); - } catch (InterruptedException ex) { - // the thread that called #stop() was interrupted while waiting - // for the synchronization to finish - ignore; - // 'state' is still set to 'STOPPING', so the #synchronize_() loop - // will still stop - we just won't wait around for it... - } - } - - private IllegalStateException buildIllegalStateException() { - return new IllegalStateException("state: " + this.state); //$NON-NLS-1$ - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.state); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/Model.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/Model.java deleted file mode 100644 index 050cb25eb1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/Model.java +++ /dev/null @@ -1,143 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model; - -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; - -/** - * Interface to be implemented by models that notify listeners of - * changes to bound properties, collections, lists, and/or trees. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @see ChangeListener - * @see StateChangeListener - * @see PropertyChangeListener - * @see CollectionChangeListener - * @see ListChangeListener - * @see TreeChangeListener - * @see org.eclipse.jpt.common.utility.internal.model.AbstractModel - */ -// TODO use objects (IDs?) instead of strings to identify aspects? -public interface Model { - - // ********** change ********** - - /** - * Add a listener that listens to all change events. - * Throw an exception if the same listener is added more than once. - * The listener cannot be null. - */ - void addChangeListener(ChangeListener listener); - - /** - * Remove the specified change listener. - * Throw an exception if the listener is null or if the listener was never added. - */ - void removeChangeListener(ChangeListener listener); - - - // ********** state change ********** - - /** - * Add a listener that listens to all state change events. - * Throw an exception if the same listener is added more than once. - * The listener cannot be null. - */ - void addStateChangeListener(StateChangeListener listener); - - /** - * Remove the specified state change listener. - * Throw an exception if the listener is null or if the listener was never added. - */ - void removeStateChangeListener(StateChangeListener listener); - - - // ********** property change ********** - - /** - * Add a listener that listens to all property change events with - * the specified property name. - * Throw an exception if the same listener is added more than once. - * The listener cannot be null. - */ - void addPropertyChangeListener(String propertyName, PropertyChangeListener listener); - - /** - * Remove a listener that listens to all property change events, - * with the specified property name. - * Throw an exception if the listener is null or if the listener was never added. - */ - void removePropertyChangeListener(String propertyName, PropertyChangeListener listener); - - - // ********** collection change ********** - - /** - * Add a listener that listens to all collection change events with - * the specified collection name. - * Throw an exception if the same listener is added more than once. - * The listener cannot be null. - */ - void addCollectionChangeListener(String collectionName, CollectionChangeListener listener); - - /** - * Remove a listener that listens to all collection change events, - * with the specified collection name. - * Throw an exception if the listener is null or if the listener was never added. - */ - void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener); - - - // ********** list change ********** - - /** - * Add a listener that listens to all list change events with - * the specified list name. - * Throw an exception if the same listener is added more than once. - * The listener cannot be null. - */ - void addListChangeListener(String listName, ListChangeListener listener); - - /** - * Remove a listener that listens to all list change events, - * with the specified list name. - * Throw an exception if the listener is null or if the listener was never added. - */ - void removeListChangeListener(String listName, ListChangeListener listener); - - - // ********** tree change ********** - - /** - * Add a listener that listens to all tree change events with - * the specified tree name. - * Throw an exception if the same listener is added more than once. - * The listener cannot be null. - */ - void addTreeChangeListener(String treeName, TreeChangeListener listener); - - /** - * Remove a listener that listens to all tree change events, - * with the specified tree name. - * Throw an exception if the listener is null or if the listener was never added. - */ - void removeTreeChangeListener(String treeName, TreeChangeListener listener); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ChangeEvent.java deleted file mode 100644 index 9d702bac6c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ChangeEvent.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.EventObject; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * Abstract class for all the change events that can be fired by models. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public abstract class ChangeEvent extends EventObject { - - private static final long serialVersionUID = 1L; - - - /** - * Construct a new change event. - * - * @param source The object on which the event initially occurred. - */ - protected ChangeEvent(Model source) { - super(source); - } - - /** - * Covariant override. - */ - @Override - public Model getSource() { - return (Model) super.getSource(); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - StringTools.buildSimpleToStringOn(this, sb); - sb.append('('); - int len = sb.length(); - this.toString(sb); - if (sb.length() == len) { - sb.deleteCharAt(len - 1); - } else { - sb.append(')'); - } - return sb.toString(); - } - - protected void toString(@SuppressWarnings("unused") StringBuilder sb) { - // subclasses should override this to do something a bit more helpful - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionAddEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionAddEvent.java deleted file mode 100644 index c2a2e7bc9c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionAddEvent.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.Collection; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "collection add" event gets delivered whenever a model adds items to a - * "bound" or "constrained" collection. A CollectionAddEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -/* - * Design options: - * - create a collection to wrap a single added or removed item - * (this is the option we implemented below and in collaborating code) - * since there is no way to optimize downstream code for - * single items, we take another performance hit by building - * a collection each time (@see Collections#singleton(Object)) - * and forcing downstream code to use an iterator every time - * - * - fire a separate event for each item added or removed - * eliminates any potential for optimizations to downstream code - * - * - add protocol to support both single items and collections - * adds conditional logic to downstream code - */ -public final class CollectionAddEvent extends CollectionEvent { - - /** The items added to the collection. */ - private final Object[] items; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new collection add event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the collection that was changed. - * @param item The item added to the collection. - */ - public CollectionAddEvent(Model source, String collectionName, Object item) { - this(source, collectionName, new Object[] {item}); - } - - /** - * Construct a new collection add event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the collection that was changed. - * @param items The items added to the collection. - */ - public CollectionAddEvent(Model source, String collectionName, Collection items) { - this(source, collectionName, items.toArray()); // NPE if 'items' is null - } - - private CollectionAddEvent(Model source, String collectionName, Object[] items) { - super(source, collectionName); - this.items = items; - } - - - // ********** standard state ********** - - /** - * Return the items added to the collection. - */ - public Iterable getItems() { - return new ArrayIterable(this.items); - } - - /** - * Return the number of items added to the collection. - */ - public int getItemsSize() { - return this.items.length; - } - - @Override - protected void toString(StringBuilder sb) { - super.toString(sb); - sb.append(": "); //$NON-NLS-1$ - StringTools.append(sb, this.items); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public CollectionAddEvent clone(Model newSource) { - return this.clone(newSource, this.collectionName); - } - - /** - * Return a copy of the event with the specified source and collection name - * replacing the current source and collection name. - */ - public CollectionAddEvent clone(Model newSource, String newCollectionName) { - return new CollectionAddEvent(newSource, newCollectionName, this.items); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionChangeEvent.java deleted file mode 100644 index 5c2c75903c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionChangeEvent.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.Collection; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "collection change" event gets delivered whenever a model changes a "bound" - * or "constrained" collection in a manner that is not easily characterized by - * the other collection events. - * A CollectionChangeEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}. - * A CollectionChangeEvent is accompanied by the collection name and - * the current state of the collection. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class CollectionChangeEvent extends CollectionEvent { - - /** - * The the collection in its current state. - * Clients will need to calculate the necessary changes to synchronize - * with the collection. - */ - private final Object[] collection; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new collection change event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the collection that was changed. - */ - public CollectionChangeEvent(Model source, String collectionName, Collection collection) { - this(source, collectionName, collection.toArray()); // NPE if 'collection' is null - } - - private CollectionChangeEvent(Model source, String collectionName, Object[] collection) { - super(source, collectionName); - this.collection = collection; - } - - - // ********** standard state ********** - - /** - * Return the current state of the collection. - */ - public Iterable getCollection() { - return new ArrayIterable(this.collection); - } - - /** - * Return the number of items in the current state of the collection. - */ - public int getCollectionSize() { - return this.collection.length; - } - - @Override - protected void toString(StringBuilder sb) { - super.toString(sb); - sb.append(": "); //$NON-NLS-1$ - StringTools.append(sb, this.collection); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public CollectionChangeEvent clone(Model newSource) { - return this.clone(newSource, this.collectionName); - } - - /** - * Return a copy of the event with the specified source and collection name - * replacing the current source and collection name. - */ - public CollectionChangeEvent clone(Model newSource, String newCollectionName) { - return new CollectionChangeEvent(newSource, newCollectionName, this.collection); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionClearEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionClearEvent.java deleted file mode 100644 index 0fb2adce58..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionClearEvent.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "collection clear" event gets delivered whenever a model clears - * a "bound" or "constrained" collection. A CollectionClearEvent is sent - * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class CollectionClearEvent extends CollectionEvent { - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new collection clear event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the collection that was changed. - */ - public CollectionClearEvent(Model source, String collectionName) { - super(source, collectionName); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public CollectionClearEvent clone(Model newSource) { - return this.clone(newSource, this.collectionName); - } - - /** - * Return a copy of the event with the specified source and collection name - * replacing the current source and collection name. - */ - public CollectionClearEvent clone(Model newSource, String newCollectionName) { - return new CollectionClearEvent(newSource, newCollectionName); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionEvent.java deleted file mode 100644 index d3e0bda965..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionEvent.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import org.eclipse.jpt.common.utility.model.Model; -// TODO add "item/original/nested event" for item changed? -/** - * A "collection" event gets delivered whenever a model changes a "bound" - * or "constrained" collection. A CollectionEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}. - * The intent is that any listener - * can keep itself synchronized with the model's collection via the collection - * events it receives and need not maintain a reference to the original - * collection. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public abstract class CollectionEvent extends ChangeEvent { - - /** Name of the collection that changed. */ - final String collectionName; - - private static final long serialVersionUID = 1L; - - - /** - * Construct a new collection event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the collection that was changed. - */ - public CollectionEvent(Model source, String collectionName) { - super(source); - if (collectionName == null) { - throw new NullPointerException(); - } - this.collectionName = collectionName; - } - - /** - * Return the programmatic name of the collection that was changed. - */ - public String getCollectionName() { - return this.collectionName; - } - - @Override - protected void toString(StringBuilder sb) { - sb.append(this.collectionName); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionRemoveEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionRemoveEvent.java deleted file mode 100644 index a12218d9b3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/CollectionRemoveEvent.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.Collection; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "collection remove" event gets delivered whenever a model removes items - * from a "bound" or "constrained" collection. A CollectionRemoveEvent is sent - * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -/* - * See design discussion in CollectionAddEvent - */ -public final class CollectionRemoveEvent extends CollectionEvent { - - /** The items removed from the collection. */ - private final Object[] items; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new collection remove event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the collection that was changed. - * @param item The item removed from the collection. - */ - public CollectionRemoveEvent(Model source, String collectionName, Object item) { - this(source, collectionName, new Object[] {item}); - } - - /** - * Construct a new collection remove event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the collection that was changed. - * @param items The items removed from the collection. - */ - public CollectionRemoveEvent(Model source, String collectionName, Collection items) { - this(source, collectionName, items.toArray()); // NPE if 'items' is null - } - - private CollectionRemoveEvent(Model source, String collectionName, Object[] items) { - super(source, collectionName); - this.items = items; - } - - - // ********** standard state ********** - - /** - * Return the items removed from the collection. - */ - public Iterable getItems() { - return new ArrayIterable(this.items); - } - - /** - * Return the number of items removed from the collection. - */ - public int getItemsSize() { - return this.items.length; - } - - @Override - protected void toString(StringBuilder sb) { - super.toString(sb); - sb.append(": "); //$NON-NLS-1$ - StringTools.append(sb, this.items); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public CollectionRemoveEvent clone(Model newSource) { - return this.clone(newSource, this.collectionName); - } - - /** - * Return a copy of the event with the specified source and collection name - * replacing the current source and collection name. - */ - public CollectionRemoveEvent clone(Model newSource, String newCollectionName) { - return new CollectionRemoveEvent(newSource, newCollectionName, this.items); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListAddEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListAddEvent.java deleted file mode 100644 index 900740add7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListAddEvent.java +++ /dev/null @@ -1,134 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "list add" event gets delivered whenever a model adds items to a - * "bound" or "constrained" list. A ListAddEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -/* - * See design discussion in CollectionAddEvent - */ -public final class ListAddEvent extends ListEvent { - - /** The index at which the items were added. */ - private final int index; - - /** The items added to the list. */ - private final Object[] items; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new list add event. - * - * @param source The object on which the event initially occurred. - * @param listName The programmatic name of the list that was changed. - * @param index The index at which the items were added. - * @param item The item added to the list. - */ - public ListAddEvent(Model source, String listName, int index, Object item) { - this(source, listName, index, new Object[] {item}); - } - - /** - * Construct a new list add event. - * - * @param source The object on which the event initially occurred. - * @param listName The programmatic name of the list that was changed. - * @param index The index at which the items were added. - * @param items The items added to the list. - */ - public ListAddEvent(Model source, String listName, int index, List items) { - this(source, listName, index, items.toArray()); // NPE if 'items' is null - } - - private ListAddEvent(Model source, String listName, int index, Object[] items) { - super(source, listName); - this.index = index; - this.items = items; - } - - - // ********** standard state ********** - - /** - * Return the index at which the items were added to the list. - */ - public int getIndex() { - return this.index; - } - - /** - * Return the items added to the list. - */ - public Iterable getItems() { - return new ArrayIterable(this.items); - } - - /** - * Return the number of items added to the list. - */ - public int getItemsSize() { - return this.items.length; - } - - @Override - protected void toString(StringBuilder sb) { - super.toString(sb); - sb.append(": "); //$NON-NLS-1$ - StringTools.append(sb, this.items); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public ListAddEvent clone(Model newSource) { - return this.clone(newSource, this.listName); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name. - */ - public ListAddEvent clone(Model newSource, String newListName) { - return this.clone(newSource, newListName, 0); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name and displacing - * the index by the specified amount. - */ - public ListAddEvent clone(Model newSource, String newListName, int offset) { - return new ListAddEvent(newSource, newListName, this.index + offset, this.items); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListChangeEvent.java deleted file mode 100644 index ebcf2919c6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListChangeEvent.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "list change" event gets delivered whenever a model changes a "bound" - * or "constrained" list in a manner that is not easily characterized by - * the other list events. - * A ListChangeEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}. - * A ListChangeEvent is accompanied by the list name and - * the current state of the list. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class ListChangeEvent extends ListEvent { - - /** - * The the list in its current state. - * Clients will need to calculate the necessary changes to synchronize - * with the list. - */ - private final Object[] list; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new list change event. - * - * @param source The object on which the event initially occurred. - * @param listName The programmatic name of the list that was changed. - */ - public ListChangeEvent(Model source, String listName, List list) { - this(source, listName, list.toArray()); // NPE if 'list' is null - } - - private ListChangeEvent(Model source, String listName, Object[] list) { - super(source, listName); - this.list = list; - } - - - // ********** standard state ********** - - /** - * Return the current state of the list. - */ - public Iterable getList() { - return new ArrayIterable(this.list); - } - - /** - * Return the number of items in the current state of the list. - */ - public int getListSize() { - return this.list.length; - } - - @Override - protected void toString(StringBuilder sb) { - super.toString(sb); - sb.append(": "); //$NON-NLS-1$ - StringTools.append(sb, this.list); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public ListChangeEvent clone(Model newSource) { - return this.clone(newSource, this.listName); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name. - */ - public ListChangeEvent clone(Model newSource, String newListName) { - return new ListChangeEvent(newSource, newListName, this.list); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListClearEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListClearEvent.java deleted file mode 100644 index 8faf558131..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListClearEvent.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "list clear" event gets delivered whenever a model clears - * a "bound" or "constrained" list. A ListClearEvent is sent - * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class ListClearEvent extends ListEvent { - - private static final long serialVersionUID = 1L; - - - // ********** constructor ********** - - /** - * Construct a new list clear event. - * - * @param source The object on which the event initially occurred. - * @param listName The programmatic name of the list that was changed. - */ - public ListClearEvent(Model source, String listName) { - super(source, listName); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public ListClearEvent clone(Model newSource) { - return this.clone(newSource, this.listName); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name. - */ - public ListClearEvent clone(Model newSource, String newListName) { - return new ListClearEvent(newSource, newListName); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListEvent.java deleted file mode 100644 index acd345845c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListEvent.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import org.eclipse.jpt.common.utility.model.Model; - -// TODO add "item/original/nested event" for item changed? -/** - * A "list" event gets delivered whenever a model changes a "bound" - * or "constrained" list. A ListEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}. - * The intent is that any listener - * can keep itself synchronized with the model's list via the list - * events it receives and need not maintain a reference to the original - * list. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public class ListEvent extends ChangeEvent { - - /** Name of the list that changed. */ - final String listName; - - private static final long serialVersionUID = 1L; - - - /** - * Construct a new list event. - * - * @param source The object on which the event initially occurred. - * @param listName The programmatic name of the list that was changed. - */ - public ListEvent(Model source, String listName) { - super(source); - if (listName == null) { - throw new NullPointerException(); - } - this.listName = listName; - } - - /** - * Return the programmatic name of the list that was changed. - */ - public String getListName() { - return this.listName; - } - - @Override - protected void toString(StringBuilder sb) { - sb.append(this.listName); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListMoveEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListMoveEvent.java deleted file mode 100644 index 4627edb5b3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListMoveEvent.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "list move" event gets delivered whenever a model moves the elements in - * a "bound" or "constrained" list. A ListMoveEvent is sent - * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class ListMoveEvent extends ListEvent { - - /** The index to which the items were moved. */ - private final int targetIndex; - - /** The index from which the items were moved. */ - private final int sourceIndex; - - /** The number of items moved. */ - private final int length; - - private static final long serialVersionUID = 1L; - - - // ********** constructor ********** - - /** - * Construct a new list move event. - * - * @param source The object on which the event initially occurred. - * @param listName The programmatic name of the list that was changed. - * @param targetIndex The index to which the items were moved. - * @param sourceIndex The index from which the items were moved. - * @param length The number of items moved. - */ - public ListMoveEvent(Model source, String listName, int targetIndex, int sourceIndex, int length) { - super(source, listName); - this.targetIndex = targetIndex; - this.sourceIndex = sourceIndex; - this.length = length; - } - - - // ********** standard state ********** - - /** - * Return the index to which the items were moved. - */ - public int getTargetIndex() { - return this.targetIndex; - } - - /** - * Return the index from which the items were moved. - */ - public int getSourceIndex() { - return this.sourceIndex; - } - - /** - * Return the number of items moved. - */ - public int getLength() { - return this.length; - } - - @Override - protected void toString(StringBuilder sb) { - super.toString(sb); - sb.append(": "); //$NON-NLS-1$ - sb.append(this.sourceIndex); - sb.append(" => "); //$NON-NLS-1$ - sb.append(this.targetIndex); - sb.append(" length="); //$NON-NLS-1$ - sb.append(this.length); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public ListMoveEvent clone(Model newSource) { - return this.clone(newSource, this.listName); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name. - */ - public ListMoveEvent clone(Model newSource, String newListName) { - return this.clone(newSource, newListName, 0); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name and displacing - * the index by the specified amount. - */ - public ListMoveEvent clone(Model newSource, String newListName, int offset) { - return new ListMoveEvent(newSource, newListName, this.targetIndex + offset, this.sourceIndex + offset, this.length); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListRemoveEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListRemoveEvent.java deleted file mode 100644 index 41b82d8ca6..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListRemoveEvent.java +++ /dev/null @@ -1,134 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.Collection; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "list remove" event gets delivered whenever a model removes items - * from a "bound" or "constrained" list. A ListRemoveEvent is sent - * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -/* - * See design discussion in CollectionAddEvent - */ -public final class ListRemoveEvent extends ListEvent { - - /** The index at which the items were removed. */ - private final int index; - - /** The items removed from the list. */ - private final Object[] items; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new list remove event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the list that was changed. - * @param index The index at which the items were removed. - * @param item The item removed from the list. - */ - public ListRemoveEvent(Model source, String listName, int index, Object item) { - this(source, listName, index, new Object[] {item}); - } - - /** - * Construct a new list remove event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the list that was changed. - * @param index The index at which the items were removed. - * @param items The items removed from the list. - */ - public ListRemoveEvent(Model source, String listName, int index, Collection items) { - this(source, listName, index, items.toArray()); // NPE if 'items' is null - } - - private ListRemoveEvent(Model source, String listName, int index, Object[] items) { - super(source, listName); - this.index = index; - this.items = items; - } - - - // ********** standard state ********** - - /** - * Return the index at which the items were removed from the list. - */ - public int getIndex() { - return this.index; - } - - /** - * Return the items removed from the list. - */ - public Iterable getItems() { - return new ArrayIterable(this.items); - } - - /** - * Return the number of items removed from the list. - */ - public int getItemsSize() { - return this.items.length; - } - - @Override - protected void toString(StringBuilder sb) { - super.toString(sb); - sb.append(": "); //$NON-NLS-1$ - StringTools.append(sb, this.items); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public ListRemoveEvent clone(Model newSource) { - return this.clone(newSource, this.listName); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name. - */ - public ListRemoveEvent clone(Model newSource, String newListName) { - return this.clone(newSource, newListName, 0); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name and displacing - * the index by the specified amount. - */ - public ListRemoveEvent clone(Model newSource, String newListName, int offset) { - return new ListRemoveEvent(newSource, newListName, this.index + offset, this.items); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListReplaceEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListReplaceEvent.java deleted file mode 100644 index dd6f3760e0..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/ListReplaceEvent.java +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "list replace" event gets delivered whenever a model replaces items in a - * "bound" or "constrained" list. A ListReplaceEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.ListChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class ListReplaceEvent extends ListEvent { - - /** The index at which the items were replaced. */ - private final int index; - - /** The new items that replaced the old items in the list. */ - private final Object[] newItems; - - /** The old items that were replaced by the new items in the list. */ - private final Object[] oldItems; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new list replace event for a list of replaced items. - * - * @param source The object on which the event initially occurred. - * @param listName The programmatic name of the list that was changed. - * @param index The index at which the item in the list was replaced. - * @param newItem The new item in the list. - * @param oldItem The old item in the list that were replaced. - */ - public ListReplaceEvent(Model source, String listName, int index, Object newItem, Object oldItem) { - this(source, listName, index, new Object[] {newItem}, new Object[] {oldItem}); - } - - /** - * Construct a new list replace event for a list of replaced items. - * - * @param source The object on which the event initially occurred. - * @param listName The programmatic name of the list that was changed. - * @param index The index at which the items in the list were replaced. - * @param newItems The new items in the list. - * @param oldItems The old items in the list that were replaced. - */ - public ListReplaceEvent(Model source, String listName, int index, List newItems, List oldItems) { - this(source, listName, index, newItems.toArray(), oldItems.toArray()); // NPE if either 'newItems' or 'oldItems' is null - } - - private ListReplaceEvent(Model source, String listName, int index, Object[] newItems, Object[] oldItems) { - super(source, listName); - if (newItems.length != oldItems.length) { - throw new IllegalArgumentException("sizes must match - new items size: " + newItems.length //$NON-NLS-1$ - + " old items size: " + oldItems.length); //$NON-NLS-1$ - } - this.index = index; - this.newItems = newItems; - this.oldItems = oldItems; - } - - - // ********** standard state ********** - - /** - * Return the index at which the items were replaced in the list. - */ - public int getIndex() { - return this.index; - } - - /** - * Return the new items that replaced the old items in the list. - */ - public Iterable getNewItems() { - return new ArrayIterable(this.newItems); - } - - /** - * Return the old items that were replaced by the new items in the list. - */ - public Iterable getOldItems() { - return new ArrayIterable(this.oldItems); - } - - /** - * Return the number of items that were replaced. - */ - public int getItemsSize() { - return this.newItems.length; - } - - @Override - protected void toString(StringBuilder sb) { - super.toString(sb); - sb.append(": "); //$NON-NLS-1$ - StringTools.append(sb, this.oldItems); - sb.append(" => "); //$NON-NLS-1$ - StringTools.append(sb, this.newItems); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public ListReplaceEvent clone(Model newSource) { - return this.clone(newSource, this.listName); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name. - */ - public ListReplaceEvent clone(Model newSource, String newListName) { - return this.clone(newSource, newListName, 0); - } - - /** - * Return a copy of the event with the specified source and list name - * replacing the current source and list name and displacing - * the index by the specified amount. - */ - public ListReplaceEvent clone(Model newSource, String newListName, int offset) { - return new ListReplaceEvent(newSource, newListName, this.index + offset, this.newItems, this.oldItems); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/PropertyChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/PropertyChangeEvent.java deleted file mode 100644 index 55c7475e85..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/PropertyChangeEvent.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "property change" event gets delivered whenever a model changes a "bound" - * or "constrained" property. A PropertyChangeEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener}. - * A PropertyChangeEvent is accompanied by the old and new values - * of the property. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class PropertyChangeEvent extends ChangeEvent { - - /** Name of the property that changed. */ - private final String propertyName; - - /** The property's old value, before the change. */ - private final Object oldValue; - - /** The property's new value, after the change. */ - private final Object newValue; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new property change event. - * - * @param source The object on which the event initially occurred. - * @param propertyName The programmatic name of the property that was changed. - * @param oldValue The old value of the property. - * @param newValue The new value of the property. - */ - public PropertyChangeEvent(Model source, String propertyName, Object oldValue, Object newValue) { - super(source); - if (propertyName == null) { - throw new NullPointerException(); - } - this.propertyName = propertyName; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - // ********** standard state ********** - - /** - * Return the programmatic name of the property that was changed. - */ - public String getPropertyName() { - return this.propertyName; - } - - /** - * Return the old value of the property. - */ - public Object getOldValue() { - return this.oldValue; - } - - /** - * Return the new value of the property. - */ - public Object getNewValue() { - return this.newValue; - } - - @Override - protected void toString(StringBuilder sb) { - sb.append(this.propertyName); - sb.append(": "); //$NON-NLS-1$ - sb.append(this.oldValue); - sb.append(" => "); //$NON-NLS-1$ - sb.append(this.newValue); - } - - - // ********** cloning ********** - - public PropertyChangeEvent clone(Model newSource) { - return new PropertyChangeEvent(newSource, this.propertyName, this.oldValue, this.newValue); - } - - /** - * Return a copy of the event with the specified source and property name - * replacing the current source and property name. - */ - public PropertyChangeEvent clone(Model newSource, String newPropertyName) { - return new PropertyChangeEvent(newSource, newPropertyName, this.oldValue, this.newValue); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/StateChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/StateChangeEvent.java deleted file mode 100644 index fdac399c4b..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/StateChangeEvent.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A generic "state change" event gets delivered whenever a model changes to - * such extent that it cannot be delineated all aspects of it that have changed. - * Any listener can synchronize with the model as necessary since the model is - * available as the event's 'source'. - * A StateChangeEvent is sent as an argument to the - * {@link org.eclipse.jpt.common.utility.model.listener.StateChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class StateChangeEvent extends ChangeEvent { - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new state change event. - * - * @param source The object on which the event initially occurred. - */ - public StateChangeEvent(Model source) { - super(source); - } - - - // ********** cloning ********** - - public StateChangeEvent clone(Model newSource) { - return new StateChangeEvent(newSource); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeAddEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeAddEvent.java deleted file mode 100644 index 0550271a5d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeAddEvent.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "tree add" event gets delivered whenever a model adds a node to a "bound" - * or "constrained" tree. A TreeChangeEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class TreeAddEvent extends TreeEvent { - - /** - * Path to the node added to the tree. - */ - protected final Object[] path; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new tree add event. - * - * @param source The object on which the event initially occurred. - * @param treeName The programmatic name of the tree that was changed. - * @param path The path to the part of the tree that was added. - */ - public TreeAddEvent(Model source, String treeName, List path) { - this(source, treeName, path.toArray()); // NPE if 'path' is null - } - - private TreeAddEvent(Model source, String treeName, Object[] path) { - super(source, treeName); - this.path = path; - } - - - // ********** standard state ********** - - /** - * Return the path to the part of the tree that was added. - */ - public Iterable getPath() { - return new ArrayIterable(this.path); - } - - - // ********** cloning ********** - - public TreeAddEvent clone(Model newSource) { - return this.clone(newSource, this.treeName); - } - - /** - * Return a copy of the event with the specified source and tree name - * replacing the current source and tree name. - */ - public TreeAddEvent clone(Model newSource, String newTreeName) { - return new TreeAddEvent(newSource, newTreeName, this.path); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeChangeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeChangeEvent.java deleted file mode 100644 index 7ad7e03db5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeChangeEvent.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.Collection; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "tree change" event gets delivered whenever a model changes a "bound" - * or "constrained" tree in a manner that is not easily characterized by - * the other tree events. - * A TreeChangeEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class TreeChangeEvent extends TreeEvent { - - /** - * The current nodes in the changed tree. - */ - protected final Object[] nodes; - - private static final long serialVersionUID = 1L; - - - // ********** constructor ********** - - /** - * Construct a new tree change event. - * - * @param source The object on which the event initially occurred. - * @param treeName The programmatic name of the tree that was changed. - * @param nodes The current nodes in the changed tree. - */ - public TreeChangeEvent(Model source, String treeName, Collection nodes) { - this(source, treeName, nodes.toArray()); // NPE if 'nodes' is null - } - - private TreeChangeEvent(Model source, String treeName, Object[] nodes) { - super(source, treeName); - this.nodes = nodes; - } - - - // ********** standard state ********** - - /** - * Return the current nodes in the changed tree. - */ - public Iterable getNodes() { - return new ArrayIterable(this.nodes); - } - - /** - * Return the current nodes in the changed tree. - */ - public int getNodesSize() { - return this.nodes.length; - } - - - // ********** cloning ********** - - public TreeChangeEvent clone(Model newSource) { - return this.clone(newSource, this.treeName); - } - - /** - * Return a copy of the event with the specified source and tree name - * replacing the current source and tree name. - */ - public TreeChangeEvent clone(Model newSource, String newTreeName) { - return new TreeChangeEvent(newSource, newTreeName, this.nodes); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeClearEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeClearEvent.java deleted file mode 100644 index 6d96568a7f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeClearEvent.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "tree clear" event gets delivered whenever a model clears - * a "bound" or "constrained" tree. A TreeClearEvent is sent - * as an argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class TreeClearEvent extends TreeEvent { - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new tree clear event. - * - * @param source The object on which the event initially occurred. - * @param collectionName The programmatic name of the tree that was changed. - */ - public TreeClearEvent(Model source, String treeName) { - super(source, treeName); - } - - - // ********** cloning ********** - - /** - * Return a copy of the event with the specified source - * replacing the current source. - */ - public TreeClearEvent clone(Model newSource) { - return this.clone(newSource, this.treeName); - } - - /** - * Return a copy of the event with the specified source and collection name - * replacing the current source and collection name. - */ - public TreeClearEvent clone(Model newSource, String newCollectionName) { - return new TreeClearEvent(newSource, newCollectionName); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeEvent.java deleted file mode 100644 index e57777aef1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeEvent.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "tree" event gets delivered whenever a model changes a "bound" - * or "constrained" tree. A TreeEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}. - * The intent is that any listener - * can keep itself synchronized with the model's tree via the tree events - * it receives and need not maintain a reference to the original tree. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public abstract class TreeEvent extends ChangeEvent { - - /** Name of the tree that changed. */ - final String treeName; - - private static final long serialVersionUID = 1L; - - - /** - * Construct a new tree event. - * - * @param source The object on which the event initially occurred. - * @param treeName The programmatic name of the tree that was changed. - */ - public TreeEvent(Model source, String treeName) { - super(source); - if (treeName == null) { - throw new NullPointerException(); - } - this.treeName = treeName; - } - - /** - * Return the programmatic name of the tree that was changed. - */ - public String getTreeName() { - return this.treeName; - } - - @Override - protected void toString(StringBuilder sb) { - sb.append(this.treeName); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeRemoveEvent.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeRemoveEvent.java deleted file mode 100644 index afa3157678..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/event/TreeRemoveEvent.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.event; - -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * A "tree remove" event gets delivered whenever a model removes a node rom a - * "bound" or "constrained" tree. A TreeChangeEvent is sent as an - * argument to the {@link org.eclipse.jpt.common.utility.model.listener.TreeChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public final class TreeRemoveEvent extends TreeEvent { - - /** - * Path to the node removed from the tree. - */ - protected final Object[] path; - - private static final long serialVersionUID = 1L; - - - // ********** constructors ********** - - /** - * Construct a new tree remove event. - * - * @param source The object on which the event initially occurred. - * @param treeName The programmatic name of the tree that was changed. - * @param path The path to the part of the tree that was removed. - */ - public TreeRemoveEvent(Model source, String treeName, List path) { - this(source, treeName, path.toArray()); // NPE if 'path' is null - } - - private TreeRemoveEvent(Model source, String treeName, Object[] path) { - super(source, treeName); - this.path = path; - } - - - // ********** standard state ********** - - /** - * Return the path to the part of the tree that was removed. - */ - public Iterable getPath() { - return new ArrayIterable(this.path); - } - - - // ********** cloning ********** - - public TreeRemoveEvent clone(Model newSource) { - return this.clone(newSource, this.treeName); - } - - /** - * Return a copy of the event with the specified source and tree name - * replacing the current source and tree name. - */ - public TreeRemoveEvent clone(Model newSource, String newTreeName) { - return new TreeRemoveEvent(newSource, newTreeName, this.path); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeAdapter.java deleted file mode 100644 index 51dcbd0391..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeAdapter.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; - -/** - * Convenience implementation of {@link ChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public class ChangeAdapter implements ChangeListener { - - // ***** state - public void stateChanged(StateChangeEvent event) { - // do nothing - } - - // ***** property - public void propertyChanged(PropertyChangeEvent event) { - // do nothing - } - - // ***** collection - public void itemsAdded(CollectionAddEvent event) { - // do nothing - } - - public void itemsRemoved(CollectionRemoveEvent event) { - // do nothing - } - - public void collectionCleared(CollectionClearEvent event) { - // do nothing - } - - public void collectionChanged(CollectionChangeEvent event) { - // do nothing - } - - // ***** list - public void itemsAdded(ListAddEvent event) { - // do nothing - } - - public void itemsRemoved(ListRemoveEvent event) { - // do nothing - } - - public void itemsReplaced(ListReplaceEvent event) { - // do nothing - } - - public void itemsMoved(ListMoveEvent event) { - // do nothing - } - - public void listCleared(ListClearEvent event) { - // do nothing - } - - public void listChanged(ListChangeEvent event) { - // do nothing - } - - // ***** tree - public void nodeAdded(TreeAddEvent event) { - // do nothing - } - - public void nodeRemoved(TreeRemoveEvent event) { - // do nothing - } - - public void treeCleared(TreeClearEvent event) { - // do nothing - } - - public void treeChanged(TreeChangeEvent event) { - // do nothing - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeListener.java deleted file mode 100644 index c5c6203fac..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ChangeListener.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -/** - * General purpose change listener. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface ChangeListener - extends StateChangeListener, PropertyChangeListener, CollectionChangeListener, ListChangeListener, TreeChangeListener -{ - // combine the other listener interfaces -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeAdapter.java deleted file mode 100644 index 99ca881f23..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeAdapter.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; - -/** - * Convenience implementation of {@link CollectionChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public class CollectionChangeAdapter implements CollectionChangeListener { - - /** - * Default constructor. - */ - public CollectionChangeAdapter() { - super(); - } - - public void itemsAdded(CollectionAddEvent event) { - // do nothing - } - - public void itemsRemoved(CollectionRemoveEvent event) { - // do nothing - } - - public void collectionCleared(CollectionClearEvent event) { - // do nothing - } - - public void collectionChanged(CollectionChangeEvent event) { - // do nothing - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeListener.java deleted file mode 100644 index a8ff66487c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CollectionChangeListener.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import java.util.EventListener; - -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; - -/** - * A "collection change" event gets fired whenever a model changes a "bound" - * collection. You can register a CollectionChangeListener with a source - * model so as to be notified of any bound collection updates. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface CollectionChangeListener extends EventListener { - - /** - * This method gets called when items are added to a bound collection. - * - * @param event An event describing the event source, - * the collection that changed, and the items that were added. - */ - void itemsAdded(CollectionAddEvent event); - - /** - * This method gets called when items are removed from a bound collection. - * - * @param event An event describing the event source, - * the collection that changed, and the items that were removed. - */ - void itemsRemoved(CollectionRemoveEvent event); - - /** - * This method gets called when a bound collection is cleared. - * - * @param event An event describing the event source - * and the collection that changed. - */ - void collectionCleared(CollectionClearEvent event); - - /** - * This method gets called when a bound collection is changed in a manner - * that is not easily characterized by the other methods in this interface. - * - * @param event An event describing the event source - * and the collection that changed. - */ - void collectionChanged(CollectionChangeEvent event); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CommandChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CommandChangeListener.java deleted file mode 100644 index 5b3fd4a76f..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/CommandChangeListener.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import org.eclipse.jpt.common.utility.Command; - -/** - * Convenience implementation of {@link ChangeListener}. - * All change notifications are funneled through a single command. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public class CommandChangeListener - extends SimpleChangeListener -{ - protected final Command command; - - /** - * Construct a change listener that executes the specified command whenever - * it receives any change notification from the model to which it is added - * as a listener. - */ - public CommandChangeListener(Command command) { - super(); - this.command = command; - } - - @Override - protected void modelChanged() { - this.command.execute(); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeAdapter.java deleted file mode 100644 index a2b85b47f7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeAdapter.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; - -/** - * Convenience implementation of {@link ListChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public class ListChangeAdapter implements ListChangeListener { - - /** - * Default constructor. - */ - public ListChangeAdapter() { - super(); - } - - public void itemsAdded(ListAddEvent event) { - // do nothing - } - - public void itemsRemoved(ListRemoveEvent event) { - // do nothing - } - - public void itemsReplaced(ListReplaceEvent event) { - // do nothing - } - - public void itemsMoved(ListMoveEvent event) { - // do nothing - } - - public void listCleared(ListClearEvent event) { - // do nothing - } - - public void listChanged(ListChangeEvent event) { - // do nothing - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeListener.java deleted file mode 100644 index 0680c551bb..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ListChangeListener.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import java.util.EventListener; - -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; - -/** - * A "list change" event gets fired whenever a model changes a "bound" - * list. You can register a ListChangeListener with a source - * model so as to be notified of any bound list updates. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface ListChangeListener extends EventListener { - - /** - * This method gets called when items are added to a bound list. - * - * @param event An event describing the event source, - * the list that changed, the items that were added, and the index - * at which the items were added. - */ - void itemsAdded(ListAddEvent event); - - /** - * This method gets called when items are removed from a bound list. - * - * @param event An event describing the event source, - * the list that changed, the items that were removed, and the index - * at which the items were removed. - */ - void itemsRemoved(ListRemoveEvent event); - - /** - * This method gets called when items in a bound list are replaced. - * - * @param event An event describing the event source, - * the list that changed, the items that were added, the items that were - * replaced, and the index at which the items were replaced. - */ - void itemsReplaced(ListReplaceEvent event); - - /** - * This method gets called when items in a bound list are moved. - * - * @param event An event describing the event source, - * the list that changed, and the indices of where items were moved - * from and to. - */ - void itemsMoved(ListMoveEvent event); - - /** - * This method gets called when a bound list is cleared. - * - * @param event A ListClearEvent object describing the event source - * and the list that changed. - */ - void listCleared(ListClearEvent event); - - /** - * This method gets called when a bound list is changed in a manner - * that is not easily characterized by the other methods in this interface. - * - * @param event A ListChangeEvent object describing the event source - * and the list that changed. - */ - void listChanged(ListChangeEvent event); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/MultiMethodReflectiveChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/MultiMethodReflectiveChangeListener.java deleted file mode 100644 index 45762bf06c..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/MultiMethodReflectiveChangeListener.java +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import java.lang.reflect.Method; - -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; - -/** - * This class is used by {@link ReflectiveChangeListener} when the requested listener - * needs to implement multiple methods (i.e. {@link CollectionChangeListener}, - * {@link ListChangeListener}, or {@link TreeChangeListener}). - */ -class MultiMethodReflectiveChangeListener - extends ReflectiveChangeListener - implements CollectionChangeListener, ListChangeListener, TreeChangeListener -{ - /** the methods we will invoke on the target object */ - private final Method addMethod; - private final Method removeMethod; - private final Method replaceMethod; // this can be null - private final Method moveMethod; // this can be null - private final Method clearMethod; - private final Method changeMethod; - - - /** - * The "replace" and "move" methods are optional. - */ - MultiMethodReflectiveChangeListener(Object target, Method addMethod, Method removeMethod, Method replaceMethod, Method moveMethod, Method clearMethod, Method changeMethod) { - super(target); - this.addMethod = addMethod; - this.removeMethod = removeMethod; - this.replaceMethod = replaceMethod; - this.moveMethod = moveMethod; - this.clearMethod = clearMethod; - this.changeMethod = changeMethod; - } - - /** - * No "replace" or "move" methods. - */ - MultiMethodReflectiveChangeListener(Object target, Method addMethod, Method removeMethod, Method clearMethod, Method changeMethod) { - this(target, addMethod, removeMethod, null, null, clearMethod, changeMethod); - } - - - // ********** CollectionChangeListener implementation ********** - - private void invoke(Method method, CollectionEvent event) { - if (method.getParameterTypes().length == 0) { - ReflectionTools.executeMethod(method, this.target, EMPTY_OBJECT_ARRAY); - } else { - ReflectionTools.executeMethod(method, this.target, new CollectionEvent[] {event}); - } - } - - public void itemsAdded(CollectionAddEvent event) { - this.invoke(this.addMethod, event); - } - - public void itemsRemoved(CollectionRemoveEvent event) { - this.invoke(this.removeMethod, event); - } - - public void collectionCleared(CollectionClearEvent event) { - this.invoke(this.clearMethod, event); - } - - public void collectionChanged(CollectionChangeEvent event) { - this.invoke(this.changeMethod, event); - } - - - // ********** ListChangeListener implementation ********** - - private void invoke(Method method, ListEvent event) { - if (method.getParameterTypes().length == 0) { - ReflectionTools.executeMethod(method, this.target, EMPTY_OBJECT_ARRAY); - } else { - ReflectionTools.executeMethod(method, this.target, new ListEvent[] {event}); - } - } - - public void itemsAdded(ListAddEvent event) { - this.invoke(this.addMethod, event); - } - - public void itemsRemoved(ListRemoveEvent event) { - this.invoke(this.removeMethod, event); - } - - public void itemsReplaced(ListReplaceEvent event) { - this.invoke(this.replaceMethod, event); - } - - public void itemsMoved(ListMoveEvent event) { - this.invoke(this.moveMethod, event); - } - - public void listCleared(ListClearEvent event) { - this.invoke(this.clearMethod, event); - } - - public void listChanged(ListChangeEvent event) { - this.invoke(this.changeMethod, event); - } - - - // ********** TreeChangeListener implementation ********** - - private void invoke(Method method, TreeEvent event) { - if (method.getParameterTypes().length == 0) { - ReflectionTools.executeMethod(method, this.target, EMPTY_OBJECT_ARRAY); - } else { - ReflectionTools.executeMethod(method, this.target, new TreeEvent[] {event}); - } - } - - public void nodeAdded(TreeAddEvent event) { - this.invoke(this.addMethod, event); - } - - public void nodeRemoved(TreeRemoveEvent event) { - this.invoke(this.removeMethod, event); - } - - public void treeCleared(TreeClearEvent event) { - this.invoke(this.clearMethod, event); - } - - public void treeChanged(TreeChangeEvent event) { - this.invoke(this.changeMethod, event); - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeAdapter.java deleted file mode 100644 index c492353133..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeAdapter.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; - -/** - * Convenience implementation of {@link PropertyChangeListener}. - * This is probably of limited use, since there only a single method to implement; - * maybe as a null implementation. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public class PropertyChangeAdapter implements PropertyChangeListener { - - public void propertyChanged(PropertyChangeEvent event) { - // do nothing - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeListener.java deleted file mode 100644 index 4bb488f14a..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/PropertyChangeListener.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import java.util.EventListener; - -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; - -/** - * A "property change" event gets fired whenever a model changes a "bound" - * property. You can register a PropertyChangeListener with a source - * model so as to be notified of any bound property updates. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface PropertyChangeListener extends EventListener { - - /** - * This method gets called when a model has changed a bound property. - * - * @param event An event describing the event source - * and the property's old and new values. - */ - void propertyChanged(PropertyChangeEvent event); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ReflectiveChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ReflectiveChangeListener.java deleted file mode 100644 index 8a24cd5073..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/ReflectiveChangeListener.java +++ /dev/null @@ -1,377 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import java.lang.reflect.Method; - -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.model.event.ChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; - -/** - * This factory builds listeners that reflectively forward change events. - * If you are worried about having too many little classes that have to be - * loaded and maintained by the class loader, you can use one of these. - * Of course, this comes with the additional overhead of reflection.... - * Also note that the validity of the method name is not checked at compile - * time, but at runtime; although we do check the method as soon as the - * listener is instantiated. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public abstract class ReflectiveChangeListener { - - /** the target object on which we will invoke the method */ - protected final Object target; - - - protected static final Class STATE_CHANGE_EVENT_CLASS = StateChangeEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] STATE_CHANGE_EVENT_CLASS_ARRAY = new Class[] {STATE_CHANGE_EVENT_CLASS}; - - - protected static final Class PROPERTY_CHANGE_EVENT_CLASS = PropertyChangeEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] PROPERTY_CHANGE_EVENT_CLASS_ARRAY = new Class[] {PROPERTY_CHANGE_EVENT_CLASS}; - - - protected static final Class COLLECTION_EVENT_CLASS = CollectionEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] COLLECTION_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_EVENT_CLASS}; - - protected static final Class COLLECTION_ADD_EVENT_CLASS = CollectionAddEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] COLLECTION_ADD_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_ADD_EVENT_CLASS}; - - protected static final Class COLLECTION_REMOVE_EVENT_CLASS = CollectionRemoveEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] COLLECTION_REMOVE_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_REMOVE_EVENT_CLASS}; - - protected static final Class COLLECTION_CLEAR_EVENT_CLASS = CollectionClearEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] COLLECTION_CLEAR_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_CLEAR_EVENT_CLASS}; - - protected static final Class COLLECTION_CHANGE_EVENT_CLASS = CollectionChangeEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] COLLECTION_CHANGE_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_CHANGE_EVENT_CLASS}; - - - protected static final Class LIST_EVENT_CLASS = ListEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] LIST_EVENT_CLASS_ARRAY = new Class[] {LIST_EVENT_CLASS}; - - protected static final Class LIST_ADD_EVENT_CLASS = ListAddEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] LIST_ADD_EVENT_CLASS_ARRAY = new Class[] {LIST_ADD_EVENT_CLASS}; - - protected static final Class LIST_REMOVE_EVENT_CLASS = ListRemoveEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] LIST_REMOVE_EVENT_CLASS_ARRAY = new Class[] {LIST_REMOVE_EVENT_CLASS}; - - protected static final Class LIST_REPLACE_EVENT_CLASS = ListReplaceEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] LIST_REPLACE_EVENT_CLASS_ARRAY = new Class[] {LIST_REPLACE_EVENT_CLASS}; - - protected static final Class LIST_MOVE_EVENT_CLASS = ListMoveEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] LIST_MOVE_EVENT_CLASS_ARRAY = new Class[] {LIST_MOVE_EVENT_CLASS}; - - protected static final Class LIST_CLEAR_EVENT_CLASS = ListClearEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] LIST_CLEAR_EVENT_CLASS_ARRAY = new Class[] {LIST_CLEAR_EVENT_CLASS}; - - protected static final Class LIST_CHANGE_EVENT_CLASS = ListChangeEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] LIST_CHANGE_EVENT_CLASS_ARRAY = new Class[] {LIST_CHANGE_EVENT_CLASS}; - - - protected static final Class TREE_EVENT_CLASS = TreeEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] TREE_EVENT_CLASS_ARRAY = new Class[] {TREE_EVENT_CLASS}; - - protected static final Class TREE_ADD_EVENT_CLASS = TreeAddEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] TREE_ADD_EVENT_CLASS_ARRAY = new Class[] {TREE_ADD_EVENT_CLASS}; - - protected static final Class TREE_REMOVE_EVENT_CLASS = TreeRemoveEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] TREE_REMOVE_EVENT_CLASS_ARRAY = new Class[] {TREE_REMOVE_EVENT_CLASS}; - - protected static final Class TREE_CLEAR_EVENT_CLASS = TreeClearEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] TREE_CLEAR_EVENT_CLASS_ARRAY = new Class[] {TREE_CLEAR_EVENT_CLASS}; - - protected static final Class TREE_CHANGE_EVENT_CLASS = TreeChangeEvent.class; - @SuppressWarnings("unchecked") - protected static final Class[] TREE_CHANGE_EVENT_CLASS_ARRAY = new Class[] {TREE_CHANGE_EVENT_CLASS}; - - protected static final Object[] EMPTY_OBJECT_ARRAY = new Object[0]; - - - // ********** helper methods ********** - - /** - * Find and return a method implemented by the target that can be invoked - * reflectively when a change event occurs. - */ - private static Method findChangeListenerMethod(Object target, String methodName, Class[] eventClassArray) { - try { - return ReflectionTools.getMethod(target, methodName, eventClassArray); - } catch (RuntimeException ex1) { - return ReflectionTools.getMethod(target, methodName); - } - } - - /** - * Check whether the specified method is suitable for being invoked when a - * change event has occurred. Throw an exception if it is not suitable. - */ - private static void checkChangeListenerMethod(Method method, Class eventClass) { - Class[] parmTypes = method.getParameterTypes(); - int parmTypesLength = parmTypes.length; - if (parmTypesLength == 0) { - return; - } - if ((parmTypesLength == 1) && parmTypes[0].isAssignableFrom(eventClass)) { - return; - } - throw new IllegalArgumentException(method.toString()); - } - - - // ********** factory methods: StateChangeListener ********** - - /** - * Construct a state change listener that will invoke the specified method - * on the specified target. - */ - public static StateChangeListener buildStateChangeListener(Object target, Method method) { - checkChangeListenerMethod(method, STATE_CHANGE_EVENT_CLASS); - return new SingleMethodReflectiveChangeListener(target, method); - } - - /** - * Construct a state change listener that will invoke the specified method - * on the specified target. If a single-argument method with the specified - * name and appropriate argument is found, it will be invoked; otherwise, - * a zero-argument method with the specified name will be invoked. - */ - public static StateChangeListener buildStateChangeListener(Object target, String methodName) { - return buildStateChangeListener(target, findChangeListenerMethod(target, methodName, STATE_CHANGE_EVENT_CLASS_ARRAY)); - } - - - // ********** factory methods: PropertyChangeListener ********** - - /** - * Construct a property change listener that will invoke the specified method - * on the specified target. - */ - public static PropertyChangeListener buildPropertyChangeListener(Object target, Method method) { - checkChangeListenerMethod(method, PROPERTY_CHANGE_EVENT_CLASS); - return new SingleMethodReflectiveChangeListener(target, method); - } - - /** - * Construct a property change listener that will invoke the specified method - * on the specified target. If a single-argument method with the specified - * name and appropriate argument is found, it will be invoked; otherwise, - * a zero-argument method with the specified name will be invoked. - */ - public static PropertyChangeListener buildPropertyChangeListener(Object target, String methodName) { - return buildPropertyChangeListener(target, findChangeListenerMethod(target, methodName, PROPERTY_CHANGE_EVENT_CLASS_ARRAY)); - } - - - // ********** factory methods: CollectionChangeListener ********** - - /** - * Construct a collection change listener that will invoke the specified methods - * on the specified target. - */ - public static CollectionChangeListener buildCollectionChangeListener(Object target, Method addMethod, Method removeMethod, Method clearMethod, Method changeMethod) { - checkChangeListenerMethod(addMethod, COLLECTION_ADD_EVENT_CLASS); - checkChangeListenerMethod(removeMethod, COLLECTION_REMOVE_EVENT_CLASS); - checkChangeListenerMethod(clearMethod, COLLECTION_CLEAR_EVENT_CLASS); - checkChangeListenerMethod(changeMethod, COLLECTION_CHANGE_EVENT_CLASS); - return new MultiMethodReflectiveChangeListener(target, addMethod, removeMethod, clearMethod, changeMethod); - } - - /** - * Construct a collection change listener that will invoke the specified method - * on the specified target for any change event. - */ - public static CollectionChangeListener buildCollectionChangeListener(Object target, Method method) { - return buildCollectionChangeListener(target, method, method, method, method); - } - - /** - * Construct a collection change listener that will invoke the specified methods - * on the specified target for change events. If a single-argument method - * with the specified name and appropriate argument is found, it will be invoked; - * otherwise, a zero-argument method with the specified name will be invoked. - */ - public static CollectionChangeListener buildCollectionChangeListener(Object target, String addMethodName, String removeMethodName, String clearMethodName, String changeMethodName) { - return buildCollectionChangeListener( - target, - findChangeListenerMethod(target, addMethodName, COLLECTION_ADD_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, removeMethodName, COLLECTION_REMOVE_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, clearMethodName, COLLECTION_CLEAR_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, changeMethodName, COLLECTION_CHANGE_EVENT_CLASS_ARRAY) - ); - } - - /** - * Construct a collection change listener that will invoke the specified method - * on the specified target for any change event. If a single-argument method - * with the specified name and appropriate argument is found, it will be invoked; - * otherwise, a zero-argument method with the specified name will be invoked. - */ - public static CollectionChangeListener buildCollectionChangeListener(Object target, String methodName) { - return buildCollectionChangeListener(target, findChangeListenerMethod(target, methodName, COLLECTION_EVENT_CLASS_ARRAY)); - } - - - // ********** factory methods: ListChangeListener ********** - - /** - * Construct a list change listener that will invoke the specified methods - * on the specified target. - */ - public static ListChangeListener buildListChangeListener(Object target, Method addMethod, Method removeMethod, Method replaceMethod, Method moveMethod, Method clearMethod, Method changeMethod) { - checkChangeListenerMethod(addMethod, LIST_ADD_EVENT_CLASS); - checkChangeListenerMethod(removeMethod, LIST_REMOVE_EVENT_CLASS); - checkChangeListenerMethod(replaceMethod, LIST_REPLACE_EVENT_CLASS); - checkChangeListenerMethod(moveMethod, LIST_MOVE_EVENT_CLASS); - checkChangeListenerMethod(clearMethod, LIST_CLEAR_EVENT_CLASS); - checkChangeListenerMethod(changeMethod, LIST_CHANGE_EVENT_CLASS); - return new MultiMethodReflectiveChangeListener(target, addMethod, removeMethod, replaceMethod, moveMethod, clearMethod, changeMethod); - } - - /** - * Construct a list change listener that will invoke the specified method - * on the specified target for any change event. - */ - public static ListChangeListener buildListChangeListener(Object target, Method method) { - return buildListChangeListener(target, method, method, method, method, method, method); - } - - /** - * Construct a list change listener that will invoke the specified methods - * on the specified target for change events. If a single-argument method - * with the specified name and appropriate argument is found, it will be invoked; - * otherwise, a zero-argument method with the specified name will be invoked. - */ - public static ListChangeListener buildListChangeListener(Object target, String addMethodName, String removeMethodName, String replaceMethodName, String moveMethodName, String clearMethodName, String changeMethodName) { - return buildListChangeListener( - target, - findChangeListenerMethod(target, addMethodName, LIST_ADD_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, removeMethodName, LIST_REMOVE_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, replaceMethodName, LIST_REPLACE_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, moveMethodName, LIST_MOVE_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, clearMethodName, LIST_CLEAR_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, changeMethodName, LIST_CHANGE_EVENT_CLASS_ARRAY) - ); - } - - /** - * Construct a list change listener that will invoke the specified method - * on the specified target for any change event. If a single-argument method - * with the specified name and appropriate argument is found, it will be invoked; - * otherwise, a zero-argument method with the specified name will be invoked. - */ - public static ListChangeListener buildListChangeListener(Object target, String methodName) { - return buildListChangeListener(target, findChangeListenerMethod(target, methodName, LIST_EVENT_CLASS_ARRAY)); - } - - - // ********** factory methods: TreeChangeListener ********** - - /** - * Construct a tree change listener that will invoke the specified methods - * on the specified target. - */ - public static TreeChangeListener buildTreeChangeListener(Object target, Method addMethod, Method removeMethod, Method clearMethod, Method changeMethod) { - checkChangeListenerMethod(addMethod, TREE_ADD_EVENT_CLASS); - checkChangeListenerMethod(removeMethod, TREE_REMOVE_EVENT_CLASS); - checkChangeListenerMethod(clearMethod, TREE_CLEAR_EVENT_CLASS); - checkChangeListenerMethod(changeMethod, TREE_CHANGE_EVENT_CLASS); - return new MultiMethodReflectiveChangeListener(target, addMethod, removeMethod, clearMethod, changeMethod); - } - - /** - * Construct a tree change listener that will invoke the specified method - * on the specified target for any change event. - */ - public static TreeChangeListener buildTreeChangeListener(Object target, Method method) { - return buildTreeChangeListener(target, method, method, method, method); - } - - /** - * Construct a tree change listener that will invoke the specified methods - * on the specified target for change events. If a single-argument method - * with the specified name and appropriate argument is found, it will be invoked; - * otherwise, a zero-argument method with the specified name will be invoked. - */ - public static TreeChangeListener buildTreeChangeListener(Object target, String addMethodName, String removeMethodName, String clearMethodName, String changeMethodName) { - return buildTreeChangeListener( - target, - findChangeListenerMethod(target, addMethodName, TREE_ADD_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, removeMethodName, TREE_REMOVE_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, clearMethodName, TREE_CLEAR_EVENT_CLASS_ARRAY), - findChangeListenerMethod(target, changeMethodName, TREE_CHANGE_EVENT_CLASS_ARRAY) - ); - } - - /** - * Construct a tree change listener that will invoke the specified method - * on the specified target for any change event. If a single-argument method - * with the specified name and appropriate argument is found, it will be invoked; - * otherwise, a zero-argument method with the specified name will be invoked. - */ - public static TreeChangeListener buildTreeChangeListener(Object target, String methodName) { - return buildTreeChangeListener(target, findChangeListenerMethod(target, methodName, TREE_EVENT_CLASS_ARRAY)); - } - - - // ********** constructor ********** - - /** - * Construct a listener that will invoke the specified method - * on the specified target. - */ - protected ReflectiveChangeListener(Object target) { - super(); - this.target = target; - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SimpleChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SimpleChangeListener.java deleted file mode 100644 index cc82b775bf..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SimpleChangeListener.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import org.eclipse.jpt.common.utility.model.event.ChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; - -/** - * Convenience abstract implementation of {@link ChangeListener}. - * All change notifications are funneled through a single method. - * This class can be used by - * subclassing it and overriding either {@link #modelChanged(ChangeEvent)} - * (if access to the event is required) or {@link #modelChanged()} (if access - * to the event is not required). - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public abstract class SimpleChangeListener - implements ChangeListener -{ - public SimpleChangeListener() { - super(); - } - - public void stateChanged(StateChangeEvent event) { - this.modelChanged(event); - } - - public void propertyChanged(PropertyChangeEvent event) { - this.modelChanged(event); - } - - public void collectionChanged(CollectionChangeEvent event) { - this.modelChanged(event); - } - - public void collectionCleared(CollectionClearEvent event) { - this.modelChanged(event); - } - - public void itemsAdded(CollectionAddEvent event) { - this.modelChanged(event); - } - - public void itemsRemoved(CollectionRemoveEvent event) { - this.modelChanged(event); - } - - public void itemsAdded(ListAddEvent event) { - this.modelChanged(event); - } - - public void itemsMoved(ListMoveEvent event) { - this.modelChanged(event); - } - - public void itemsRemoved(ListRemoveEvent event) { - this.modelChanged(event); - } - - public void itemsReplaced(ListReplaceEvent event) { - this.modelChanged(event); - } - - public void listChanged(ListChangeEvent event) { - this.modelChanged(event); - } - - public void listCleared(ListClearEvent event) { - this.modelChanged(event); - } - - public void nodeAdded(TreeAddEvent event) { - this.modelChanged(event); - } - - public void nodeRemoved(TreeRemoveEvent event) { - this.modelChanged(event); - } - - public void treeChanged(TreeChangeEvent event) { - this.modelChanged(event); - } - - public void treeCleared(TreeClearEvent event) { - this.modelChanged(event); - } - - /** - * The model has notified the listener of the change described by the - * specified change event. By default the listener executes {@link #modelChanged()}. - */ - protected void modelChanged(@SuppressWarnings("unused") ChangeEvent event) { - this.modelChanged(); - } - - /** - * The model has notified the listener of a change. - * By default the listener throws an exception. - */ - protected void modelChanged() { - throw new RuntimeException("This method was not overridden."); //$NON-NLS-1$ - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SingleMethodReflectiveChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SingleMethodReflectiveChangeListener.java deleted file mode 100644 index 146e75ffd3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/SingleMethodReflectiveChangeListener.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import java.lang.reflect.Method; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; - -/** - * This class is used by {@link ReflectiveChangeListener} when the requested listener - * need only implement a single method (i.e. {@link StateChangeListener} or - * {@link PropertyChangeListener}). - */ -class SingleMethodReflectiveChangeListener - extends ReflectiveChangeListener - implements StateChangeListener, PropertyChangeListener -{ - - /** the method we will invoke on the target object */ - private final Method method; - /** cache the number of arguments */ - private final boolean methodIsZeroArgument; - - SingleMethodReflectiveChangeListener(Object target, Method method) { - super(target); - this.method = method; - this.methodIsZeroArgument = method.getParameterTypes().length == 0; - } - - - // ********** StateChangeListener implementation ********** - - public void stateChanged(StateChangeEvent event) { - if (this.methodIsZeroArgument) { - ReflectionTools.executeMethod(this.method, this.target, EMPTY_OBJECT_ARRAY); - } else { - ReflectionTools.executeMethod(this.method, this.target, new StateChangeEvent[] {event}); - } - } - - - // ********** PropertyChangeListener implementation ********** - - public void propertyChanged(PropertyChangeEvent event) { - if (this.methodIsZeroArgument) { - ReflectionTools.executeMethod(this.method, this.target, EMPTY_OBJECT_ARRAY); - } else { - ReflectionTools.executeMethod(this.method, this.target, new PropertyChangeEvent[] {event}); - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeAdapter.java deleted file mode 100644 index 3cc5f185f2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeAdapter.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; - -/** - * Convenience implementation of {@link StateChangeListener}. - * This is probably of limited use, since there only a single method to implement; - * maybe as a null implementation. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public class StateChangeAdapter implements StateChangeListener { - - public void stateChanged(StateChangeEvent event) { - // do nothing - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeListener.java deleted file mode 100644 index f9c599edee..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/StateChangeListener.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import java.util.EventListener; - -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; - -/** - * A generic "state change" event gets delivered whenever a model changes to - * such extent that it cannot be delineated all aspects of it that have changed. - * You can register a StateChangeListener with a source model so as to be notified - * of any such changes. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface StateChangeListener extends EventListener { - - /** - * This method gets called when a model has changed in some general fashion. - * - * @param event An event describing the event source. - */ - void stateChanged(StateChangeEvent event); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeAdapter.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeAdapter.java deleted file mode 100644 index 8d7ccee3d4..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeAdapter.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; - -/** - * Convenience implementation of {@link TreeChangeListener}. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public class TreeChangeAdapter implements TreeChangeListener { - - /** - * Default constructor. - */ - public TreeChangeAdapter() { - super(); - } - - public void nodeAdded(TreeAddEvent event) { - // do nothing - } - - public void nodeRemoved(TreeRemoveEvent event) { - // do nothing - } - - public void treeCleared(TreeClearEvent event) { - // do nothing - } - - public void treeChanged(TreeChangeEvent event) { - // do nothing - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeListener.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeListener.java deleted file mode 100644 index de8c898fb5..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/listener/TreeChangeListener.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.listener; - -import java.util.EventListener; - -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; - -/** - * A "tree change" event gets fired whenever a model changes a "bound" - * tree. You can register a TreeChangeListener with a source - * model so as to be notified of any bound tree updates. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface TreeChangeListener extends EventListener { - - /** - * This method gets called when a node is added to a bound tree. - * - * @param event An event describing the event source, - * the tree that changed, and the path to the node that was added. - */ - void nodeAdded(TreeAddEvent event); - - /** - * This method gets called when a node is removed from a bound tree. - * - * @param event An event describing the event source, - * the tree that changed, and the path to the node that was removed. - */ - void nodeRemoved(TreeRemoveEvent event); - - /** - * This method gets called when a bound tree is cleared. - * - * @param event An event describing the event source, - * the tree that changed, and an empty path. - */ - void treeCleared(TreeClearEvent event); - - /** - * This method gets called when a portion of a bound tree is changed in - * a manner that is not easily characterized by the other methods in this - * interface. - * - * @param event An event describing the event source, - * the tree that changed, and the current state of the - * tree that changed. - */ - void treeChanged(TreeChangeEvent event); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/CollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/CollectionValueModel.java deleted file mode 100644 index d7adf509aa..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/CollectionValueModel.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.value; - -import java.util.Iterator; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * Interface used to abstract collection accessing and - * change notification and make it more pluggable. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @param the type of values held by the model - */ -public interface CollectionValueModel - extends Model, Iterable -{ - - /** - * Return the collection's values. - */ - Iterator iterator(); - String VALUES = "values"; //$NON-NLS-1$ - - /** - * Return the size of the collection. - */ - int size(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/ListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/ListValueModel.java deleted file mode 100644 index 16d88283b8..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/ListValueModel.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.value; - -import java.util.Iterator; -import java.util.ListIterator; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * Interface used to abstract list accessing and - * change notification and make it more pluggable. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @param the type of values held by the list model - */ -public interface ListValueModel - extends Model, Iterable -{ - /** - * Return the list's values. - */ - Iterator iterator(); - String LIST_VALUES = "list values"; //$NON-NLS-1$ - - /** - * Return the list's values. - */ - ListIterator listIterator(); - - /** - * Return the size of the list. - */ - int size(); - - /** - * Return the item at the specified index of the list. - */ - E get(int index); - - /** - * Return the list's values. - */ - Object[] toArray(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/PropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/PropertyValueModel.java deleted file mode 100644 index 180be43f1d..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/PropertyValueModel.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.value; - -import org.eclipse.jpt.common.utility.model.Model; - -/** - * Interface used to abstract property accessing and - * change notification and make it more pluggable. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @param the type of value held by the model - */ -public interface PropertyValueModel - extends Model -{ - - /** - * Return the property's value. - */ - T getValue(); - String VALUE = "value"; //$NON-NLS-1$ - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeNodeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeNodeValueModel.java deleted file mode 100644 index f9281b00e9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeNodeValueModel.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.value; - -/** - * Extend {@link WritablePropertyValueModel} to better support - * {@link org.eclipse.jpt.common.utility.internal.model.value.swing.TreeModelAdapter}. - *

- * Implementors of this interface should fire a "state change" event - * whenever the node's internal state changes in a way that the - * tree listeners should be notified. - *

- * Implementors of this interface should also fire a "value property change" - * event whenever the node's value changes. Typically, only nodes that - * hold "primitive" data will fire this event. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @param the type of values held by the model - * - * @see org.eclipse.jpt.common.utility.internal.model.value.AbstractTreeNodeValueModel - */ -public interface TreeNodeValueModel - extends WritablePropertyValueModel -{ - - /** - * Return the node's parent node; null if the node - * is the root. - */ - TreeNodeValueModel parent(); - - /** - * Return the path to the node. - */ - TreeNodeValueModel[] path(); - - /** - * Return a list value model of the node's child nodes. - */ - ListValueModel> childrenModel(); - - /** - * Return the node's child at the specified index. - */ - TreeNodeValueModel child(int index); - - /** - * Return the size of the node's list of children. - */ - int childrenSize(); - - /** - * Return the index in the node's list of children of the specified child. - */ - int indexOfChild(TreeNodeValueModel child); - - /** - * Return whether the node is a leaf (i.e. it has no children) - */ - boolean isLeaf(); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeValueModel.java deleted file mode 100644 index 7a3e44d765..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/TreeValueModel.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.value; - -import java.util.Iterator; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * Interface used to abstract tree accessing and - * change notification and make it more pluggable. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @param the type of values held by the model - */ -public interface TreeValueModel - extends Model -{ - /** - * Return the tree's nodes. - */ - Iterator nodes(); - String NODES = "nodes"; //$NON-NLS-1$ - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableCollectionValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableCollectionValueModel.java deleted file mode 100644 index 6fe5fa7bc1..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableCollectionValueModel.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.value; - -/** - * Extend {@link CollectionValueModel} to allow the setting of the - * collection's values. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @param the type of values held by the model - */ -public interface WritableCollectionValueModel - extends CollectionValueModel -{ - - /** - * Set the values and fire a collection change notification. - * @see CollectionValueModel#VALUES - */ - void setValues(Iterable values); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableListValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableListValueModel.java deleted file mode 100644 index df8e5366b9..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritableListValueModel.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.value; - -/** - * Extend {@link ListValueModel} to allow the setting of the - * lists's values. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @param the type of values held by the model - */ -public interface WritableListValueModel - extends ListValueModel -{ - - /** - * Set the list values and fire a list change notification. - * @see ListValueModel#LIST_VALUES - */ - void setListValues(Iterable values); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritablePropertyValueModel.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritablePropertyValueModel.java deleted file mode 100644 index fe35c351f2..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/model/value/WritablePropertyValueModel.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.model.value; - -/** - * Extend {@link PropertyValueModel} to allow the setting of the property's value. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @param the type of value held by the model - */ -public interface WritablePropertyValueModel - extends PropertyValueModel -{ - - /** - * Set the value and fire a property change notification. - * @see PropertyValueModel#VALUE - */ - void setValue(T value); - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/CallbackSynchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/CallbackSynchronizer.java deleted file mode 100644 index 029227a8c7..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/CallbackSynchronizer.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.synchronizers; - -import java.io.Serializable; -import java.util.EventListener; - -/** - * Extend {@link Synchronizer} to notify listeners - * when a synchronization "cycle" is complete; i.e. the synchronization has, - * for the moment, quiesced. - */ -public interface CallbackSynchronizer - extends Synchronizer -{ - /** - * Add the specified listener to be notified whenever the synchronizer has - * quiesced. - * @see #removeListener(Listener) - */ - void addListener(Listener listener); - - /** - * Remove the specified listener. - * @see #addListener(Listener) - */ - void removeListener(Listener listener); - - - // ********** listener ********** - - /** - * Interface implemented by listeners to be notified whenever the - * synchronizer has quiesced. - */ - public interface Listener - extends EventListener - { - /** - * The specified synchronizer has quiesced. - */ - void synchronizationQuiesced(CallbackSynchronizer synchronizer); - } - - - /** - * Singleton implementation of the {@link CallbackSynchronizer} interface that will do - * nothing. - */ - final class Null implements CallbackSynchronizer, Serializable { - public static final CallbackSynchronizer INSTANCE = new Null(); - public static CallbackSynchronizer instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - public void start() { - // do nothing - } - public void synchronize() { - // do nothing - } - public void stop() { - // do nothing - } - public void addListener(Listener listener) { - // do nothing - } - public void removeListener(Listener listener) { - // do nothing - } - @Override - public String toString() { - return "CallbackSynchronizer.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/Synchronizer.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/Synchronizer.java deleted file mode 100644 index 230fb86eb3..0000000000 --- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/synchronizers/Synchronizer.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.synchronizers; - -import java.io.Serializable; - -/** - * This interface defines the protocol for starting, stopping, and executing a - * long-running, repeatable, and possibly recursive "synchronization" process. - * The intent is for the synchronizer to synchronize a "secondary" model with - * a "primary" model. Any change to the "primary" model will trigger the - * synchronization. The synchronizer implementation will determine whether the - * "secondary" model remains in sync synchronously or asynchronously. - *

- * The assumption is that the {@link #start()} and {@link #stop()} methods will be called from - * a single master thread that would control the synchronizer's lifecycle and - * the {@link #synchronize()} method will be called multiple times, possibly from - * multiple threads. - */ -public interface Synchronizer { - - /** - * Enable the synchronizer to allow future synchronizations as requested - * by calls to {@link #synchronize()}. - */ - void start(); - - /** - * Synchronize the dependent model with the primary model. Do nothing if - * {@link #start()} has not previously been called. Do nothing if {@link #stop} - * has been called (without any intermediate call to {@link #start()}. - */ - void synchronize(); - - /** - * Stop the synchronizer immediately or, if a synchronization is currently - * in progress, when it completes. Return when the synchronizer is stopped. - * No further synchonizations will performed until {@link #start()} is called. - */ - void stop(); - - - /** - * Singleton implementation of the {@link Synchronizer} interface that will do - * nothing. - */ - final class Null implements Synchronizer, Serializable { - public static final Synchronizer INSTANCE = new Null(); - public static Synchronizer instance() { - return INSTANCE; - } - // ensure single instance - private Null() { - super(); - } - public void start() { - // do nothing - } - public void synchronize() { - // do nothing - } - public void stop() { - // do nothing - } - @Override - public String toString() { - return "Synchronizer.Null"; //$NON-NLS-1$ - } - private static final long serialVersionUID = 1L; - private Object readResolve() { - // replace this object with the singleton - return INSTANCE; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/.classpath b/common/tests/org.eclipse.jpt.common.core.tests/.classpath deleted file mode 100644 index 1e530394ab..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/.classpath +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/common/tests/org.eclipse.jpt.common.core.tests/.project b/common/tests/org.eclipse.jpt.common.core.tests/.project deleted file mode 100644 index 0839d137f9..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.common.core.tests - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/common/tests/org.eclipse.jpt.common.core.tests/META-INF/MANIFEST.MF b/common/tests/org.eclipse.jpt.common.core.tests/META-INF/MANIFEST.MF deleted file mode 100644 index 728ab395c7..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,20 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.common.core.tests;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Bundle-ActivationPolicy: lazy -Require-Bundle: org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)", - org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jpt.common.core;bundle-version="[1.0.0,2.0.0)", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jpt.common.utility.tests;bundle-version="[2.0.0,3.0.0)", - org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)", - org.junit;bundle-version="3.8.0" -Export-Package: org.eclipse.jpt.common.core.tests.internal;x-internal:=true, - org.eclipse.jpt.common.core.tests.internal.projects;x-internal:=true, - org.eclipse.jpt.common.core.tests.internal.utility.jdt;x-internal:=true diff --git a/common/tests/org.eclipse.jpt.common.core.tests/about.html b/common/tests/org.eclipse.jpt.common.core.tests/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/common/tests/org.eclipse.jpt.common.core.tests/build.properties b/common/tests/org.eclipse.jpt.common.core.tests/build.properties deleted file mode 100644 index 320b3f239d..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/build.properties +++ /dev/null @@ -1,18 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -javacSource = 1.5 -javacTarget = 1.5 -bin.includes = .,\ - META-INF/,\ - about.html,\ - test.xml,\ - plugin.properties -source.. = src/ -output.. = bin/ diff --git a/common/tests/org.eclipse.jpt.common.core.tests/plugin.properties b/common/tests/org.eclipse.jpt.common.core.tests/plugin.properties deleted file mode 100644 index b22b820267..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/plugin.properties +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName=Dali Java Persistence Tools - Common Core Tests -providerName=Eclipse Web Tools Platform diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/JptCommonCoreTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/JptCommonCoreTests.java deleted file mode 100644 index 93596840d1..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/JptCommonCoreTests.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.jpt.common.core.tests.internal.utility.jdt.JptCommonCoreUtilityJdtTests; - -public class JptCommonCoreTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptCommonCoreTests.class.getPackage().getName()); - suite.addTest(JptCommonCoreUtilityJdtTests.suite()); - return suite; - } - - private JptCommonCoreTests() { - super(); - throw new UnsupportedOperationException(); - } -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestFacetedProject.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestFacetedProject.java deleted file mode 100644 index a2ba74b0b3..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestFacetedProject.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.projects; - -import org.eclipse.core.runtime.CoreException; -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; - -/** - * This builds and holds a "faceted" project. - * Support for installing facets. - */ -public class TestFacetedProject extends TestPlatformProject { - private final IFacetedProject facetedProject; - - - // ********** builders ***************************** - - public static TestFacetedProject buildFacetedProject(String baseProjectName, boolean autoBuild) - throws CoreException { - return new TestFacetedProject(baseProjectName, autoBuild); - } - - - // ********** constructors/initialization ********** - - public TestFacetedProject(String projectName) throws CoreException { - this(projectName, true); - } - - public TestFacetedProject(String projectName, boolean autoBuild) throws CoreException { - super(projectName, autoBuild); - this.facetedProject = this.createFacetedProject(); - } - - private IFacetedProject createFacetedProject() throws CoreException { - return ProjectFacetsManager.create(this.getProject(), true, null); // true = "convert if necessary" - } - - - // ********** public methods ********** - - public IFacetedProject getFacetedProject() { - return this.facetedProject; - } - - public void installFacet(String facetName, String versionName) throws CoreException { - this.installFacet(facetName, versionName, null); - } - - public void uninstallFacet(String facetName, String versionName) throws CoreException { - this.uninstallFacet(facetName, versionName, null); - } - - /** - * if 'config' is null (and 'facetName' is "jpt.jpa"), the JPA project will be built with the defaults - * defined in JpaFacetInstallDataModelProvider#getDefaultProperty(String) - * In JPA the config object will be an IDataModel - * In JAXB the config object will be a JaxbFacetInstallConfig - */ - public void installFacet(String facetName, String versionName, Object config) throws CoreException { - this.facetedProject.installProjectFacet(this.facetVersion(facetName, versionName), config, null); - } - - /** - * In JPA the config object will be an IDataModel - * In JAXB the config object will be a JaxbFacetUninstallConfig - */ - public void uninstallFacet(String facetName, String versionName, Object config) throws CoreException { - this.facetedProject.uninstallProjectFacet(this.facetVersion(facetName, versionName), config, null); - } - - private IProjectFacetVersion facetVersion(String facetName, String versionName) { - return ProjectFacetsManager.getProjectFacet(facetName).getVersion(versionName); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestJavaProject.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestJavaProject.java deleted file mode 100644 index 7ea7e3813a..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestJavaProject.java +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.projects; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.Path; -import org.eclipse.jdt.core.IClasspathEntry; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.IPackageFragment; -import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jpt.common.utility.internal.ArrayTools; - -/** - * This builds and holds a "Java" project. - * Support for adding packages and types. - * - * "Java" projects aren't required to be "faceted" projects, but for JPA - * testing they are. - */ -@SuppressWarnings("nls") -public class TestJavaProject extends TestFacetedProject { - private final IJavaProject javaProject; - private final IPackageFragmentRoot sourceFolder; - - - // ********** builders ***************************** - - public static TestJavaProject buildJavaProject(String baseProjectName, boolean autoBuild) - throws CoreException { - return new TestJavaProject(baseProjectName, autoBuild); - } - - - // ********** constructors/initialization ********** - - public TestJavaProject(String projectName) throws CoreException { - this(projectName, false); - } - - public TestJavaProject(String projectName, boolean autoBuild) throws CoreException { - super(projectName, autoBuild); - this.installFacet("jst.java", "5.0"); - this.javaProject = JavaCore.create(this.getProject()); - this.sourceFolder = this.javaProject.getPackageFragmentRoot(this.getProject().getFolder("src")); - } - - public void addJar(String jarPath) throws JavaModelException { - this.addClasspathEntry(JavaCore.newLibraryEntry(new Path(jarPath), null, null)); - } - - private void addClasspathEntry(IClasspathEntry entry) throws JavaModelException { - this.javaProject.setRawClasspath(ArrayTools.add(this.javaProject.getRawClasspath(), entry), null); - } - - - // ********** public methods ********** - - public IJavaProject getJavaProject() { - return this.javaProject; - } - - public IPackageFragment createPackage(String packageName) throws CoreException { - return this.sourceFolder.createPackageFragment(packageName, false, null); // false = "no force" - } - - /** - * The source should NOT contain a package declaration; - * it will be added here. - */ - public ICompilationUnit createCompilationUnit(String packageName, String compilationUnitName, String source) throws CoreException { - return this.createCompilationUnit(this.createPackage(packageName), compilationUnitName, new SimpleSourceWriter(source)); - } - - /** - * The source should NOT contain a package declaration; - * it will be added here. - */ - public ICompilationUnit createCompilationUnit(String packageName, String compilationUnitName, SourceWriter sourceWriter) throws CoreException { - return this.createCompilationUnit(this.createPackage(packageName), compilationUnitName, sourceWriter); - } - - /** - * The source should NOT contain a package declaration; - * it will be added here. - */ - public ICompilationUnit createCompilationUnit(IPackageFragment packageFragment, String compilationUnitName, SourceWriter sourceWriter) throws CoreException { - StringBuilder sb = new StringBuilder(2000); - sourceWriter.appendSourceTo(sb); - String source = sb.toString(); - return packageFragment.createCompilationUnit(compilationUnitName, source, false, null); // false = "no force" - } - - - // ********** member classes ********** - - public interface SourceWriter { - void appendSourceTo(StringBuilder sb); - } - - public class SimpleSourceWriter implements SourceWriter { - private final String source; - public SimpleSourceWriter(String source) { - super(); - this.source = source; - } - public void appendSourceTo(StringBuilder sb) { - sb.append(this.source); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestPlatformProject.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestPlatformProject.java deleted file mode 100644 index 1c9c2dfa16..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/projects/TestPlatformProject.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.projects; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectDescription; -import org.eclipse.core.resources.IWorkspaceDescription; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * This builds and holds a "general" Eclipse project. - * Support for adding natures, folders, and files. - */ -public class TestPlatformProject { - private final IProject project; - - /** carriage return */ - public static final String CR = StringTools.CR; - - - // ********** builders ********** - - public static TestPlatformProject buildPlatformProject(String baseProjectName, boolean autoBuild) - throws CoreException { - return new TestPlatformProject(baseProjectName, autoBuild); - } - - - // ********** constructors/initialization ********** - - public TestPlatformProject(String projectName, boolean autoBuild) throws CoreException { - super(); - this.setAutoBuild(autoBuild); // workspace-wide setting - this.project = this.buildPlatformProject(projectName); - } - - private void setAutoBuild(boolean autoBuild) throws CoreException { - IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription(); - description.setAutoBuilding(autoBuild); - ResourcesPlugin.getWorkspace().setDescription(description); - } - - private IProject buildPlatformProject(String projectName) throws CoreException { - IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); - p.create(null); - p.open(null); - return p; - } - - - // ********** public methods ********** - - public IProject getProject() { - return this.project; - } - - public void addProjectNature(String natureID) throws CoreException { - IProjectDescription description = this.project.getDescription(); - description.setNatureIds(ArrayTools.add(description.getNatureIds(), natureID)); - this.project.setDescription(description, null); - } - - public void removeProjectNature(String natureID) throws CoreException { - IProjectDescription description = this.project.getDescription(); - description.setNatureIds(ArrayTools.removeAllOccurrences(description.getNatureIds(), natureID)); - this.project.setDescription(description, null); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/ASTToolsTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/ASTToolsTests.java deleted file mode 100644 index e8d26126ed..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/ASTToolsTests.java +++ /dev/null @@ -1,196 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import java.util.Iterator; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.Name; -import org.eclipse.jpt.common.core.internal.utility.jdt.ASTTools; -import org.eclipse.jpt.common.core.internal.utility.jdt.AnnotationStringArrayExpressionConverter; -import org.eclipse.jpt.common.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.JDTFieldAttribute; -import org.eclipse.jpt.common.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; - -@SuppressWarnings("nls") -public class ASTToolsTests - extends AnnotationTestCase { - - public ASTToolsTests(String name) { - super(name); - } - - - private void createClassAndMembers(String className, String classBody) throws Exception { - this.javaProject.createCompilationUnit("clazz", className + ".java", "public class " + className + " { " + classBody + " }"); - } - - private void createEnumAndMembers(String enumName, String enumBody) throws Exception { - this.javaProject.createCompilationUnit("enums", enumName + ".java", "public enum " + enumName + " { " + enumBody + " }"); - } - - private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception { - this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }"); - } - - private ICompilationUnit createTestType(final Iterator imports, final String idFieldAnnotation) - throws Exception { - return createTestType( - new DefaultAnnotationWriter() { - @Override - public Iterator imports() { - return imports; - } - @Override - public void appendIdFieldAnnotationTo(StringBuilder sb) { - sb.append(idFieldAnnotation); - } - }); - } - - public void testResolveEnum1() throws Exception { - this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ"); - this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();"); - - ICompilationUnit cu = this.createTestType("@annot.TestAnnotation(foo=enums.TestEnum.BAZ)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo"); - JDTFieldAttribute field = this.idField(cu); - - String actual = ASTTools.resolveEnum((Name) daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu)))); - assertEquals("enums.TestEnum.BAZ", actual); - } - - public void testResolveEnum2() throws Exception { - this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ"); - this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();"); - - ICompilationUnit cu = this.createTestType("static enums.TestEnum.BAZ", "@annot.TestAnnotation(foo=BAZ)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo"); - JDTFieldAttribute field = this.idField(cu); - - String actual = ASTTools.resolveEnum((Name) daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu)))); - assertEquals("enums.TestEnum.BAZ", actual); - } - - public void testResolveEnum3() throws Exception { - this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ"); - this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();"); - - ICompilationUnit cu = this.createTestType("static enums.TestEnum.*", "@annot.TestAnnotation(foo=BAZ)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo"); - JDTFieldAttribute field = this.idField(cu); - - String actual = ASTTools.resolveEnum((Name)daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu)))); - assertEquals("enums.TestEnum.BAZ", actual); - } - - public void testResolveEnum4() throws Exception { - this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ"); - this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();"); - - ICompilationUnit cu = this.createTestType("enums.TestEnum", "@annot.TestAnnotation(foo=TestEnum.BAZ)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo"); - JDTFieldAttribute field = this.idField(cu); - - String actual = ASTTools.resolveEnum((Name) daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu)))); - assertEquals("enums.TestEnum.BAZ", actual); - } - - public void testResolveFullyQualifiedNames() throws Exception { - final String otherClassName = "OtherClass"; - final String otherClassName2 = "OtherClass2"; - final String fqOtherClassName = "clazz.OtherClass"; - final String fqOtherClassName2 = "clazz.OtherClass2"; - final String annotationName = "TestAnnotation"; - final String fqAnnotationName = "annot.TestAnnotation"; - - createClassAndMembers(otherClassName, ""); - createClassAndMembers(otherClassName2, ""); - createAnnotationAndMembers(annotationName, "Class[] foo();"); - - ICompilationUnit cu = createTestType( - new ArrayIterator(new String[] {fqOtherClassName, fqOtherClassName2, fqAnnotationName}), - "@TestAnnotation(foo={" + otherClassName + ".class, " + otherClassName2 + ".class})"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter(fqAnnotationName); - DeclarationAnnotationElementAdapter daea = - new ConversionDeclarationAnnotationElementAdapter( - daa, "foo", AnnotationStringArrayExpressionConverter.forTypes()); - JDTFieldAttribute field = idField(cu); - - Iterable actual = ASTTools.resolveFullyQualifiedNames(daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu)))); - - assertEquals( - CollectionTools.list(new String[] {fqOtherClassName, fqOtherClassName2}), - CollectionTools.list(actual)); - } - - public void testResolveFullyQualifiedNames2() throws Exception { - final String otherClassName = "OtherClass"; - final String otherClassName2 = "OtherClass2"; - final String fqOtherClassName = "clazz.OtherClass"; - final String fqOtherClassName2 = "clazz.OtherClass2"; - final String annotationName = "TestAnnotation"; - final String fqAnnotationName = "annot.TestAnnotation"; - - createClassAndMembers(otherClassName, ""); - createClassAndMembers(otherClassName2, ""); - createAnnotationAndMembers(annotationName, "Class[] foo();"); - - ICompilationUnit cu = createTestType( - new ArrayIterator(new String[] {fqOtherClassName, fqOtherClassName2, fqAnnotationName}), - "@TestAnnotation(foo={1, " + otherClassName + ".class})"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter(fqAnnotationName); - DeclarationAnnotationElementAdapter daea = - new ConversionDeclarationAnnotationElementAdapter( - daa, "foo", AnnotationStringArrayExpressionConverter.forTypes()); - JDTFieldAttribute field = idField(cu); - - Iterable actual = ASTTools.resolveFullyQualifiedNames(daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu)))); - - assertEquals( - CollectionTools.list(new String[] {null, fqOtherClassName}), - CollectionTools.list(actual)); - } - - public void testResolveFullyQualifiedNames3() throws Exception { - final String otherClassName = "OtherClass"; - final String otherClassName2 = "OtherClass2"; - final String fqOtherClassName = "clazz.OtherClass"; - final String fqOtherClassName2 = "clazz.OtherClass2"; - final String annotationName = "TestAnnotation"; - final String fqAnnotationName = "annot.TestAnnotation"; - - createClassAndMembers(otherClassName, ""); - createClassAndMembers(otherClassName2, ""); - createAnnotationAndMembers(annotationName, "Class[] foo();"); - - ICompilationUnit cu = createTestType( - new ArrayIterator(new String[] {fqOtherClassName, fqOtherClassName2, fqAnnotationName}), - "@TestAnnotation(foo={@TestAnnotation(), " + otherClassName + ".class}"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter(fqAnnotationName); - DeclarationAnnotationElementAdapter daea = - new ConversionDeclarationAnnotationElementAdapter( - daa, "foo", AnnotationStringArrayExpressionConverter.forTypes()); - JDTFieldAttribute field = idField(cu); - - Iterable actual = ASTTools.resolveFullyQualifiedNames(daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu)))); - - assertEquals( - CollectionTools.list(new String[] {null, fqOtherClassName}), - CollectionTools.list(actual)); - } -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/AnnotationTestCase.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/AnnotationTestCase.java deleted file mode 100644 index e8aea35c72..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/AnnotationTestCase.java +++ /dev/null @@ -1,1061 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import java.io.File; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import junit.framework.TestCase; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.ArrayInitializer; -import org.eclipse.jdt.core.dom.BodyDeclaration; -import org.eclipse.jdt.core.dom.BooleanLiteral; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.EnumConstantDeclaration; -import org.eclipse.jdt.core.dom.EnumDeclaration; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.IExtendedModifier; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.Name; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.NumberLiteral; -import org.eclipse.jdt.core.dom.PackageDeclaration; -import org.eclipse.jdt.core.dom.SimpleName; -import org.eclipse.jdt.core.dom.SimpleType; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jdt.core.dom.StringLiteral; -import org.eclipse.jdt.core.dom.TypeLiteral; -import org.eclipse.jpt.common.core.internal.utility.jdt.ASTTools; -import org.eclipse.jpt.common.core.internal.utility.jdt.JDTFieldAttribute; -import org.eclipse.jpt.common.core.internal.utility.jdt.JDTMethodAttribute; -import org.eclipse.jpt.common.core.internal.utility.jdt.JDTType; -import org.eclipse.jpt.common.core.tests.internal.projects.TestJavaProject; -import org.eclipse.jpt.common.core.tests.internal.projects.TestJavaProject.SourceWriter; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; -import org.eclipse.jpt.common.core.utility.jdt.Type; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -/** - * Provide an easy(?) way to build an annotated source file. - * The type must be created by calling one of the {@link #createTestType()} - * methods before calling any of the various helper methods (i.e. the type is - * not created during {@link #setUp()}). - */ -@SuppressWarnings("nls") -public abstract class AnnotationTestCase - extends TestCase -{ - protected TestJavaProject javaProject; - - public static final String CR = System.getProperty("line.separator"); - public static final String SEP = File.separator; - public static final String PROJECT_NAME = "AnnotationTestProject"; - public static final String PACKAGE_NAME = "test"; - public static final String PACKAGE_NAME_ = PACKAGE_NAME + '.'; - public static final String PACKAGE_INFO_FILE_NAME = "package-info.java"; - public static final IPath PACKAGE_INFO_FILE_PATH = new Path("src" + SEP + PACKAGE_NAME + SEP + PACKAGE_INFO_FILE_NAME); - public static final String TYPE_NAME = "AnnotationTestType"; - public static final String FULLY_QUALIFIED_TYPE_NAME = PACKAGE_NAME_ + TYPE_NAME; - public static final String FILE_NAME = TYPE_NAME + ".java"; - public static final IPath FILE_PATH = new Path("src" + SEP + PACKAGE_NAME + SEP + FILE_NAME); - - public static final String[] EMPTY_STRING_ARRAY = new String[0]; - - - // ********** TestCase behavior ********** - - protected AnnotationTestCase(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.javaProject = this.buildJavaProject(false); // false = no auto-build - } - - protected TestJavaProject buildJavaProject(boolean autoBuild) throws Exception { - return this.buildJavaProject(PROJECT_NAME, autoBuild); - } - - protected TestJavaProject buildJavaProject(String projectName, boolean autoBuild) throws Exception { - return new TestJavaProject(projectName, autoBuild); - } - - @Override - protected void tearDown() throws Exception { -// this.dumpSource(); - this.deleteProject(); - TestTools.clear(this); - super.tearDown(); - } - - protected void deleteProject() throws Exception { - int i = 1; - boolean deleted = false; - while ( ! deleted) { - try { - this.javaProject.getProject().delete(true, true, null); - deleted = true; - } catch (CoreException ex) { - if (i == 4) { - throw new RuntimeException(this.getName() + " - unable to delete project", ex); - } - Thread.sleep(1000); - i++; - } - } - } - - protected void dumpSource(ICompilationUnit cu) throws Exception { - System.out.println("*** " + this.getName() + " ****"); - System.out.println(this.getSource(cu)); - System.out.println(); - } - - - // ********** package creation ********* - - /** - * create an un-annotated package-info - */ - protected ICompilationUnit createTestPackageInfo() throws CoreException { - return this.createTestPackageInfo(new DefaultAnnotationWriter()); - } - - /** - * create an un-annotated package-info in a package the given name - */ - protected ICompilationUnit createTestPackageInfo(String packageName) throws CoreException { - return this.createTestPackageInfo(packageName, new DefaultAnnotationWriter()); - } - - /** - * shortcut for simply adding an annotation to the package declaration - */ - protected ICompilationUnit createTestPackageInfo( - final String packageAnnotation, final String ... imports) - throws CoreException { - - return createTestPackageInfo( - new DefaultAnnotationWriter() { - @Override - public Iterator imports() { - return new ArrayIterator(imports); - } - - @Override - public void appendPackageAnnotationTo(StringBuilder sb) { - sb.append(packageAnnotation); - } - }); - } - - protected ICompilationUnit createTestPackageInfo(AnnotationWriter annotationWriter) throws CoreException { - return this.createTestPackageInfo(PACKAGE_NAME, annotationWriter); - } - - protected ICompilationUnit createTestPackageInfo(String packageName, AnnotationWriter annotationWriter) throws CoreException { - return this.javaProject.createCompilationUnit( - packageName, PACKAGE_INFO_FILE_NAME, this.createSourceWriter(annotationWriter, packageName, null)); - } - - - // ********** type creation ********** - - /** - * create an un-annotated type - */ - protected ICompilationUnit createTestType() throws CoreException { - return this.createTestType(new DefaultAnnotationWriter()); - } - - /** - * shortcut for simply adding an annotation to the 'id' field - */ - protected ICompilationUnit createTestType(final String annotationImport, final String idFieldAnnotation) throws CoreException { - return this.createTestType(new DefaultAnnotationWriter() { - @Override - public Iterator imports() { - return (annotationImport == null) ? - EmptyIterator.instance() : - new SingleElementIterator(annotationImport); - } - @Override - public void appendIdFieldAnnotationTo(StringBuilder sb) { - sb.append(idFieldAnnotation); - } - }); - } - - /** - * shortcut for simply adding a fully-qualified annotation to the 'id' field - */ - protected ICompilationUnit createTestType(final String idFieldAnnotation) throws CoreException { - return this.createTestType(null, idFieldAnnotation); - } - - protected ICompilationUnit createTestType(AnnotationWriter annotationWriter) throws CoreException { - return this.javaProject.createCompilationUnit(PACKAGE_NAME, FILE_NAME, this.createSourceWriter(annotationWriter)); - } - - protected ICompilationUnit createTestType(String packageName, String fileName, String typeName, AnnotationWriter annotationWriter) throws CoreException { - return this.javaProject.createCompilationUnit(packageName, fileName, this.createSourceWriter(annotationWriter, typeName)); - } - - protected SourceWriter createSourceWriter(AnnotationWriter annotationWriter) { - return new AnnotatedSourceWriter(annotationWriter); - } - - protected SourceWriter createSourceWriter(AnnotationWriter annotationWriter, String typeName) { - return new AnnotatedSourceWriter(annotationWriter, typeName); - } - - protected SourceWriter createSourceWriter(AnnotationWriter annotationWriter, String packageName, String typeName) { - return new AnnotatedSourceWriter(annotationWriter, packageName, typeName); - } - - protected ICompilationUnit createTestEnum(EnumAnnotationWriter annotationWriter) throws CoreException { - return this.javaProject.createCompilationUnit(PACKAGE_NAME, FILE_NAME, this.createEnumSourceWriter(annotationWriter)); - } - - protected ICompilationUnit createTestEnum(String packageName, String fileName, String enumName, EnumAnnotationWriter annotationWriter) throws CoreException { - return this.javaProject.createCompilationUnit(packageName, fileName, this.createEnumSourceWriter(annotationWriter, enumName)); - } - - protected SourceWriter createEnumSourceWriter(EnumAnnotationWriter annotationWriter) { - return new EnumAnnotatedSourceWriter(annotationWriter); - } - - protected SourceWriter createEnumSourceWriter(EnumAnnotationWriter annotationWriter, String enumName) { - return new EnumAnnotatedSourceWriter(annotationWriter, enumName); - } - - protected SourceWriter createEnumSourceWriter(EnumAnnotationWriter annotationWriter, String packageName, String enumName) { - return new EnumAnnotatedSourceWriter(annotationWriter, packageName, enumName); - } - - protected ICompilationUnit createAnnotatedEnumAndMembers(String enumName, String enumBody) throws Exception { - StringBuilder sb = new StringBuilder(); - sb.append("package ").append(PACKAGE_NAME).append(";").append(CR); - sb.append(CR); - sb.append("import javax.xml.bind.annotation.XmlEnum;"); - sb.append(CR); - sb.append(CR); - sb.append("@XmlEnum"); - sb.append(CR); - sb.append("public enum ").append(enumName).append(" { ").append(enumBody).append(" }"); - - return this.javaProject.createCompilationUnit(PACKAGE_NAME, enumName + ".java", sb.toString()); - } - - /** - * writes source for package-info java files - */ - protected void appendSourceTo( - StringBuilder sb, AnnotationWriter annotationWriter, String packageName) { - - annotationWriter.appendPackageAnnotationTo(sb); - sb.append(CR); - sb.append("package ").append(packageName).append(";").append(CR); - sb.append(CR); - for (Iterator stream = annotationWriter.imports(); stream.hasNext(); ) { - sb.append("import ").append(stream.next()).append(";").append(CR); - } - } - - /** - * writes source for typical java files - */ - protected void appendSourceTo( - StringBuilder sb, AnnotationWriter annotationWriter, - String packageName, String typeName) { - - sb.append("package ").append(packageName).append(";").append(CR); - sb.append(CR); - for (Iterator stream = annotationWriter.imports(); stream.hasNext(); ) { - sb.append("import "); - sb.append(stream.next()); - sb.append(";"); - sb.append(CR); - } - sb.append(CR); - annotationWriter.appendTypeAnnotationTo(sb); - sb.append(CR); - sb.append("public class ").append(typeName).append(" "); - annotationWriter.appendExtendsImplementsTo(sb); - sb.append("{").append(CR); - sb.append(CR); - sb.append(" "); - annotationWriter.appendIdFieldAnnotationTo(sb); - sb.append(CR); - sb.append(" private int id;").append(CR); - sb.append(CR); - sb.append(" "); - annotationWriter.appendNameFieldAnnotationTo(sb); - sb.append(CR); - sb.append(" private String name;").append(CR); - sb.append(CR); - sb.append(" "); - annotationWriter.appendGetIdMethodAnnotationTo(sb); - sb.append(CR); - sb.append(" public int getId() {").append(CR); - sb.append(" return this.id;").append(CR); - sb.append(" }").append(CR); - sb.append(CR); - sb.append(" "); - annotationWriter.appendSetIdMethodAnnotationTo(sb); - sb.append(CR); - sb.append(" public void setId(int id) {").append(CR); - sb.append(" this.id = id;").append(CR); - sb.append(" }").append(CR); - sb.append(CR); - sb.append(" "); - annotationWriter.appendGetNameMethodAnnotationTo(sb); - sb.append(CR); - sb.append(" public String getName() {").append(CR); - sb.append(" return this.name;").append(CR); - sb.append(" }").append(CR); - sb.append(CR); - sb.append(" "); - annotationWriter.appendSetNameMethodAnnotationTo(sb); - sb.append(CR); - sb.append(" public void setTestField(String testField) {").append(CR); - sb.append(" this.testField = testField;").append(CR); - sb.append(" }").append(CR); - sb.append(CR); - annotationWriter.appendMemberTypeTo(sb); - sb.append(CR); - sb.append("}").append(CR); - annotationWriter.appendTopLevelTypesTo(sb); - sb.append(CR); - } - - - /** - * writes source for typical java enum files - */ - protected void appendEnumSourceTo( - StringBuilder sb, EnumAnnotationWriter annotationWriter, - String packageName, String enumName) { - - sb.append("package ").append(packageName).append(";").append(CR); - sb.append(CR); - for (Iterator stream = annotationWriter.imports(); stream.hasNext(); ) { - sb.append("import "); - sb.append(stream.next()); - sb.append(";"); - sb.append(CR); - } - sb.append(CR); - annotationWriter.appendEnumAnnotationTo(sb); - sb.append(CR); - sb.append("public enum ").append(enumName).append(" {").append(CR); - sb.append(CR); - sb.append(" "); - annotationWriter.appendSundayEnumConstantAnnotationTo(sb); - sb.append(CR); - sb.append(" SUNDAY, ").append(CR); - sb.append(CR); - sb.append(" "); - annotationWriter.appendMondayEnumConstantAnnotationTo(sb); - sb.append(CR); - sb.append(" MONDAY").append(CR); - sb.append(CR); - sb.append("}").append(CR); - sb.append(CR); - } - - - // ********** queries ********** - - protected TestJavaProject getJavaProject() { - return this.javaProject; - } - - protected JDTType testType(ICompilationUnit cu) { - return this.buildType(TYPE_NAME, cu); - } - - protected JDTType buildType(String name, ICompilationUnit cu) { - return this.buildType(name, 1, cu); - } - - protected JDTType buildType(String name, int occurrence, ICompilationUnit cu) { - return this.buildType(null, name, occurrence, cu); - } - - protected JDTType buildType(Type declaringType, String name, int occurrence, ICompilationUnit cu) { - return new JDTType(declaringType, name, occurrence, cu); - } - - protected JDTFieldAttribute idField(ICompilationUnit cu) { - return this.buildField("id", cu); - } - - protected JDTFieldAttribute nameField(ICompilationUnit cu) { - return this.buildField("name", cu); - } - - protected JDTFieldAttribute buildField(String name, ICompilationUnit cu) { - return this.buildField(name, 1, cu); - } - - protected JDTFieldAttribute buildField(String name, int occurrence, ICompilationUnit cu) { - return this.buildField(this.testType(cu), name, occurrence, cu); - } - - protected JDTFieldAttribute buildField(Type declaringType, String name, int occurrence, ICompilationUnit cu) { - return new JDTFieldAttribute(declaringType, name, occurrence, cu); - } - - protected JDTMethodAttribute idGetMethod(ICompilationUnit cu) { - return this.buildMethod("getId", cu); - } - - protected JDTMethodAttribute idSetMethod(ICompilationUnit cu) { - return this.buildMethod("setId", new String[] {"int"}, cu); - } - - protected JDTMethodAttribute nameGetMethod(ICompilationUnit cu) { - return this.buildMethod("getName", cu); - } - - protected JDTMethodAttribute buildMethod(String name, ICompilationUnit cu) { - return this.buildMethod(name, EMPTY_STRING_ARRAY, cu); - } - - protected JDTMethodAttribute buildMethod(String name, String[] parameterTypeNames, ICompilationUnit cu) { - return this.buildMethod(name, parameterTypeNames, 1, cu); - } - - protected JDTMethodAttribute buildMethod(String name, String[] parameterTypeNames, int occurrence, ICompilationUnit cu) { - return new JDTMethodAttribute(this.testType(cu), name, parameterTypeNames, occurrence, cu); - } - - protected JDTMethodAttribute buildMethod(Type declaringType, String name, String[] parameterTypeNames, int occurrence, ICompilationUnit cu) { - return new JDTMethodAttribute(declaringType, name, parameterTypeNames, occurrence, cu); - } - - protected String getSource(ICompilationUnit cu) throws JavaModelException { - return cu.getBuffer().getContents(); - } - - protected CompilationUnit buildASTRoot(ICompilationUnit cu) { - return ASTTools.buildASTRoot(cu); - } - - - // ********** test validation ********** - - protected void assertSourceContains(String s, ICompilationUnit cu) throws JavaModelException { - String source = this.getSource(cu); - boolean found = source.indexOf(s) > -1; - if ( ! found) { - String msg = "source does not contain the expected string: " + s + " (see System console)"; - System.out.println("*** " + this.getName() + " ****"); - System.out.println(msg); - System.out.println(source); - System.out.println(); - fail(msg); - } - } - - protected void assertSourceDoesNotContain(String s, ICompilationUnit cu) throws JavaModelException { - String source = this.getSource(cu); - int pos = source.indexOf(s); - if (pos != -1) { - String msg = "unexpected string in source (position: " + pos + "): " + s + " (see System console)"; - System.out.println("*** " + this.getName() + " ****"); - System.out.println(msg); - System.out.println(source); - System.out.println(); - fail(msg); - } - } - - - // ********** manipulate annotations ********** - - /** - * Return the *first* member value pair for the specified annotation element - * with the specified name. - * Return null if the annotation has no such element. - */ - protected MemberValuePair memberValuePair(NormalAnnotation annotation, String elementName) { - for (MemberValuePair pair : this.values(annotation)) { - if (pair.getName().getFullyQualifiedName().equals(elementName)) { - return pair; - } - } - return null; - } - - /** - * minimize the scope of the suppressed warnings - */ - @SuppressWarnings("unchecked") - protected List values(NormalAnnotation na) { - return na.values(); - } - - /** - * minimize the scope of the suppressed warnings - */ - @SuppressWarnings("unchecked") - protected List enumConstants(EnumDeclaration ed) { - return ed.enumConstants(); - } - - /** - * check for null member value pair - */ - protected Expression value_(MemberValuePair pair) { - return (pair == null) ? null : pair.getValue(); - } - - /** - * Return the value of the *first* annotation element - * with the specified name. - * Return null if the annotation has no such element. - */ - protected Expression annotationElementValue(NormalAnnotation annotation, String elementName) { - return this.value_(this.memberValuePair(annotation, elementName)); - } - - /** - * Return the value of the *first* annotation element - * with the specified name. - * Return null if the annotation has no such element. - */ - protected Expression annotationElementValue(SingleMemberAnnotation annotation, String elementName) { - return elementName.equals("value") ? annotation.getValue() : null; - } - - /** - * Return the value of the *first* annotation element - * with the specified name. - * Return null if the annotation has no such element. - * (An element name of "value" will return the value of a single - * member annotation.) - */ - protected Expression annotationElementValue(Annotation annotation, String elementName) { - if (annotation.isNormalAnnotation()) { - return this.annotationElementValue((NormalAnnotation) annotation, elementName); - } - if (annotation.isSingleMemberAnnotation()) { - return this.annotationElementValue((SingleMemberAnnotation) annotation, elementName); - } - return null; - } - - protected ArrayInitializer newArrayInitializer(AST ast, Expression... expressions) { - ArrayInitializer arrayInitializer = ast.newArrayInitializer(); - for (Expression expression : expressions) { - arrayInitializer.expressions().add(expression); - } - return arrayInitializer; - } - - /** - * Build a number literal and set its initial value to the specified literal. - */ - protected NumberLiteral newNumberLiteral(AST ast, int value) { - return ast.newNumberLiteral(Integer.toString(value)); - } - - /** - * Build a number literal and set its initial value to the specified literal. - */ - protected BooleanLiteral newBooleanLiteral(AST ast, boolean value) { - return ast.newBooleanLiteral(value); - } - - /** - * Build a string literal and set its initial value. - */ - protected StringLiteral newStringLiteral(AST ast, String value) { - StringLiteral stringLiteral = ast.newStringLiteral(); - stringLiteral.setLiteralValue(value); - return stringLiteral; - } - - protected TypeLiteral newTypeLiteral(AST ast, String typeName) { - TypeLiteral typeLiteral = ast.newTypeLiteral(); - typeLiteral.setType(this.newSimpleType(ast, typeName)); - return typeLiteral; - } - - protected SimpleType newSimpleType(AST ast, String typeName) { - return this.newSimpleType(ast, ast.newName(typeName)); - } - - protected SimpleType newSimpleType(AST ast, Name typeName) { - return ast.newSimpleType(typeName); - } - - protected MemberValuePair newMemberValuePair(AST ast, SimpleName name, Expression value) { - MemberValuePair pair = ast.newMemberValuePair(); - pair.setName(name); - pair.setValue(value); - return pair; - } - - protected MemberValuePair newMemberValuePair(AST ast, String name, Expression value) { - return this.newMemberValuePair(ast, ast.newSimpleName(name), value); - } - - protected MemberValuePair newMemberValuePair(AST ast, String name, String value) { - return this.newMemberValuePair(ast, name, this.newStringLiteral(ast, value)); - } - - protected MemberValuePair newMemberValuePair(AST ast, String name, int value) { - return this.newMemberValuePair(ast, name, this.newNumberLiteral(ast, value)); - } - - protected MemberValuePair newMemberValuePair(AST ast, String name, boolean value) { - return this.newMemberValuePair(ast, name, this.newBooleanLiteral(ast, value)); - } - - protected EnumConstantDeclaration newEnumConstantDeclaration(AST ast, String enumConstantName) { - EnumConstantDeclaration enumConstantDeclaration = ast.newEnumConstantDeclaration(); - enumConstantDeclaration.setName(ast.newSimpleName(enumConstantName)); - return enumConstantDeclaration; - } - /** - * Add the specified member value pair to the specified annotation. - * Return the resulting annotation. - */ - protected NormalAnnotation addMemberValuePair(NormalAnnotation annotation, MemberValuePair pair) { - this.values(annotation).add(pair); - return annotation; - } - - /** - * Add the specified member value pair to the specified annotation. - * Return the resulting annotation. - */ - protected NormalAnnotation addMemberValuePair(NormalAnnotation annotation, String name, int value) { - return this.addMemberValuePair(annotation, this.newMemberValuePair(annotation.getAST(), name, value)); - } - - /** - * Add the specified member value pair to the specified annotation. - * Return the resulting annotation. - */ - protected NormalAnnotation addMemberValuePair(NormalAnnotation annotation, String name, String value) { - return this.addMemberValuePair(annotation, this.newMemberValuePair(annotation.getAST(), name, value)); - } - - /** - * Add the specified member value pair to the marker annotation - * by first replacing it with a normal annotation. - * Return the resulting normal annotation. - */ - protected NormalAnnotation addMemberValuePair(MarkerAnnotation annotation, String name, String value) { - NormalAnnotation normalAnnotation = this.replaceMarkerAnnotation(annotation); - this.addMemberValuePair(normalAnnotation, this.newMemberValuePair(annotation.getAST(), name, value)); - return normalAnnotation; - } - - protected NormalAnnotation addMemberValuePair(MarkerAnnotation annotation, String name, boolean value) { - NormalAnnotation normalAnnotation = this.replaceMarkerAnnotation(annotation); - this.addMemberValuePair(normalAnnotation, this.newMemberValuePair(annotation.getAST(), name, value)); - return normalAnnotation; - } - - /** - * Add the specified member value pair to the marker annotation - * by first replacing it with a normal annotation. - * Return the resulting normal annotation. - */ - protected NormalAnnotation addMemberValuePair(MarkerAnnotation annotation, MemberValuePair pair) { - NormalAnnotation normalAnnotation = this.replaceMarkerAnnotation(annotation); - return this.addMemberValuePair(normalAnnotation, pair); - } - - protected void setEnumMemberValuePair(ModifiedDeclaration declaration, String annotationName, String enumValue) { - NormalAnnotation annotation = (NormalAnnotation) declaration.getAnnotationNamed(annotationName); - if (annotation == null) { - annotation = addNormalAnnotation(declaration.getDeclaration(), annotationName); - } - this.setEnumMemberValuePair(annotation, "value", enumValue); - } - - protected void setEnumMemberValuePair(NormalAnnotation annotation, String elementName, String enumValue) { - MemberValuePair memberValuePair = this.memberValuePair(annotation, elementName); - if (memberValuePair == null) { - this.addEnumMemberValuePair(annotation, elementName, enumValue); - } - else { - memberValuePair.setValue(annotation.getAST().newName(enumValue)); - } - } - - protected void addEnumMemberValuePair(MarkerAnnotation markerAnnotation, String elementName, String value) { - this.addEnumMemberValuePair(this.replaceMarkerAnnotation(markerAnnotation), elementName, value); - } - - protected void addEnumMemberValuePair(NormalAnnotation annotation, String elementName, String value) { - this.addMemberValuePair(annotation, elementName, annotation.getAST().newName(value)); - } - - protected void addMemberValuePair(NormalAnnotation annotation, String elementName, Expression value) { - MemberValuePair memberValuePair = this.newMemberValuePair(annotation.getAST(), elementName, value); - this.addMemberValuePair(annotation, memberValuePair); - } - - protected void addMemberValuePair(MarkerAnnotation annotation, String elementName, Expression value) { - MemberValuePair memberValuePair = this.newMemberValuePair(annotation.getAST(), elementName, value); - this.addMemberValuePair(annotation, memberValuePair); - } - - protected void addEnumConstant(EnumDeclaration enumDeclaration, String enumConstantName) { - EnumConstantDeclaration enumConstantDeclaration = this.newEnumConstantDeclaration(enumDeclaration.getAST(), enumConstantName); - this.enumConstants(enumDeclaration).add(enumConstantDeclaration); - } - - protected void removeEnumConstant(EnumDeclaration enumDeclaration, String enumConstantName) { - List enumConstantsList = this.enumConstants(enumDeclaration); - for (EnumConstantDeclaration constant : enumConstantsList) { - if (constant.getName().getFullyQualifiedName().equals(enumConstantName)) { - enumConstantsList.remove(constant); - break; - } - } - } - - protected void changeEnumConstantName(EnumDeclaration enumDeclaration, String oldEnumConstantName, String newEnumConstantName) { - List enumConstantsList = this.enumConstants(enumDeclaration); - for (EnumConstantDeclaration constant : enumConstantsList) { - if (constant.getName().getFullyQualifiedName().equals(oldEnumConstantName)) { - this.changeEnumConstantName(constant, newEnumConstantName); - break; - } - } - } - - protected void changeEnumConstantName(EnumConstantDeclaration enumConstantDeclaration, String newEnumConstantName) { - enumConstantDeclaration.setName(enumConstantDeclaration.getAST().newSimpleName(newEnumConstantName)); - } - - /** - * Add the array element to an annotation that is either a normal annotation or a marker annotation. - * If it is a marker annotation first make it a normal annotation. - */ - protected void addArrayElement(ModifiedDeclaration declaration, String annotationName, int index, String elementName, Expression arrayElement) { - Annotation annotation = declaration.getAnnotationNamed(annotationName); - NormalAnnotation normalAnnotation; - if (annotation == null) { - normalAnnotation = this.addNormalAnnotation(declaration.getDeclaration(), annotationName); - } - else if (annotation.getNodeType() == ASTNode.MARKER_ANNOTATION) { - normalAnnotation = this.replaceMarkerAnnotation((MarkerAnnotation) annotation); - } - else { - normalAnnotation = (NormalAnnotation) annotation; - } - this.addArrayElement(normalAnnotation, index, elementName, arrayElement); - } - - /** - * Add the array element to the given normal annotation's element named elementName. - * Add a new member value pair if one does not exist. - * If the member value pair exists but the value is not yet an array, make it an array. - */ - protected void addArrayElement(NormalAnnotation annotation, int index, String elementName, Expression arrayElement) { - MemberValuePair pair = this.memberValuePair(annotation, elementName); - if (pair == null) { - pair = this.newMemberValuePair(annotation.getAST(), elementName, arrayElement); - this.addMemberValuePair(annotation, pair); - } - else { - Expression value = pair.getValue(); - if (value.getNodeType() == ASTNode.ARRAY_INITIALIZER) { - this.expressions((ArrayInitializer) value).add(index, arrayElement); - } - else { - ArrayInitializer arrayInitializer = annotation.getAST().newArrayInitializer(); - pair.setValue(arrayInitializer); - this.expressions(arrayInitializer).add(value); - this.expressions(arrayInitializer).add(index, arrayElement); - } - } - } - - /** - * This assumes an element with name elementName exists with an array as its value. - * Move the array element at sourceIndex to the targetIndex - */ - protected void moveArrayElement(NormalAnnotation annotation, String elementName, int targetIndex, int sourceIndex) { - MemberValuePair pair = this.memberValuePair(annotation, elementName); - ArrayInitializer array = (ArrayInitializer) pair.getValue(); - CollectionTools.move(this.expressions(array), targetIndex, sourceIndex); - } - - /** - * This assumes an element with name elementName exists with potentially an array as its value. - * If the value is not an array, then the member value pair is removed. - * If the array element is removed and there is only 1 array element left, the array itself is removed - * and the remaining element is set as the value of the member value pair - */ - protected void removeArrayElement(NormalAnnotation annotation, String elementName, int index) { - MemberValuePair pair = this.memberValuePair(annotation, elementName); - if (pair.getValue().getNodeType() == ASTNode.ARRAY_INITIALIZER) { - ArrayInitializer array = (ArrayInitializer) pair.getValue(); - this.expressions(array).remove(index); - if (this.expressions(array).size() == 1) { - pair.setValue(this.expressions(array).remove(0)); - } - } - else { - this.values(annotation).remove(pair); - } - } - - /** - * Replace the given marker annotation with a normal annotation. - * Return the resulting normal annotation. - */ - protected NormalAnnotation replaceMarkerAnnotation(MarkerAnnotation annotation) { - List annotations = this.annotations(annotation.getParent()); - int index = annotations.indexOf(annotation); - NormalAnnotation normalAnnotation = newNormalAnnotation(annotation.getAST(), annotation.getTypeName().getFullyQualifiedName()); - annotations.set(index, normalAnnotation); - return normalAnnotation; - } - - /** - * Build a normal annotation and set its name. - */ - protected NormalAnnotation newNormalAnnotation(AST ast, String name) { - NormalAnnotation annotation = ast.newNormalAnnotation(); - annotation.setTypeName(ast.newName(name)); - return annotation; - } - - /** - * Add the normal annotation to the given AST node. - * This should be a PackageDeclaration or a BodyDeclaration. - * Return the resulting normal annotation. - */ - protected NormalAnnotation addNormalAnnotation(ASTNode astNode, String name) { - NormalAnnotation annotation = this.newNormalAnnotation(astNode.getAST(), name); - this.addAnnotation(astNode, annotation); - return annotation; - } - - /** - * Add the annotation to the given AST node. - * This should be a PackageDeclaration or a BodyDeclaration. - */ - protected void addAnnotation(ASTNode astNode, Annotation annotation) { - this.annotations(astNode).add(annotation); - } - - /** - * Build a marker annotation and set its name. - */ - protected MarkerAnnotation newMarkerAnnotation(AST ast, String name) { - MarkerAnnotation annotation = ast.newMarkerAnnotation(); - annotation.setTypeName(ast.newName(name)); - return annotation; - } - - /** - * Add the normal annotation to the given AST node. - * This should be a PackageDeclaration or a BodyDeclaration. - * Return the resulting normal annotation. - */ - protected MarkerAnnotation addMarkerAnnotation(ASTNode astNode, String name) { - MarkerAnnotation annotation = this.newMarkerAnnotation(astNode.getAST(), name); - this.addAnnotation(astNode, annotation); - return annotation; - } - - /** - * Remove the annotation with the specified name - */ - protected void removeAnnotation(ModifiedDeclaration declaration, String name) { - this.removeAnnotation(declaration.getDeclaration(), declaration.getAnnotationNamed(name)); - } - - /** - * Remove the specified annotation from the AST node. - * This should be a PackageDeclaration or a BodyDeclaration. - */ - protected void removeAnnotation(ASTNode astNode, Annotation annotation) { - this.annotations(astNode).remove(annotation); - } - - /** - * minimize the scope of the suppressed warnings - */ - @SuppressWarnings("unchecked") - protected List annotations(ASTNode astNode) { - if (astNode instanceof BodyDeclaration) { - return ((BodyDeclaration) astNode).modifiers(); - } - else if (astNode instanceof PackageDeclaration) { - return ((PackageDeclaration) astNode).annotations(); - } - return Collections.emptyList(); - } - - /** - * minimize the scope of the suppressed warnings - */ - @SuppressWarnings("unchecked") - protected List expressions(ArrayInitializer arrayInitializer) { - return arrayInitializer.expressions(); - } - - - // ********** member classes ********** - - public interface AnnotationWriter { - Iterator imports(); - void appendPackageAnnotationTo(StringBuilder sb); - void appendTypeAnnotationTo(StringBuilder sb); - void appendExtendsImplementsTo(StringBuilder sb); - void appendIdFieldAnnotationTo(StringBuilder sb); - void appendNameFieldAnnotationTo(StringBuilder sb); - void appendGetIdMethodAnnotationTo(StringBuilder sb); - void appendSetIdMethodAnnotationTo(StringBuilder sb); - void appendGetNameMethodAnnotationTo(StringBuilder sb); - void appendSetNameMethodAnnotationTo(StringBuilder sb); - void appendMemberTypeTo(StringBuilder sb); - void appendTopLevelTypesTo(StringBuilder sb); - } - - public static class DefaultAnnotationWriter implements AnnotationWriter { - public Iterator imports() {return EmptyIterator.instance();} - public void appendPackageAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendTypeAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendExtendsImplementsTo(StringBuilder sb) {/* do nothing */} - public void appendIdFieldAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendNameFieldAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendGetIdMethodAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendSetIdMethodAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendGetNameMethodAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendSetNameMethodAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendMemberTypeTo(StringBuilder sb) {/* do nothing */} - public void appendTopLevelTypesTo(StringBuilder sb) {/* do nothing */} - } - - public static class AnnotationWriterWrapper implements AnnotationWriter { - private final AnnotationWriter aw; - public AnnotationWriterWrapper(AnnotationWriter aw) { - super(); - this.aw = aw; - } - public Iterator imports() {return this.aw.imports();} - public void appendPackageAnnotationTo(StringBuilder sb) {this.aw.appendPackageAnnotationTo(sb);} - public void appendTypeAnnotationTo(StringBuilder sb) {this.aw.appendTypeAnnotationTo(sb);} - public void appendExtendsImplementsTo(StringBuilder sb) {this.aw.appendExtendsImplementsTo(sb);} - public void appendIdFieldAnnotationTo(StringBuilder sb) {this.aw.appendIdFieldAnnotationTo(sb);} - public void appendNameFieldAnnotationTo(StringBuilder sb) {this.aw.appendNameFieldAnnotationTo(sb);} - public void appendGetIdMethodAnnotationTo(StringBuilder sb) {this.aw.appendGetIdMethodAnnotationTo(sb);} - public void appendSetIdMethodAnnotationTo(StringBuilder sb) {this.aw.appendSetIdMethodAnnotationTo(sb);} - public void appendGetNameMethodAnnotationTo(StringBuilder sb) {this.aw.appendGetNameMethodAnnotationTo(sb);} - public void appendSetNameMethodAnnotationTo(StringBuilder sb) {this.aw.appendSetNameMethodAnnotationTo(sb);} - public void appendMemberTypeTo(StringBuilder sb) {this.aw.appendMemberTypeTo(sb);} - public void appendTopLevelTypesTo(StringBuilder sb) {this.aw.appendTopLevelTypesTo(sb);} - } - - public class AnnotatedSourceWriter - implements SourceWriter { - - private AnnotationWriter annotationWriter; - private String packageName; - private String typeName; - - public AnnotatedSourceWriter(AnnotationWriter annotationWriter) { - this(annotationWriter, TYPE_NAME); - } - - public AnnotatedSourceWriter(AnnotationWriter annotationWriter, String typeName) { - this(annotationWriter, PACKAGE_NAME, typeName); - } - - public AnnotatedSourceWriter(AnnotationWriter annotationWriter, String packageName, String typeName) { - super(); - this.annotationWriter = annotationWriter; - this.packageName = packageName; - this.typeName = typeName; - } - - public void appendSourceTo(StringBuilder sb) { - if (this.typeName != null) { - AnnotationTestCase.this.appendSourceTo(sb, this.annotationWriter, this.packageName, this.typeName); - } - else { - AnnotationTestCase.this.appendSourceTo(sb, this.annotationWriter, this.packageName); - } - } - } - - public interface EnumAnnotationWriter { - Iterator imports(); - void appendPackageAnnotationTo(StringBuilder sb); - void appendEnumAnnotationTo(StringBuilder sb); - void appendSundayEnumConstantAnnotationTo(StringBuilder sb); - void appendMondayEnumConstantAnnotationTo(StringBuilder sb); - } - - public static class DefaultEnumAnnotationWriter implements EnumAnnotationWriter { - public Iterator imports() {return EmptyIterator.instance();} - public void appendPackageAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendEnumAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendSundayEnumConstantAnnotationTo(StringBuilder sb) {/* do nothing */} - public void appendMondayEnumConstantAnnotationTo(StringBuilder sb) {/* do nothing */} - } - - public class EnumAnnotatedSourceWriter - implements SourceWriter { - - private EnumAnnotationWriter annotationWriter; - private String packageName; - private String enumName; - - public EnumAnnotatedSourceWriter(EnumAnnotationWriter annotationWriter) { - this(annotationWriter, TYPE_NAME); - } - - public EnumAnnotatedSourceWriter(EnumAnnotationWriter annotationWriter, String enumName) { - this(annotationWriter, PACKAGE_NAME, enumName); - } - - public EnumAnnotatedSourceWriter(EnumAnnotationWriter annotationWriter, String packageName, String enumName) { - super(); - this.annotationWriter = annotationWriter; - this.packageName = packageName; - this.enumName = enumName; - } - - public void appendSourceTo(StringBuilder sb) { - AnnotationTestCase.this.appendEnumSourceTo(sb, this.annotationWriter, this.packageName, this.enumName); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapterTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapterTests.java deleted file mode 100644 index b4f92fa9a7..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapterTests.java +++ /dev/null @@ -1,744 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.StringLiteral; -import org.eclipse.jpt.common.core.internal.utility.jdt.CombinationIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.ElementAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.ElementIndexedAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.osgi.framework.Version; - -@SuppressWarnings("nls") -public class CombinationIndexedDeclarationAnnotationAdapterTests extends AnnotationTestCase { - - public CombinationIndexedDeclarationAnnotationAdapterTests(String name) { - super(name); - } - - private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception { - this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }"); - } - - public void testAnnotation1() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 0); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isNormalAnnotation()); - } - - public void testAnnotation2() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotation3() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 0); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isNormalAnnotation()); - } - - public void testAnnotation4() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotation5() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isNormalAnnotation()); - String value = ((StringLiteral) this.values((NormalAnnotation) annotation).get(0).getValue()).getLiteralValue(); - assertEquals("ADDRESS_ID2", value); - } - - public void testAnnotation6() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotation7() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isNormalAnnotation()); - String value = ((StringLiteral) this.values(((NormalAnnotation) annotation)).get(0).getValue()).getLiteralValue(); - assertEquals("ADDRESS_ID2", value); - } - - public void testAnnotation8() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testRemoveAnnotation1() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 0); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.removeAnnotation(); - this.assertSourceDoesNotContain("JoinColumn", cu); - } - - public void testRemoveAnnotation2() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 0); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.removeAnnotation(); - this.assertSourceDoesNotContain("ADDRESS_ID", cu); - } - - public void testRemoveAnnotation3() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.removeAnnotation(); - this.assertSourceDoesNotContain("JoinColumns", cu); - this.assertSourceDoesNotContain("ADDRESS_ID2", cu); - this.assertSourceContains("@JoinColumn(name=\"ADDRESS_ID1\")", cu); - } - - public void testRemoveAnnotation4() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.removeAnnotation(); - this.assertSourceDoesNotContain("JoinColumns", cu); - this.assertSourceDoesNotContain("ADDRESS_ID2", cu); - this.assertSourceContains("@JoinColumn(name=\"ADDRESS_ID1\")", cu); - } - - public void testRemoveAnnotation5() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "String comment(); JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(comment=\"test\",columns={@annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.removeAnnotation(); - this.assertSourceContains("@annot.JoinColumns(comment=\"test\",columns=@annot.JoinColumn(name=\"ADDRESS_ID1\"))", cu); - } - - public void testRemoveAnnotation6() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(null)"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", 0); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.removeAnnotation(); - this.assertSourceContains("@annot.JoinColumns(null)", cu); - } - - public void testRemoveAnnotation12() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - String expected = "@JoinColumn(name=\"ADDRESS_ID0\")"; - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 2); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(expected, cu); - this.assertSourceDoesNotContain("JoinColumns", cu); - } - - public void testRemoveAnnotation13() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({null, @annot.JoinColumn(name=\"ADDRESS_ID1\")})"); - this.assertSourceContains("@annot.JoinColumn", cu); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain("ADDRESS_ID", cu); - } - - public void testRemoveAnnotation14() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\"), null})"); - String expected = "@JoinColumn(name=\"ADDRESS_ID0\")"; - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 2); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation15() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\")})"); - String expected = "@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, null, @annot.JoinColumn(name=\"ADDRESS_ID3\")})"; - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 2); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation16() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\")})"); - String expected = "@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})"; - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 3); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation17() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({null, null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - this.assertSourceContains("@annot.JoinColumn", cu); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 2); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain("ADDRESS_ID2", cu); - } - - public void testNewMarkerAnnotation1() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("JoinColumn", cu); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 0); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("JoinColumn", cu); - this.assertSourceDoesNotContain("JoinColumns", cu); - } - - public void testNewMarkerAnnotation2() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn"); - this.assertSourceDoesNotContain("JoinColumns", cu); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@JoinColumns(columns = { @JoinColumn, @JoinColumn })", cu); - } - - public void testNewMarkerAnnotation3() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn, @annot.JoinColumn})"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 2); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn, @annot.JoinColumn," + CR + " @JoinColumn})", cu); - } - - public void testNewMarkerAnnotation4() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(77)"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 0); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("JoinColumn", cu); - this.assertSourceDoesNotContain("JoinColumns", cu); - this.assertSourceDoesNotContain("77", cu); - } - - public void testNewMarkerAnnotation5() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns=@annot.JoinColumn(77))"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 0); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@annot.JoinColumns(columns=@JoinColumn)", cu); - this.assertSourceDoesNotContain("77", cu); - } - - public void testNewMarkerAnnotation6() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns=@annot.JoinColumn(77))"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn(77),@JoinColumn})", cu); - } - - public void testNewMarkerAnnotation7() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(77)"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@JoinColumns(columns = { @JoinColumn(77), @JoinColumn })", cu); - } - - public void testNewMarkerAnnotation8() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(77),@annot.JoinColumn(88)})"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn(77),@JoinColumn})", cu); - } - - public void testNewMarkerAnnotation9() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)"); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@JoinColumns(columns = { @JoinColumn(text = \"blah\", num = 42), @JoinColumn })", cu); - } - - public void testNewMarkerAnnotation23() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(text=\"b\",num=4)"); - String expected1 = "@JoinColumns(columns = { @JoinColumn(text = \"b\", num = 4), null,"; - String expected2 = "@JoinColumn })"; - this.assertSourceDoesNotContain(expected1, cu); - this.assertSourceDoesNotContain(expected2, cu); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 2); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.newMarkerAnnotation(); - this.assertSourceContains(expected1, cu); - this.assertSourceContains(expected2, cu); - } - - public void testNewMarkerAnnotation24() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)"); - - //Use old formatting if jdt core version is 3.5 or below - see bug 285604 - Version version = Platform.getBundle("org.eclipse.jdt.core").getVersion(); - int majorVersion = version.getMajor(); - int minorVersion = version.getMinor(); - //This condition should be removed and test updated after Dali 3.0 branches - String expected1; - if (majorVersion == 3 && minorVersion <= 5) { - expected1 = "@JoinColumns( {"; - } - else expected1 = "@JoinColumns({"; - - String expected2 = "@JoinColumn(text = \"blah\", num = 42), null,"; - String expected3 = "@JoinColumn " + CR + " })"; - this.assertSourceDoesNotContain(expected1, cu); - this.assertSourceDoesNotContain(expected2, cu); - this.assertSourceDoesNotContain(expected3, cu); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 2); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.newMarkerAnnotation(); - this.assertSourceContains(expected1, cu); - this.assertSourceContains(expected2, cu); - this.assertSourceContains(expected3, cu); - } - - public void testNewMarkerAnnotation25() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})"); - String expected1 = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, null,"; // the line gets split - String expected2 = "@JoinColumn})"; - this.assertSourceDoesNotContain(expected1, cu); - this.assertSourceDoesNotContain(expected2, cu); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 4); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.newMarkerAnnotation(); - this.assertSourceContains(expected1, cu); - this.assertSourceContains(expected2, cu); - } - - public void testNewMarkerAnnotation26() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})"); - String expected1 = "@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, null,"; // the line gets split - String expected2 = "@JoinColumn})"; - this.assertSourceDoesNotContain(expected1, cu); - this.assertSourceDoesNotContain(expected2, cu); - DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 4); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.newMarkerAnnotation(); - this.assertSourceContains(expected1, cu); - this.assertSourceContains(expected2, cu); - } - - public void testMoveAnnotation1() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID0\")"); - String expected = "@JoinColumns(columns = { null, @JoinColumn(name = \"ADDRESS_ID0\") })"; - this.assertSourceDoesNotContain(expected, cu); - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 0); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(1); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation2() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={null,@annot.JoinColumn(name=\"ADDRESS_ID1\")})"); - String expected = "@JoinColumn(name=\"ADDRESS_ID1\")"; - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - this.assertSourceDoesNotContain("JoinColumns", cu); - } - - public void testMoveAnnotation2a() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({null,@annot.JoinColumn(name=\"ADDRESS_ID1\")})"); - String expected = "@JoinColumn(name=\"ADDRESS_ID1\")"; - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 1); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - this.assertSourceDoesNotContain("JoinColumns", cu); - } - - public void testMoveAnnotation3() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\")})"); - String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"; - this.assertSourceDoesNotContain(expected, cu); - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 3); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation4() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID4\")})"); - String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), null, @annot.JoinColumn(name=\"ADDRESS_ID4\")})"; - this.assertSourceDoesNotContain(expected, cu); - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 3); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation5() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})"; - this.assertSourceDoesNotContain(expected, cu); - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 2); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(3); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation6() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), @annot.JoinColumn(name=\"ADDRESS_ID0\")})"; - this.assertSourceDoesNotContain(expected, cu); - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 0); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(3); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation7() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"; - this.assertSourceDoesNotContain(expected, cu); - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 3); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation8() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), null, @annot.JoinColumn(name=\"ADDRESS_ID4\")})"); - String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\"), null, @annot.JoinColumn(name=\"ADDRESS_ID4\")})"; - this.assertSourceDoesNotContain(expected, cu); - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 3); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation9() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - String expected = "@annot.JoinColumns(columns={null, @annot.JoinColumn(name=\"ADDRESS_ID1\"), @annot.JoinColumn(name=\"ADDRESS_ID2\")})"; - ICompilationUnit cu = this.createTestType(expected); // the source should be unchanged - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 0); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(3); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation10() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})"); - String expected = "@JoinColumn(name=\"ADDRESS_ID0\")"; - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 2); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(1); - this.assertSourceContains(expected, cu); - this.assertSourceDoesNotContain("@annot.JoinColumns", cu); - } - - public void testMoveAnnotation10a() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns({@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})"); - String expected = "@JoinColumn(name=\"ADDRESS_ID0\")"; - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "value", 2); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(1); - this.assertSourceContains(expected, cu); - this.assertSourceDoesNotContain("@annot.JoinColumns", cu); - } - - public void testMoveAnnotation11() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID0\")"); - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 1); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceDoesNotContain("JoinColumn", cu); - } - - public void testMoveAnnotation12() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})"); - String expected = "@JoinColumn(name=\"ADDRESS_ID2\")"; - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 2); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - this.assertSourceDoesNotContain("@annot.JoinColumns", cu); - } - - public void testMoveAnnotation13() throws Exception { - this.createAnnotationAndMembers("JoinColumn", "String name();"); - this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();"); - ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID0\"), @annot.JoinColumn(name=\"ADDRESS_ID1\"), null, @annot.JoinColumn(name=\"ADDRESS_ID3\")})"); - String expected = "@annot.JoinColumns(columns={@annot.JoinColumn(name=\"ADDRESS_ID3\"), @annot.JoinColumn(name=\"ADDRESS_ID1\")})"; - IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter( - "annot.JoinColumn", "annot.JoinColumns", "columns", 3); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), cidaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/DefaultAnnotationEditFormatterTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/DefaultAnnotationEditFormatterTests.java deleted file mode 100644 index 1237cc9bf1..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/DefaultAnnotationEditFormatterTests.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import org.eclipse.jpt.common.core.internal.utility.jdt.DefaultAnnotationEditFormatter; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; - -@SuppressWarnings("nls") -public class DefaultAnnotationEditFormatterTests extends AnnotationTestCase { - - - // ********** TestCase behavior ********** - - public DefaultAnnotationEditFormatterTests(String name) { - super(name); - } - - - // ********** tests ********** - - public void testCommaLength() throws Exception { - assertEquals(1, this.commaLength(",")); - assertEquals(1, this.commaLength(", ")); - assertEquals(1, this.commaLength(", ")); - - assertEquals(2, this.commaLength(" ,")); - assertEquals(2, this.commaLength(" , ")); - assertEquals(2, this.commaLength(" , ")); - - assertEquals(3, this.commaLength(" ,")); - assertEquals(3, this.commaLength(" , ")); - assertEquals(3, this.commaLength(" , ")); - - assertEquals(0, this.commaLength(" ,,,")); - assertEquals(0, this.commaLength(" ,,, ")); - assertEquals(0, this.commaLength(" , ,")); - - assertEquals(0, this.commaLength(" ,x")); - assertEquals(0, this.commaLength(" ,x ")); - assertEquals(0, this.commaLength(" , x")); - - assertEquals(0, this.commaLength("x ,")); - assertEquals(0, this.commaLength("x , ")); - assertEquals(0, this.commaLength("x , ")); - } - - private int commaLength(String s) { - Integer len = (Integer) ReflectionTools.executeMethod(DefaultAnnotationEditFormatter.instance(), "commaLength", String.class, s); - return len.intValue(); - } - - public void testStringIsAnnotation() throws Exception { - assertTrue(this.stringIsAnnotation("@F")); - assertTrue(this.stringIsAnnotation("@Foo")); - assertTrue(this.stringIsAnnotation("@org.bar.Foo")); - - assertFalse(this.stringIsAnnotation("")); - assertFalse(this.stringIsAnnotation("@")); - assertFalse(this.stringIsAnnotation("Foo")); - assertFalse(this.stringIsAnnotation("Foo@")); - } - - private boolean stringIsAnnotation(String s) { - Boolean b = (Boolean) ReflectionTools.executeMethod(DefaultAnnotationEditFormatter.instance(), "stringIsAnnotation", String.class, s); - return b.booleanValue(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/JptCommonCoreUtilityJdtTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/JptCommonCoreUtilityJdtTests.java deleted file mode 100644 index df288615f1..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/JptCommonCoreUtilityJdtTests.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import junit.framework.Test; -import junit.framework.TestSuite; - -public class JptCommonCoreUtilityJdtTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptCommonCoreUtilityJdtTests.class.getPackage().getName()); - suite.addTestSuite(CombinationIndexedDeclarationAnnotationAdapterTests.class); - suite.addTestSuite(DefaultAnnotationEditFormatterTests.class); - suite.addTestSuite(ASTToolsTests.class); - suite.addTestSuite(MemberAnnotationElementAdapterTests.class); - suite.addTestSuite(NestedDeclarationAnnotationAdapterTests.class); - suite.addTestSuite(NestedIndexedDeclarationAnnotationAdapterTests.class); - suite.addTestSuite(SimpleDeclarationAnnotationAdapterTests.class); - suite.addTestSuite(TypeTests.class); - return suite; - } - - private JptCommonCoreUtilityJdtTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java deleted file mode 100644 index 776da5f86a..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java +++ /dev/null @@ -1,1297 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import java.util.Arrays; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jpt.common.core.internal.utility.jdt.ASTNodeTextRange; -import org.eclipse.jpt.common.core.internal.utility.jdt.AnnotatedElementAnnotationElementAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.AnnotationStringArrayExpressionConverter; -import org.eclipse.jpt.common.core.internal.utility.jdt.BooleanExpressionConverter; -import org.eclipse.jpt.common.core.internal.utility.jdt.CharacterStringExpressionConverter; -import org.eclipse.jpt.common.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.EnumArrayDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.NestedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.NumberIntegerExpressionConverter; -import org.eclipse.jpt.common.core.internal.utility.jdt.PrimitiveTypeStringExpressionConverter; -import org.eclipse.jpt.common.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.SimpleTypeStringExpressionConverter; -import org.eclipse.jpt.common.core.internal.utility.jdt.StringExpressionConverter; -import org.eclipse.jpt.common.core.internal.utility.jdt.TypeStringExpressionConverter; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.common.core.utility.jdt.ExpressionConverter; - -@SuppressWarnings("nls") -public class MemberAnnotationElementAdapterTests extends AnnotationTestCase { - - public MemberAnnotationElementAdapterTests(String name) { - super(name); - } - - private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception { - this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }"); - } - - private void createEnum(String enumName, String enumBody) throws Exception { - this.createEnum("enums", enumName, enumBody); - } - - private void createEnum(String packageName, String enumName, String enumBody) throws Exception { - this.javaProject.createCompilationUnit(packageName, enumName + ".java", "public enum " + enumName + " { " + enumBody + " }"); - } - - public void testValue1() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=\"xxx\")"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("xxx", aea.getValue()); - } - - public void testValue2() throws Exception { - this.createAnnotationAndMembers("Foo", "int bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=48)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", NumberIntegerExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Integer.valueOf(48), aea.getValue()); - } - - public void testValue3() throws Exception { - this.createAnnotationAndMembers("Foo", "char bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar='c')"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", CharacterStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("c", aea.getValue()); - } - - public void testValue4() throws Exception { - this.createAnnotationAndMembers("Foo", "boolean bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=false)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", BooleanExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Boolean.FALSE, aea.getValue()); - } - - public void testValue5() throws Exception { - this.createAnnotationAndMembers("Baz", "boolean fred();"); - this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=false)))"); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa3, "fred", BooleanExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Boolean.FALSE, aea.getValue()); - } - - public void testValue6() throws Exception { - this.createAnnotationAndMembers("Foo", "boolean value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(false)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, BooleanExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Boolean.FALSE, aea.getValue()); - } - - public void testValueNull1() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueNull2() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - ICompilationUnit cu = this.createTestType(); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueNull3() throws Exception { - this.createAnnotationAndMembers("Baz", "String fred();"); - this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(jimmy=@annot.Baz))"); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa3, "fred"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueStringConcatenation() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=\"xxx\" + \"yyy\" + \"zzz\")"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("xxxyyyzzz", aea.getValue()); - } - - public void testValueStringConstant() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - // just a bit hacky: - ICompilationUnit cu = this.createTestType("private static final String FOO_BAR = \"xxx\"; @annot.Foo(bar=FOO_BAR + \"yyy\" + \"zzz\")"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("xxxyyyzzz", aea.getValue()); - } - - public void testValueNumberArithmetic() throws Exception { - this.createAnnotationAndMembers("Foo", "int bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=47 - 7 + 2 * 1 / 1)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forNumbers(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Integer.valueOf(42), aea.getValue()); - } - - public void testValueNumberShift() throws Exception { - this.createAnnotationAndMembers("Foo", "int bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=2 << 2)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forNumbers(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Integer.valueOf(8), aea.getValue()); - } - - public void testValueNumberConstant() throws Exception { - this.createAnnotationAndMembers("Foo", "int bar();"); - // just a bit hacky: - ICompilationUnit cu = this.createTestType("private static final int FOO_BAR = 77; @annot.Foo(bar=FOO_BAR)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forNumbers(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Integer.valueOf(77), aea.getValue()); - } - - public void testValueCharacterConstant() throws Exception { - this.createAnnotationAndMembers("Foo", "char bar();"); - // just a bit hacky: - ICompilationUnit cu = this.createTestType("private static final char FOO_BAR = 'Q'; @annot.Foo(bar=FOO_BAR)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forCharacters(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("Q", aea.getValue()); - } - - public void testValueCharacterCast() throws Exception { - this.createAnnotationAndMembers("Foo", "char bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=(char) 0x41)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forCharacters(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("A", aea.getValue()); - } - - public void testValueBooleanOperator1() throws Exception { - this.createAnnotationAndMembers("Foo", "boolean bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=7 > 2)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Boolean.TRUE, aea.getValue()); - } - - public void testValueBooleanOperator2() throws Exception { - this.createAnnotationAndMembers("Foo", "boolean bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=7 == 2)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Boolean.FALSE, aea.getValue()); - } - - public void testValueBooleanOperator3() throws Exception { - this.createAnnotationAndMembers("Foo", "boolean bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=(7 != 2) && false)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Boolean.FALSE, aea.getValue()); - } - - public void testValueBooleanOperator4() throws Exception { - this.createAnnotationAndMembers("Foo", "boolean bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=(7 != 2) ? false : true)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Boolean.FALSE, aea.getValue()); - } - - public void testValueInvalidValue1() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=77)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueInvalidValue2() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=bazzzz)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueInvalidValue3() throws Exception { - this.createAnnotationAndMembers("Foo", "boolean bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=bazzzz)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueInvalidValue4() throws Exception { - this.createAnnotationAndMembers("Foo", "char bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=\"bazzzz\")"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forCharacters(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueInvalidValue5() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=\"java.lang.Object\")"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", SimpleTypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueInvalidValue6() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=enums.TestEnum.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueInvalidValue7() throws Exception { - this.createAnnotationAndMembers("Baz", "boolean fred();"); - this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - String value = "\"false\""; - String element = "fred=" + value; - String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(" + element + ")))"; - ICompilationUnit cu = this.createTestType(annotation); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa3, "fred", BooleanExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueInvalidValue8() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar={true, false})"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {null, null}, aea.getValue())); - } - - public void testValueInvalidValue9() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=77)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {null}, aea.getValue())); - } - - public void testASTNode1() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - String value = "\"xxx\""; - String element = "bar=" + value; - String annotation = "@annot.Foo(" + element + ")"; - ICompilationUnit cu = this.createTestType(annotation); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - TextRange textRange = new ASTNodeTextRange(aea.getAstNode(this.buildASTRoot(cu))); - assertEquals(this.getSource(cu).indexOf(value), textRange.getOffset()); - assertEquals(value.length(), textRange.getLength()); - assertEquals(7, textRange.getLineNumber()); - } - - public void testASTNode2() throws Exception { - this.createAnnotationAndMembers("Baz", "boolean fred();"); - this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - String value = "false"; - String element = "fred=" + value; - String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(" + element + ")))"; - ICompilationUnit cu = this.createTestType(annotation); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa3, "fred", BooleanExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals(Boolean.FALSE, aea.getValue()); - TextRange textRange = new ASTNodeTextRange(aea.getAstNode(this.buildASTRoot(cu))); - assertEquals(value.length(), textRange.getLength()); - } - - public void testASTNode3() throws Exception { - this.createAnnotationAndMembers("Foo", "String value();"); - String element = "\"xxx\""; - String annotation = "@annot.Foo(" + element + ")"; - ICompilationUnit cu = this.createTestType(annotation); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - TextRange textRange = new ASTNodeTextRange(aea.getAstNode(this.buildASTRoot(cu))); - assertEquals(this.getSource(cu).indexOf(element), textRange.getOffset()); - assertEquals(element.length(), textRange.getLength()); - } - - public void testASTNode4() throws Exception { - this.createAnnotationAndMembers("Foo", "String value();"); - String annotation = "@annot.Foo"; - ICompilationUnit cu = this.createTestType(annotation); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - TextRange textRange = new ASTNodeTextRange(aea.getAstNode(this.buildASTRoot(cu))); - assertEquals(this.getSource(cu).indexOf(annotation), textRange.getOffset()); - assertEquals(annotation.length(), textRange.getLength()); - } - - public void testSetValue1() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - String annotation = "@annot.Foo(bar=\"xxx\")"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue(null); - this.assertSourceDoesNotContain("bar", cu); - } - - public void testSetValue2() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - String annotation = "@annot.Foo(bar=\"xxx\")"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue(null); - this.assertSourceDoesNotContain(annotation, cu); - this.assertSourceContains("@Foo", cu); - } - - public void testSetValue3() throws Exception { - this.createAnnotationAndMembers("Baz", "boolean fred();"); - this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=false)))"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa3, "fred", BooleanExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue(null); - this.assertSourceDoesNotContain(annotation, cu); - this.assertSourceDoesNotContain("fred", cu); - } - - public void testSetValue3a() throws Exception { - this.createAnnotationAndMembers("Baz", "boolean fred();"); - this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=false)))"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa3, "fred", BooleanExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue(null); - this.assertSourceDoesNotContain(annotation, cu); - this.assertSourceDoesNotContain("fred", cu); - this.assertSourceContains("@annot.Foo(@annot.Bar(jimmy=@Baz))", cu); - } - - public void testSetValue4() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - ICompilationUnit cu = this.createTestType(); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue("xxx"); - this.assertSourceContains("@Foo(bar = \"xxx\")", cu); - } - - public void testSetValue5() throws Exception { - this.createAnnotationAndMembers("Baz", "boolean fred();"); - this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - String annotation = "@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=false)))"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa3, "fred", BooleanExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue(Boolean.TRUE); - this.assertSourceDoesNotContain(annotation, cu); - this.assertSourceContains("@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=true)))", cu); - } - - public void testSetValue6() throws Exception { - this.createAnnotationAndMembers("Baz", "boolean fred();"); - this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - ICompilationUnit cu = this.createTestType(); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa3, "fred", BooleanExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue(Boolean.TRUE); - this.assertSourceContains("@Foo(@Bar(jimmy = @Baz(fred = true)))", cu); - } - - public void testSetValue7() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - String annotation = "@annot.Foo(bar=\"xxx\")"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue("yyy"); - this.assertSourceDoesNotContain(annotation, cu); - this.assertSourceContains("@annot.Foo(bar=\"yyy\")", cu); - } - - public void testSetValue8() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar();"); - String annotation = "@annot.Foo"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue("xxx"); - this.assertSourceContains("@Foo(bar = \"xxx\")", cu); - } - - public void testSetValue9() throws Exception { - this.createAnnotationAndMembers("Foo", "String value(); String bar();"); - String annotation = "@annot.Foo(\"zzz\")"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue("xxx"); - this.assertSourceDoesNotContain(annotation, cu); - this.assertSourceContains("@Foo(value = \"zzz\", bar = \"xxx\")", cu); - } - - public void testSetValue10() throws Exception { - this.createAnnotationAndMembers("Foo", "String bar(); String baz();"); - String annotation = "@annot.Foo(bar=\"xxx\")"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "baz"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue("yyy"); - this.assertSourceDoesNotContain(annotation, cu); - this.assertSourceContains("@annot.Foo(bar=\"xxx\", baz = \"yyy\")", cu); - } - - public void testSetValue11() throws Exception { - this.createAnnotationAndMembers("Baz", "int fred();"); - this.createAnnotationAndMembers("Bar", "annot.Baz[] jimmy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - String annotation = "@annot.Foo(@annot.Bar(jimmy={@annot.Baz(fred=0), @annot.Baz(fred=1), @annot.Baz(fred=2), @annot.Baz(fred=3)}))"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "jimmy", 2, "annot.Baz"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa3, "fred", NumberIntegerExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - assertEquals(Integer.valueOf(2), aea.getValue()); - aea.setValue(Integer.valueOf(48)); - this.assertSourceContains("@annot.Foo(@annot.Bar(jimmy={@annot.Baz(fred=0), @annot.Baz(fred=1), @annot.Baz(fred=48), @annot.Baz(fred=3)}))", cu); - } - - public void testSetValue12() throws Exception { - this.createAnnotationAndMembers("Foo", "String value();"); - String annotation = "@annot.Foo"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "value"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue("xxx"); - this.assertSourceContains("@Foo(\"xxx\")", cu); - } - - public void testSetValue13() throws Exception { - this.createAnnotationAndMembers("Foo", "String value();"); - String annotation = "@annot.Foo(\"zzz\")"; - ICompilationUnit cu = this.createTestType(annotation); - this.assertSourceContains(annotation, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "value"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - - aea.setValue("xxx"); - this.assertSourceDoesNotContain(annotation, cu); - this.assertSourceContains("@annot.Foo(\"xxx\")", cu); - } - - public void testSimpleTypeLiteral1() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=java.lang.Object.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", SimpleTypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("java.lang.Object", aea.getValue()); - } - - public void testSimpleTypeLiteral2() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType(); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", SimpleTypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue("java.lang.Object"); - this.assertSourceContains("@Foo(bar = java.lang.Object.class)", cu); - } - - public void testSimpleTypeLiteral3() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=int.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", SimpleTypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testSimpleTypeLiteral4() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=java.util.Map.Entry.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", SimpleTypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("java.util.Map.Entry", aea.getValue()); - } - - public void testPrimitiveTypeLiteral1() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=int.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", PrimitiveTypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("int", aea.getValue()); - } - - public void testPrimitiveTypeLiteral2() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType(); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", PrimitiveTypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue("int"); - this.assertSourceContains("@Foo(bar = int.class)", cu); - } - - public void testPrimitiveTypeLiteral3() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=java.lang.Object.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", PrimitiveTypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testPrimitiveTypeLiteral4() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=void.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", PrimitiveTypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("void", aea.getValue()); - } - - public void testTypeLiteral1() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=java.lang.Object.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", TypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("java.lang.Object", aea.getValue()); - } - - public void testTypeLiteral2() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType(); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", TypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue("java.lang.Object"); - this.assertSourceContains("@Foo(bar = java.lang.Object.class)", cu); - } - - public void testTypeLiteral3() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=java.util.Map.Entry.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", TypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("java.util.Map.Entry", aea.getValue()); - } - - public void testTypeLiteral14() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=int.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", TypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("int", aea.getValue()); - } - - public void testTypeLiteral5() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType(); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", TypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue("int"); - this.assertSourceContains("@Foo(bar = int.class)", cu); - } - - public void testTypeLiteral6() throws Exception { - this.createAnnotationAndMembers("Foo", "Class bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=void.class)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", TypeStringExpressionConverter.instance()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("void", aea.getValue()); - } - - public void testValueEnum1() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=enums.TestEnum.XXX)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("enums.TestEnum.XXX", aea.getValue()); - } - - public void testValueEnum2() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();"); - ICompilationUnit cu = this.createTestType("static enums.TestEnum.XXX", "@annot.Foo(bar=XXX)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("enums.TestEnum.XXX", aea.getValue()); - } - - public void testValueEnum3() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertNull(aea.getValue()); - } - - public void testValueEnum4() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();"); - ICompilationUnit cu = this.createTestType("enums.TestEnum", "@annot.Foo(bar=TestEnum.XXX)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertEquals("enums.TestEnum.XXX", aea.getValue()); - } - - public void testSetValueEnum1() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();"); - String expected = "@annot.Foo(bar=XXX)"; - ICompilationUnit cu = this.createTestType("static enums.TestEnum.XXX", expected); - this.assertSourceContains(expected, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue(null); - this.assertSourceDoesNotContain("bar", cu); - } - - public void testSetValueEnum2() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();"); - String expected = "@Foo(bar = XXX)"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue("enums.TestEnum.XXX"); - this.assertSourceContains("import static enums.TestEnum.XXX;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumImportCollision1() throws Exception { - this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ"); - this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums1.TestEnum bar1(); enums2.TestEnum bar2();"); - String expected = "@Foo(bar1 = XXX, bar2 = TestEnum.XXX)"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - aea1.setValue("enums1.TestEnum.XXX"); - - DeclarationAnnotationElementAdapter daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue("enums2.TestEnum.XXX"); - - this.assertSourceContains("import static enums1.TestEnum.XXX;", cu); - this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu); - this.assertSourceContains("import enums2.TestEnum;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumImportCollision2() throws Exception { - this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ"); - this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums1.TestEnum bar1(); enums2.TestEnum bar2();"); - String expected = "@annot.Foo(bar1=XXX, bar2 = TestEnum.XXX)"; - ICompilationUnit cu = this.createTestType("static enums1.TestEnum.*", "@annot.Foo(bar1=XXX)"); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - assertNotNull(aea1.getValue()); - - DeclarationAnnotationElementAdapter daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue("enums2.TestEnum.XXX"); - - this.assertSourceContains("import static enums1.TestEnum.*;", cu); - this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu); - this.assertSourceContains("import enums2.TestEnum;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumImportCollision3() throws Exception { - this.createEnum("TestEnum1", "XXX, YYY, ZZZ"); - this.createEnum("TestEnum2", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum1 bar1(); enums.TestEnum2 bar2();"); - String expected = "@Foo(bar1 = XXX, bar2 = TestEnum2.XXX)"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - aea1.setValue("enums.TestEnum1.XXX"); - - DeclarationAnnotationElementAdapter daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue("enums.TestEnum2.XXX"); - - this.assertSourceContains("import static enums.TestEnum1.XXX;", cu); - this.assertSourceContains("import enums.TestEnum2;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumImportCollision4() throws Exception { - this.createEnum("TestEnum1", "XXX, YYY, ZZZ"); - this.createEnum("TestEnum2", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum1 bar1(); enums.TestEnum2 bar2();"); - String expected = "@annot.Foo(bar1=XXX, bar2 = TestEnum2.XXX)"; - ICompilationUnit cu = this.createTestType("static enums.TestEnum1.*", "@annot.Foo(bar1=XXX)"); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - assertNotNull(aea1.getValue()); - - DeclarationAnnotationElementAdapter daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue("enums.TestEnum2.XXX"); - - this.assertSourceContains("import static enums.TestEnum1.*;", cu); - this.assertSourceContains("import enums.TestEnum2;", cu); - this.assertSourceContains(expected, cu); - } - - /** - * not sure this is exactly what we want... - * it would be nice if we just skip the static import; but it's a matter of taste... - */ - public void testSetValueEnumImportCollision5() throws Exception { - this.createEnum("TestEnum1", "XXX, YYY, ZZZ"); - this.createEnum("TestEnum2", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum1 bar1(); enums.TestEnum2 bar2();"); - String expected = "@Foo(bar1 = XXX, bar2 = TestEnum2.XXX)"; - ICompilationUnit cu = this.createTestType("enums.*", ""); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - aea1.setValue("enums.TestEnum1.XXX"); - - DeclarationAnnotationElementAdapter daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue("enums.TestEnum2.XXX"); - - this.assertSourceContains("import enums.*;", cu); - this.assertSourceContains("import static enums.TestEnum1.XXX;", cu); - this.assertSourceDoesNotContain("import enums.TestEnum2;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumImportCollision6() throws Exception { - this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ"); - this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ"); - this.createEnum("enums3", "TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums1.TestEnum bar1(); enums2.TestEnum bar2(); enums3.TestEnum bar3();"); - String expected = "@Foo(bar1 = XXX, bar2 = TestEnum.XXX, bar3 = enums3.TestEnum.XXX)"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - aea1.setValue("enums1.TestEnum.XXX"); - - DeclarationAnnotationElementAdapter daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue("enums2.TestEnum.XXX"); - - DeclarationAnnotationElementAdapter daea3 = new EnumDeclarationAnnotationElementAdapter(daa, "bar3"); - AnnotationElementAdapter aea3 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea3); - aea3.setValue("enums3.TestEnum.XXX"); - - this.assertSourceContains("import static enums1.TestEnum.XXX;", cu); - this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu); - this.assertSourceContains("import enums2.TestEnum;", cu); - this.assertSourceDoesNotContain("import static enums3", cu); - this.assertSourceDoesNotContain("import enums3", cu); - this.assertSourceContains(expected, cu); - } - - public void testValueStringArray() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar={\"string0\", \"string1\"})"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {"string0", "string1"}, aea.getValue())); - } - - public void testValueStringArrayConcatenation() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar={\"stri\" + \"ng0\", \"s\" + \"tring1\"})"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {"string0", "string1"}, aea.getValue())); - } - - public void testValueStringArrayEmpty() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar={})"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[0], aea.getValue())); - } - - public void testValueStringArraySingleElement() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=\"string0\")"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {"string0"}, aea.getValue())); - } - - public void testValueNullStringArray() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo()"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[0], aea.getValue())); - } - - public void testSetValueStringArray() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - String expected = "@Foo(bar = { \"string0\", \"string1\" })"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue(new String[] {"string0", "string1"}); - this.assertSourceContains(expected, cu); - } - - public void testSetValueStringArrayEmptyRemove() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - String expected = "@Foo"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue(new String[0]); - this.assertSourceDoesNotContain(expected, cu); - } - - public void testSetValueStringArrayEmpty() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - String expected = "@Foo(bar = {})"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - ExpressionConverter expressionConverter = new AnnotationStringArrayExpressionConverter(StringExpressionConverter.instance(), false); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", expressionConverter); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue(new String[0]); - this.assertSourceContains(expected, cu); - } - - public void testSetValueStringArraySingleElement() throws Exception { - this.createAnnotationAndMembers("Foo", "String[] bar();"); - String annotation = "@Foo(bar = \"string0\")"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(annotation, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new ConversionDeclarationAnnotationElementAdapter(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings()); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue(new String[] {"string0"}); - this.assertSourceContains(annotation, cu); - } - - public void testValueEnumArray() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar={enums.TestEnum.XXX, enums.TestEnum.YYY})"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {"enums.TestEnum.XXX", "enums.TestEnum.YYY"}, aea.getValue())); - } - - public void testValueEnumArrayInvalidEntry() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar={enums.TestEnum.XXX, 88})"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {"enums.TestEnum.XXX", null}, aea.getValue())); - } - - public void testValueEnumArrayEmpty() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar={})"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[0], aea.getValue())); - } - - public void testValueEnumArraySingleElement() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=enums.TestEnum.XXX)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {"enums.TestEnum.XXX"}, aea.getValue())); - } - - public void testValueEnumArraySingleElementInvalid() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(bar=\"\")"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[] {null}, aea.getValue())); - } - - public void testValueNullEnumArray() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - ICompilationUnit cu = this.createTestType("@annot.Foo()"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - assertTrue(Arrays.equals(new String[0], aea.getValue())); - } - - public void testSetValueEnumArray() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - String expected = "@Foo(bar = { XXX, YYY })"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue(new String[] {"enums.TestEnum.XXX", "enums.TestEnum.YYY"}); - this.assertSourceContains("import static enums.TestEnum.XXX;", cu); - this.assertSourceContains("import static enums.TestEnum.YYY;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumArrayEmptyRemove() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - String expected = "@Foo"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue(new String[0]); - this.assertSourceDoesNotContain(expected, cu); - } - - public void testSetValueEnumArrayEmpty() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - String expected = "@Foo(bar = {})"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar", false); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue(new String[0]); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumArraySingleElement() throws Exception { - this.createEnum("TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();"); - String expected = "@Foo(bar = XXX)"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationElementAdapter daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar"); - AnnotationElementAdapter aea = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea); - aea.setValue(new String[] {"enums.TestEnum.XXX"}); - this.assertSourceContains("import static enums.TestEnum.XXX;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumArrayImportCollision1() throws Exception { - this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ"); - this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums1.TestEnum[] bar1(); enums2.TestEnum[] bar2();"); - String expected = "@Foo(bar1 = { XXX, YYY }, bar2 = { TestEnum.XXX, TestEnum.YYY })"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - aea1.setValue(new String[] {"enums1.TestEnum.XXX", "enums1.TestEnum.YYY"}); - - DeclarationAnnotationElementAdapter daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue(new String[] {"enums2.TestEnum.XXX", "enums2.TestEnum.YYY"}); - - this.assertSourceContains("import static enums1.TestEnum.XXX;", cu); - this.assertSourceContains("import static enums1.TestEnum.YYY;", cu); - this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu); - this.assertSourceDoesNotContain("import static enums2.TestEnum.YYY;", cu); - this.assertSourceContains("import enums2.TestEnum;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumArrayImportCollision2() throws Exception { - this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ"); - this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums1.TestEnum[] bar1(); enums2.TestEnum[] bar2();"); - String expected = "@annot.Foo(bar1={XXX,YYY}, bar2 = { TestEnum.XXX, TestEnum.YYY })"; - ICompilationUnit cu = this.createTestType("static enums1.TestEnum.*", "@annot.Foo(bar1={XXX,YYY})"); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - assertNotNull(aea1.getValue()); - - DeclarationAnnotationElementAdapter daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue(new String[] {"enums2.TestEnum.XXX", "enums2.TestEnum.YYY"}); - - this.assertSourceContains("import static enums1.TestEnum.*;", cu); - this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu); - this.assertSourceDoesNotContain("import static enums2.TestEnum.YYY;", cu); - this.assertSourceContains("import enums2.TestEnum;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumArrayImportCollision3() throws Exception { - this.createEnum("TestEnum1", "XXX, YYY, ZZZ"); - this.createEnum("TestEnum2", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum1[] bar1(); enums.TestEnum2[] bar2();"); - String expected = "@Foo(bar1 = { XXX, YYY }, bar2 = { TestEnum2.XXX, TestEnum2.YYY })"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - aea1.setValue(new String[] {"enums.TestEnum1.XXX", "enums.TestEnum1.YYY"}); - - DeclarationAnnotationElementAdapter daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue(new String[] {"enums.TestEnum2.XXX", "enums.TestEnum2.YYY"}); - - this.assertSourceContains("import static enums.TestEnum1.XXX;", cu); - this.assertSourceContains("import static enums.TestEnum1.YYY;", cu); - this.assertSourceDoesNotContain("import static enums.TestEnum2.XXX;", cu); - this.assertSourceDoesNotContain("import static enums.TestEnum2.YYY;", cu); - this.assertSourceContains("import enums.TestEnum2;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumArrayImportCollision4() throws Exception { - this.createEnum("TestEnum1", "XXX, YYY, ZZZ"); - this.createEnum("TestEnum2", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums.TestEnum1[] bar1(); enums.TestEnum2[] bar2();"); - String expected = "@annot.Foo(bar1={XXX,YYY}, bar2 = { TestEnum2.XXX, TestEnum2.YYY })"; - ICompilationUnit cu = this.createTestType("static enums.TestEnum1.*", "@annot.Foo(bar1={XXX,YYY})"); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - assertNotNull(aea1.getValue()); - - DeclarationAnnotationElementAdapter daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue(new String[] {"enums.TestEnum2.XXX", "enums.TestEnum2.YYY"}); - - this.assertSourceContains("import static enums.TestEnum1.*;", cu); - this.assertSourceDoesNotContain("import static enums.TestEnum2.XXX;", cu); - this.assertSourceDoesNotContain("import static enums.TestEnum2.YYY;", cu); - this.assertSourceContains("import enums.TestEnum2;", cu); - this.assertSourceContains(expected, cu); - } - - public void testSetValueEnumArrayImportCollision6() throws Exception { - this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ"); - this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ"); - this.createEnum("enums3", "TestEnum", "XXX, YYY, ZZZ"); - this.createAnnotationAndMembers("Foo", "enums1.TestEnum[] bar1(); enums2.TestEnum[] bar2(); enums3.TestEnum[] bar3();"); - String expected = "@Foo(bar1 = { XXX, YYY }, bar2 = { TestEnum.XXX, TestEnum.YYY }, bar3 = { enums3.TestEnum.XXX, enums3.TestEnum.YYY })"; - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - DeclarationAnnotationElementAdapter daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1"); - AnnotationElementAdapter aea1 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea1); - aea1.setValue(new String[] {"enums1.TestEnum.XXX", "enums1.TestEnum.YYY"}); - - DeclarationAnnotationElementAdapter daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2"); - AnnotationElementAdapter aea2 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea2); - aea2.setValue(new String[] {"enums2.TestEnum.XXX", "enums2.TestEnum.YYY"}); - - DeclarationAnnotationElementAdapter daea3 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar3"); - AnnotationElementAdapter aea3 = new AnnotatedElementAnnotationElementAdapter(this.idField(cu), daea3); - aea3.setValue(new String[] {"enums3.TestEnum.XXX", "enums3.TestEnum.YYY"}); - - this.assertSourceContains("import static enums1.TestEnum.XXX;", cu); - this.assertSourceContains("import static enums1.TestEnum.YYY;", cu); - this.assertSourceDoesNotContain("import static enums2", cu); - this.assertSourceContains("import enums2.TestEnum;", cu); - this.assertSourceDoesNotContain("import static enums3", cu); - this.assertSourceDoesNotContain("import enums3", cu); - this.assertSourceContains(expected, cu); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MiscTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MiscTests.java deleted file mode 100644 index 77ef53aa9b..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/MiscTests.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import org.eclipse.jdt.core.IField; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.Signature; - -@SuppressWarnings("nls") -public class MiscTests extends AnnotationTestCase { - - public MiscTests(String name) { - super(name); - } - - /* - * Signature.toString(...) returns a dot-qualified name for member types - */ - public void testSignature() throws Exception { - IType hashTableType = this.getJavaProject().getJavaProject().findType("java.util.Hashtable"); - IField tableField = hashTableType.getField("table"); - String tableFieldTypeSignature = tableField.getTypeSignature(); - String tableFieldTypeName = Signature.toString(tableFieldTypeSignature); - assertEquals(tableFieldTypeName, "java.util.Hashtable.Entry[]"); - } - - /* - * IType.getFullyQualifiedName() returns a dollar-qualified name for member types - * (but the lookup on IJavaProject takes a dot-qualified name!) - */ - public void testITypeName() throws Exception { - IType hashTableEntryType = this.getJavaProject().getJavaProject().findType("java.util.Hashtable.Entry"); - assertEquals(hashTableEntryType.getFullyQualifiedName(), "java.util.Hashtable$Entry"); - } - - public void testITypeParameterizedName() throws Exception { - IType mapType = this.getJavaProject().getJavaProject().findType("java.util.Map"); - assertEquals(mapType.getFullyQualifiedParameterizedName(), "java.util.Map"); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/NestedDeclarationAnnotationAdapterTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/NestedDeclarationAnnotationAdapterTests.java deleted file mode 100644 index f92e2d832f..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/NestedDeclarationAnnotationAdapterTests.java +++ /dev/null @@ -1,763 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jdt.core.dom.StringLiteral; -import org.eclipse.jpt.common.core.internal.utility.jdt.ElementAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.NestedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.Member; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -@SuppressWarnings("nls") -public class NestedDeclarationAnnotationAdapterTests extends AnnotationTestCase { - - public NestedDeclarationAnnotationAdapterTests(String name) { - super(name); - } - - private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception { - this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }"); - } - - public void testAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotation=@annot.Bar)"); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("annot.Bar", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isMarkerAnnotation()); - } - - public void testAnnotation2() throws Exception { - this.createAnnotationAndMembers("Baz", "String value();"); - this.createAnnotationAndMembers("Bar", "annot.Baz yana();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotation=@annot.Bar(yana=@annot.Baz))"); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "nestedAnnotation", "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "yana", "annot.Baz"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa3); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("annot.Baz", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isMarkerAnnotation()); - } - - public void testAnnotationNull1() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo()"); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotationNull2() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType(); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotationNull3() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "String nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotation=\"annot.Bar\")"); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotationNull4() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Bar2", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar2 nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotation=@annot.Bar2)"); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testRemoveAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - String na = "@annot.Foo(nestedAnnotation=@annot.Bar)"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceDoesNotContain("nestedAnnotation", cu); - } - - public void testRemoveAnnotation1a() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - String na = "@annot.Foo(nestedAnnotation=@annot.Bar)"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains("Foo", cu); - } - - public void testRemoveAnnotation2() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain("Foo", cu); - } - - public void testRemoveAnnotation3() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "String nestedAnnotation();"); - String na = "@annot.Foo(nestedAnnotation=\"annot.Bar\")"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(na, cu); - } - - public void testRemoveAnnotation4() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Bar2", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar2 nestedAnnotation();"); - String na = "@annot.Foo(nestedAnnotation=@annot.Bar2)"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(na, cu); - } - - public void testRemoveAnnotation5() throws Exception { - this.createAnnotationAndMembers("Baz", "String value();"); - this.createAnnotationAndMembers("Bar", "annot.Baz nestedAnnotation2();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation1();"); - String na = "@annot.Foo(nestedAnnotation1=@annot.Bar(nestedAnnotation2=@annot.Baz))"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daaFoo = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daaBar = new NestedDeclarationAnnotationAdapter(daaFoo, "nestedAnnotation1", "annot.Bar"); - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(daaBar, "nestedAnnotation2", "annot.Baz"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceDoesNotContain("Baz", cu); - } - - public void testRemoveAnnotation5a() throws Exception { - this.createAnnotationAndMembers("Baz", "String value();"); - this.createAnnotationAndMembers("Bar", "annot.Baz nestedAnnotation2();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation1();"); - String na = "@annot.Foo(nestedAnnotation1=@annot.Bar(nestedAnnotation2=@annot.Baz))"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daaFoo = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daaBar = new NestedDeclarationAnnotationAdapter(daaFoo, "nestedAnnotation1", "annot.Bar"); - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(daaBar, "nestedAnnotation2", "annot.Baz"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains("@annot.Foo(nestedAnnotation1=@Bar)", cu); - } - - public void testNewMarkerAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@Foo(nestedAnnotation = @Bar)", cu); - } - - public void testNewMarkerAnnotation2() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@Foo(@Bar)", cu); - } - - public void testNewMarkerAnnotation3() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(nestedAnnotation = @Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation4() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(@Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation5() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation(); String value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@Foo(value = \"something\", nestedAnnotation = @Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation6() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "Object value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@annot.Foo(@Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation7() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", nestedAnnotation = @Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation8() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", value = @Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewSingleMemberAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation1(declaration); - } - }); - this.assertSourceContains("@Foo(nestedAnnotation = @Bar(\"test string literal\"))", cu); - } - - void editNewSingleMemberAnnotation1(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - StringLiteral stringLiteral = annotation.getAST().newStringLiteral(); - stringLiteral.setLiteralValue("test string literal"); - annotation.setValue(stringLiteral); - } - - public void testNewSingleMemberAnnotation2() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation2(declaration); - } - }); - this.assertSourceContains("@Foo(@Bar(\"test string literal\"))", cu); - } - - void editNewSingleMemberAnnotation2(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - StringLiteral stringLiteral = annotation.getAST().newStringLiteral(); - stringLiteral.setLiteralValue("test string literal"); - annotation.setValue(stringLiteral); - } - - public void testNewSingleMemberAnnotation3() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(nestedAnnotation = @Bar(\"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation3(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation3(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - StringLiteral stringLiteral = annotation.getAST().newStringLiteral(); - stringLiteral.setLiteralValue("test string literal"); - annotation.setValue(stringLiteral); - } - - public void testNewSingleMemberAnnotation4() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(@Bar(\"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation4(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation4(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - StringLiteral stringLiteral = annotation.getAST().newStringLiteral(); - stringLiteral.setLiteralValue("test string literal"); - annotation.setValue(stringLiteral); - } - - public void testNewSingleMemberAnnotation5() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation(); String value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@Foo(value = \"something\", nestedAnnotation = @Bar(\"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation5(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation5(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - StringLiteral stringLiteral = annotation.getAST().newStringLiteral(); - stringLiteral.setLiteralValue("test string literal"); - annotation.setValue(stringLiteral); - } - - public void testNewSingleMemberAnnotation6() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "Object value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@annot.Foo(@Bar(\"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation6(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation6(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - StringLiteral stringLiteral = annotation.getAST().newStringLiteral(); - stringLiteral.setLiteralValue("test string literal"); - annotation.setValue(stringLiteral); - } - - public void testNewSingleMemberAnnotation7() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation(); String xxx();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", nestedAnnotation = @Bar(\"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation7(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation7(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - StringLiteral stringLiteral = annotation.getAST().newStringLiteral(); - stringLiteral.setLiteralValue("test string literal"); - annotation.setValue(stringLiteral); - } - - public void testNewSingleMemberAnnotation8() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value(); String xxx();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", value = @Bar(\"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation8(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation8(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - StringLiteral stringLiteral = annotation.getAST().newStringLiteral(); - stringLiteral.setLiteralValue("test string literal"); - annotation.setValue(stringLiteral); - } - - public void testNewNormalAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "String yyy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation1(declaration); - } - }); - this.assertSourceContains("@Foo(nestedAnnotation = @Bar(yyy = \"test string literal\"))", cu); - } - - void editNewNormalAnnotation1(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "yyy", "test string literal"); - } - - public void testNewNormalAnnotation2() throws Exception { - this.createAnnotationAndMembers("Bar", "String yyy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation2(declaration); - } - }); - this.assertSourceContains("@Foo(@Bar(yyy = \"test string literal\"))", cu); - } - - void editNewNormalAnnotation2(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "yyy", "test string literal"); - } - - public void testNewNormalAnnotation3() throws Exception { - this.createAnnotationAndMembers("Bar", "String yyy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(nestedAnnotation = @Bar(yyy = \"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation3(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation3(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "yyy", "test string literal"); - } - - public void testNewNormalAnnotation4() throws Exception { - this.createAnnotationAndMembers("Bar", "String yyy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(@Bar(yyy = \"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation4(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation4(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "yyy", "test string literal"); - } - - public void testNewNormalAnnotation5() throws Exception { - this.createAnnotationAndMembers("Bar", "String yyy();"); - this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation(); String value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@Foo(value = \"something\", nestedAnnotation = @Bar(yyy = \"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation5(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation5(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "yyy", "test string literal"); - } - - public void testNewNormalAnnotation6() throws Exception { - this.createAnnotationAndMembers("Bar", "String yyy();"); - this.createAnnotationAndMembers("Foo", "Object value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@annot.Foo(@Bar(yyy = \"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation6(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation6(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "yyy", "test string literal"); - } - - public void testNewNormalAnnotation7() throws Exception { - this.createAnnotationAndMembers("Bar", "String yyy();"); - this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar nestedAnnotation();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", nestedAnnotation = @Bar(yyy = \"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation7(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation7(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "yyy", "test string literal"); - } - - public void testNewNormalAnnotation8() throws Exception { - this.createAnnotationAndMembers("Bar", "String yyy();"); - this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", value = @Bar(yyy = \"test string literal\"))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation8(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation8(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "yyy", "test string literal"); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapterTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapterTests.java deleted file mode 100644 index ae4f0f9788..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapterTests.java +++ /dev/null @@ -1,2229 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.NumberLiteral; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.common.core.internal.utility.jdt.ElementAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.ElementIndexedAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.Member; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -@SuppressWarnings("nls") -public class NestedIndexedDeclarationAnnotationAdapterTests extends AnnotationTestCase { - - public NestedIndexedDeclarationAnnotationAdapterTests(String name) { - super(name); - } - - private void createAnnotation(String annotationName) throws Exception { - this.createAnnotationAndMembers(annotationName, ""); - } - - private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception { - this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }"); - } - - public void testAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={@annot.Bar, @annot.Bar(\"two\")})"); - // 0 - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - CompilationUnit astRoot = this.buildASTRoot(cu); - Annotation annotation = aa.getAnnotation(astRoot); - assertNotNull(annotation); - assertEquals("annot.Bar", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isMarkerAnnotation()); - - // 1 - daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 1, "annot.Bar"); - aa = new ElementAnnotationAdapter(this.idField(cu), daa); - annotation = aa.getAnnotation(astRoot); - assertNotNull(annotation); - assertEquals("annot.Bar", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isSingleMemberAnnotation()); - } - - public void testAnnotation2() throws Exception { - this.createAnnotation("Baz"); - this.createAnnotationAndMembers("Bar", "annot.Baz[] yana();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(yana=@annot.Baz))"); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "yana", 0, "annot.Baz"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa3); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("annot.Baz", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isMarkerAnnotation()); - } - - public void testAnnotation3() throws Exception { - this.createAnnotation("Baz"); - this.createAnnotationAndMembers("Bar", "annot.Baz[] yana();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(yana={@annot.Baz}))"); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "yana", 0, "annot.Baz"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa3); - CompilationUnit astRoot = this.buildASTRoot(cu); - Annotation annotation = aa.getAnnotation(astRoot); - assertNotNull(annotation); - assertEquals("annot.Baz", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isMarkerAnnotation()); - - // name mismatch - daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "yana", 0, "annot.Xyz"); - aa = new ElementAnnotationAdapter(this.idField(cu), daa3); - annotation = aa.getAnnotation(astRoot); - assertNull(annotation); - } - - public void testAnnotationNull1() throws Exception { - this.createAnnotation("Bar"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo()"); - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotationNull2() throws Exception { - this.createAnnotation("Bar"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType(); - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotationNull3() throws Exception { - this.createAnnotation("Bar"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=\"annot.Bar\")"); - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotationNull4() throws Exception { - this.createAnnotation("NotBar"); - this.createAnnotation("Bar"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)"); - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotationNull5() throws Exception { - this.createAnnotationAndMembers("Bar", "String value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={@annot.Bar, @annot.Bar(\"two\")})"); - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 2, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotationNull6() throws Exception { - this.createAnnotation("Xyz"); - this.createAnnotation("Baz"); - this.createAnnotationAndMembers("Bar", "annot.Baz[] yana();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(yana={@annot.Baz}))"); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("Foo"); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar"); - DeclarationAnnotationAdapter daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "yana", 0, "annot.Xyz"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa3); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testRemoveAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), @annot.Bar(1)})"; - String expected = "@annot.Foo(nestedAnnotations={null, @annot.Bar(1)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation2() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain("Foo", cu); - } - - public void testRemoveAnnotation3() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations={\"annot.Bar1\", \"annot.Bar2\", \"annot.Bar3\"})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(na, cu); - } - - public void testRemoveAnnotation4() throws Exception { - this.createAnnotationAndMembers("NotBar", "int value();"); - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.NotBar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations={@annot.NotBar(0), @annot.NotBar(1)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(na, cu); - } - - public void testRemoveAnnotation5() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations=@annot.Bar)"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - assertNull(aa.getAnnotation(this.buildASTRoot(cu))); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceDoesNotContain("nestedAnnotations", cu); - } - - public void testRemoveAnnotation5a() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations=@annot.Bar)"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertTrue(aa1.getAnnotation(this.buildASTRoot(cu)).isMarkerAnnotation()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains("import annot.Foo;", cu); - this.assertSourceContains("@Foo", cu); - } - - public void testRemoveAnnotation6() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations=\"annot.Bar\")"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(na, cu); - } - - public void testRemoveAnnotation7() throws Exception { - this.createAnnotationAndMembers("NotBar", "int value();"); - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.NotBar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations=@annot.NotBar)"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.removeAnnotation(); - this.assertSourceContains(na, cu); - } - - public void testRemoveAnnotation8() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), @annot.Bar(1), @annot.Bar(2), @annot.Bar(3)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - CompilationUnit astRoot = this.buildASTRoot(cu); - Annotation annotation = aa2.getAnnotation(astRoot); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertTrue(aa1.getAnnotation(astRoot).isNormalAnnotation()); - assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "nestedAnnotations").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.Bar(0), @annot.Bar(1), null, @annot.Bar(3)})", cu); - } - - public void testRemoveAnnotation9() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - String na = "@annot.Foo({@annot.Bar(0), @annot.Bar(1), @annot.Bar(2), @annot.Bar(3)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - CompilationUnit astRoot = this.buildASTRoot(cu); - Annotation annotation = aa2.getAnnotation(astRoot); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertTrue(aa1.getAnnotation(astRoot).isSingleMemberAnnotation()); - assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "value").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains("@annot.Foo({@annot.Bar(0), @annot.Bar(1), null, @annot.Bar(3)})", cu); - } - - public void testRemoveAnnotation10() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - String na = "@annot.Foo({@annot.Bar(0), @annot.Bar(1)})"; - String expected = "@annot.Foo({null, @annot.Bar(1)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 0, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa2.removeAnnotation(); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation11() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - String na = "@annot.Foo({@annot.Bar(0), @annot.Bar(1)})"; - String expected = "@annot.Foo(@annot.Bar(0))"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 1, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "value").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation12() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - String na = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2)})"; - String expected = "@annot.Foo(@annot.Bar(0))"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "value").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation13() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - String na = "@annot.Foo({null, @annot.Bar(1)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 1, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa2.removeAnnotation(); - this.assertSourceDoesNotContain("Bar", cu); - } - - public void testRemoveAnnotation14() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - String na = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2), null})"; - String expected = "@annot.Foo(@annot.Bar(0))"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "value").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation15() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - String na = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2), @annot.Bar(3)})"; - String expected = "@annot.Foo({@annot.Bar(0), null, null, @annot.Bar(3)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - CompilationUnit astRoot = this.buildASTRoot(cu); - Annotation annotation = aa2.getAnnotation(astRoot); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "value").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation16() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - String na = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2), @annot.Bar(3)})"; - String expected = "@annot.Foo({@annot.Bar(0), null, @annot.Bar(2)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 3, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - CompilationUnit astRoot = this.buildASTRoot(cu); - Annotation annotation = aa2.getAnnotation(astRoot); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "value").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation17() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2)})"; - String expected = "@annot.Foo(nestedAnnotations=@annot.Bar(0))"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "nestedAnnotations").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation18() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations={null, @annot.Bar(1)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 1, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa2.removeAnnotation(); - this.assertSourceDoesNotContain("nestedAnnotations", cu); - } - - public void testRemoveAnnotation19() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2), null})"; - String expected = "@annot.Foo(nestedAnnotations=@annot.Bar(0))"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "nestedAnnotations").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation20() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2), @annot.Bar(3)})"; - String expected = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, null, @annot.Bar(3)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - CompilationUnit astRoot = this.buildASTRoot(cu); - Annotation annotation = aa2.getAnnotation(astRoot); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "nestedAnnotations").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testRemoveAnnotation21() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - String na = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2), @annot.Bar(3)})"; - String expected = "@annot.Foo(nestedAnnotations={@annot.Bar(0), null, @annot.Bar(2)})"; - ICompilationUnit cu = this.createTestType(na); - this.assertSourceDoesNotContain(expected, cu); - this.assertSourceContains(na, cu); - - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 3, "annot.Bar"); - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - CompilationUnit astRoot = this.buildASTRoot(cu); - Annotation annotation = aa2.getAnnotation(astRoot); - assertNotNull(annotation); - - aa2.removeAnnotation(); - assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "nestedAnnotations").getNodeType()); - this.assertSourceDoesNotContain(na, cu); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@Foo(nestedAnnotations = @Bar)", cu); - } - - public void testNewMarkerAnnotation2() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("Foo", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@Foo(@Bar)", cu); - } - - public void testNewMarkerAnnotation3() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(nestedAnnotations = @Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation4() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(@Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation5() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@Foo(value = \"something\", nestedAnnotations = @Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation6() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@annot.Foo(@Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation7() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", nestedAnnotations = @Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation8() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", value = @Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation9() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType(); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - assertNull(aa.getAnnotation(this.buildASTRoot(cu))); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@Foo(nestedAnnotations = { null, null, null, null, null, @Bar })", cu); - } - - public void testNewMarkerAnnotation10() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected1 = "@Foo(value = \"something\", nestedAnnotations = { null, null, null, null,"; - String expected2 = "null, @Bar })"; - this.assertSourceDoesNotContain("Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected1, cu); - this.assertSourceContains(expected2, cu); - } - - public void testNewMarkerAnnotation11() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})"); - String expected = "@annot.Foo({@Bar, \"two\"})"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation12() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})"); - this.assertSourceDoesNotContain("Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("Bar})", cu); // split line - } - - public void testNewMarkerAnnotation13() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(7)"); - String expected = "@annot.Foo(@Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation14() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(7)"); - this.assertSourceDoesNotContain("Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@annot.Foo({7,null,null,null,null,@Bar})", cu); - } - - public void testNewMarkerAnnotation15() throws Exception { - this.createAnnotationAndMembers("NotBar", "int value();"); - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.NotBar)"); - String expected = "@annot.Foo(@Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation16() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(55))"); - String expected = "@annot.Foo({@annot.Bar(55),@Bar})"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation17() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})"); - String expected = "@annot.Foo(nestedAnnotations={@Bar})"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation18() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})"); - this.assertSourceDoesNotContain("Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("Bar})", cu); // split line - } - - public void testNewMarkerAnnotation19() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=\"something\")"); - String expected = "@annot.Foo(nestedAnnotations=@Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation20() throws Exception { - this.createAnnotationAndMembers("NotBar", "int value();"); - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)"); - String expected = "@annot.Foo(nestedAnnotations=@Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation21() throws Exception { - this.createAnnotationAndMembers("NotBar", "int value();"); - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)"); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.NotBar,null,null,null,null,@Bar})", cu); - } - - public void testNewMarkerAnnotation22() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(88))"); - String expected = "@annot.Foo(nestedAnnotations=@Bar)"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation23() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(88))"); - String expected = "@annot.Foo(nestedAnnotations={@annot.Bar(88),null,@Bar})"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 2, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation24() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(88))"); - String expected = "@annot.Foo({@annot.Bar(88),null,@Bar})"; - this.assertSourceDoesNotContain(expected, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.newMarkerAnnotation(); - this.assertSourceContains(expected, cu); - } - - public void testNewMarkerAnnotation25() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={@annot.Bar(88), @annot.Bar(77)})"); - String expected1 = "@annot.Foo(nestedAnnotations={@annot.Bar(88), @annot.Bar(77), null, null,"; // the line gets split - String expected2 = "@Bar})"; - this.assertSourceDoesNotContain(expected1, cu); - this.assertSourceDoesNotContain(expected2, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 4, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.newMarkerAnnotation(); - this.assertSourceContains(expected1, cu); - this.assertSourceContains(expected2, cu); - } - - public void testNewMarkerAnnotation26() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(88), @annot.Bar(77)})"); - String expected1 = "@annot.Foo({@annot.Bar(88), @annot.Bar(77), null, null,"; // the line gets split - String expected2 = "@Bar})"; - this.assertSourceDoesNotContain(expected1, cu); - this.assertSourceDoesNotContain(expected2, cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 4, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - aa.newMarkerAnnotation(); - this.assertSourceContains(expected1, cu); - this.assertSourceContains(expected2, cu); - } - - public void testNewSingleMemberAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("@Foo", cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation1(declaration); - } - }); - this.assertSourceContains("@Foo(nestedAnnotations = @Bar(88))", cu); - } - - void editNewSingleMemberAnnotation1(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation2() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("@Foo", cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation2(declaration); - } - }); - this.assertSourceContains("@Foo(@Bar(88))", cu); - } - - void editNewSingleMemberAnnotation2(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation3() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(nestedAnnotations = @Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation3(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation3(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation4() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(@Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation4(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation4(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation5() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@Foo(value = \"something\", nestedAnnotations = @Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation5(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation5(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation6() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@annot.Foo(@Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation6(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation6(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation7() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", nestedAnnotations = @Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation7(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation7(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation8() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", value = @Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation8(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation8(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation9() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newSingleMemberAnnotation(); - this.assertSourceContains("@Foo(nestedAnnotations = { null, null, null, null, null, @Bar(MISSING) })", cu); // ??? - } - - public void testNewSingleMemberAnnotation10() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected1 = "@Foo(value = \"something\", nestedAnnotations = { null, null, null, null,"; - String expected2 = "null, @Bar(MISSING) })"; // ??? - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newSingleMemberAnnotation(); - this.assertSourceContains(expected1, cu); - this.assertSourceContains(expected2, cu); - } - - public void testNewSingleMemberAnnotation11() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})"); - String expected = "@annot.Foo({@Bar(88), \"two\"})"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation11(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation11(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation12() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})"); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newSingleMemberAnnotation(); - this.assertSourceContains("@Bar(MISSING)})", cu); // split line - } - - public void testNewSingleMemberAnnotation13() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(7)"); - String expected = "@annot.Foo(@Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation13(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation13(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation14() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(7)"); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newSingleMemberAnnotation(); - this.assertSourceContains("@annot.Foo({7,null,null,null,null,@Bar(MISSING)})", cu); - } - - public void testNewSingleMemberAnnotation15() throws Exception { - this.createAnnotationAndMembers("NotBar", "int value();"); - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.NotBar)"); - String expected = "@annot.Foo(@Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation15(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation15(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation16() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(55))"); - String expected = "@annot.Foo({@annot.Bar(55),@Bar(88)})"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation16(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation16(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation17() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})"); - String expected = "@annot.Foo(nestedAnnotations={@Bar(88)})"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation17(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation17(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation18() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})"); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newSingleMemberAnnotation(); - this.assertSourceContains("@Bar(MISSING)})", cu); // ??? - } - - public void testNewSingleMemberAnnotation19() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=\"something\")"); - String expected = "@annot.Foo(nestedAnnotations=@Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation19(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation19(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation20() throws Exception { - this.createAnnotationAndMembers("NotBar", "int value();"); - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)"); - String expected = "@annot.Foo(nestedAnnotations=@Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation20(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation20(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewSingleMemberAnnotation21() throws Exception { - this.createAnnotationAndMembers("NotBar", "int value();"); - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)"); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newSingleMemberAnnotation(); - this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.NotBar,null,null,null,null,@Bar(MISSING)})", cu); - } - - public void testNewSingleMemberAnnotation22() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(77))"); - String expected = "@annot.Foo(nestedAnnotations=@Bar(88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation22(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewSingleMemberAnnotation22(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - SingleMemberAnnotation annotation = daa.newSingleMemberAnnotation(declaration); - NumberLiteral numberLiteral = annotation.getAST().newNumberLiteral(); - numberLiteral.setToken("88"); - annotation.setValue(numberLiteral); - } - - public void testNewNormalAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("@Foo", cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation1(declaration); - } - }); - this.assertSourceContains("@Foo(nestedAnnotations = @Bar(xxx = 88))", cu); - } - - void editNewNormalAnnotation1(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation2() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("@Foo", cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation2(declaration); - } - }); - this.assertSourceContains("@Foo(@Bar(xxx = 88))", cu); - } - - void editNewNormalAnnotation2(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation3() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(nestedAnnotations = @Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation3(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation3(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation4() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - String expected = "@Foo(@Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation4(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation4(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation5() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations(); String value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@Foo(value = \"something\", nestedAnnotations = @Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation5(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation5(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation6() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected = "@annot.Foo(@Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation6(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation6(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation7() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations(); String xxx();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", nestedAnnotations = @Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation7(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation7(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation8() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value(); String xxx();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")"); - String expected = "@annot.Foo(xxx=\"something\", value = @Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation8(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation8(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation9() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations(); String xxx();"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newNormalAnnotation(); - this.assertSourceContains("@Foo(nestedAnnotations = { null, null, null, null, null, @Bar() })", cu); - } - - public void testNewNormalAnnotation10() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations(); String value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")"); - String expected1 = "@Foo(value = \"something\", nestedAnnotations = { null, null, null, null,"; - String expected2 = "null, @Bar() })"; - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newNormalAnnotation(); - this.assertSourceContains(expected1, cu); - this.assertSourceContains(expected2, cu); - } - - public void testNewNormalAnnotation11() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({ \"one\", \"two\" })"); - String expected = "@annot.Foo({ @Bar(xxx = 88), \"two\" })"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation11(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation11(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation12() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})"); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newNormalAnnotation(); - this.assertSourceContains("@Bar()})", cu); // split line - } - - public void testNewNormalAnnotation13() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(7)"); - String expected = "@annot.Foo(@Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation13(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation13(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation14() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(7)"); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newNormalAnnotation(); - this.assertSourceContains("@annot.Foo({7,null,null,null,null,@Bar()})", cu); - } - - public void testNewNormalAnnotation15() throws Exception { - this.createAnnotationAndMembers("NotBar", "int xxx();"); - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.NotBar)"); - String expected = "@annot.Foo(@Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation15(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation15(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation16() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(55))"); - String expected = "@annot.Foo({@annot.Bar(55),@Bar(xxx=88)})"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation16(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation16(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation17() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations = { \"something\" })"); - String expected = "@annot.Foo(nestedAnnotations = { @Bar(xxx = 88) })"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation17(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation17(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation18() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})"); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newNormalAnnotation(); - this.assertSourceContains("@Bar()})", cu); // split line - } - - public void testNewNormalAnnotation19() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations = \"something\")"); - String expected = "@annot.Foo(nestedAnnotations = @Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation19(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation19(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation20() throws Exception { - this.createAnnotationAndMembers("NotBar", "int xxx();"); - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations = @annot.NotBar)"); - String expected = "@annot.Foo(nestedAnnotations = @Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation20(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation20(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testNewNormalAnnotation21() throws Exception { - this.createAnnotationAndMembers("NotBar", "int xxx();"); - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)"); - this.assertSourceDoesNotContain("@Bar", cu); - - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newNormalAnnotation(); - this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.NotBar,null,null,null,null,@Bar()})", cu); - } - - public void testNewNormalAnnotation22() throws Exception { - this.createAnnotationAndMembers("Bar", "int xxx();"); - this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations = @annot.Bar(77))"); - String expected = "@annot.Foo(nestedAnnotations = @Bar(xxx = 88))"; - this.assertSourceDoesNotContain(expected, cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation22(declaration); - } - }); - this.assertSourceContains(expected, cu); - } - - void editNewNormalAnnotation22(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar"); - NormalAnnotation annotation = daa.newNormalAnnotation(declaration); - this.addMemberValuePair(annotation, "xxx", 88); - } - - public void testMoveAnnotation1() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(00))"); - String expected = "@annot.Foo({null,@annot.Bar(00)})"; - this.assertSourceDoesNotContain(expected, cu); - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(1); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation2() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({null, @annot.Bar(11)})"); - String expected = "@annot.Foo(@annot.Bar(11))"; - this.assertSourceDoesNotContain(expected, cu); - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation3() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22), @annot.Bar(33)})"); - String expected = "@annot.Foo({@annot.Bar(33), @annot.Bar(11), @annot.Bar(22)})"; - this.assertSourceDoesNotContain(expected, cu); - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation4() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22), @annot.Bar(33), @annot.Bar(44)})"); - String expected = "@annot.Foo({@annot.Bar(33), @annot.Bar(11), @annot.Bar(22), null, @annot.Bar(44)})"; - this.assertSourceDoesNotContain(expected, cu); - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation5() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22)})"); - String expected = "@annot.Foo({@annot.Bar(00), @annot.Bar(11), null, @annot.Bar(22)})"; - this.assertSourceDoesNotContain(expected, cu); - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(3); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation6() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22)})"); - String expected = "@annot.Foo({null, @annot.Bar(11), @annot.Bar(22), @annot.Bar(00)})"; - this.assertSourceDoesNotContain(expected, cu); - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(3); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation7() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22)})"); - String expected = "@annot.Foo({null, @annot.Bar(11), @annot.Bar(22)})"; - this.assertSourceDoesNotContain(expected, cu); - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation8() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), @annot.Bar(22), null, @annot.Bar(44)})"); - String expected = "@annot.Foo({null, @annot.Bar(11), @annot.Bar(22), null, @annot.Bar(44)})"; - this.assertSourceDoesNotContain(expected, cu); - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation9() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - String expected = "@annot.Foo({null, @annot.Bar(11), @annot.Bar(22)})"; - ICompilationUnit cu = this.createTestType(expected); // the source should be unchanged - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(3); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation10() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11)})"); - String expected = "@annot.Foo(@annot.Bar(00))"; - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - iaa.moveAnnotation(1); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation11() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(00))"); - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceDoesNotContain("Bar", cu); - } - - public void testMoveAnnotation12() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(00), null, @annot.Bar(22)})"); - String expected = "@annot.Foo(@annot.Bar(22))"; - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - - public void testMoveAnnotation13() throws Exception { - this.createAnnotationAndMembers("Bar", "int value();"); - this.createAnnotationAndMembers("Foo", "annot.Bar[] value();"); - ICompilationUnit cu = this.createTestType("@annot.Foo({@annot.Bar(00), @annot.Bar(11), null, @annot.Bar(33)})"); - String expected = "@annot.Foo({@annot.Bar(33), @annot.Bar(11)})"; - - IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter( - new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar"); - IndexedAnnotationAdapter iaa = new ElementIndexedAnnotationAdapter(this.idField(cu), idaa); - Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - iaa.moveAnnotation(0); - this.assertSourceContains(expected, cu); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/SimpleDeclarationAnnotationAdapterTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/SimpleDeclarationAnnotationAdapterTests.java deleted file mode 100644 index 8c86b93406..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/SimpleDeclarationAnnotationAdapterTests.java +++ /dev/null @@ -1,274 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.NumberLiteral; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jdt.core.dom.StringLiteral; -import org.eclipse.jpt.common.core.internal.utility.jdt.ElementAnnotationAdapter; -import org.eclipse.jpt.common.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.common.core.utility.jdt.Member; -import org.eclipse.jpt.common.core.utility.jdt.ModifiedDeclaration; - -@SuppressWarnings("nls") -public class SimpleDeclarationAnnotationAdapterTests extends AnnotationTestCase { - - public SimpleDeclarationAnnotationAdapterTests(String name) { - super(name); - } - - private void createAnnotation(String annotationName) throws Exception { - this.createAnnotation("annot", annotationName); - } - - private void createAnnotation(String packageName, String annotationName) throws Exception { - this.javaProject.createCompilationUnit(packageName, annotationName + ".java", "public @interface " + annotationName + " {}"); - } - - public void testAnnotation1() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("annot.Foo", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isMarkerAnnotation()); - } - - public void testAnnotation2() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType("@annot.Foo(1) @annot.Foo(2)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("annot.Foo", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isSingleMemberAnnotation()); - Expression value = ((SingleMemberAnnotation) annotation).getValue(); - assertEquals(ASTNode.NUMBER_LITERAL, value.getNodeType()); - assertEquals("1", ((NumberLiteral) value).getToken()); - } - - public void testAnnotation3() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType("annot.Foo", "@Foo"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - assertEquals("Foo", annotation.getTypeName().getFullyQualifiedName()); - assertTrue(annotation.isMarkerAnnotation()); - } - - public void testAnnotationNull1() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType(); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - } - - public void testAnnotationNull2() throws Exception { - this.createAnnotation("Foo"); - this.createAnnotation("Fop"); - ICompilationUnit cu = this.createTestType("@annot.Fop"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - this.assertSourceContains("@annot.Fop", cu); - } - - public void testAnnotationNull3() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - // un-qualified name - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - this.assertSourceContains("@annot.Foo", cu); - } - - public void testRemoveAnnotation1() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType("@annot.Foo"); - this.assertSourceContains("@annot.Foo", cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain("@annot.Foo", cu); - } - - public void testRemoveAnnotation2() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType("@annot.Foo(1) @annot.Foo(2)"); - this.assertSourceContains("@annot.Foo(1) @annot.Foo(2)", cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.removeAnnotation(); - this.assertSourceDoesNotContain("@annot.Foo(1)", cu); - this.assertSourceContains("@annot.Foo(2)", cu); - } - - public void testNewMarkerAnnotation1() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("import annot.Foo;", cu); - this.assertSourceDoesNotContain("@Foo", cu); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("import annot.Foo;", cu); - this.assertSourceContains("@Foo", cu); - } - - public void testNewMarkerAnnotation2() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType("@annot.Foo(88)"); - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - AnnotationAdapter aa = new ElementAnnotationAdapter(this.idField(cu), daa); - Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation); - - aa.newMarkerAnnotation(); - this.assertSourceContains("import annot.Foo;", cu); - this.assertSourceContains("@Foo", cu); - this.assertSourceDoesNotContain("@annot.Foo(88)", cu); - } - - public void testNewSingleMemberAnnotation() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("@Foo", cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - SimpleDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation(declaration); - } - }); - this.assertSourceContains("import annot.Foo;", cu); - this.assertSourceContains("@Foo(\"test string literal\")", cu); - } - - void editNewSingleMemberAnnotation(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - SingleMemberAnnotation annotation = (SingleMemberAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newSingleMemberAnnotation(declaration); - StringLiteral stringLiteral = annotation.getAST().newStringLiteral(); - stringLiteral.setLiteralValue("test string literal"); - annotation.setValue(stringLiteral); - } - - public void testNewNormalAnnotation() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("@Foo", cu); - this.idField(cu).edit(new Member.Editor() { - public void edit(ModifiedDeclaration declaration) { - SimpleDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation(declaration); - } - }); - this.assertSourceContains("import annot.Foo;", cu); - this.assertSourceContains("@Foo(bar = \"test string literal\")", cu); - } - - void editNewNormalAnnotation(ModifiedDeclaration declaration) { - DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - NormalAnnotation annotation = (NormalAnnotation) daa.getAnnotation(declaration); - assertNull(annotation); - annotation = daa.newNormalAnnotation(declaration); - MemberValuePair mvp = this.newMemberValuePair(annotation.getAST(), "bar", "test string literal"); - this.values(annotation).add(mvp); - } - - public void testImportCollision1() throws Exception { - this.createAnnotation("annot1", "Foo"); - this.createAnnotation("annot2", "Foo"); - ICompilationUnit cu = this.createTestType(); - this.assertSourceDoesNotContain("@Foo", cu); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot1.Foo"); - DeclarationAnnotationAdapter daa2 = new SimpleDeclarationAnnotationAdapter("annot2.Foo"); - - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - Annotation annotation1 = aa1.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation1); - - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation2 = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation2); - - aa1.newMarkerAnnotation(); - this.assertSourceContains("import annot1.Foo;", cu); - this.assertSourceContains("@Foo", cu); - - aa2.newMarkerAnnotation(); - this.assertSourceDoesNotContain("import annot2.Foo;", cu); - this.assertSourceContains("@annot2.Foo", cu); - } - - public void testImportCollision2() throws Exception { - this.createAnnotation("annot1", "Foo"); - this.createAnnotation("annot2", "Foo"); - ICompilationUnit cu = this.createTestType("annot1.*", "@Foo"); - this.assertSourceContains("import annot1.*;", cu); - this.assertSourceContains("@Foo", cu); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot1.Foo"); - DeclarationAnnotationAdapter daa2 = new SimpleDeclarationAnnotationAdapter("annot2.Foo"); - - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - Annotation annotation1 = aa1.getAnnotation(this.buildASTRoot(cu)); - assertNotNull(annotation1); - - AnnotationAdapter aa2 = new ElementAnnotationAdapter(this.idField(cu), daa2); - Annotation annotation2 = aa2.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation2); - - aa2.newMarkerAnnotation(); - this.assertSourceDoesNotContain("import annot2.Foo;", cu); - this.assertSourceContains("@annot2.Foo", cu); - } - - public void testImportWildCard() throws Exception { - this.createAnnotation("Foo"); - ICompilationUnit cu = this.createTestType("annot.*", ""); - this.assertSourceContains("import annot.*;", cu); - this.assertSourceDoesNotContain("@Foo", cu); - DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo"); - - AnnotationAdapter aa1 = new ElementAnnotationAdapter(this.idField(cu), daa1); - Annotation annotation1 = aa1.getAnnotation(this.buildASTRoot(cu)); - assertNull(annotation1); - - aa1.newMarkerAnnotation(); - this.assertSourceDoesNotContain("import annot.Foo;", cu); - this.assertSourceContains("@Foo", cu); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/TypeTests.java b/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/TypeTests.java deleted file mode 100644 index ebd80a401f..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/src/org/eclipse/jpt/common/core/tests/internal/utility/jdt/TypeTests.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.core.tests.internal.utility.jdt; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jdt.core.ICompilationUnit; - -@SuppressWarnings("nls") -public class TypeTests extends AnnotationTestCase { - - public TypeTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - } - - protected ICompilationUnit createCompilationUnit(String source) throws CoreException { - return this.javaProject.createCompilationUnit(PACKAGE_NAME, FILE_NAME, source); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - } - - public void test1() throws Exception { - ICompilationUnit jdtCompilationUnit = this.createCompilationUnit(this.buildTest1Source()); - assertNotNull(jdtCompilationUnit); - } - - private String buildTest1Source() { - StringBuilder sb = new StringBuilder(); - sb.append("public class ").append(TYPE_NAME).append(" {").append(CR); - sb.append(" private int id;").append(CR); - sb.append(" public int getId() {").append(CR); - sb.append(" return this.id;").append(CR); - sb.append(" }").append(CR); - sb.append("}").append(CR); - return sb.toString(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.core.tests/test.xml b/common/tests/org.eclipse.jpt.common.core.tests/test.xml deleted file mode 100644 index 0034685b7a..0000000000 --- a/common/tests/org.eclipse.jpt.common.core.tests/test.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/.classpath b/common/tests/org.eclipse.jpt.common.ui.tests/.classpath deleted file mode 100644 index 62dd151822..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/.project b/common/tests/org.eclipse.jpt.common.ui.tests/.project deleted file mode 100644 index 0e0633e91a..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.common.ui.tests - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF b/common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF deleted file mode 100644 index 8aa4fa0986..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,21 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.common.ui.tests -Bundle-Version: 1.0.0.qualifier -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: - org.junit;bundle-version="4.3.1", - org.eclipse.core.runtime;bundle-version="[3.6.100,4.0.0)", - org.eclipse.jface;bundle-version="[3.7.0,4.0.0)", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jpt.common.ui;bundle-version="[1.0.0,2.0.0)", - org.eclipse.ui.forms;bundle-version="[3.5.100,4.0.0)", - org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)", - org.eclipse.ui.navigator;bundle-version="[3.5.0,4.0.0)" -Export-Package: org.eclipse.jpt.common.ui.tests;x-internal:=true, - org.eclipse.jpt.common.ui.tests.internal.jface;x-internal:=true, - org.eclipse.jpt.common.ui.tests.internal.swt;x-internal:=true, - org.eclipse.jpt.common.ui.tests.internal.util;x-internal:=true, - org.eclipse.jpt.common.ui.tests.internal.utility.swt;x-internal:=true diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/build.properties b/common/tests/org.eclipse.jpt.common.ui.tests/build.properties deleted file mode 100644 index 4dce676b59..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/build.properties +++ /dev/null @@ -1,13 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - . diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties b/common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties deleted file mode 100644 index 7b81997383..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/plugin.properties +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName=Dali Java Persistence Tools - Common UI Tests -providerName=Eclipse Web Tools Platform diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java deleted file mode 100644 index bb3b72fe07..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/JptCommonUiTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.jpt.common.ui.tests.internal.swt.JptUiSWTTests; -import org.eclipse.jpt.common.ui.tests.internal.util.JptUiUtilTests; - -/** - * Runs all JPT UI Tests - */ -public class JptCommonUiTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptCommonUiTests.class.getPackage().getName()); - suite.addTest(JptUiSWTTests.suite()); - suite.addTest(JptUiUtilTests.suite()); - return suite; - } - - private JptCommonUiTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java deleted file mode 100644 index 223b8e64cd..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java +++ /dev/null @@ -1,602 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.jface; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.ArrayContentProvider; -import org.eclipse.jface.viewers.BaseLabelProvider; -import org.eclipse.jface.viewers.ComboViewer; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.jface.AbstractItemLabelProvider; -import org.eclipse.jpt.common.ui.internal.jface.AbstractTreeItemContentProvider; -import org.eclipse.jpt.common.ui.internal.jface.DelegatingTreeContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.ItemLabelProvider; -import org.eclipse.jpt.common.ui.jface.ItemLabelProviderFactory; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProviderFactory; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.NullCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.StaticCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.ImageData; -import org.eclipse.swt.graphics.PaletteData; -import org.eclipse.swt.graphics.RGB; -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.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; - -public class DelegatingLabelProviderUiTest extends ApplicationWindow -{ - private TreeViewer tree; - - private WritablePropertyValueModel selectedVehicle; - - - public static void main(String[] args) { - Window window = new DelegatingLabelProviderUiTest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - - private DelegatingLabelProviderUiTest(String[] args) { - super(null); - this.selectedVehicle = new SimplePropertyValueModel(); - } - - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(400, 400); - parent.setLayout(new GridLayout()); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayoutData(new GridData(GridData.FILL_BOTH)); - mainPanel.setLayout(new GridLayout()); - buildTreePanel(mainPanel); - buildControlPanel(mainPanel); - return mainPanel; - } - - private void buildTreePanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL_BOTH)); - panel.setLayout(new GridLayout()); - - Label label = new Label(panel, SWT.NONE); - label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false)); - label.setText("My Vehicles"); - - tree = new TreeViewer(panel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - tree.getTree().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); - DelegatingContentAndLabelProvider contentAndLabelProvider = - new DelegatingTreeContentAndLabelProvider( - new VehicleContentProviderFactory(), - new VehicleLabelProviderFactory()); - tree.setContentProvider(contentAndLabelProvider); - tree.setLabelProvider(contentAndLabelProvider); - tree.setInput(new Root()); - tree.addSelectionChangedListener(buildTreeSelectionChangedListener()); - } - - private ISelectionChangedListener buildTreeSelectionChangedListener() { - return new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - selectedVehicle.setValue((Vehicle) ((IStructuredSelection) event.getSelection()).getFirstElement()); - } - }; - } - - private void buildControlPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - panel.setLayout(new GridLayout()); - buildUpperControlPanel(panel); - buildLowerControlPanel(panel); - } - - private void buildUpperControlPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - panel.setLayout(new GridLayout(2, true)); - buildVehicleCombo(panel); - buildColorCombo(panel); - } - - private void buildVehicleCombo(Composite parent) { - final ComboViewer combo = new ComboViewer(parent, SWT.READ_ONLY); - combo.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - combo.setContentProvider(new ArrayContentProvider()); - combo.setLabelProvider(new VehicleTypeLabelProvider()); - combo.setInput( - new VehicleType[] { - VehicleType.BICYCLE, VehicleType.CAR, - VehicleType.TRUCK, VehicleType.BOAT - }); - combo.getCombo().setEnabled(false); - combo.addSelectionChangedListener( - new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - selectedVehicle().setVehicleType((VehicleType) ((StructuredSelection) event.getSelection()).getFirstElement()); - } - }); - selectedVehicle.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - Vehicle vehicle = selectedVehicle(); - combo.getCombo().setEnabled(vehicle != null); - combo.setSelection(new StructuredSelection((vehicle == null) ? null : vehicle.vehicleType())); - } - }); - } - - private void buildColorCombo(Composite parent) { - final ComboViewer combo = new ComboViewer(parent, SWT.READ_ONLY); - combo.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - combo.setContentProvider(new ArrayContentProvider()); - combo.setLabelProvider(new ColorLabelProvider()); - combo.setInput(new Color[] {Color.RED, Color.BLUE, Color.YELLOW, Color.GREEN}); - combo.addSelectionChangedListener( - new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - selectedVehicle().setColor((Color) ((StructuredSelection) event.getSelection()).getFirstElement()); - } - }); - selectedVehicle.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - Vehicle vehicle = selectedVehicle(); - combo.getCombo().setEnabled(vehicle != null); - combo.setSelection(new StructuredSelection((vehicle == null) ? null : vehicle.color())); - } - }); - } - - private void buildLowerControlPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - panel.setLayout(new GridLayout(3, false)); - buildEffectsLabel(panel); - buildGreyedCheckBox(panel); - buildTranslucentCheckBox(panel); - buildActionPanel(panel); - } - - private void buildEffectsLabel(Composite parent) { - Label label = new Label(parent, SWT.LEFT); - label.setText("Color effects: "); - label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false, 3, 1)); - } - - private void buildGreyedCheckBox(Composite parent) { - final Button button = new Button(parent, SWT.CHECK); - button.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false)); - button.setText("greyed"); - button.setEnabled(false); - button.addSelectionListener( - new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - selectedVehicle().setGreyed(button.getSelection()); - } - }); - selectedVehicle.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - Vehicle vehicle = selectedVehicle(); - button.setEnabled(vehicle != null); - button.setSelection(vehicle != null && vehicle.isGreyed()); - } - }); - } - - private void buildTranslucentCheckBox(Composite parent) { - final Button button = new Button(parent, SWT.CHECK); - button.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, true, false)); - button.setText("translucent"); - button.setEnabled(false); - button.addSelectionListener( - new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - selectedVehicle().setTranslucent(button.getSelection()); - } - }); - selectedVehicle.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - Vehicle vehicle = selectedVehicle(); - button.setEnabled(vehicle != null); - button.setSelection(vehicle != null && vehicle.isTranslucent()); - } - }); - } - - private void buildActionPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.END, GridData.FILL, false, false)); - panel.setLayout(new GridLayout()); - buildRefreshTreeACI().fill(panel); - } - - private ActionContributionItem buildRefreshTreeACI() { - Action action = new Action("Refresh tree", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - refreshTree(); - } - }; - action.setToolTipText("Refresh the tree's labels"); - return new ActionContributionItem(action); - } - - void refreshTree() { - tree.refresh(); - } - - private Vehicle selectedVehicle() { - return selectedVehicle.getValue(); - } - - - private static class VehicleTypeLabelProvider extends BaseLabelProvider - implements ILabelProvider - { - public Image getImage(Object element) { - return null; - } - - public String getText(Object element) { - return ((VehicleType) element).description(); - } - } - - - private static class ColorLabelProvider extends BaseLabelProvider - implements ILabelProvider - { - public Image getImage(Object element) { - return null; - } - - public String getText(Object element) { - return ((Color) element).description(); - } - } - - - private static class VehicleContentProviderFactory - implements TreeItemContentProviderFactory - { - public TreeItemContentProvider buildItemContentProvider(Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) { - if (item instanceof Root) { - return new RootContentProvider( - (Root) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider); - } - return new VehicleContentProvider( - (Vehicle) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider); - } - } - - - private static class RootContentProvider extends AbstractTreeItemContentProvider - { - public RootContentProvider(Root item, DelegatingTreeContentAndLabelProvider contentAndLabelProvider) { - super(item, contentAndLabelProvider); - } - - @Override - public Root getModel() { - return (Root) super.getModel(); - } - - @Override - public Object getParent() { - return null; - } - - @Override - protected CollectionValueModel buildChildrenModel() { - return new StaticCollectionValueModel(this.getModel().vehicles()); - } - } - - @SuppressWarnings("unchecked") - private static class VehicleContentProvider extends AbstractTreeItemContentProvider - { - public VehicleContentProvider(Vehicle item, DelegatingTreeContentAndLabelProvider contentAndLabelProvider) { - super(item, contentAndLabelProvider); - } - - @Override - public Vehicle getModel() { - return (Vehicle) super.getModel(); - } - - @Override - public Object getParent() { - return getModel().parent(); - } - - @Override - protected CollectionValueModel buildChildrenModel() { - return new NullCollectionValueModel(); - } - } - - - private static class VehicleLabelProviderFactory - implements ItemLabelProviderFactory - { - public ItemLabelProvider buildItemLabelProvider(Object element, DelegatingContentAndLabelProvider labelProvider) { - return new VehicleLabelProvider((Vehicle) element, labelProvider); - } - } - - - private static class VehicleLabelProvider extends AbstractItemLabelProvider - { - public VehicleLabelProvider(Vehicle vehicle, DelegatingContentAndLabelProvider labelProvider) { - super(vehicle, labelProvider); - } - - @Override - protected PropertyValueModel buildImageModel() { - return new PropertyAspectAdapter( - new StaticPropertyValueModel((Vehicle) getModel()), - Vehicle.COLOR_PROPERTY, Vehicle.GREYED_PROPERTY, Vehicle.TRANSLUCENT_PROPERTY) { - @Override - protected Image buildValue_() { - return subject.image(); - } - }; - } - - @Override - protected PropertyValueModel buildTextModel() { - return new PropertyAspectAdapter( - new StaticPropertyValueModel((Vehicle) getModel()), - Vehicle.VEHICLE_TYPE_PROPERTY, Vehicle.COLOR_PROPERTY) { - @Override - protected String buildValue_() { - return subject.color().description() + ' ' + subject.vehicleType().description(); - } - }; - } - - @Override - protected PropertyValueModel buildDescriptionModel() { - return buildTextModel(); - } - } - - - private static abstract class TreeNode extends AbstractModel - { - private TreeNode parent; - - - public TreeNode(TreeNode parent) { - this.parent = parent; - } - - - public TreeNode parent() { - return parent; - } - } - - - private static class Root extends TreeNode - { - protected final Vehicle[] vehicles; - - - public Root() { - super(null); - vehicles = new Vehicle[] { - new Vehicle(this, VehicleType.BICYCLE, Color.BLUE), - new Vehicle(this, VehicleType.CAR, Color.YELLOW), - new Vehicle(this, VehicleType.TRUCK, Color.RED), - new Vehicle(this, VehicleType.BOAT, Color.GREEN)}; - } - - public Vehicle[] vehicles() { - return vehicles; - } - } - - - private static class Vehicle extends TreeNode - { - private VehicleType vehicleType; - public final static String VEHICLE_TYPE_PROPERTY = "vehicleType"; - - private Color color; - public final static String COLOR_PROPERTY = "color"; - - private boolean greyed = false; - public final static String GREYED_PROPERTY = "greyed"; - - private boolean translucent = false; - public final static String TRANSLUCENT_PROPERTY = "translucent"; - - private Image image; - - - public Vehicle(TreeNode parent, VehicleType vehicleType, Color color) { - super(parent); - this.vehicleType = vehicleType; - this.color = color; - } - - public VehicleType vehicleType() { - return vehicleType; - } - - public void setVehicleType(VehicleType newVehicleType) { - VehicleType oldVehicleType = vehicleType; - vehicleType = newVehicleType; - firePropertyChanged(VEHICLE_TYPE_PROPERTY, oldVehicleType, newVehicleType); - } - - public Color color() { - return color; - } - - public void setColor(Color newColor) { - Color oldColor = color; - color = newColor; - firePropertyChanged(COLOR_PROPERTY, oldColor, newColor); - } - - public boolean isGreyed() { - return greyed; - } - - public void setGreyed(boolean newGreyed) { - boolean oldGreyed = greyed; - greyed = newGreyed; - firePropertyChanged(GREYED_PROPERTY, oldGreyed, newGreyed); - } - - public boolean isTranslucent() { - return translucent; - } - - public void setTranslucent(boolean newTranslucent) { - boolean oldTranslucent = translucent; - translucent = newTranslucent; - firePropertyChanged(TRANSLUCENT_PROPERTY, oldTranslucent, newTranslucent); - } - - public Image image() { - if (image != null) { - image.dispose(); - } - - return ImageFactory.image(color(), greyed, translucent); - } - } - - - private static enum VehicleType - { - BICYCLE("bicycle"), - CAR("car"), - TRUCK("truck"), - BOAT("boat"); - - private final String description; - - private VehicleType(String description) { - this.description = description; - } - - public String description() { - return description; - } - - @Override - public String toString() { - return description(); - } - } - - - private static enum Color - { - RED("red", new RGB(255, 0, 0)), - BLUE("blue", new RGB(0, 0, 255)), - YELLOW("yellow", new RGB(255, 255, 0)), - GREEN("green", new RGB(0, 255, 0)); - - private final String description; - - private final RGB rgb; - - private Color(String description, RGB rgb) { - this.description = description; - this.rgb = rgb; - } - - public String description() { - return description; - } - - public RGB rgb() { - return rgb; - } - - @Override - public String toString() { - return description(); - } - } - - - private static class ImageFactory - { - private static RGB rgb(Color color, boolean greyed, boolean translucent) { - RGB rgb = (greyed) ? new RGB(127, 127, 127) : color.rgb(); - if (translucent) { - rgb = new RGB(translucify(rgb.red), translucify(rgb.green), translucify(rgb.blue)); - } - return rgb; - } - - private static int translucify(int color) { - return 255 - (int) ((255 - color) * 0.3); - } - - public static Image image(Color color, boolean greyed, boolean translucent) { - PaletteData pd = new PaletteData(new RGB[] {rgb(color, greyed, translucent)}); - ImageData id = new ImageData(20, 20, 1, pd); - for (int x = 0; x < 20; x ++) { - for (int y = 0; y < 20; y ++) { - id.setPixel(x, y, 0); - } - } - return new Image(Display.getCurrent(), id); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java deleted file mode 100644 index 00af4be8e7..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java +++ /dev/null @@ -1,563 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.jface; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.BaseLabelProvider; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.jface.AbstractTreeItemContentProvider; -import org.eclipse.jpt.common.ui.internal.jface.DelegatingTreeContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.DelegatingContentAndLabelProvider; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProvider; -import org.eclipse.jpt.common.ui.jface.TreeItemContentProviderFactory; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.NotNullFilter; -import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CompositeCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.ListCollectionValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.StaticCollectionValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -@SuppressWarnings("nls") -public class DelegatingTreeContentProviderUiTest extends ApplicationWindow -{ - private final Root root; - - private WritablePropertyValueModel selectedNode; - - private TreeViewer controlTree; - - private TreeViewer viewTree; - - private Text nodeNameText; - - - public static void main(String[] args) { - Window window = new DelegatingTreeContentProviderUiTest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private DelegatingTreeContentProviderUiTest(String[] args) { - super(null); - this.root = new Root(); - this.root.addChild("Parent_1"); - this.selectedNode = new SimplePropertyValueModel(this.root); - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(800, 400); - parent.setLayout(new GridLayout()); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayoutData(new GridData(GridData.FILL_BOTH)); - mainPanel.setLayout(new GridLayout()); - buildTreePanel(mainPanel); - buildControlPanel(mainPanel); - return mainPanel; - } - - private void buildTreePanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL_BOTH)); - panel.setLayout(new GridLayout(2, true)); - buildControlTreePanel(panel); - buildViewTreePanel(panel); - } - - private void buildControlTreePanel(Composite parent) { - controlTree = buildTreePanel( - parent, "Control tree", - new DelegatingTreeContentAndLabelProvider(new ControlTreeItemContentProviderFactory()), - new LabelProvider()); - controlTree.addSelectionChangedListener(buildTreeSelectionChangedListener()); - selectedNode.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - controlTree.setSelection(new StructuredSelection(event.getNewValue())); - } - } - ); - } - - private void buildViewTreePanel(Composite parent) { - viewTree = buildTreePanel( - parent, "View tree", - new DelegatingTreeContentAndLabelProvider(new ViewTreeItemContentProviderFactory()), - new LabelProvider()); - } - - private TreeViewer buildTreePanel(Composite parent, String labelText, ITreeContentProvider contentProvider, ILabelProvider labelProvider) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL_BOTH)); - panel.setLayout(new GridLayout()); - - Label label = new Label(panel, SWT.LEFT); - label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false)); - label.setText(labelText); - - final TreeViewer tree = new TreeViewer(panel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - tree.getTree().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); - tree.setContentProvider(contentProvider); - tree.setLabelProvider(labelProvider); - tree.setInput(root); - - return tree; - } - - private ISelectionChangedListener buildTreeSelectionChangedListener() { - return new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - TreeNode selection = (TreeNode) ((IStructuredSelection) event.getSelection()).getFirstElement(); - selectedNode.setValue((selection == null) ? root : selection); - } - }; - } - - private void buildControlPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false)); - panel.setLayout(new GridLayout(6, false)); - buildNodeNameText(panel); - buildAddChildACI().fill(panel); - buildAddNestedChildACI().fill(panel); - buildRemoveACI().fill(panel); - buildClearModelACI().fill(panel); - buildRestoreModelACI().fill(panel); - } - - private void buildNodeNameText(Composite parent) { - nodeNameText = new Text(parent, SWT.SINGLE | SWT.BORDER); - nodeNameText.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - } - - private ActionContributionItem buildAddChildACI() { - final Action action = new Action("Add child", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - addChild(); - } - }; - action.setToolTipText("Add a child with the given name"); - selectedNode.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - action.setEnabled(((TreeNode) event.getNewValue()).canHaveChildren()); - } - } - ); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildAddNestedChildACI() { - final Action action = new Action("Add nested child", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - addNestedChild(); - } - }; - action.setToolTipText("Add a nested child with the given name"); - action.setEnabled(false); - selectedNode.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - action.setEnabled(((TreeNode) event.getNewValue()).canHaveNestedChildren()); - } - } - ); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRemoveACI() { - final Action action = new Action("Remove", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - remove(); - } - }; - action.setToolTipText("Remove the selected node"); - action.setEnabled(false); - selectedNode.addPropertyChangeListener( - PropertyValueModel.VALUE, - new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent event) { - action.setEnabled(event.getNewValue() != root); - } - } - ); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("Clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - clearModel(); - } - }; - action.setToolTipText("Clear the model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("Restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - restoreModel(); - } - }; - action.setToolTipText("Restore the model"); - return new ActionContributionItem(action); - } - - void addChild() { - String nodeName = nodeNameText.getText(); - if (nodeName.length() != 0) { - selectedNode.getValue().addChild(nodeName); - } - } - - void addNestedChild() { - String nodeName = nodeNameText.getText(); - if (nodeName.length() != 0) { - selectedNode.getValue().addNestedChild(nodeName); - } - } - - void remove() { - TreeNode node = selectedNode.getValue(); - node.parent().removeChild(node); - } - - void clearModel() { - controlTree.setInput(null); - viewTree.setInput(null); - } - - void restoreModel() { - controlTree.setInput(root); - viewTree.setInput(root); - } - - - static abstract class AbstractTreeItemContentProviderFactory - implements TreeItemContentProviderFactory - { - public TreeItemContentProvider buildItemContentProvider( - Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) { - return new GenericTreeItemContentProvider( - (TreeNode) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider); - } - } - - - static class ControlTreeItemContentProviderFactory extends AbstractTreeItemContentProviderFactory - { - - } - - - static class ViewTreeItemContentProviderFactory - extends AbstractTreeItemContentProviderFactory - { - @Override - public TreeItemContentProvider buildItemContentProvider( - Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) { - if (item instanceof Parent) { - return new ViewTreeParentItemContentProvider( - (Parent) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider); - } - return super.buildItemContentProvider(item, contentAndLabelProvider); - } - } - - - static class GenericTreeItemContentProvider extends AbstractTreeItemContentProvider - { - public GenericTreeItemContentProvider( - TreeNode treeNode, DelegatingTreeContentAndLabelProvider treeContentAndLabelProvider) { - super(treeNode, treeContentAndLabelProvider); - } - - protected TreeNode treeNode() { - return (TreeNode) getModel(); - } - - @Override - public TreeNode getParent() { - return treeNode().parent(); - } - - @Override - protected CollectionValueModel buildChildrenModel() { - return new ListCollectionValueModelAdapter( - new ListAspectAdapter(TreeNode.CHILDREN_LIST, treeNode()) { - @Override - protected ListIterator listIterator_() { - return treeNode().children(); - } - }); - } - } - - static class ViewTreeParentItemContentProvider extends GenericTreeItemContentProvider - { - public ViewTreeParentItemContentProvider( - TreeNode treeNode, DelegatingTreeContentAndLabelProvider treeContentAndLabelProvider) { - super(treeNode, treeContentAndLabelProvider); - } - - @Override - public TreeNode getParent() { - TreeNode parent = super.getParent(); - if (parent instanceof Nest) { - parent = parent.parent(); - } - return parent; - } - - @Override - protected CollectionValueModel buildChildrenModel() { - return new CompositeCollectionValueModel(super.buildChildrenModel()) { - @Override - protected CollectionValueModel transform(TreeNode value) { - if (value instanceof Nest) { - final Nest nest = (Nest) value; - return new ListCollectionValueModelAdapter( - new ListAspectAdapter(TreeNode.CHILDREN_LIST, nest) { - @Override - protected ListIterator listIterator_() { - return nest.children(); - } - } - ); - } - return new StaticCollectionValueModel(CollectionTools.collection(value)); - } - }; - } - } - - - static class LabelProvider extends BaseLabelProvider - implements ILabelProvider - { - public Image getImage(Object element) { - return null; - } - - public String getText(Object element) { - return ((TreeNode) element).getName(); - } - } - - - static abstract class TreeNode extends AbstractModel - { - private TreeNode parent; - - protected final List children; - public final static String CHILDREN_LIST = "children"; - - protected String name; - public final static String NAME_PROPERTY = "name"; - - - public TreeNode(TreeNode parent, String name) { - this.parent = parent; - this.children = new ArrayList(); - this.name = name; - } - - public TreeNode parent() { - return parent; - } - - public ListIterator children() { - return new ReadOnlyListIterator(children); - } - - protected void addChild(TreeNode child) { - addItemToList(child, children, CHILDREN_LIST); - } - - public void removeChild(TreeNode child) { - removeItemFromList(child, children, CHILDREN_LIST); - } - - public void removeChild(int index) { - removeItemFromList(index, children, CHILDREN_LIST); - } - - public String getName() { - return name; - } - - public void setName(String newName) { - String oldName = name; - name = newName; - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public boolean canHaveChildren() { - return false; - } - - public void addChild(String name) { - throw new UnsupportedOperationException(); - } - - public boolean canHaveNestedChildren() { - return false; - } - - public void addNestedChild(String name) { - throw new UnsupportedOperationException(); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(getName()); - } - } - - - static class Root extends TreeNode - { - public Root() { - super(null, null); - } - - @Override - public boolean canHaveChildren() { - return true; - } - - @Override - public void addChild(String name) { - addChild(new Parent(this, name)); - } - } - - - static class Parent extends TreeNode - { - public Parent(TreeNode parent, String name) { - super(parent, name); - } - - @Override - public boolean canHaveChildren() { - return true; - } - - @Override - public void addChild(String name) { - addChild(new Child(this, name)); - } - - @Override - public boolean canHaveNestedChildren() { - return true; - } - - @Override - public void addNestedChild(String name) { - TreeNode nest = new Nest(this); - addChild(nest); - nest.addChild(name); - } - - public Iterator nestlessChildren() { - return new FilteringIterator( - new TransformationIterator(children()) { - @Override - protected Child transform(TreeNode next) { - if (next instanceof Nest) { - return ((Nest) next).child(); - } - return (Child) next; - } - }, - NotNullFilter.instance() - ); - } - } - - - static class Nest extends TreeNode - { - public Nest(TreeNode parent) { - super(parent, "nest"); - } - - @Override - public boolean canHaveChildren() { - return children.size() == 0; - } - - @Override - public void addChild(String name) { - addChild(new Child(this, name)); - } - - /* can only have one child */ - public Child child() { - return (children.isEmpty()) ? null : (Child) children.get(0); - } - } - - - static class Child extends TreeNode - { - public Child(TreeNode parent, String name) { - super(parent, name); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java deleted file mode 100644 index d987d9e3eb..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/AbstractComboModelAdapterTest.java +++ /dev/null @@ -1,777 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter.SelectionChangeEvent; -import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter.SelectionChangeListener; -import org.eclipse.jpt.common.utility.internal.StringConverter; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.swing.SimpleDisplayable; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public abstract class AbstractComboModelAdapterTest { - - private Model model; - private WritablePropertyValueModel selectedItemHolder; - private Shell shell; - private WritablePropertyValueModel subjectHolder; - - protected abstract AbstractComboModelAdapter buildEditableComboModelAdapter(); - - protected final ListValueModel buildEmptyListHolder() { - return new SimpleListValueModel(); - } - - private List buildList() { - List list = new ArrayList(); - populateCollection(list); - return list; - } - - protected final ListValueModel buildListHolder() { - return new ListAspectAdapter(subjectHolder, Model.ITEMS_LIST) { - @Override - protected ListIterator listIterator_() { - return subject.items(); - } - - @Override - protected int size_() { - return subject.itemsSize(); - } - }; - } - - protected abstract AbstractComboModelAdapter buildReadOnlyComboModelAdapter(); - - private SimpleDisplayable buildSelectedItem() { - return new SimpleDisplayable("baz"); - } - - private WritablePropertyValueModel buildSelectedItemHolder() { - return new PropertyAspectAdapter(subjectHolder, Model.ITEM_PROPERTY) { - @Override - protected SimpleDisplayable buildValue_() { - return subject.getItem(); - } - - @Override - protected void setValue_(SimpleDisplayable value) { - subject.setItem(value); - } - }; - } - - protected final StringConverter buildStringConverter() { - return new StringConverter() { - public String convertToString(SimpleDisplayable value) { - return (value == null) ? "" : value.displayString(); - } - }; - } - - private WritablePropertyValueModel buildSubjectHolder() { - return new SimplePropertyValueModel(); - } - - public abstract String comboSelectedItem(); - - protected abstract boolean emptyComboCanHaveSelectedValue(); - - protected abstract String itemAt(int index); - - protected abstract int itemCounts(); - - private void populateCollection(Collection c) { - c.add(new SimpleDisplayable("foo")); - c.add(new SimpleDisplayable("bar")); - c.add(new SimpleDisplayable("baz")); - c.add(new SimpleDisplayable("joo")); - c.add(new SimpleDisplayable("jar")); - c.add(new SimpleDisplayable("jaz")); - } - - protected final WritablePropertyValueModel selectedItemHolder() { - return selectedItemHolder; - } - - @Before - public void setUp() throws Exception { - - shell = new Shell(Display.getCurrent()); - model = new Model(); - subjectHolder = buildSubjectHolder(); - selectedItemHolder = buildSelectedItemHolder(); - } - - protected final Shell shell() { - return shell; - } - - protected final WritablePropertyValueModel subjectHolder() { - return subjectHolder; - } - - @After - public void tearDown() throws Exception { - - if (!shell.isDisposed()) { - shell.dispose(); - } - - shell = null; - subjectHolder = null; - selectedItemHolder = null; - } - - private void testItems() { - - assertEquals( - "The count of items is not in sync with the model", - model.itemsSize(), - itemCounts() - ); - - for (int index = 0; index < model.itemsSize(); index++) { - assertEquals( - "The item at index " + index + " is not the same between the model and the combo", - model.itemAt(index).displayString(), - itemAt(index) - ); - } - } - - @Test - public void testNonNullSubjectAfter_AddedAfter_ReadOnly() throws Exception { - - buildReadOnlyComboModelAdapter(); - testRemoveItems_AddedAfter(); - } - - @Test - public void testNonNullSubjectAfter_AddedAfter_RemoveItems_Editable() throws Exception { - - buildEditableComboModelAdapter(); - testRemoveItems_AddedAfter(); - } - - @Test - public void testNonNullSubjectAfter_AddedBefore_RemoveItems_Editable() throws Exception { - - subjectHolder.setValue(model); - model.addItems(buildList()); - - buildEditableComboModelAdapter(); - testSelectedItem(null); - testItems(); - - ArrayList items = new ArrayList(); - items.add(model.itemAt(0)); - items.add(model.itemAt(3)); - model.removeItems(items.iterator()); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_AddedBefore_RemoveItems_ReadOnly() throws Exception { - - subjectHolder.setValue(model); - model.addItems(buildList()); - - buildReadOnlyComboModelAdapter(); - testSelectedItem(null); - testItems(); - - ArrayList items = new ArrayList(); - items.add(model.itemAt(0)); - items.add(model.itemAt(3)); - model.removeItems(items.iterator()); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterAfter_Editable() throws Exception { - - buildEditableComboModelAdapter(); - - subjectHolder.setValue(model); - model.addItems(buildList()); - - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterAfter_ReadOnly() throws Exception { - - buildReadOnlyComboModelAdapter(); - - subjectHolder.setValue(model); - model.addItems(buildList()); - - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterBefore_Editable() throws Exception { - - buildEditableComboModelAdapter(); - - model.addItems(buildList()); - subjectHolder.setValue(model); - - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterBefore_ReadOnly() throws Exception { - - buildReadOnlyComboModelAdapter(); - - model.addItems(buildList()); - subjectHolder.setValue(model); - - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsBefore_Editable() throws Exception { - - model.addItems(buildList()); - buildEditableComboModelAdapter(); - - subjectHolder.setValue(model); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_ItemsBefore_ReadOnly() throws Exception { - - model.addItems(buildList()); - buildReadOnlyComboModelAdapter(); - - subjectHolder.setValue(model); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_NoItems_Editable() throws Exception { - - buildEditableComboModelAdapter(); - - subjectHolder.setValue(model); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_NullSelectedItem_NoItems_ReadOnly() throws Exception { - - buildReadOnlyComboModelAdapter(); - - subjectHolder.setValue(model); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectAfter_SelectedItemChanged_ReadOnly() throws Exception { - - subjectHolder.setValue(model); - model.addItems(buildList()); - - SimpleDisplayable selectedItem = model.itemAt(0); - - AbstractComboModelAdapter adapter = buildEditableComboModelAdapter(); - SelectionListener selectionListener = new SelectionListener(); - adapter.addSelectionChangeListener(selectionListener); - - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - testSelectedItem(null); - - testSelectedItemChanged(selectedItem, selectionListener); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Editable() throws Exception { - - SimpleDisplayable selectedItem = buildSelectedItem(); - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Items_Editable() throws Exception { - - SimpleDisplayable selectedItem = buildSelectedItem(); - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Items_ReadOnly() throws Exception { - - List list = buildList(); - SimpleDisplayable selectedItem = list.get(0); - subjectHolder.setValue(model); - - buildReadOnlyComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemAfter_ReadOnly() throws Exception { - - List list = buildList(); - SimpleDisplayable selectedItem = list.get(0); - subjectHolder.setValue(model); - - buildReadOnlyComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Editable() throws Exception { - - model.addItems(buildList()); - SimpleDisplayable selectedItem = model.itemAt(0); - subjectHolder.setValue(model); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - model.clearItemCalledFlag(); - buildEditableComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Items_Editable() throws Exception { - - model.addItems(buildList()); - SimpleDisplayable selectedItem = model.itemAt(0); - subjectHolder.setValue(model); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - model.clearItemCalledFlag(); - buildEditableComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Items_ReadOnly() throws Exception { - - List list = buildList(); - SimpleDisplayable selectedItem = list.get(0); - subjectHolder.setValue(model); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - model.clearItemCalledFlag(); - buildReadOnlyComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NonNullSelectedItemBefore_ReadOnly() throws Exception { - - List list = buildList(); - SimpleDisplayable selectedItem = list.get(0); - subjectHolder.setValue(model); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - - model.clearItemCalledFlag(); - buildReadOnlyComboModelAdapter(); - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - - testSelectedItem(selectedItem); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NullSelectedItem_Items_Editable() throws Exception { - - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item is supposed to remain null", model.getItem()); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NullSelectedItem_Items_ReadOnly() throws Exception { - - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item is supposed to remain null", model.getItem()); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NullSelectedItem_NoItems_Editable() throws Exception { - - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item is supposed to remain null", model.getItem()); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_NullSelectedItem_NoItems_ReadOnly() throws Exception { - - subjectHolder.setValue(model); - - buildEditableComboModelAdapter(); - - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item is supposed to remain null", model.getItem()); - testSelectedItem(null); - testItems(); - } - - @Test - public void testNonNullSubjectBefore_SelectedItemChanged_Editable() throws Exception { - - model.addItems(buildList()); - - SimpleDisplayable selectedItem = model.itemAt(3); - subjectHolder.setValue(model); - - AbstractComboModelAdapter adapter = buildEditableComboModelAdapter(); - SelectionListener selectionListener = new SelectionListener(); - adapter.addSelectionChangeListener(selectionListener); - - assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled()); - testSelectedItem(null); - - testSelectedItemChanged(selectedItem, selectionListener); - } - - private void testNullSubject() throws Exception { - - assertNull("The selected item should be null", selectedItemHolder.getValue()); - - selectedItemHolder.setValue(buildSelectedItem()); - assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled()); - - // Null because the subject holder doesn't have the subject set - testSelectedItem(null); - testItems(); - } - - @Test - public void testNullSubject_NullSelectedItem_Items_Editable() throws Exception { - buildEditableComboModelAdapter(); - testNullSubject(); - testItems(); - testSelectedItem(null); - } - - @Test - public void testNullSubject_NullSelectedItem_Items_ReadOnly() throws Exception { - buildReadOnlyComboModelAdapter(); - testNullSubject(); - testItems(); - testSelectedItem(null); - } - - @Test - public void testNullSubject_NullSelectedItem_NoItems_Editable() throws Exception { - buildEditableComboModelAdapter(); - testNullSubject(); - testItems(); - testSelectedItem(null); - } - - @Test - public void testNullSubject_NullSelectedItem_NoItems_ReadOnly() throws Exception { - buildReadOnlyComboModelAdapter(); - testNullSubject(); - testItems(); - testSelectedItem(null); - } - - private void testRemoveItems_AddedAfter() { - - subjectHolder.setValue(model); - model.addItems(buildList()); - - testSelectedItem(null); - testItems(); - testSelectedItem(null); - - ArrayList items = new ArrayList(); - items.add(model.itemAt(0)); - items.add(model.itemAt(3)); - model.removeItems(items.iterator()); - - testItems(); - testSelectedItem(null); - } - - private void testSelectedItem(SimpleDisplayable selectedItem) { - - if (selectedItem == null) { - - assertNull( - "The selected item is supposed to be null", - model.getItem() - ); - - assertEquals( - "The combo's selected item should be null", - "", - comboSelectedItem() - ); - } - else if (!emptyComboCanHaveSelectedValue()) { - - assertEquals( - "The selected item wasn't set correctly", - selectedItem, - model.getItem() - ); - - assertEquals( - "The combo's selected item should be null", - "", - comboSelectedItem() - ); - } - else { - - assertEquals( - "The selected item wasn't set correctly", - selectedItem, - model.getItem() - ); - - assertEquals( - "The selected item wasn't set correctly", - selectedItem.displayString(), - comboSelectedItem() - ); - } - } - - private void testSelectedItemChanged(SimpleDisplayable selectedItem, - SelectionListener selectionListener) { - - // Test 1 - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified()); - assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem()); - testSelectedItem(selectedItem); - - // Test 2 - selectedItem = model.itemAt(1); - model.clearItemCalledFlag(); - selectionListener.clearInfo(); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified()); - assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem()); - testSelectedItem(selectedItem); - - // Test 3 - selectedItem = null; - model.clearItemCalledFlag(); - selectionListener.clearInfo(); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertNull("The selected item wasn't set properly", model.getItem()); - assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified()); - assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem()); - testSelectedItem(selectedItem); - - // Test 3 - selectedItem = model.itemAt(2); - model.clearItemCalledFlag(); - selectionListener.clearInfo(); - - model.setItem(selectedItem); - assertTrue("The selected item was supposed to be modified", model.isSetItemCalled()); - assertSame("The selected item wasn't set properly", selectedItem, model.getItem()); - assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified()); - assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem()); - testSelectedItem(selectedItem); - } - - private static class Model extends AbstractModel { - - private SimpleDisplayable item; - private List items = new ArrayList(); - private boolean setItemCalled; - - static final String ITEM_PROPERTY = "item"; - static final String ITEMS_LIST = "items"; - - void addItems(Iterator items) { - addItemsToList(items, this.items, ITEMS_LIST); - } - - void addItems(List items) { - addItemsToList(items, this.items, ITEMS_LIST); - } - - void clearItemCalledFlag() { - setItemCalled = false; - } - - SimpleDisplayable getItem() { - return item; - } - - boolean isSetItemCalled() { - return setItemCalled; - } - - SimpleDisplayable itemAt(int index) { - return this.items.get(index); - } - - ListIterator items() { - return items.listIterator(); - } - - int itemsSize() { - return items.size(); - } - - void removeItems(Iterator items) { - removeItemsFromList(items, this.items, ITEMS_LIST); - } - - void setItem(SimpleDisplayable item) { - setItemCalled = true; - - SimpleDisplayable oldItem = this.item; - this.item = item; - firePropertyChanged(ITEM_PROPERTY, oldItem, item); - } - } - - private class SelectionListener implements SelectionChangeListener { - - private SimpleDisplayable item; - private boolean listenerNotified; - - void clearInfo() { - this.listenerNotified = false; - this.item = null; - } - - SimpleDisplayable getItem() { - return item; - } - - public boolean isListenerNotified() { - return listenerNotified; - } - - public void selectionChanged(SelectionChangeEvent e) { - listenerNotified = true; - item = e.selectedItem(); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java deleted file mode 100644 index f2379318d9..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/ComboModelAdapterTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import org.eclipse.jpt.common.ui.internal.swt.AbstractComboModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.ComboModelAdapter; -import org.eclipse.jpt.common.utility.internal.swing.SimpleDisplayable; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Combo; -import org.junit.After; - -public class ComboModelAdapterTest extends AbstractComboModelAdapterTest { - - private Combo combo; - private boolean editable; - - @Override - protected AbstractComboModelAdapter buildEditableComboModelAdapter() { - - combo = new Combo(shell(), SWT.NULL); - editable = true; - - return ComboModelAdapter.adapt( - buildListHolder(), - selectedItemHolder(), - combo, - buildStringConverter() - ); - } - - @Override - protected AbstractComboModelAdapter buildReadOnlyComboModelAdapter() { - - combo = new Combo(shell(), SWT.READ_ONLY); - editable = false; - - return ComboModelAdapter.adapt( - buildListHolder(), - selectedItemHolder(), - combo, - buildStringConverter() - ); - } - - @Override - public String comboSelectedItem() { - return combo.getText(); - } - - @Override - protected boolean emptyComboCanHaveSelectedValue() { - return editable; - } - - @Override - protected String itemAt(int index) { - return this.combo.getItem(index); - } - - @Override - protected int itemCounts() { - return combo.getItemCount(); - } - - @After - @Override - public void tearDown() throws Exception { - super.tearDown(); - combo = null; - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java deleted file mode 100644 index fb7f5d3d61..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/JptUiSWTTests.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import junit.framework.JUnit4TestAdapter; -import junit.framework.Test; -import junit.framework.TestSuite; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -@SuiteClasses -({ - ComboModelAdapterTest.class, - SpinnerModelAdapterTest.class, - TableModelAdapterTest.class -}) -@RunWith(Suite.class) -public final class JptUiSWTTests { - - private JptUiSWTTests() { - super(); - throw new UnsupportedOperationException(); - } - - public static Test suite() { - TestSuite suite = new TestSuite(); - suite.addTest(new JUnit4TestAdapter(JptUiSWTTests.class)); - return suite; - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java deleted file mode 100644 index f8792a4e5f..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/SpinnerModelAdapterTest.java +++ /dev/null @@ -1,342 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import org.eclipse.jpt.common.ui.internal.swt.SpinnerModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Spinner; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public class SpinnerModelAdapterTest { - - private Model model; - private Shell shell; - private WritablePropertyValueModel subjectHolder; - - private WritablePropertyValueModel buildSubjectHolder() { - return new SimplePropertyValueModel(); - } - - private WritablePropertyValueModel buildValueHolder() { - return new PropertyAspectAdapter(subjectHolder, Model.VALUE_PROPERTY) { - @Override - protected Integer buildValue_() { - return subject.getValue(); - } - - @Override - protected void setValue_(Integer value) { - subject.setValue(value); - } - }; - } - - @Before - public void setUp() throws Exception { - - shell = new Shell(Display.getCurrent()); - model = new Model(); - subjectHolder = buildSubjectHolder(); - } - - @After - public void tearDown() throws Exception { - - if (!shell.isDisposed()) { - shell.dispose(); - } - - shell = null; - subjectHolder = null; - } - - @Test - public void testDisposed() { - - int value = 2; - model.setValue(value); - model.clearSetValueCalledFlag(); - subjectHolder.setValue(model); - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be coming from the model", - value, - spinner.getSelection() - ); - - assertEquals( - "The number holder's value should be the model's value", - model.getValue(), - numberHolder.getValue() - ); - - assertFalse( - "The model should not have received the value during initialization", - model.isSetValueCalled() - ); - - // Change the value in the model - spinner.dispose(); - - value = 4; - model.setValue(value); - - assertEquals( - "The model's value was somehow changed", - Integer.valueOf(value), - model.getValue() - ); - } - - @Test - public void testInitialization_1() { - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel numberHolder = new SimplePropertyValueModel(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be the default value", - defaultValue, - spinner.getSelection() - ); - - assertNull( - "The number holder's value should be null", - numberHolder.getValue() - ); - } - - @Test - public void testInitialization_2() { - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be the default value", - defaultValue, - spinner.getSelection() - ); - - assertNull( - "The number holder's value should be null", - numberHolder.getValue() - ); - } - - @Test - public void testInitialization_3() { - - subjectHolder.setValue(model); - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be the default value", - defaultValue, - spinner.getSelection() - ); - - assertNull( - "The number holder's value should be null", - numberHolder.getValue() - ); - - assertFalse( - "The model should not have received the value during initialization", - model.isSetValueCalled() - ); - } - - @Test - public void testInitialization_4() { - - int value = 2; - model.setValue(value); - model.clearSetValueCalledFlag(); - subjectHolder.setValue(model); - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be the value coming from the model", - value, - spinner.getSelection() - ); - - assertEquals( - "The number holder's value should be " + value, - Integer.valueOf(value), - numberHolder.getValue() - ); - - assertFalse( - "The model should not have received the value during initialization", - model.isSetValueCalled() - ); - } - - @Test - public void testValueChanged() { - - int value = 2; - model.setValue(value); - model.clearSetValueCalledFlag(); - subjectHolder.setValue(model); - - Spinner spinner = new Spinner(shell, SWT.NULL); - WritablePropertyValueModel numberHolder = buildValueHolder(); - int defaultValue = 1; - - SpinnerModelAdapter.adapt( - numberHolder, - spinner, - defaultValue - ); - - assertEquals( - "The spinner's value should be coming from the model", - value, - spinner.getSelection() - ); - - assertEquals( - "The number holder's value should be the model's value", - model.getValue(), - numberHolder.getValue() - ); - - assertFalse( - "The model should not have received the value during initialization", - model.isSetValueCalled() - ); - - // Change the value in the model - value = 4; - model.setValue(value); - - assertEquals( - "The spinner's value should be coming from the model", - value, - spinner.getSelection() - ); - - assertEquals( - "The model's value was somehow changed", - Integer.valueOf(value), - model.getValue() - ); - - // Change the value from the spinner - value = 6; - spinner.setSelection(value); - - assertEquals( - "The spinner's value should be the new value set", - value, - spinner.getSelection() - ); - - assertEquals( - "The model's value was supposed to be updated", - Integer.valueOf(value), - model.getValue() - ); - - // Disconnect from model - subjectHolder.setValue(null); - - assertEquals( - "The spinner's value should be the default value", - defaultValue, - spinner.getSelection() - ); - } - - private static class Model extends AbstractModel { - - private boolean setValueCalled; - private Integer value; - - static final String VALUE_PROPERTY = "value"; - - void clearSetValueCalledFlag() { - setValueCalled = false; - } - - Integer getValue() { - return value; - } - - boolean isSetValueCalled() { - return setValueCalled; - } - - void setValue(Integer value) { - setValueCalled = true; - - Integer oldValue = this.value; - this.value = value; - firePropertyChanged(VALUE_PROPERTY, oldValue, value); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java deleted file mode 100644 index f8e6dd04a9..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TableModelAdapterTest.java +++ /dev/null @@ -1,1201 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jpt.common.ui.internal.swt.ColumnAdapter; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeEvent; -import org.eclipse.jpt.common.ui.internal.swt.TableModelAdapter.SelectionChangeListener; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyCollectionValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableItem; -import org.junit.After; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public class TableModelAdapterTest { - - private Shell shell; - private WritablePropertyValueModel subjectHolder; - - private ColumnAdapter buildColumnAdapter() { - return new TableColumnAdapter(); - } - - private WritablePropertyValueModel buildEmployeeHolder() { - return new SimplePropertyValueModel(); - } - - private SimpleCollectionValueModel buildEmployeeHolders() { - return new SimpleCollectionValueModel(); - } - - private ListValueModel buildEmployeeListHolder() { - return new ListAspectAdapter(subjectHolder, Manager.EMPLOYEES_LIST) { - @Override - protected ListIterator listIterator_() { - return subject.employees(); - } - - @Override - protected int size_() { - return subject.employeesSize(); - } - }; - } - - private ITableLabelProvider buildLabelProvider() { - return new TableLabelProvider(); - } - - private SelectionChangeListener buildSelectionChangeListener(final Collection employees) { - return new SelectionChangeListener() { - public void selectionChanged(SelectionChangeEvent e) { - employees.clear(); - CollectionTools.addAll(employees, e.selection()); - } - }; - } - - private WritablePropertyValueModel buildSubjectHolder() { - return new SimplePropertyValueModel(); - } - - @Before - public void setUp() throws Exception { - - shell = new Shell(Display.getCurrent()); - subjectHolder = buildSubjectHolder(); - } - - @After - public void tearDown() throws Exception { - - if (!shell.isDisposed()) { - shell.dispose(); - } - - shell = null; - subjectHolder = null; - } - - @Test - public void testChanged() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Make sure the Table was populated - Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount()); - - // Change the list of Employees - ArrayList employees = new ArrayList(3); - employees.add(employee3); - employees.add(employee2); - employees.add(employee1); - manager.changeEmployees(employees); - - Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount()); - - testTableItemProperties(table, 0, expectedName3, expectedManager3, expectedTitle3); - testTableItemProperties(table, 1, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, 2, expectedName1, expectedManager1, expectedTitle1); - } - - @Test - public void testCleared() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Make sure the Table was populated - Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount()); - - // Test removing them all - manager.removeAllEmployees(); - - Assert.assertEquals("The list holder should have been cleared", 0, listHolder.size()); - Assert.assertEquals("The Table should have been cleared", 0, table.getItemCount()); - } - - @Test - public void testItemAdded() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create a new Employee - String expectedName = "Dali"; - String expectedManager = "WTP"; - String expectedTitle = "plug-in"; - - Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager); - Assert.assertNotNull("The new Employee was not created", employee); - - // Retrieve the TableItem representing the new Employee - int index = tableModel.indexOf(employee); - Assert.assertEquals("The new Employee was not added to the table model", 0, index); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - testTableItemProperties(table, index, expectedName, expectedManager, expectedTitle); - } - - @Test - public void testItemMoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Make sure the Employees were added to the Table - Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount()); - - // Move an Employee up the list - manager.moveEmployeeUp(employee2); - - int index1 = tableModel.indexOf(employee1); - Assert.assertEquals("The Employee 1 was not moved in the table model", 1, index1); - - int index2 = tableModel.indexOf(employee2); - Assert.assertEquals("The Employee 2 was not moved in the table model", 0, index2); - - int index3 = tableModel.indexOf(employee3); - Assert.assertEquals("The Employee 3 should not have been moved in the table model", 2, index3); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3); - - // Move an Employee down the list - manager.moveEmployeeDown(employee1); - - index1 = tableModel.indexOf(employee1); - Assert.assertEquals("The Employee 1 should not have been moved in the table model", 2, index1); - - index2 = tableModel.indexOf(employee2); - Assert.assertEquals("The Employee 2 was not moved in the table model", 0, index2); - - index3 = tableModel.indexOf(employee3); - Assert.assertEquals("The Employee 3 was not moved in the table model", 1, index3); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3); - } - - @Test - public void testItemRemoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create a new Employee - String expectedName = "Dali"; - String expectedManager = "WTP"; - String expectedTitle = "plug-in"; - - Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager); - Assert.assertNotNull("The new Employee was not created", employee); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - // Make sure it was added to the model - int index = tableModel.indexOf(employee); - Assert.assertEquals("The new Employee was not added to the table model", 0, index); - testTableItemProperties(table, index, expectedName, expectedManager, expectedTitle); - - // Retrieve the TableItem representing the new Employee - TableItem tableItem = table.getItem(index); - Assert.assertNotNull("No TableItem was found for the new Employee", tableItem); - - // Now test the item being removed - manager.removeEmployee(employee); - index = tableModel.indexOf(employee); - Assert.assertEquals("The Employee was not removed from the table model", -1, index); - Assert.assertEquals("The number of TableItem should be 0", 0, table.getItemCount()); - } - - @Test - public void testItemReplaced() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create a new Employee - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - Employee employee1 = manager.addEmployee(expectedName1, expectedTitle1, expectedManager1); - Assert.assertNotNull("The new Employee was not created", employee1); - - // Make sure it was added to the model - int index1 = tableModel.indexOf(employee1); - Assert.assertEquals("The new Employee was not added to the table model", 0, index1); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - // Retrieve the TableItem representing the new Employee - TableItem tableItem = table.getItem(index1); - Assert.assertNotNull("No TableItem was found for the new Employee", tableItem); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - - // Replace the Employee - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - manager.replace(employee1, employee2); - - int index2 = tableModel.indexOf(employee2); - Assert.assertSame("The Employee that got replaced should be at index " + index1, index1, index2); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - } - - @Test - public void testItemsAdded() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Retrieve the TableItems representing the employees - Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount()); - - int index = tableModel.indexOf(employee1); - Assert.assertEquals("The Employee 1 was not added to the table model", 0, index); - - index = tableModel.indexOf(employee2); - Assert.assertEquals("The Employee 2 was not added to the table model", 1, index); - - index = tableModel.indexOf(employee3); - Assert.assertEquals("The Employee 3 was not added to the table model", 2, index); - - // Make sure the TableItem was correctly populated - testTableItemProperties(table, 0, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, 1, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, 2, expectedName3, expectedManager3, expectedTitle3); - } - - @Test - public void testItemsMoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - String expectedName4 = "Dali_4"; - String expectedManager4 = "WTP_4"; - String expectedTitle4 = "plug-in_4"; - - String expectedName5 = "Dali_5"; - String expectedManager5 = "WTP_5"; - String expectedTitle5 = "plug-in_5"; - - String expectedName6 = "Dali_6"; - String expectedManager6 = "WTP_6"; - String expectedTitle6 = "plug-in_6"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - Employee employee4 = new Employee(expectedName4, expectedTitle4, expectedManager4); - Employee employee5 = new Employee(expectedName5, expectedTitle5, expectedManager5); - Employee employee6 = new Employee(expectedName6, expectedTitle6, expectedManager6); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - manager.addEmployee(employee4); - manager.addEmployee(employee5); - manager.addEmployee(employee6); - - // Make sure the Employees were added to the Table - Assert.assertEquals("The number of TableItem should be 6", 6, table.getItemCount()); - - // Move an Employee up the list - ArrayList employees = new ArrayList(3); - employees.add(employee3); - employees.add(employee4); - employees.add(employee5); - manager.moveEmployees(employees, 0); - - int index1 = tableModel.indexOf(employee1); - int index2 = tableModel.indexOf(employee2); - int index3 = tableModel.indexOf(employee3); - int index4 = tableModel.indexOf(employee4); - int index5 = tableModel.indexOf(employee5); - int index6 = tableModel.indexOf(employee6); - - Assert.assertEquals("The Employee 1 is not at the right index", 3, index1); - Assert.assertEquals("The Employee 2 is not at the right index", 4, index2); - Assert.assertEquals("The Employee 3 is not at the right index", 0, index3); - Assert.assertEquals("The Employee 4 is not at the right index", 1, index4); - Assert.assertEquals("The Employee 5 is not at the right index", 2, index5); - Assert.assertEquals("The Employee 6 is not at the right index", 5, index6); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3); - testTableItemProperties(table, index4, expectedName4, expectedManager4, expectedTitle4); - testTableItemProperties(table, index5, expectedName5, expectedManager5, expectedTitle5); - testTableItemProperties(table, index6, expectedName6, expectedManager6, expectedTitle6); - - // Move an Employee down the list - employees = new ArrayList(2); - employees.add(employee1); - employees.add(employee2); - manager.moveEmployees(employees, 4); - - index1 = tableModel.indexOf(employee1); - index2 = tableModel.indexOf(employee2); - index3 = tableModel.indexOf(employee3); - index4 = tableModel.indexOf(employee4); - index5 = tableModel.indexOf(employee5); - index6 = tableModel.indexOf(employee6); - - Assert.assertEquals("The Employee 1 is not at the right index", 4, index1); - Assert.assertEquals("The Employee 2 is not at the right index", 5, index2); - Assert.assertEquals("The Employee 3 is not at the right index", 0, index3); - Assert.assertEquals("The Employee 4 is not at the right index", 1, index4); - Assert.assertEquals("The Employee 5 is not at the right index", 2, index5); - Assert.assertEquals("The Employee 6 is not at the right index", 3, index6); - - testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1); - testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2); - testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3); - testTableItemProperties(table, index4, expectedName4, expectedManager4, expectedTitle4); - testTableItemProperties(table, index5, expectedName5, expectedManager5, expectedTitle5); - testTableItemProperties(table, index6, expectedName6, expectedManager6, expectedTitle6); - } - - @Test - public void testItemsRemoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Retrieve the TableItems representing the employees - Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount()); - - int index = tableModel.indexOf(employee1); - Assert.assertEquals("The Employee 1 was not added to the table model", 0, index); - - index = tableModel.indexOf(employee2); - Assert.assertEquals("The Employee 2 was not added to the table model", 1, index); - - index = tableModel.indexOf(employee3); - Assert.assertEquals("The Employee 3 was not added to the table model", 2, index); - - // Remove 2 items - ArrayList employees = new ArrayList(2); - employees.add(employee1); - employees.add(employee3); - manager.removeEmployees(employees); - - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - } - - @Test - public void testPropertyChanged() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - WritablePropertyValueModel selectedItemHolder = buildEmployeeHolder(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create a new Employee - String expectedName = "Dali"; - String expectedManager = "WTP"; - String expectedTitle = "plug-in"; - - Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager); - Assert.assertNotNull("The new Employee was not created", employee); - - // Make sure it was added to the model - int index = tableModel.indexOf(employee); - Assert.assertEquals("The new Employee was not added to the table model", 0, index); - Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount()); - - // Retrieve the TableItem representing the new Employee - TableItem tableItem = table.getItem(index); - Assert.assertNotNull("No TableItem was found for the new Employee", tableItem); - - // Name property - String actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN); - Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName); - - expectedName = "Jpt"; - employee.setName(expectedName); - - actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN); - Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName); - - // Manager property - String actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN); - Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager); - - expectedManager = "boss"; - employee.setManager(expectedManager); - - actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN); - Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager); - - // Title property - String actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN); - Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle); - - expectedTitle = "EclipseLink"; - employee.setTitle(expectedTitle); - - actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN); - Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle); - } - - @Test - public void testSelectedItemsAddedRemoved() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - SimpleCollectionValueModel selectedItemsHolder = buildEmployeeHolders(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemsHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Test adding selected items - ArrayList employees = new ArrayList(2); - employees.add(employee1); - employees.add(employee3); - selectedItemsHolder.addAll(employees); - - Collection actualEmployees = tableModel.selectedItems(); - Assert.assertNotNull("The collection of selected items can't be null", actualEmployees); - Assert.assertEquals("The count of selected items should be 2", 2, actualEmployees.size()); - - actualEmployees.remove(employee1); - actualEmployees.remove(employee3); - - Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty()); - - // Test removing selected items - selectedItemsHolder.remove(employee1); - - actualEmployees = tableModel.selectedItems(); - Assert.assertNotNull("The collection of selected items can't be null", actualEmployees); - Assert.assertEquals("The count of selected items should be 1", 1, actualEmployees.size()); - - actualEmployees.remove(employee3); - - Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty()); - } - - @Test - public void testSelectedItemsCleared() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - ListValueModel listHolder = buildEmployeeListHolder(); - SimpleCollectionValueModel selectedItemsHolder = buildEmployeeHolders(); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - listHolder, - selectedItemsHolder, - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Test adding selected items - ArrayList employees = new ArrayList(2); - employees.add(employee1); - employees.add(employee3); - selectedItemsHolder.addAll(employees); - - Collection actualEmployees = tableModel.selectedItems(); - Assert.assertNotNull("The collection of selected items can't be null", actualEmployees); - Assert.assertEquals("The count of selected items should be 2", 2, actualEmployees.size()); - - actualEmployees.remove(employee1); - actualEmployees.remove(employee3); - Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty()); - - // Test removing selected items - selectedItemsHolder.clear(); - - actualEmployees = tableModel.selectedItems(); - Assert.assertNotNull("The collection of selected items can't be null", actualEmployees); - Assert.assertEquals("The count of selected items should be ", 0, actualEmployees.size()); - } - - @Test - public void testSelectionChangeListener() { - - Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI); - - Manager manager = new Manager(); - subjectHolder.setValue(manager); - - TableModel tableModel = new TableModel( - buildEmployeeListHolder(), - buildEmployeeHolder(), - table, - buildColumnAdapter(), - buildLabelProvider() - ); - - Collection employees = new ArrayList(); - tableModel.addSelectionChangeListener(buildSelectionChangeListener(employees)); - - // Create Employees - String expectedName1 = "Dali_1"; - String expectedManager1 = "WTP_1"; - String expectedTitle1 = "plug-in_1"; - - String expectedName2 = "Dali_2"; - String expectedManager2 = "WTP_2"; - String expectedTitle2 = "plug-in_2"; - - String expectedName3 = "Dali_3"; - String expectedManager3 = "WTP_3"; - String expectedTitle3 = "plug-in_3"; - - Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1); - Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2); - Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3); - - manager.addEmployee(employee1); - manager.addEmployee(employee2); - manager.addEmployee(employee3); - - // Test adding selected items - table.setSelection(new int[] { 0, 2 }); - - // It seems a manual selection doesn't send any selection event - tableModel.tableSelectionChanged(null); - - Assert.assertNotNull("The collection of selected items can't be null", employees); - Assert.assertEquals("The count of selected items should be 2", 2, employees.size()); - - employees.remove(employee1); - employees.remove(employee3); - Assert.assertTrue("The selected items was not retrieved correctly", employees.isEmpty()); - - // Test adding selected items - employees.add(employee1); - employees.add(employee3); - table.deselectAll(); - - // It seems a manual selection doesn't send any selection event - tableModel.tableSelectionChanged(null); - - Assert.assertNotNull("The collection of selected items can't be null", employees); - Assert.assertEquals("The count of selected items should be 0", 0, employees.size()); - } - - private void testTableItemProperties(Table table, - int index, - String expectedName, - String expectedManager, - String expectedTitle) - { - TableItem tableItem = table.getItem(index); - Assert.assertNotNull("No TableItem was found for the Employee", tableItem); - - String actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN); - Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName); - - String actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN); - Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle); - - String actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN); - Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager); - } - - private class Employee extends AbstractModel { - - private String manager; - private String name; - private String title; - - static final String MANAGER_PROPERTY = "manager"; - static final String NAME_PROPERTY = "name"; - static final String TITLE_PROPERTY = "title"; - - Employee(String name, String title, String manager) { - super(); - - this.name = name; - this.title = title; - this.manager = manager; - } - - String getManager() { - return manager; - } - - String getName() { - return name; - } - - String getTitle() { - return title; - } - - void setManager(String manager) { - String oldManager = this.manager; - this.manager = manager; - firePropertyChanged(MANAGER_PROPERTY, oldManager, manager); - } - - void setName(String name) { - String oldName = this.name; - this.name = name; - firePropertyChanged(NAME_PROPERTY, oldName, name); - } - - void setTitle(String title) { - String oldTitle = this.title; - this.title = title; - firePropertyChanged(TITLE_PROPERTY, oldTitle, title); - } - } - - private class Manager extends AbstractModel { - - private List employees; - - static final String EMPLOYEES_LIST = "employees"; - - Manager() { - super(); - employees = new ArrayList(); - } - - Employee addEmployee(Employee employee) { - addItemToList(employee, employees, EMPLOYEES_LIST); - return employee; - } - - Employee addEmployee(String name, String title, String manager) { - Employee employee = new Employee(name, title, manager); - return addEmployee(employee); - } - - void changeEmployees(List newEmployees) { - this.synchronizeList(newEmployees, this.employees, EMPLOYEES_LIST); - } - - ListIterator employees() { - return new CloneListIterator(employees); - } - - int employeesSize() { - return employees.size(); - } - - void moveEmployeeDown(Employee employee) { - int index = employees.indexOf(employee); - moveItemInList(index + 1, index, employees, EMPLOYEES_LIST); - } - - void moveEmployees(Collection employees, int targetIndex) { - - int sourceIndex = Integer.MAX_VALUE; - - for (Employee employee : employees) { - sourceIndex = Math.min(sourceIndex, this.employees.indexOf(employee)); - } - - moveItemsInList( - targetIndex, - sourceIndex, - employees.size(), - this.employees, - EMPLOYEES_LIST - ); - } - - void moveEmployeeUp(Employee employee) { - int index = employees.indexOf(employee); - moveItemInList(index - 1, index, employees, EMPLOYEES_LIST); - } - - void removeAllEmployees() { - clearList(employees, EMPLOYEES_LIST); - } - - void removeEmployee(Employee employee) { - removeItemFromList(employee, employees, EMPLOYEES_LIST); - } - - void removeEmployees(Collection employees) { - removeItemsFromList(employees.iterator(), this.employees, EMPLOYEES_LIST); - } - - void replace(Employee oldEmployee, Employee newEmployee) { - replaceItemInList(oldEmployee, newEmployee, employees, EMPLOYEES_LIST); - } - } - - private class TableColumnAdapter implements ColumnAdapter { - - static final int COLUMN_COUNT = 3; - static final int MANAGER_COLUMN = 2; - static final int NAME_COLUMN = 0; - static final int TITLE_COLUMN = 1; - - private WritablePropertyValueModel buildManagerHolder(Employee subject) { - return new PropertyAspectAdapter(Employee.MANAGER_PROPERTY, subject) { - @Override - protected String buildValue_() { - return subject.getManager(); - } - - @Override - protected void setValue_(String value) { - subject.setManager(value); - } - }; - } - - private WritablePropertyValueModel buildNameHolder(Employee subject) { - return new PropertyAspectAdapter(Employee.NAME_PROPERTY, subject) { - @Override - protected String buildValue_() { - return subject.getName(); - } - - @Override - protected void setValue_(String value) { - subject.setName(value); - } - }; - } - - private WritablePropertyValueModel buildTitleHolder(Employee subject) { - return new PropertyAspectAdapter(Employee.TITLE_PROPERTY, subject) { - @Override - protected String buildValue_() { - return subject.getTitle(); - } - - @Override - protected void setValue_(String value) { - subject.setTitle(value); - } - }; - } - - public WritablePropertyValueModel[] cellModels(Employee subject) { - WritablePropertyValueModel[] holders = new WritablePropertyValueModel[3]; - holders[NAME_COLUMN] = buildNameHolder(subject); - holders[TITLE_COLUMN] = buildTitleHolder(subject); - holders[MANAGER_COLUMN] = buildManagerHolder(subject); - return holders; - } - - public int columnCount() { - return COLUMN_COUNT; - } - - public String columnName(int columnIndex) { - return String.valueOf(columnIndex); - } - } - - private class TableLabelProvider extends LabelProvider - implements ITableLabelProvider { - - - public Image getColumnImage(Object element, int columnIndex) { - return null; - } - - public String getColumnText(Object element, int columnIndex) { - Employee employee = (Employee) element; - - if (columnIndex == TableColumnAdapter.NAME_COLUMN) { - return employee.getName(); - } - - if (columnIndex == TableColumnAdapter.TITLE_COLUMN) { - return employee.getTitle(); - } - - return employee.getManager(); - } - } - - private class TableModel extends TableModelAdapter { - - TableModel(ListValueModel listHolder, - CollectionValueModel selectedItemsHolder, - Table table, - ColumnAdapter columnAdapter, - ITableLabelProvider labelProvider) { - - super(listHolder, - selectedItemsHolder, - table, - columnAdapter, - labelProvider); - } - - TableModel(ListValueModel listHolder, - WritablePropertyValueModel selectedItemHolder, - Table table, - ColumnAdapter columnAdapter, - ITableLabelProvider labelProvider) { - - super(listHolder, - new PropertyCollectionValueModelAdapter(selectedItemHolder), - table, - columnAdapter, - labelProvider); - } - - @Override - protected int indexOf(Employee item) { - return super.indexOf(item); - } - - @Override - protected Collection selectedItems() { - return super.selectedItems(); - } - - @Override - protected void tableSelectionChanged(SelectionEvent event) { - super.tableSelectionChanged(event); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java deleted file mode 100644 index 810c151526..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java +++ /dev/null @@ -1,319 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.swt; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.swt.TriStateCheckBoxModelAdapter; -import org.eclipse.jpt.common.ui.internal.widgets.DefaultWidgetFactory; -import org.eclipse.jpt.common.ui.internal.widgets.TriStateCheckBox; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; - -/** - * Play around with a set of tri-state check boxes. - */ -public class TriStateCheckBoxModelAdapterUITest - extends ApplicationWindow -{ - private final TestModel testModel; - private final WritablePropertyValueModel testModelHolder; - private final WritablePropertyValueModel flag1Holder; - private final WritablePropertyValueModel flag2Holder; - private final WritablePropertyValueModel notFlag2Holder; - - public static void main(String[] args) throws Exception { - Window window = new TriStateCheckBoxModelAdapterUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private TriStateCheckBoxModelAdapterUITest(String[] args) { - super(null); - this.testModel = new TestModel(Boolean.TRUE, Boolean.FALSE); - this.testModelHolder = new SimplePropertyValueModel(this.testModel); - this.flag1Holder = this.buildFlag1Holder(this.testModelHolder); - this.flag2Holder = this.buildFlag2Holder(this.testModelHolder); - this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder); - } - - private WritablePropertyValueModel buildFlag1Holder(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestModel.FLAG1_PROPERTY) { - @Override - protected Boolean buildValue_() { - return this.subject.isFlag1(); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag1(value); - } - }; - } - - private WritablePropertyValueModel buildFlag2Holder(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestModel.FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return this.subject.isFlag2(); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag2(value); - } - }; - } - - private WritablePropertyValueModel buildNotFlag2Holder(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestModel.NOT_FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return this.subject.isNotFlag2(); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setNotFlag2(value); - } - }; - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(400, 100); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control checkBoxPanel = this.buildCheckBoxPanel(mainPanel); - this.buildControlPanel(mainPanel, checkBoxPanel); - return mainPanel; - } - - private Control buildCheckBoxPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -35); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildFlag1CheckBox(panel); - this.buildFlag2CheckBox(panel); - this.buildNotFlag2CheckBox(panel); - this.buildUnattachedCheckBox(panel); - - return panel; - } - - private void buildFlag1CheckBox(Composite parent) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, "flag 1", DefaultWidgetFactory.instance()); - TriStateCheckBoxModelAdapter.adapt(this.flag1Holder, checkBox); - } - - private void buildFlag2CheckBox(Composite parent) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, "flag 2", DefaultWidgetFactory.instance()); - TriStateCheckBoxModelAdapter.adapt(this.flag2Holder, checkBox); - } - - private void buildNotFlag2CheckBox(Composite parent) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, "next flag 2", DefaultWidgetFactory.instance()); - TriStateCheckBoxModelAdapter.adapt(this.notFlag2Holder, checkBox); - } - - private void buildUnattachedCheckBox(Composite parent) { - TriStateCheckBox checkBox = new TriStateCheckBox(parent, "unattached", DefaultWidgetFactory.instance()); - checkBox.addSelectionListener(this.buildUnattachedSelectionListener()); - } - - private SelectionListener buildUnattachedSelectionListener() { - return new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) { - System.out.println("unattached default selected: " + e); - } - public void widgetSelected(SelectionEvent e) { - System.out.println("unattached selected: " + e); - } - }; - } - - private void buildControlPanel(Composite parent, Control checkBoxPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(checkBoxPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildFlipFlag1Button(panel); - this.buildClearModelButton(panel); - this.buildRestoreModelButton(panel); - this.buildPrintModelButton(panel); - } - - private void buildFlipFlag1Button(Composite parent) { - this.buildFlipFlag1ACI().fill(parent); - } - - private ActionContributionItem buildFlipFlag1ACI() { - Action action = new Action("next flag 1", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TriStateCheckBoxModelAdapterUITest.this.nextFlag1(); - } - }; - action.setToolTipText("next flag 1"); - return new ActionContributionItem(action); - } - - void nextFlag1() { - this.testModel.nextFlag1(); - } - - private void buildClearModelButton(Composite parent) { - this.buildClearModelACI().fill(parent); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TriStateCheckBoxModelAdapterUITest.this.clearModel(); - } - }; - action.setToolTipText("clear model"); - return new ActionContributionItem(action); - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private void buildRestoreModelButton(Composite parent) { - this.buildRestoreModelACI().fill(parent); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TriStateCheckBoxModelAdapterUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore model"); - return new ActionContributionItem(action); - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private void buildPrintModelButton(Composite parent) { - this.buildPrintModelACI().fill(parent); - } - - private ActionContributionItem buildPrintModelACI() { - Action action = new Action("print model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TriStateCheckBoxModelAdapterUITest.this.printModel(); - } - }; - action.setToolTipText("print model"); - return new ActionContributionItem(action); - } - - void printModel() { - System.out.println("flag 1: " + this.testModel.isFlag1()); - System.out.println("flag 2: " + this.testModel.isFlag2()); - System.out.println("not flag 2: " + this.testModel.isNotFlag2()); - System.out.println("***"); - } - - - private class TestModel extends AbstractModel { - private Boolean flag1; - public static final String FLAG1_PROPERTY = "flag1"; - private Boolean flag2; - public static final String FLAG2_PROPERTY = "flag2"; - private Boolean notFlag2; - public static final String NOT_FLAG2_PROPERTY = "notFlag2"; - - public TestModel(Boolean flag1, Boolean flag2) { - this.flag1 = flag1; - this.flag2 = flag2; - this.notFlag2 = this.next(flag2); - } - private Boolean next(Boolean b) { - return (b == null) ? Boolean.TRUE : b.booleanValue() ? Boolean.FALSE : null; - } - public Boolean isFlag1() { - return this.flag1; - } - public void setFlag1(Boolean flag1) { - Boolean old = this.flag1; - this.flag1 = flag1; - this.firePropertyChanged(FLAG1_PROPERTY, old, flag1); - } - public void nextFlag1() { - this.setFlag1(this.next(this.flag1)); - } - public Boolean isFlag2() { - return this.flag2; - } - public void setFlag2(Boolean flag2) { - Boolean old = this.flag2; - this.flag2 = flag2; - this.firePropertyChanged(FLAG2_PROPERTY, old, flag2); - - old = this.notFlag2; - this.notFlag2 = this.next(flag2); - this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2); - } - public void nextFlag2() { - this.setFlag2(this.next(this.flag2)); - } - public Boolean isNotFlag2() { - return this.notFlag2; - } - public void setNotFlag2(Boolean notFlag2) { - this.setFlag2(this.next(flag2)); - } - public void nextNotFlag2() { - this.setNotFlag2(this.next(this.notFlag2)); - } - @Override - public String toString() { - return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java deleted file mode 100644 index 1c2904e0e7..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlAlignerTest.java +++ /dev/null @@ -1,803 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.fail; -import org.eclipse.jface.dialogs.TitleAreaDialog; -import org.eclipse.jpt.common.ui.internal.util.ControlAligner; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Point; -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.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Layout; -import org.eclipse.swt.widgets.Shell; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class ControlAlignerTest { - - private ControlAligner controlAligner; - private Composite parent; - private Shell shell; - - private Layout buildSpacerLayout() { - return new Layout() { - @Override - protected Point computeSize(Composite composite, - int widthHint, - int heightHint, - boolean flushCache) { - - return new Point(widthHint, heightHint); - } - - @Override - protected void layout(Composite composite, boolean flushCache) { - GridData data = (GridData) composite.getLayoutData(); - composite.setBounds(0, 0, data.widthHint, data.heightHint); - } - }; - } - - @Before - public void setUp() { - - controlAligner = new ControlAligner(); - - shell = new Shell(Display.getCurrent()); - shell.setLayout(new GridLayout(1, false)); - - parent = new Composite(shell, SWT.NONE); - parent.setLayout(new GridLayout(1, false)); - parent.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - } - - @After - public void tearDown() { - - if (controlAligner != null) { - controlAligner.dispose(); - controlAligner = null; - } - - if (shell != null) { - shell.dispose(); - shell = null; - } - } - - @Test - public void testAddControl1() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - updateGridData(label); - - controlAligner.add(label); - - assertEquals( - "The maximum width should be 0,", - 0, - controlAligner.getMaximumWidth() - ); - - label.setText("This is a ControlAligner"); -// parent.layout(true, true); - - Point size = label.getSize(); - - assertEquals( - "The width should be " + size.x + ",", - size.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testAddControl2() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Button button = new Button(pane, SWT.NULL); - button.setText("This is a ControlAligner"); - updateGridData(button); - - controlAligner.add(button); - parent.layout(true, true); - - Point size = button.getSize(); - - assertEquals( - "The width should be " + size.x + ",", - size.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testAddControl3() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - -// parent.layout(true, true); - - controlAligner.add(label); - controlAligner.add(button); - - Point labelSize = label.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testAddControlAligner1() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - @Test - public void testAddControlAligner2() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); - - controlAligner.add(controlAligner2); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - @Test(expected=IllegalArgumentException.class) - public void testAddControlAlignerToItself() throws Exception { - controlAligner.add(controlAligner); - fail("A ControlAligner can't be added to itself"); - } - - @Test - public void testDialog_AddControl1() throws Exception { - - final int[] maximumWidth = new int[1]; - final int[] size = new int[1]; - - TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) { - - private Label label; - - @Override - protected Control createDialogArea(Composite parent) { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - label = new Label(pane, SWT.LEFT); - label.setText("This is a ControlAligner"); - updateGridData(label); - - controlAligner.add(label); - - return parent; - } - - @Override - protected void initializeBounds() { - super.initializeBounds(); - size[0] = label.getSize().x; - maximumWidth[0] = controlAligner.getMaximumWidth(); - } - }; - - dialog.create(); - dialog.close(); - - assertEquals( - "The width should be " + size[0] + ",", - size[0], - maximumWidth[0] - ); - } - - @Test - public void testDialog_AddControl2() throws Exception { - - final int[] maximumWidth = new int[1]; - final int[] sizes = new int[2]; - - TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) { - - private Button button; - private Label label; - - @Override - protected Control createDialogArea(Composite parent) { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - label = new Label(pane, SWT.NULL); - label.setText("This is a ControlAligner"); - updateGridData(label); - - controlAligner.add(label); - - button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - - controlAligner.add(button); - - return parent; - } - - @Override - protected void initializeBounds() { - super.initializeBounds(); - sizes[0] = label.getSize().x; - sizes[1] = button.getSize().x; - maximumWidth[0] = controlAligner.getMaximumWidth(); - } - }; - - dialog.create(); - dialog.close(); - - int labelSize = sizes[0]; - int buttonSize = sizes[1]; - int max = Math.max(labelSize, buttonSize); - - assertEquals( - "The width should be " + max + ",", - max, - maximumWidth[0] - ); - } - - @Test - public void testDispose() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - - controlAligner.add(label); - controlAligner.add(button); - - Point labelSize = label.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - - label.dispose(); - - Point newButtonSize = button.getSize(); - - assertNotSame( - "The old max and new max should not be the same", - max, - newButtonSize.x - ); - - assertEquals( - "The ControlAligner doesn't have the right maximum width", - newButtonSize.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testHierarchyOfControlAligners() throws Exception { - - // Aligner1 - // ^ - // |-Aligner2 - // ^ - // |-Aligner3 - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - - ControlAligner controlAligner3 = new ControlAligner(); - controlAligner2.add(controlAligner3); - - // Test 1 - Label label1 = new Label(parent, SWT.NULL); - label1.setText("This is a label widget"); - parent.layout(true, true); - - int labelWidth1 = label1.getSize().x; - controlAligner3.add(label1); - - assertEquals(controlAligner3.getMaximumWidth(), labelWidth1); - assertEquals(controlAligner2.getMaximumWidth(), labelWidth1); - assertEquals(controlAligner.getMaximumWidth(), labelWidth1); - - // Test 2 - Label label2 = new Label(parent, SWT.NULL); - label2.setText("ShortLabel"); - controlAligner2.add(label2); - parent.layout(true); - - int newLabelWidth1 = label1.getSize().x; - int newLabelWidth2 = label2.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - - // Test 3 - Label label3 = new Label(parent, SWT.NULL); - label3.setText("A very long label that takes a lot of horizontal space"); -// parent.layout(true); - controlAligner.add(label3); - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - int newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - - // Make sure all the locked are removed - assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE); - - // Change the text of label2 - label2.setText("mm"); -// parent.layout(true); - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - - assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE); - - // Change the text of label1 - label1.setText("a"); -// parent.layout(true); - - Composite parent1 = new Composite(SWTUtil.getShell(), SWT.NULL); - parent1.setLayout(new GridLayout()); - - Label tempLabel = new Label(parent1, SWT.NULL); - tempLabel.setText("a"); -// parent1.layout(true); - - int realWidth = tempLabel.getSize().x; - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - assertFalse(newLabelWidth1 == realWidth); - - assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE); - - // Change the text of label1 - label1.setText("Yes another big long long text so that all the labels will have to take the size of this label to make sure ControlAligner works correctly"); -// parent.layout(true); - - // Weird: It seems no notification is sent, fire one manually - Event event = new Event(); - event.widget = label1; - event.type = SWT.Resize; - label1.notifyListeners(SWT.Resize, event); - - Composite parent2 = new Composite(SWTUtil.getShell(), SWT.NULL); - parent2.setLayout(new GridLayout()); - - tempLabel = new Label(parent2, SWT.NULL); - tempLabel.setText(label1.getText()); - parent2.layout(true); - - realWidth = tempLabel.getSize().x; - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(controlAligner.getMaximumWidth(), newLabelWidth1); - assertEquals(realWidth, newLabelWidth1); - - assertEquals(ReflectionTools.getFieldValue_(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ReflectionTools.getFieldValue_(controlAligner3, "locked"), Boolean.FALSE); - } - - @Test - public void testRemoveControl1() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Button button = new Button(pane, SWT.NULL); - button.setText("This is a ControlAligner"); - updateGridData(button); - - controlAligner.add(button); - parent.layout(true, true); - - Point size = button.getSize(); - - assertEquals( - "The width should be " + size.x + ",", - size.x, - controlAligner.getMaximumWidth() - ); - - controlAligner.remove(button); - - assertEquals( - "The width should be 0, ", - 0, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testRemoveControl2() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); -// parent.layout(true, true); - - controlAligner.add(label); - controlAligner.add(button); - - Point labelSize = label.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - - controlAligner.remove(label); - - Point newButtonSize = button.getSize(); - - assertNotSame( - "The old max and new max should not be the same", - max, - newButtonSize.x - ); - - assertEquals( - "The ControlAligner doesn't have the right maximum width", - newButtonSize.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testRemoveControl4() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - // Widget 1 - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - controlAligner.add(label); - - // Widget 2 - Composite spacer = new Composite(pane, SWT.NULL); - spacer.setLayout(buildSpacerLayout()); - updateGridData(spacer); - controlAligner.add(spacer); - - // Widget 3 - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - controlAligner.add(button); - -// parent.layout(true, true); - - // Make sure the 3 widgets have the same width - Point labelSize = label.getSize(); - Point spacerSize = spacer.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - max = Math.max(max, spacerSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The spacer's width should be " + max + ",", - max, - spacerSize.x - ); - - // Remove the label (the widest widget) and make sure the width was - // correctly calculated - controlAligner.remove(label); - - spacerSize = spacer.getSize(); - buttonSize = button.getSize(); - int max2 = Math.max(spacerSize.x, buttonSize.x); - - assertNotSame( - "The old max and new max should not be the same", - max, - max2 - ); - - assertEquals( - "The ControlAligner doesn't have the right maximum width", - max2, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The spacer's width should have been adjusted", - max2, - spacerSize.x - ); - } - - @Test - public void testRemoveControlAligner1() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - // Test 1 - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - - // Test 2 - controlAligner.remove(label1); - - width = label2.getSize().x; - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - @Test - public void testRemoveControlAligner2() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - // Test 1 - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - - // Test 2 - controlAligner2.remove(label2); - - width = label1.getSize().x; - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - private void updateGridData(Control control) { - GridData data = new GridData(); - data.horizontalAlignment = GridData.FILL; - data.grabExcessHorizontalSpace = false; - control.setLayoutData(data); - } -} \ No newline at end of file diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java deleted file mode 100644 index d6406a1bb9..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlEnablerTest.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class ControlEnablerTest { - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - } - } - - @Test - public void testSwitchState() { - - SimplePropertyValueModel booleanHolder = - new SimplePropertyValueModel(true); - - Combo combo = new Combo(parent, SWT.BORDER); - - SWTTools.controlEnabledState(booleanHolder, combo); - - assertTrue( - "The Combo should be enabled", - combo.isEnabled() - ); - - // Change state (null) - booleanHolder.setValue(null); - - assertFalse( - "The Combo should not be enabled", - combo.isEnabled() - ); - - // Change state (true) - booleanHolder.setValue(true); - - assertTrue( - "The Combo should be enabled", - combo.isEnabled() - ); - - // Change state (false) - booleanHolder.setValue(false); - - assertFalse( - "The Combo should not be enabled", - combo.isEnabled() - ); - - // Dispose - combo.dispose(); - booleanHolder.setValue(true); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java deleted file mode 100644 index 49111bdef5..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlSwitcherTest.java +++ /dev/null @@ -1,189 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import org.eclipse.jpt.common.ui.internal.util.ControlSwitcher; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.part.PageBook; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class ControlSwitcherTest { - - private PageBook pageBook; - private Composite pane1; - private Composite pane2; - private Composite parent; - - private Composite buildPane1() { - - if (pane1 == null) { - - pane1 = new Composite(pageBook, SWT.NULL); - pane1.setLayout(new GridLayout(2, false)); - - Label label = new Label(pane1, SWT.NULL); - label.setText("&Test2:"); - - Text text = new Text(pane1, SWT.BORDER); - text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Combo combo = new Combo(pane1, SWT.BORDER); - - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - combo.setLayoutData(data); - } - - return pane1; - } - - private Composite buildPane2() { - - if (pane2 == null) { - - pane2 = new Composite(pageBook, SWT.NULL); - pane2.setLayout(new GridLayout(2, false)); - - Label label = new Label(pane2, SWT.NULL); - label.setText("&Test1:"); - - Text text = new Text(pane2, SWT.BORDER); - text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - } - - return pane2; - } - - private Transformer buildTransformer() { - return new Transformer() { - public Control transform(Boolean value) { - return (value == null) ? null : (value ? pane1 : pane2); - } - }; - } - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - - pageBook = new PageBook(parent, SWT.NULL); - pageBook.setLayoutData(new GridData()); - } - - @After - public void tearDown() { - - if (parent != null) { - - parent.dispose(); - - parent = null; - pageBook = null; - } - } - - @Test - public void testSwitch() { - - SimplePropertyValueModel switchHolder = new SimplePropertyValueModel(); - Transformer transformer = buildTransformer(); - - pane1 = buildPane1(); - pane1.setVisible(false); - - pane2 = buildPane2(); - pane2.setVisible(false); - - new ControlSwitcher( - switchHolder, - transformer, - pageBook - ); - - // Test 1 - switchHolder.setValue(true); - Control control = (Control) ReflectionTools.getFieldValue(pageBook, "currentPage"); - - assertNotNull( - "The page book's page shouldn't be null", - control - ); - - assertSame( - "The current pane should be pane1", - pane1, - control - ); - - Point pane1Size = pane1.computeSize(SWT.DEFAULT, SWT.DEFAULT); - Point pageBookSize = pageBook.computeSize(SWT.DEFAULT, SWT.DEFAULT); - - assertEquals( - "The width of the PageBook should be the same as the width of pane1", - pane1Size.x, - pageBookSize.x - ); - - assertEquals( - "The height of the PageBook should be the same as the height of pane1", - pane1Size.y, - pageBookSize.y - ); - - // Test 2 - switchHolder.setValue(false); - control = (Control) ReflectionTools.getFieldValue(pageBook, "currentPage"); - - assertNotNull( - "The page book's page shouldn't be null", - control - ); - - assertSame( - "The current pane should be pane2", - pane2, - control - ); - - Point pane2Size = pane2.computeSize(SWT.DEFAULT, SWT.DEFAULT); - pageBookSize = pageBook.computeSize(SWT.DEFAULT, SWT.DEFAULT); - - assertEquals( - "The width of the PageBook should be the same as the width of pane2", - pane2Size.x, - pageBookSize.x - ); - - assertEquals( - "The height of the PageBook should be the same as the height of pane2", - pane2Size.y, - pageBookSize.y - ); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java deleted file mode 100644 index f978ed1618..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/ControlVisibilityEnablerTest.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class ControlVisibilityEnablerTest { - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - } - } - - @Test - public void testSwitchState() { - - SimplePropertyValueModel booleanHolder = - new SimplePropertyValueModel(true); - - Combo combo = new Combo(parent, SWT.BORDER); - - SWTTools.controlVisibleState(booleanHolder, combo); - - assertTrue( - "The Combo should be visible", - combo.isVisible() - ); - - // Change state (null) - booleanHolder.setValue(null); - - assertFalse( - "The Combo should not be visible", - combo.isVisible() - ); - - // Change state (true) - booleanHolder.setValue(true); - - assertTrue( - "The Combo should be visible", - combo.isVisible() - ); - - // Change state (false) - booleanHolder.setValue(false); - - assertFalse( - "The Combo should not be visible", - combo.isVisible() - ); - - // Dispose - combo.dispose(); - booleanHolder.setValue(true); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java deleted file mode 100644 index 38f00d21d0..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/JptUiUtilTests.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import junit.framework.JUnit4TestAdapter; -import junit.framework.Test; -import junit.framework.TestSuite; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -@SuiteClasses -({ - ControlAlignerTest.class, - ControlSwitcherTest.class, - ControlEnablerTest.class, - ControlVisibilityEnablerTest.class, - LabeledButtonTest.class, - LabeledLabelTest.class, - LabeledControlUpdaterTest.class, - PaneEnablerTest.class, - PaneVisibilityEnablerTest.class, -}) -@RunWith(Suite.class) -public final class JptUiUtilTests { - - private JptUiUtilTests() { - super(); - throw new UnsupportedOperationException(); - } - - public static Test suite() { - TestSuite suite = new TestSuite(); - suite.addTest(new JUnit4TestAdapter(JptUiUtilTests.class)); - return suite; - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java deleted file mode 100644 index 52515acb41..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledButtonTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import org.eclipse.core.runtime.AssertionFailedException; -import org.eclipse.jpt.common.ui.internal.util.LabeledButton; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class LabeledButtonTest { - - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - parent = null; - } - } - - @Test - public void testLabeledButton1() { - Button button = new Button(parent, SWT.NULL); - new LabeledButton(button); - } - - @Test(expected=AssertionFailedException.class) - public void testLabeledButton2() { - new LabeledButton(null); - } - - @Test - public void testSetImage() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Button button = new Button(parent, SWT.NULL); - LabeledButton labeledButton = new LabeledButton(button); - - labeledButton.setImage(expected); - - assertEquals( - "The Button didn't receive the Image", - expected, - button.getImage() - ); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetImageDispose() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Button button = new Button(parent, SWT.NULL); - LabeledButton labeledButton = new LabeledButton(button); - - button.dispose(); - - // This should not fail but simply do nothing - labeledButton.setImage(expected); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetText() { - Button button = new Button(parent, SWT.NULL); - LabeledButton labeledButton = new LabeledButton(button); - - String expected = "This is a test"; - labeledButton.setText(expected); - - assertEquals( - "The Button didn't receive the text", - expected, - button.getText() - ); - } - - @Test - public void testSetTextDispose() { - Button button = new Button(parent, SWT.NULL); - LabeledButton labeledButton = new LabeledButton(button); - - button.dispose(); - - // This should not fail but simply do nothing - String expected = "This is a test"; - labeledButton.setText(expected); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java deleted file mode 100644 index 2238dc972f..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledControlUpdaterTest.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import org.eclipse.jpt.common.ui.internal.util.LabeledControlUpdater; -import org.eclipse.jpt.common.ui.internal.util.LabeledLabel; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class LabeledControlUpdaterTest { - - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - parent = null; - } - } - - @Test - public void testSetImage() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - WritablePropertyValueModel imageHolder = new SimplePropertyValueModel(); - new LabeledControlUpdater(labeledLabel, null, imageHolder); - - labeledLabel.setImage(expected); - - assertEquals( - "The Label didn't receive the Image", - expected, - label.getImage() - ); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetImageDispose() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - WritablePropertyValueModel imageHolder = new SimplePropertyValueModel(); - new LabeledControlUpdater(labeledLabel, null, imageHolder); - - label.dispose(); - labeledLabel.setImage(expected); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetText() { - - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - WritablePropertyValueModel textHolder = new SimplePropertyValueModel(); - new LabeledControlUpdater(labeledLabel, textHolder); - - String expected = "This is a test"; - textHolder.setValue(expected); - - assertEquals( - "The Label didn't receive the text", - expected, - label.getText() - ); - } - - @Test - public void testSetTextDispose() { - - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - WritablePropertyValueModel textHolder = new SimplePropertyValueModel(); - new LabeledControlUpdater(labeledLabel, textHolder); - - label.dispose(); - - String expected = "This is a test"; - textHolder.setValue(expected); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java deleted file mode 100644 index d43bcee4fb..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/LabeledLabelTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertEquals; -import org.eclipse.core.runtime.AssertionFailedException; -import org.eclipse.jpt.common.ui.internal.util.LabeledLabel; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class LabeledLabelTest { - - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - parent = null; - } - } - - @Test - public void testLabeledButton1() { - Label label = new Label(parent, SWT.NULL); - new LabeledLabel(label); - } - - @Test(expected=AssertionFailedException.class) - public void testLabeledButton2() { - new LabeledLabel(null); - } - - @Test - public void testSetImage() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - labeledLabel.setImage(expected); - - assertEquals( - "The Label didn't receive the Image", - expected, - label.getImage() - ); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetImageDispose() { - - Image expected = new Image(parent.getDisplay(), 16, 16); - - try { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - label.dispose(); - - // This should not fail but simply do nothing - labeledLabel.setImage(expected); - } - finally { - expected.dispose(); - } - } - - @Test - public void testSetText() { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - String expected = "This is a test"; - labeledLabel.setText(expected); - - assertEquals( - "The Label didn't receive the text", - expected, - label.getText() - ); - } - - @Test - public void testSetTextDispose() { - Label label = new Label(parent, SWT.NULL); - LabeledLabel labeledLabel = new LabeledLabel(label); - - label.dispose(); - - // This should not fail but simply do nothing - String expected = "This is a test"; - labeledLabel.setText(expected); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java deleted file mode 100644 index b68fd99686..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneEnablerTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.eclipse.jpt.common.ui.internal.util.PaneEnabler; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.widgets.DialogPane; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.node.Node; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class PaneEnablerTest { - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - } - } - - @Test - public void testSwitchState() { - - SimplePropertyValueModel booleanHolder = - new SimplePropertyValueModel(true); - - DialogPane pane = new DialogPane( - new SimplePropertyValueModel(), - parent) - { - @Override - protected void initializeLayout(Composite container) { - } - }; - - new PaneEnabler(booleanHolder, pane); - - assertTrue( - "The pane should be enabled", - pane.getControl().isEnabled() - ); - - // Change state (null) - booleanHolder.setValue(null); - - assertFalse( - "The pane should not be enabled", - pane.getControl().isEnabled() - ); - - // Change state (true) - booleanHolder.setValue(true); - - assertTrue( - "The pane should be enabled", - pane.getControl().isEnabled() - ); - - // Change state (false) - booleanHolder.setValue(false); - - assertFalse( - "The pane should not be enabled", - pane.getControl().isEnabled() - ); - - // Dispose - pane.dispose(); - booleanHolder.setValue(true); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java deleted file mode 100644 index e0ac3ce2ad..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/util/PaneVisibilityEnablerTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.eclipse.jpt.common.ui.internal.util.PaneVisibilityEnabler; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.widgets.DialogPane; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.node.Node; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class PaneVisibilityEnablerTest { - private Composite parent; - - @Before - public void setUp() { - parent = new Composite(SWTUtil.getShell(), SWT.NONE); - parent.setLayout(new GridLayout()); - } - - @After - public void tearDown() { - if (parent != null) { - parent.dispose(); - } - } - - @Test - public void testSwitchState() { - - SimplePropertyValueModel booleanHolder = - new SimplePropertyValueModel(true); - - DialogPane pane = new DialogPane( - new SimplePropertyValueModel(), - parent) - { - @Override - protected void initializeLayout(Composite container) { - } - }; - - new PaneVisibilityEnabler(booleanHolder, pane); - - assertTrue( - "The pane should be visible", - pane.getControl().isVisible() - ); - - // Change state (null) - booleanHolder.setValue(null); - - assertFalse( - "The pane should not be visible", - pane.getControl().isVisible() - ); - - // Change state (true) - booleanHolder.setValue(true); - - assertTrue( - "The pane should be visible", - pane.getControl().isVisible() - ); - - // Change state (false) - booleanHolder.setValue(false); - - assertFalse( - "The pane should not be visible", - pane.getControl().isVisible() - ); - - // Dispose - pane.dispose(); - booleanHolder.setValue(true); - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java deleted file mode 100644 index f1568bd867..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/BooleanStateControllerUITest.java +++ /dev/null @@ -1,278 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; - -/** - * Play around with boolean state controllers ('enabled' and 'visible'). - *

- * Note the behavior of composites:

    - *
  • When a composite is disabled, its children are disabled but not - * grayed out. - *
  • When a composite is made invisible, its children are also made - * invisible. - *
- */ -@SuppressWarnings("nls") -public class BooleanStateControllerUITest - extends ApplicationWindow -{ - private final WritablePropertyValueModel enabledHolder; - private final WritablePropertyValueModel visibleHolder; - private final SimpleListValueModel listHolder; - private final WritablePropertyValueModel listSelectionHolder; - - public static void main(String[] args) throws Exception { - Window window = new BooleanStateControllerUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private BooleanStateControllerUITest(@SuppressWarnings("unused") String[] args) { - super(null); - this.enabledHolder = new SimplePropertyValueModel(Boolean.TRUE); - this.visibleHolder = new SimplePropertyValueModel(Boolean.TRUE); - this.listHolder = this.buildListHolder(); - this.listSelectionHolder = new SimplePropertyValueModel(null); - } - - private SimpleListValueModel buildListHolder() { - SimpleListValueModel result = new SimpleListValueModel(); - result.add("zero"); - result.add("one"); - result.add("two"); - result.add("three"); - result.add("four"); - result.add("five"); - result.add("six"); - result.add("seven"); - return result; - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(500, 150); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control widgetPanel = this.buildWidgetPanels(mainPanel); - this.buildControlPanel(mainPanel, widgetPanel); - return mainPanel; - } - - private Control buildWidgetPanels(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -35); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout(SWT.VERTICAL)); - - this.buildWidgetPanel1(panel); - this.buildWidgetPanel2(panel); - - return panel; - } - - private void buildWidgetPanel1(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayout(new FillLayout(SWT.HORIZONTAL)); - - Button enabledComboBoxCheckBox = this.buildEnabledComboBoxCheckBox(panel); - SWTTools.bind(this.enabledHolder, enabledComboBoxCheckBox); - - Button visibleComboBoxCheckBox = this.buildVisibleComboBoxCheckBox(panel); - SWTTools.bind(this.visibleHolder, visibleComboBoxCheckBox); - - Label comboBoxLabel = this.buildComboBoxLabel(panel); - Combo comboBox = this.buildComboBox(panel); - SWTTools.bind(this.listHolder, this.listSelectionHolder, comboBox); - SWTTools.controlEnabledState(this.enabledHolder, comboBoxLabel, comboBox); - SWTTools.controlVisibleState(this.visibleHolder, comboBoxLabel, comboBox); - } - - private Button buildEnabledComboBoxCheckBox(Composite parent) { - return this.buildCheckBox(parent, "enabled"); - } - - private Button buildVisibleComboBoxCheckBox(Composite parent) { - return this.buildCheckBox(parent, "visible"); - } - - private Button buildCheckBox(Composite parent, String text) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText(text); - return checkBox; - } - - private Label buildComboBoxLabel(Composite parent) { - Label label = new Label(parent, SWT.LEFT); - label.setText("list:"); - return label; - } - - private Combo buildComboBox(Composite parent) { - return new Combo(parent, SWT.READ_ONLY); - } - - private void buildWidgetPanel2(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayout(new FillLayout(SWT.HORIZONTAL)); - - Button checkBox1 = this.buildCheckBox(panel, "one"); - this.buildCheckBox(panel, "two"); - this.buildCheckBox(panel, "three"); - this.buildCheckBox(panel, "four"); - - SWTTools.controlEnabledState(this.enabledHolder, panel, checkBox1); - SWTTools.controlVisibleState(this.visibleHolder, panel); - } - - private void buildControlPanel(Composite parent, Control widgetPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(widgetPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildClearEnabledModelButton(panel); - this.buildClearVisibleModelButton(panel); - this.buildNullSelectionModelButton(panel); - this.buildNextButton(panel); - } - - private void buildClearEnabledModelButton(Composite parent) { - this.buildClearEnabledModelACI().fill(parent); - } - - private ActionContributionItem buildClearEnabledModelACI() { - Action action = new Action("clear enabled model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - BooleanStateControllerUITest.this.clearEnabledModel(); - } - }; - action.setToolTipText("clear enabled model"); - return new ActionContributionItem(action); - } - - void clearEnabledModel() { - this.enabledHolder.setValue(null); - } - - private void buildClearVisibleModelButton(Composite parent) { - this.buildClearVisibleModelACI().fill(parent); - } - - private ActionContributionItem buildClearVisibleModelACI() { - Action action = new Action("clear visible model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - BooleanStateControllerUITest.this.clearVisibleModel(); - } - }; - action.setToolTipText("clear visible model"); - return new ActionContributionItem(action); - } - - void clearVisibleModel() { - this.visibleHolder.setValue(null); - } - - private void buildNullSelectionModelButton(Composite parent) { - this.buildNullSelectionModelACI().fill(parent); - } - - private ActionContributionItem buildNullSelectionModelACI() { - Action action = new Action("null selection model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - BooleanStateControllerUITest.this.setSelectionModelNull(); - } - }; - action.setToolTipText("null selection model"); - return new ActionContributionItem(action); - } - - void setSelectionModelNull() { - this.listSelectionHolder.setValue(null); - } - - private void buildNextButton(Composite parent) { - this.buildNextACI().fill(parent); - } - - private ActionContributionItem buildNextACI() { - Action action = new Action("next", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - BooleanStateControllerUITest.this.next(); - } - }; - action.setToolTipText("next"); - return new ActionContributionItem(action); - } - - void next() { - this.listSelectionHolder.setValue(this.getNextListSelection()); - } - - private String getNextListSelection() { - return this.listHolder.get(this.getNextListSelectionIndex()); - } - - private int getNextListSelectionIndex() { - int index = this.getListSelectionIndex(); - if (index == -1) { - return 0; - } - index++; - return (index == this.listHolder.size()) ? 0 : index; - } - - private int getListSelectionIndex() { - return this.listHolder.indexOf(this.getListSelection()); - } - - private String getListSelection() { - return this.listSelectionHolder.getValue(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java deleted file mode 100644 index 6d211010a9..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/CheckBoxModelBindingUITest.java +++ /dev/null @@ -1,318 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; - -/** - * Play around with a set of check boxes. - */ -@SuppressWarnings("nls") -public class CheckBoxModelBindingUITest - extends ApplicationWindow -{ - private final TestModel testModel; - private final WritablePropertyValueModel testModelHolder; - private final WritablePropertyValueModel flag1Holder; - private final WritablePropertyValueModel flag2Holder; - private final WritablePropertyValueModel notFlag2Holder; - - public static void main(String[] args) throws Exception { - Window window = new CheckBoxModelBindingUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private CheckBoxModelBindingUITest(@SuppressWarnings("unused") String[] args) { - super(null); - this.testModel = new TestModel(true, true); - this.testModelHolder = new SimplePropertyValueModel(this.testModel); - this.flag1Holder = this.buildFlag1Holder(this.testModelHolder); - this.flag2Holder = this.buildFlag2Holder(this.testModelHolder); - this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder); - } - - private WritablePropertyValueModel buildFlag1Holder(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestModel.FLAG1_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isFlag1()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag1(value.booleanValue()); - } - }; - } - - private WritablePropertyValueModel buildFlag2Holder(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestModel.FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isFlag2()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag2(value.booleanValue()); - } - }; - } - - private WritablePropertyValueModel buildNotFlag2Holder(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestModel.NOT_FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isNotFlag2()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setNotFlag2(value.booleanValue()); - } - }; - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(400, 100); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control checkBoxPanel = this.buildCheckBoxPanel(mainPanel); - this.buildControlPanel(mainPanel, checkBoxPanel); - return mainPanel; - } - - private Control buildCheckBoxPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -35); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildFlag1CheckBox(panel); - this.buildFlag2CheckBox(panel); - this.buildNotFlag2CheckBox(panel); - this.buildUnattachedCheckBox(panel); - - return panel; - } - - private void buildFlag1CheckBox(Composite parent) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText("flag 1"); - SWTTools.bind(this.flag1Holder, checkBox); - } - - private void buildFlag2CheckBox(Composite parent) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText("flag 2"); - SWTTools.bind(this.flag2Holder, checkBox); - } - - private void buildNotFlag2CheckBox(Composite parent) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText("not flag 2"); - SWTTools.bind(this.notFlag2Holder, checkBox); - } - - private void buildUnattachedCheckBox(Composite parent) { - Button checkBox = new Button(parent, SWT.CHECK); - checkBox.setText("unattached"); - checkBox.addSelectionListener(this.buildUnattachedSelectionListener()); - } - - private SelectionListener buildUnattachedSelectionListener() { - return new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) { - System.out.println("unattached default selected: " + e); - } - public void widgetSelected(SelectionEvent e) { - System.out.println("unattached selected: " + e); - } - }; - } - - private void buildControlPanel(Composite parent, Control checkBoxPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(checkBoxPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildFlipFlag1Button(panel); - this.buildNotFlag2ToggleButton(panel); - this.buildClearModelButton(panel); - this.buildRestoreModelButton(panel); - this.buildPrintModelButton(panel); - } - - private void buildFlipFlag1Button(Composite parent) { - this.buildFlipFlag1ACI().fill(parent); - } - - private ActionContributionItem buildFlipFlag1ACI() { - Action action = new Action("flip flag 1", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - CheckBoxModelBindingUITest.this.flipFlag1(); - } - }; - action.setToolTipText("flip flag 1"); - return new ActionContributionItem(action); - } - - void flipFlag1() { - this.testModel.setFlag1( ! this.testModel.isFlag1()); - } - - private void buildNotFlag2ToggleButton(Composite parent) { - Button checkBox = new Button(parent, SWT.TOGGLE); - checkBox.setText("not flag 2"); - SWTTools.bind(this.notFlag2Holder, checkBox); - } - - private void buildClearModelButton(Composite parent) { - this.buildClearModelACI().fill(parent); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - CheckBoxModelBindingUITest.this.clearModel(); - } - }; - action.setToolTipText("clear model"); - return new ActionContributionItem(action); - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private void buildRestoreModelButton(Composite parent) { - this.buildRestoreModelACI().fill(parent); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - CheckBoxModelBindingUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore model"); - return new ActionContributionItem(action); - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private void buildPrintModelButton(Composite parent) { - this.buildPrintModelACI().fill(parent); - } - - private ActionContributionItem buildPrintModelACI() { - Action action = new Action("print model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - CheckBoxModelBindingUITest.this.printModel(); - } - }; - action.setToolTipText("print model"); - return new ActionContributionItem(action); - } - - void printModel() { - System.out.println("flag 1: " + this.testModel.isFlag1()); - System.out.println("flag 2: " + this.testModel.isFlag2()); - System.out.println("not flag 2: " + this.testModel.isNotFlag2()); - System.out.println("***"); - } - - - public static class TestModel extends AbstractModel { - private boolean flag1; - public static final String FLAG1_PROPERTY = "flag1"; - private boolean flag2; - public static final String FLAG2_PROPERTY = "flag2"; - private boolean notFlag2; - public static final String NOT_FLAG2_PROPERTY = "notFlag2"; - - public TestModel(boolean flag1, boolean flag2) { - this.flag1 = flag1; - this.flag2 = flag2; - this.notFlag2 = ! flag2; - } - public boolean isFlag1() { - return this.flag1; - } - public void setFlag1(boolean flag1) { - boolean old = this.flag1; - this.flag1 = flag1; - this.firePropertyChanged(FLAG1_PROPERTY, old, flag1); - } - public boolean isFlag2() { - return this.flag2; - } - public void setFlag2(boolean flag2) { - boolean old = this.flag2; - this.flag2 = flag2; - this.firePropertyChanged(FLAG2_PROPERTY, old, flag2); - - old = this.notFlag2; - this.notFlag2 = ! flag2; - this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2); - } - public boolean isNotFlag2() { - return this.notFlag2; - } - public void setNotFlag2(boolean notFlag2) { - this.setFlag2( ! notFlag2); - } - @Override - public String toString() { - return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java deleted file mode 100644 index dad37d9521..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/DropDownListBoxModelBindingUITest.java +++ /dev/null @@ -1,664 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import java.text.Collator; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -/** - * Play around with a set of read-only combo-boxes. - */ -@SuppressWarnings("nls") -public class DropDownListBoxModelBindingUITest - extends ApplicationWindow -{ - final TaskList taskList; - private final WritablePropertyValueModel taskListHolder; - private Text taskTextField; - - public static void main(String[] args) throws Exception { - Window window = new DropDownListBoxModelBindingUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private DropDownListBoxModelBindingUITest(@SuppressWarnings("unused") String[] args) { - super(null); - this.taskList = new TaskList(); - this.taskListHolder = new SimplePropertyValueModel(this.taskList); - this.taskList.addTask("swim"); - this.taskList.addTask("bike"); - this.taskList.addTask("run"); - Task rest = this.taskList.addTask("rest"); - this.taskList.addTask("repeat"); - this.taskList.setPriorityTask(rest); - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(800, 300); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control taskListPanel = this.buildTaskListPanel(mainPanel); - this.buildControlPanel(mainPanel, taskListPanel); - return mainPanel; - } - - private Control buildTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -30); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - this.buildTaskListPanel_(panel); // false = native (Combo) - - return panel; - } - - private Control buildTaskListPanel_(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(50); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - this.buildPrimitiveTaskListPanel(panel); - this.buildObjectTaskListPanel(panel); - - return panel; - } - - private void buildPrimitiveTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(50); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildUnsortedPrimitiveListPanel(panel); - this.buildStandardSortedPrimitiveListPanel(panel); - this.buildCustomSortedPrimitiveListPanel(panel); - } - - private void buildObjectTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(50); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildUnsortedObjectListPanel(panel); - this.buildStandardSortedObjectListPanel(panel); - this.buildCustomSortedObjectListPanel(panel); - } - - private void buildUnsortedPrimitiveListPanel(Composite parent) { - String label = "primitive unsorted"; - this.buildComboBoxPanel(parent, label, this.buildUnsortedPrimitiveListModel(), this.buildPriorityTaskNameAdapter()); - } - - private void buildStandardSortedPrimitiveListPanel(Composite parent) { - String label = "primitive sorted"; - this.buildComboBoxPanel(parent, label, this.buildStandardSortedPrimitiveListModel(), this.buildPriorityTaskNameAdapter()); - } - - private void buildCustomSortedPrimitiveListPanel(Composite parent) { - String label = "primitive reverse sorted"; - this.buildComboBoxPanel(parent, label, this.buildCustomSortedPrimitiveListModel(), this.buildPriorityTaskNameAdapter()); - } - - private void buildUnsortedObjectListPanel(Composite parent) { - String label = "object unsorted"; - this.buildComboBoxPanel(parent, label, this.buildUnsortedObjectListModel(), this.buildPriorityTaskAdapter()); - } - - private void buildStandardSortedObjectListPanel(Composite parent) { - String label = "object sorted"; - this.buildComboBoxPanel(parent, label, this.buildStandardSortedObjectListModel(), this.buildPriorityTaskAdapter()); - } - - private void buildCustomSortedObjectListPanel(Composite parent) { - String label = "object reverse sorted"; - this.buildComboBoxPanel(parent, label, this.buildCustomSortedObjectListModel(), this.buildPriorityTaskAdapter()); - } - - private ListValueModel buildUnsortedPrimitiveListModel() { - return this.buildPrimitiveTaskListAdapter(); - } - - private ListValueModel buildStandardSortedPrimitiveListModel() { - return new SortedListValueModelWrapper(this.buildPrimitiveTaskListAdapter()); - } - - private ListValueModel buildCustomSortedPrimitiveListModel() { - return new SortedListValueModelWrapper(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator()); - } - - private ListValueModel buildUnsortedObjectListModel() { - return this.buildObjectTaskListAdapter(); - } - - private ListValueModel buildStandardSortedObjectListModel() { - return new SortedListValueModelWrapper(this.buildObjectTaskListAdapter()); - } - - private ListValueModel buildCustomSortedObjectListModel() { - return new SortedListValueModelWrapper(this.buildObjectTaskListAdapter(), this.buildCustomTaskComparator()); - } - - private void buildComboBoxPanel(Composite parent, String label, ListValueModel model, WritablePropertyValueModel selectedItemModel) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayout(new FormLayout()); - - Label comboBoxLabel = new Label(panel, SWT.LEFT | SWT.VERTICAL); - comboBoxLabel.setText(label); - FormData fd = new FormData(); - fd.top = new FormAttachment(0, 3); - fd.bottom = new FormAttachment(0, 20); - fd.left = new FormAttachment(0, 5); - fd.right = new FormAttachment(100); - comboBoxLabel.setLayoutData(fd); - - Combo comboBox = this.buildComboBox(panel); - fd = new FormData(); - fd.top = new FormAttachment(comboBoxLabel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - comboBox.setLayoutData(fd); - SWTTools.bind(model, selectedItemModel, comboBox); // use #toString() - } - - private Combo buildComboBox(Composite parent) { - return new Combo(parent, SWT.READ_ONLY); - } - - private Comparator buildCustomStringComparator() { - return new Comparator() { - public int compare(String s1, String s2) { - return s2.compareTo(s1); - } - }; - } - - private Comparator buildCustomTaskComparator() { - return new Comparator() { - public int compare(Task to1, Task to2) { - return to2.compareTo(to1); - } - }; - } - - private ListValueModel buildPrimitiveTaskListAdapter() { - return new ListAspectAdapter(this.taskListHolder, TaskList.TASK_NAMES_LIST) { - @Override - protected ListIterator listIterator_() { - return this.subject.taskNames(); - } - }; - } - - private ListValueModel buildObjectTaskListAdapter() { - return new ListAspectAdapter(this.taskListHolder, TaskList.TASKS_LIST) { - @Override - protected ListIterator listIterator_() { - return this.subject.tasks(); - } - }; - } - - private WritablePropertyValueModel buildPriorityTaskAdapter() { - return new PriorityTaskAdapter(this.taskListHolder); - } - - static class PriorityTaskAdapter - extends PropertyAspectAdapter - { - PriorityTaskAdapter(WritablePropertyValueModel taskListHolder) { - super(taskListHolder, TaskList.PRIORITY_TASK_PROPERTY); - } - @Override - protected Task buildValue_() { - return this.subject.getPriorityTask(); - } - @Override - protected void setValue_(Task value) { - this.subject.setPriorityTask(value); - } - } - - private WritablePropertyValueModel buildPriorityTaskNameAdapter() { - return new PriorityTaskNameAdapter(this.taskListHolder); - } - - static class PriorityTaskNameAdapter - extends PropertyAspectAdapter - { - PriorityTaskNameAdapter(WritablePropertyValueModel taskListHolder) { - super(taskListHolder, TaskList.PRIORITY_TASK_NAME_PROPERTY); - } - @Override - protected String buildValue_() { - return this.subject.getPriorityTaskName(); - } - @Override - protected void setValue_(String value) { - // ignore - } - } - - private void buildControlPanel(Composite parent, Control taskListPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(taskListPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - Control misc = this.buildMiscTaskPanel(panel); - this.buildAddRemoveTaskPanel(panel, misc); - } - - // is there a better way to associate an ACI with form data? - private Control buildMiscTaskPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(100, -400); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildClearListACI().fill(panel); - this.buildClearModelACI().fill(panel); - this.buildRestoreModelACI().fill(panel); - this.buildChangePriorityTaskACI().fill(panel); - this.buildClearPriorityTaskACI().fill(panel); - return panel; - } - - private ActionContributionItem buildClearListACI() { - Action action = new Action("clear list", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.clearTasks(); - } - }; - action.setToolTipText("clear all the tasks"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.clearModel(); - } - }; - action.setToolTipText("clear the task list model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore the task list model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildChangePriorityTaskACI() { - Action action = new Action("change priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.changePriorityTask(); - } - }; - action.setToolTipText("change the priority task"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearPriorityTaskACI() { - Action action = new Action("clear priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.clearPriorityTask(); - } - }; - action.setToolTipText("clear the priority task"); - return new ActionContributionItem(action); - } - - private void buildAddRemoveTaskPanel(Composite parent, Control clearButton) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(clearButton); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - Control addButton = this.buildAddButton(panel); - Control removeButton = this.buildRemoveButton(panel); - this.buildTaskTextField(panel, addButton, removeButton); - } - - // is there a better way to associate an ACI with form data? - private Control buildAddButton(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(0, 50); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildAddACI().fill(panel); - return panel; - } - - private ActionContributionItem buildAddACI() { - Action action = new Action("add", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.addTask(); - } - }; - action.setToolTipText("add a task with the name in the entry field"); - return new ActionContributionItem(action); - } - - // is there a better way to associate an ACI with form data? - private Control buildRemoveButton(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(100, -50); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildRemoveACI().fill(panel); - return panel; - } - - private ActionContributionItem buildRemoveACI() { - Action action = new Action("remove", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - DropDownListBoxModelBindingUITest.this.removeTask(); - } - }; - action.setToolTipText("remove the task with the name in the entry field"); - return new ActionContributionItem(action); - } - - private void buildTaskTextField(Composite parent, Control addButton, Control removeButton) { - this.taskTextField = new Text(parent, SWT.SINGLE | SWT.BORDER); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(addButton); - fd.right = new FormAttachment(removeButton); - this.taskTextField.setLayoutData(fd); - } - - private String taskTextFieldText() { - return this.taskTextField.getText(); - } - - void addTask() { - String taskText = this.taskTextFieldText(); - if (taskText.length() != 0) { - this.taskList.addTask(taskText); - } - } - - void removeTask() { - String task = this.taskTextFieldText(); - if (task.length() != 0) { - this.taskList.removeTask(task); - } - } - - void clearTasks() { - this.taskList.clearTasks(); - } - - void clearModel() { - this.taskListHolder.setValue(null); - } - - void restoreModel() { - this.taskListHolder.setValue(this.taskList); - } - - void changePriorityTask() { - boolean found = false; - for (Task task : this.taskList.getTasks()) { - if (this.taskList.getPriorityTask() == task) { - found = true; - } else { - if (found) { - this.taskList.setPriorityTask(task); - return; - } - } - } - Iterator tasks = this.taskList.tasks(); - if (tasks.hasNext()) { - this.taskList.setPriorityTask(tasks.next()); - } - } - - void clearPriorityTask() { - this.taskList.setPriorityTask(null); - } - - - // ********** TaskList ********** - - // note absence of validation... - public static class TaskList extends AbstractModel { - private final List taskNames = new ArrayList(); - public static final String TASK_NAMES_LIST = "taskNames"; - private final List tasks = new ArrayList(); - public static final String TASKS_LIST = "tasks"; - private String priorityTaskName = null; - public static final String PRIORITY_TASK_NAME_PROPERTY = "priorityTaskName"; - private Task priorityTask = null; - public static final String PRIORITY_TASK_PROPERTY = "priorityTask"; - public TaskList() { - super(); - } - public ListIterator taskNames() { - return this.taskNames.listIterator(); - } - public Iterable getTasks() { - return this.tasks; - } - public ListIterator tasks() { - return this.tasks.listIterator(); - } - public String getPriorityTaskName() { - return this.priorityTaskName; - } - public Task getPriorityTask() { - return this.priorityTask; - } - public Task addTask(String taskName) { - this.addItemToList(taskName, this.taskNames, TASK_NAMES_LIST); - Task task = new Task(taskName); - this.addItemToList(task, this.tasks, TASKS_LIST); - return task; - } - public void removeTask(String taskName) { - int index = this.taskNames.indexOf(taskName); - if (index != -1) { - Task task = this.tasks.get(index); - if (task == this.priorityTask) { - this.setPriorityTask(null); - } - // assume the indexes match... - this.removeItemFromList(index, this.taskNames, TASK_NAMES_LIST); - this.removeItemFromList(index, this.tasks, TASKS_LIST); - } - } - public void clearTasks() { - this.setPriorityTask(null); - this.clearList(this.taskNames, TASK_NAMES_LIST); - this.clearList(this.tasks, TASKS_LIST); - } - private void setPriorityTaskName(String priorityTaskName) { - String old = this.priorityTaskName; - this.priorityTaskName = priorityTaskName; - this.firePropertyChanged(PRIORITY_TASK_NAME_PROPERTY, old, priorityTaskName); - } - public void setPriorityTask(Task priorityTask) { - Task old = this.priorityTask; - this.priorityTask = priorityTask; - this.firePropertyChanged(PRIORITY_TASK_PROPERTY, old, priorityTask); - this.setPriorityTaskName((priorityTask == null) ? null : priorityTask.getName()); - } - } - - - // ********** Task ********** - - public static class Task extends AbstractModel implements Displayable { - private String name; - private int instanceCount; - private static int INSTANCE_COUNT = 1; - public Task(String name) { - this.name = name; - this.instanceCount = INSTANCE_COUNT++; - } - public String displayString() { - return this.name + ": " + this.instanceCount; - } - public int compareTo(Displayable o) { - return DEFAULT_COMPARATOR.compare(this, o); - } - public String getName() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name); - } - @Override - public String toString() { - return this.displayString(); - } - } - - public interface Displayable extends Model, Comparable { - - String displayString(); - String DISPLAY_STRING_PROPERTY = "displayString"; - - - // ********** helper implementations ********** - - Collator DEFAULT_COLLATOR = Collator.getInstance(); - - Comparator DEFAULT_COMPARATOR = - new Comparator() { - public int compare(Displayable d1, Displayable d2) { - // disallow duplicates based on object identity - if (d1 == d2) { - return 0; - } - - // first compare display strings using the default collator - int result = DEFAULT_COLLATOR.compare(d1.displayString(), d2.displayString()); - if (result != 0) { - return result; - } - - // then compare using object-id - result = System.identityHashCode(d1) - System.identityHashCode(d2); - if (result != 0) { - return result; - } - - // It's unlikely that we get to this point; but, just in case, we will return -1. - // Unfortunately, this introduces some mild unpredictability to the sort order - // (unless the objects are always passed into this method in the same order). - return -1; // if all else fails, indicate that o1 < o2 - } - @Override - public String toString() { - return "Displayable.DEFAULT_COMPARATOR"; - } - }; - - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java deleted file mode 100644 index 1cb0d57c62..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/ListBoxModelBindingUITest.java +++ /dev/null @@ -1,626 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import java.text.Collator; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritableCollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -/** - * Play around with a set of list boxes. - */ -@SuppressWarnings("nls") -public class ListBoxModelBindingUITest - extends ApplicationWindow -{ - final TaskList taskList; - private final WritablePropertyValueModel taskListHolder; - private Text taskTextField; - - public static void main(String[] args) throws Exception { - Window window = new ListBoxModelBindingUITest(args); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private ListBoxModelBindingUITest(@SuppressWarnings("unused") String[] args) { - super(null); - this.taskList = new TaskList(); - this.taskListHolder = new SimplePropertyValueModel(this.taskList); - this.taskList.addTask("swim"); - this.taskList.addTask("bike"); - this.taskList.addTask("run"); - Task rest = this.taskList.addTask("rest"); - this.taskList.addPriorityTask(rest); - Task repeat = this.taskList.addTask("repeat"); - this.taskList.addPriorityTask(repeat); - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(800, 400); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control taskListPanel = this.buildTaskListPanel(mainPanel); - this.buildControlPanel(mainPanel, taskListPanel); - return mainPanel; - } - - private Control buildTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -30); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - this.buildPrimitiveTaskListPanel(panel); - this.buildObjectTaskListPanel(panel); - - return panel; - } - - private void buildPrimitiveTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(50); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildUnsortedPrimitiveListPanel(panel); - this.buildStandardSortedPrimitiveListPanel(panel); - this.buildCustomSortedPrimitiveListPanel(panel); - } - - private void buildObjectTaskListPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(50); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildUnsortedObjectListPanel(panel); - this.buildStandardSortedObjectListPanel(panel); - this.buildCustomSortedObjectListPanel(panel); - } - - private void buildUnsortedPrimitiveListPanel(Composite parent) { - this.buildListPanel(parent, "primitive unsorted", this.buildUnsortedPrimitiveListModel(), new SimpleCollectionValueModel()); - } - - private void buildStandardSortedPrimitiveListPanel(Composite parent) { - this.buildListPanel(parent, "primitive sorted", this.buildStandardSortedPrimitiveListModel(), new SimpleCollectionValueModel()); - } - - private void buildCustomSortedPrimitiveListPanel(Composite parent) { - this.buildListPanel(parent, "primitive reverse sorted", this.buildCustomSortedPrimitiveListModel(), new SimpleCollectionValueModel()); - } - - private void buildUnsortedObjectListPanel(Composite parent) { - this.buildListPanel(parent, "object unsorted", this.buildUnsortedObjectListModel(), this.buildPriorityTaskListAdapter()); - } - - private void buildStandardSortedObjectListPanel(Composite parent) { - this.buildListPanel(parent, "object sorted", this.buildStandardSortedObjectListModel(), this.buildPriorityTaskListAdapter()); - } - - private void buildCustomSortedObjectListPanel(Composite parent) { - this.buildListPanel(parent, "object reverse sorted", this.buildCustomSortedObjectListModel(), this.buildPriorityTaskListAdapter()); - } - - private ListValueModel buildUnsortedPrimitiveListModel() { - return this.buildPrimitiveTaskListAdapter(); - } - - private ListValueModel buildStandardSortedPrimitiveListModel() { - return new SortedListValueModelWrapper(this.buildPrimitiveTaskListAdapter()); - } - - private ListValueModel buildCustomSortedPrimitiveListModel() { - return new SortedListValueModelWrapper(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator()); - } - - private ListValueModel buildUnsortedObjectListModel() { - return this.buildObjectTaskListAdapter(); - } - - private ListValueModel buildStandardSortedObjectListModel() { - return new SortedListValueModelWrapper(this.buildObjectTaskListAdapter()); - } - - private ListValueModel buildCustomSortedObjectListModel() { - return new SortedListValueModelWrapper(this.buildObjectTaskListAdapter(), this.buildCustomTaskComparator()); - } - - private org.eclipse.swt.widgets.List buildListPanel(Composite parent, String label, ListValueModel model, WritableCollectionValueModel selectedItemsModel) { - Composite panel = new Composite(parent, SWT.NONE); - panel.setLayout(new FormLayout()); - - Label listLabel = new Label(panel, SWT.LEFT | SWT.VERTICAL); - listLabel.setText(label); - FormData fd = new FormData(); - fd.top = new FormAttachment(0, 3); - fd.bottom = new FormAttachment(0, 20); - fd.left = new FormAttachment(0, 5); - fd.right = new FormAttachment(100); - listLabel.setLayoutData(fd); - - org.eclipse.swt.widgets.List listBox = new org.eclipse.swt.widgets.List(panel, SWT.MULTI | SWT.BORDER); - fd = new FormData(); - fd.top = new FormAttachment(listLabel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - listBox.setLayoutData(fd); - SWTTools.bind(model, selectedItemsModel, listBox); // use #toString() - return listBox; - } - - private Comparator buildCustomStringComparator() { - return new Comparator() { - public int compare(String s1, String s2) { - return s2.compareTo(s1); - } - }; - } - - private Comparator buildCustomTaskComparator() { - return new Comparator() { - public int compare(Task to1, Task to2) { - return to2.compareTo(to1); - } - }; - } - - private ListValueModel buildPrimitiveTaskListAdapter() { - return new ListAspectAdapter(this.taskListHolder, TaskList.TASK_NAMES_LIST) { - @Override - protected ListIterator listIterator_() { - return this.subject.taskNames(); - } - }; - } - - private ListValueModel buildObjectTaskListAdapter() { - return new ListAspectAdapter(this.taskListHolder, TaskList.TASKS_LIST) { - @Override - protected ListIterator listIterator_() { - return this.subject.tasks(); - } - }; - } - - private WritableCollectionValueModel buildPriorityTaskListAdapter() { - return new PriorityTaskListAdapter(this.taskListHolder); - } - - static class PriorityTaskListAdapter - extends CollectionAspectAdapter - implements WritableCollectionValueModel - { - PriorityTaskListAdapter(WritablePropertyValueModel taskListHolder) { - super(taskListHolder, TaskList.PRIORITY_TASKS_COLLECTION); - } - @Override - protected Iterator iterator_() { - return this.subject.priorityTasks(); - } - public void setValues(Iterable values) { - this.subject.setPriorityTasks(values); - } - } - - private void buildControlPanel(Composite parent, Control taskListPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(taskListPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - Control misc = this.buildMiscTaskPanel(panel); - this.buildAddRemoveTaskPanel(panel, misc); - } - - // is there a better way to associate an ACI with form data? - private Control buildMiscTaskPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(100, -400); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildClearListACI().fill(panel); - this.buildClearModelACI().fill(panel); - this.buildRestoreModelACI().fill(panel); - this.buildAddPriorityTaskACI().fill(panel); - this.buildRemovePriorityTaskACI().fill(panel); - this.buildClearPriorityTasksACI().fill(panel); - return panel; - } - - private ActionContributionItem buildClearListACI() { - Action action = new Action("clear list", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.clearTasks(); - } - }; - action.setToolTipText("clear all the tasks"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.clearModel(); - } - }; - action.setToolTipText("clear the task list model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore the task list model"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildAddPriorityTaskACI() { - Action action = new Action("add priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.addPriorityTask(); - } - }; - action.setToolTipText("add a task to the priority tasks"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildRemovePriorityTaskACI() { - Action action = new Action("remove priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.removePriorityTask(); - } - }; - action.setToolTipText("remove a task from the priority tasks"); - return new ActionContributionItem(action); - } - - private ActionContributionItem buildClearPriorityTasksACI() { - Action action = new Action("clear priority", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.clearPriorityTasks(); - } - }; - action.setToolTipText("clear the priority tasks"); - return new ActionContributionItem(action); - } - - private void buildAddRemoveTaskPanel(Composite parent, Control clearButton) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(clearButton); - panel.setLayoutData(fd); - - panel.setLayout(new FormLayout()); - Control addButton = this.buildAddButton(panel); - Control removeButton = this.buildRemoveButton(panel); - this.buildTaskTextField(panel, addButton, removeButton); - } - - // is there a better way to associate an ACI with form data? - private Control buildAddButton(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(0, 50); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildAddACI().fill(panel); - return panel; - } - - private ActionContributionItem buildAddACI() { - Action action = new Action("add", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.addTask(); - } - }; - action.setToolTipText("add a task with the name in the entry field"); - return new ActionContributionItem(action); - } - - // is there a better way to associate an ACI with form data? - private Control buildRemoveButton(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(100, -50); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildRemoveACI().fill(panel); - return panel; - } - - private ActionContributionItem buildRemoveACI() { - Action action = new Action("remove", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - ListBoxModelBindingUITest.this.removeTask(); - } - }; - action.setToolTipText("remove the task with the name in the entry field"); - return new ActionContributionItem(action); - } - - private void buildTaskTextField(Composite parent, Control addButton, Control removeButton) { - this.taskTextField = new Text(parent, SWT.SINGLE | SWT.BORDER); - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(addButton); - fd.right = new FormAttachment(removeButton); - this.taskTextField.setLayoutData(fd); - } - - private String taskTextFieldText() { - return this.taskTextField.getText(); - } - - void addTask() { - String taskText = this.taskTextFieldText(); - if (taskText.length() != 0) { - this.taskList.addTask(taskText); - } - } - - void removeTask() { - String task = this.taskTextFieldText(); - if (task.length() != 0) { - this.taskList.removeTask(task); - } - } - - void clearTasks() { - this.taskList.clearTasks(); - } - - void clearModel() { - this.taskListHolder.setValue(null); - } - - void restoreModel() { - this.taskListHolder.setValue(this.taskList); - } - - void addPriorityTask() { - Iterator tasks = this.taskList.tasks(); - while (tasks.hasNext()) { - if (this.taskList.addPriorityTask(tasks.next())) { - return; - } - } - } - - void removePriorityTask() { - Iterator pTasks = this.taskList.priorityTasks(); - if (pTasks.hasNext()) { - this.taskList.removePriorityTask(pTasks.next()); - } - } - - void clearPriorityTasks() { - this.taskList.clearPriorityTasks(); - } - - - // ********** TaskList ********** - - // note absence of validation... - public static class TaskList extends AbstractModel { - private final List taskNames = new ArrayList(); - public static final String TASK_NAMES_LIST = "taskNames"; - private final List tasks = new ArrayList(); - public static final String TASKS_LIST = "tasks"; - private final Collection priorityTasks = new HashSet(); - public static final String PRIORITY_TASKS_COLLECTION = "priorityTasks"; - public TaskList() { - super(); - } - public ListIterator taskNames() { - return this.taskNames.listIterator(); - } - public ListIterator tasks() { - return this.tasks.listIterator(); - } - public Iterator priorityTasks() { - return this.priorityTasks.iterator(); - } - public Task addTask(String taskName) { - this.addItemToList(taskName, this.taskNames, TASK_NAMES_LIST); - Task task = new Task(taskName); - this.addItemToList(task, this.tasks, TASKS_LIST); - return task; - } - public void removeTask(String taskName) { - int index = this.taskNames.indexOf(taskName); - if (index != -1) { - this.removeItemFromList(index, this.taskNames, TASK_NAMES_LIST); - // assume the indexes match... - Task removedTask = this.removeItemFromList(index, this.tasks, TASKS_LIST); - this.removeItemFromCollection(removedTask, this.priorityTasks, PRIORITY_TASKS_COLLECTION); - } - } - public void clearTasks() { - this.clearCollection(this.priorityTasks, PRIORITY_TASKS_COLLECTION); - this.clearList(this.taskNames, TASK_NAMES_LIST); - this.clearList(this.tasks, TASKS_LIST); - } - public boolean addPriorityTask(Task task) { - return this.addItemToCollection(task, this.priorityTasks, PRIORITY_TASKS_COLLECTION); - } - public void removePriorityTask(Task task) { - this.removeItemFromCollection(task, this.priorityTasks, PRIORITY_TASKS_COLLECTION); - } - public void clearPriorityTasks() { - this.clearCollection(this.priorityTasks, PRIORITY_TASKS_COLLECTION); - } - public void setPriorityTasks(Iterable tasks) { - this.priorityTasks.clear(); - CollectionTools.addAll(this.priorityTasks, tasks); - this.fireCollectionChanged(PRIORITY_TASKS_COLLECTION, this.priorityTasks); - } - } - - - // ********** Task ********** - - public static class Task extends AbstractModel implements Displayable { - private String name; - private int instanceCount; - private static int INSTANCE_COUNT = 1; - public Task(String name) { - this.name = name; - this.instanceCount = INSTANCE_COUNT++; - } - public String displayString() { - return this.name + ": " + this.instanceCount; - } - public int compareTo(Displayable o) { - return DEFAULT_COMPARATOR.compare(this, o); - } - public String getName() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name); - } - @Override - public String toString() { - return this.displayString(); - } - } - - public interface Displayable extends Model, Comparable { - - String displayString(); - String DISPLAY_STRING_PROPERTY = "displayString"; - - - // ********** helper implementations ********** - - Collator DEFAULT_COLLATOR = Collator.getInstance(); - - Comparator DEFAULT_COMPARATOR = - new Comparator() { - public int compare(Displayable d1, Displayable d2) { - // disallow duplicates based on object identity - if (d1 == d2) { - return 0; - } - - // first compare display strings using the default collator - int result = DEFAULT_COLLATOR.compare(d1.displayString(), d2.displayString()); - if (result != 0) { - return result; - } - - // then compare using object-id - result = System.identityHashCode(d1) - System.identityHashCode(d2); - if (result != 0) { - return result; - } - - // It's unlikely that we get to this point; but, just in case, we will return -1. - // Unfortunately, this introduces some mild unpredictability to the sort order - // (unless the objects are always passed into this method in the same order). - return -1; // if all else fails, indicate that o1 < o2 - } - @Override - public String toString() { - return "Displayable.DEFAULT_COMPARATOR"; - } - }; - - } -} diff --git a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java b/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java deleted file mode 100644 index 5bd6f16dd2..0000000000 --- a/common/tests/org.eclipse.jpt.common.ui.tests/src/org/eclipse/jpt/common/ui/tests/internal/utility/swt/TextFieldModelBindingUITest.java +++ /dev/null @@ -1,252 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.ui.tests.internal.utility.swt; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.window.ApplicationWindow; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.common.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -/** - * Play around with a set of entry fields. - */ -@SuppressWarnings("nls") -public class TextFieldModelBindingUITest - extends ApplicationWindow -{ - private final TestModel testModel; - private static final String DEFAULT_NAME = "Scooby Doo"; - private final WritablePropertyValueModel testModelHolder; - private final WritablePropertyValueModel nameHolder; - private final WritablePropertyValueModel allCapsNameHolder; - - - public static void main(String[] args) throws Exception { - Window window = new TextFieldModelBindingUITest(); - window.setBlockOnOpen(true); - window.open(); - Display.getCurrent().dispose(); - System.exit(0); - } - - private TextFieldModelBindingUITest() { - super(null); - this.testModel = new TestModel(DEFAULT_NAME); - this.testModelHolder = new SimplePropertyValueModel(this.testModel); - this.nameHolder = this.buildNameHolder(this.testModelHolder); - this.allCapsNameHolder = this.buildAllCapsNameHolder(this.testModelHolder); - } - - private WritablePropertyValueModel buildNameHolder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.NAME_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.name(); - } - @Override - protected void setValue_(String value) { - this.subject.setName(value); - } - }; - } - - private WritablePropertyValueModel buildAllCapsNameHolder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.NAME_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.name().toUpperCase(); - } - @Override - protected void setValue_(String value) { - // do nothing - } - }; - } - - @Override - protected Control createContents(Composite parent) { - ((Shell) parent).setText(this.getClass().getSimpleName()); - parent.setSize(400, 100); - Composite mainPanel = new Composite(parent, SWT.NONE); - mainPanel.setLayout(new FormLayout()); - Control textFieldPanel = this.buildTextFieldPanel(mainPanel); - this.buildControlPanel(mainPanel, textFieldPanel); - return mainPanel; - } - - private Control buildTextFieldPanel(Composite parent) { - Composite panel = new Composite(parent, SWT.NONE); - - FormData fd = new FormData(); - fd.top = new FormAttachment(0); - fd.bottom = new FormAttachment(100, -35); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildNameTextField(panel); - this.buildReadOnlyNameTextField(panel); - this.buildAllCapsNameTextField(panel); - - return panel; - } - - private void buildNameTextField(Composite parent) { - Text textField = new Text(parent, SWT.SINGLE); - SWTTools.bind(this.nameHolder, textField); - } - - private void buildReadOnlyNameTextField(Composite parent) { - Text textField = new Text(parent, SWT.SINGLE); - textField.setEnabled(false); - SWTTools.bind(this.nameHolder, textField); - } - - private void buildAllCapsNameTextField(Composite parent) { - Text textField = new Text(parent, SWT.SINGLE); - textField.setEnabled(false); - SWTTools.bind(this.allCapsNameHolder, textField); - } - - private void buildControlPanel(Composite parent, Control checkBoxPanel) { - Composite panel = new Composite(parent, SWT.NONE); - FormData fd = new FormData(); - fd.top = new FormAttachment(checkBoxPanel); - fd.bottom = new FormAttachment(100); - fd.left = new FormAttachment(0); - fd.right = new FormAttachment(100); - panel.setLayoutData(fd); - - panel.setLayout(new FillLayout()); - this.buildResetNameButton(panel); - this.buildClearModelButton(panel); - this.buildRestoreModelButton(panel); - this.buildPrintModelButton(panel); - } - - private void buildResetNameButton(Composite parent) { - this.buildResetNameACI().fill(parent); - } - - private ActionContributionItem buildResetNameACI() { - Action action = new Action("reset name", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TextFieldModelBindingUITest.this.resetName(); - } - }; - action.setToolTipText("reset name"); - return new ActionContributionItem(action); - } - - void resetName() { - this.testModel.setName(DEFAULT_NAME); - } - - private void buildClearModelButton(Composite parent) { - this.buildClearModelACI().fill(parent); - } - - private ActionContributionItem buildClearModelACI() { - Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TextFieldModelBindingUITest.this.clearModel(); - } - }; - action.setToolTipText("clear model"); - return new ActionContributionItem(action); - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private void buildRestoreModelButton(Composite parent) { - this.buildRestoreModelACI().fill(parent); - } - - private ActionContributionItem buildRestoreModelACI() { - Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TextFieldModelBindingUITest.this.restoreModel(); - } - }; - action.setToolTipText("restore model"); - return new ActionContributionItem(action); - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private void buildPrintModelButton(Composite parent) { - this.buildPrintModelACI().fill(parent); - } - - private ActionContributionItem buildPrintModelACI() { - Action action = new Action("print model", IAction.AS_PUSH_BUTTON) { - @Override - public void run() { - TextFieldModelBindingUITest.this.printModel(); - } - }; - action.setToolTipText("print model"); - return new ActionContributionItem(action); - } - - void printModel() { - System.out.println("name: " + this.testModel.name()); - } - - - // ********** model class ********** - - class TestModel extends AbstractModel { - private String name; - public static final String NAME_PROPERTY = "name"; - - public TestModel(String name) { - this.name = name; - } - public String name() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - @Override - public String toString() { - return "TestModel(" + this.name + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/.classpath b/common/tests/org.eclipse.jpt.common.utility.tests/.classpath deleted file mode 100644 index 5c128f330d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/.classpath +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/.cvsignore b/common/tests/org.eclipse.jpt.common.utility.tests/.cvsignore deleted file mode 100644 index c4ba612bad..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -bin -@dot -temp.folder -build.xml -javaCompiler...args \ No newline at end of file diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/.project b/common/tests/org.eclipse.jpt.common.utility.tests/.project deleted file mode 100644 index 898e230aaf..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.common.utility.tests - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/META-INF/MANIFEST.MF b/common/tests/org.eclipse.jpt.common.utility.tests/META-INF/MANIFEST.MF deleted file mode 100644 index c3c05fb8ac..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/META-INF/MANIFEST.MF +++ /dev/null @@ -1,21 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.common.utility.tests -Bundle-Version: 2.0.0.qualifier -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.junit;bundle-version="3.8.0" -Export-Package: org.eclipse.jpt.common.utility.tests.internal;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.enumerations;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.iterables;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.iterators;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.model;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.model.listener;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.model.value;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.model.value.prefs;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.model.value.swing;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.node;x-internal:=true, - org.eclipse.jpt.common.utility.tests.internal.synchronizers;x-internal:=true diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/about.html b/common/tests/org.eclipse.jpt.common.utility.tests/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/common/tests/org.eclipse.jpt.common.utility.tests/build.properties b/common/tests/org.eclipse.jpt.common.utility.tests/build.properties deleted file mode 100644 index ebe9c08ef9..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/build.properties +++ /dev/null @@ -1,16 +0,0 @@ -################################################################################ -# Copyright (c) 2006, 2007 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -source.. = src/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - about.html,\ - test.xml,\ - plugin.properties diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/plugin.properties b/common/tests/org.eclipse.jpt.common.utility.tests/plugin.properties deleted file mode 100644 index 8ea447bc75..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/plugin.properties +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Copyright (c) 2006, 2009 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName = Dali Java Persistence Tools - Common Utility Tests -providerName = Eclipse Web Tools Platform - diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/resource/ClassTools.java b/common/tests/org.eclipse.jpt.common.utility.tests/resource/ClassTools.java deleted file mode 100644 index aac17b6044..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/resource/ClassTools.java +++ /dev/null @@ -1,1680 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package test; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.Collections; -import java.util.Stack; - -/** - * Convenience methods related to the java.lang.reflect package. - * These methods provide shortcuts for manipulating objects via - * reflection; particularly when dealing with fields and/or methods that - * are not publicly accessible or are inherited. - * - * In most cases, all the exceptions are handled and - * wrapped in java.lang.RuntimeExceptions; so these methods should - * be used when you are confident that you will not having any problems - * using reflection. - * - * There are also a number of methods whose names - * begin with "attempt". These methods will throw a NoSuchMethodException - * or NoSuchFieldException when appropriate, allowing you to probe - * for methods that should be present but might not. - */ -public final class ClassTools { - - public static final Class[] ZERO_PARAMETER_TYPES = new Class[0]; - public static final Object[] ZERO_PARAMETERS = new Object[0]; - private static final String CR = StringTools.CR; - - public static final char NESTED_CLASS_NAME_SEPARATOR = '$'; - - public static final char ARRAY_INDICATOR = '['; - public static final char TYPE_DECLARATION_ARRAY_OPEN = '['; - public static final char TYPE_DECLARATION_ARRAY_CLOSE = ']'; - - public static final char REFERENCE_CLASS_CODE = 'L'; - public static final char REFERENCE_CLASS_NAME_DELIMITER = ';'; - - private static Primitive[] PRIMITIVES; // pseudo-'final' - lazy-initialized - public static final char BYTE_CODE = 'B'; - public static final char CHAR_CODE = 'C'; - public static final char DOUBLE_CODE = 'D'; - public static final char FLOAT_CODE = 'F'; - public static final char INT_CODE = 'I'; - public static final char LONG_CODE = 'J'; - public static final char SHORT_CODE = 'S'; - public static final char BOOLEAN_CODE = 'Z'; - public static final char VOID_CODE = 'V'; - private static int MAX_PRIMITIVE_CLASS_NAME_LENGTH = -1; // pseudo-'final' - lazy-initialized - private static int MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH = -1; // pseudo-'final' - lazy-initialized - - public static final String VOID_CLASS_NAME = void.class.getName(); - public static final String VOID_WRAPPER_CLASS_NAME = java.lang.Void.class.getName(); - - - /** - * Return all the fields for the - * specified class, including inherited fields. - * Class#allFields() - */ - @Deprecated - public static Field[] allFields(Class javaClass) { - Stack stack = new Stack(); - for (Class tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) { - pushDeclaredFields(tempClass, stack); - } - Collections.reverse(stack); - return stack.toArray(new Field[stack.size()]); - } - - /** - * Return all the methods for the - * specified class, including inherited methods. - * Class#allMethods() - */ - public static Method[] allMethods(Class javaClass) { - Stack stack = new Stack(); - for (Class tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) { - pushDeclaredMethods(tempClass, stack); - } - Collections.reverse(stack); - return stack.toArray(new Method[stack.size()]); - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * using the class's default (zero-argument) constructor. - * Throw an exception if the default constructor is not defined. - * Class#newInstance() throws NoSuchMethodException - */ - @Deprecated - public static T attemptNewInstance(Class javaClass) throws NoSuchMethodException { - return attemptNewInstance(javaClass, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter types and parameters. - * Throw an exception if the constructor is not defined. - * Class#newInstance(Class[] parameterTypes, Object[] parameters) throws NoSuchMethodException - */ - public static T attemptNewInstance(Class javaClass, Class[] parameterTypes, Object[] parameters) throws NoSuchMethodException { - try { - return constructor(javaClass, parameterTypes).newInstance(parameters); - } catch (InstantiationException ie) { - throw new RuntimeException(ie + CR + fullyQualifiedConstructorSignature(javaClass, parameterTypes), ie); - } catch (IllegalAccessException iae) { - throw new RuntimeException(iae + CR + fullyQualifiedConstructorSignature(javaClass, parameterTypes), iae); - } catch (InvocationTargetException ite) { - throw new RuntimeException(fullyQualifiedConstructorSignature(javaClass, parameterTypes) + CR + ite.getTargetException(), ite); - } - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * given the constructor parameter type and parameter. - * Throw an exception if the constructor is not defined. - * Class#newInstance(Class parameterType, Object parameter) throws NoSuchMethodException - */ - public static T attemptNewInstance(Class javaClass, Class parameterType, Object parameter) throws NoSuchMethodException { - return attemptNewInstance(javaClass, new Class[] {parameterType}, new Object[] {parameter}); - } - - /** - * Attempt to get a field value, given the containing object and field name. - * Return its result. - * Useful for accessing private, package, or protected fields. - * Throw an exception if the field is not defined. - * Object#getFieldValue(String fieldName) throws NoSuchFieldException - */ - public static Object attemptToGetFieldValue(Object object, String fieldName) throws NoSuchFieldException { - try { - return field(object, fieldName).get(object); - } catch (IllegalAccessException iae) { - throw new RuntimeException(iae + CR + fullyQualifiedFieldName(object, fieldName), iae); - } - } - - /** - * Attempt to get a static field value, given the containing object and field name. - * Return its result. - * Useful for accessing private, package, or protected fields. - * Throw an exception if the field is not defined. - * Class#getStaticFieldValue(String fieldName) throws NoSuchFieldException - */ - public static Object attemptToGetStaticFieldValue(Class javaClass, String fieldName) throws NoSuchFieldException { - try { - return field(javaClass, fieldName).get(null); - } catch (IllegalAccessException iae) { - throw new RuntimeException(iae + CR + fullyQualifiedFieldName(javaClass, fieldName), iae); - } - } - - /** - * Convenience method. - * Attempt to execute a zero-argument method, - * given the receiver and method name. - * Return its result. - * Throw an exception if the method is not found. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName) throws NoSuchMethodException - */ - public static Object attemptToExecuteMethod(Object receiver, String methodName) throws NoSuchMethodException { - return attemptToExecuteMethod(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS); - } - - /** - * Convenience method. - * Attempt to execute a method, given the receiver, - * method name, parameter type, and parameter. - * Return its result. - * Throw an exception if the method is not found. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName, Class parameterType, Object parameter) throws NoSuchMethodException - */ - public static Object attemptToExecuteMethod(Object receiver, String methodName, Class parameterType, Object parameter) throws NoSuchMethodException { - return attemptToExecuteMethod(receiver, methodName, new Class[] {parameterType}, new Object[] {parameter}); - } - - /** - * Attempt to execute a method, given the receiver, - * method name, parameter types, and parameters. - * Return its result. - * Throw an exception if the method is not found. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName, Class[] parameterTypes, Object[] parameters) throws NoSuchMethodException - */ - public static Object attemptToExecuteMethod(Object receiver, String methodName, Class[] parameterTypes, Object[] parameters) throws NoSuchMethodException { - return executeMethod(method(receiver, methodName, parameterTypes), receiver, parameters); - } - - /** - * Attempt to execute a method, given the receiver, - * method name, parameter types, and parameters. - * Return its result. - * Throw an exception if the method is not found. - * If the executed method throws an exception, rethrow that exception. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName, Class[] parameterTypes, Object[] parameters) throws NoSuchMethodException - */ - public static Object attemptToExecuteMethodWithException(Object receiver, String methodName, Class[] parameterTypes, Object[] parameters) - throws Throwable, NoSuchMethodException - { - return executeMethodWithException(method(receiver, methodName, parameterTypes), receiver, parameters); - } - - /** - * Convenience method. - * Attempt to execute a zero-argument static method, - * given the class and method name. - * Return its result. - * Throw an exception if the method is not found. - * Useful for invoking private, package, or protected methods. - * Class#executeStaticMethod(String methodName) throws NoSuchMethodException - */ - public static Object attemptToExecuteStaticMethod(Class javaClass, String methodName) throws NoSuchMethodException { - return attemptToExecuteStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS); - } - - /** - * Attempt to execute a static method, given the class, - * method name, parameter types, and parameters. - * Return its result. - * Throw an exception if the method is not found. - * Useful for invoking private, package, or protected methods. - * Class#executeStaticMethod(String methodName, Class[] parameterTypes, Object[] parameters) throws NoSuchMethodException - */ - public static Object attemptToExecuteStaticMethod(Class javaClass, String methodName, Class[] parameterTypes, Object[] parameters) throws NoSuchMethodException { - return executeStaticMethod(staticMethod(javaClass, methodName, parameterTypes), parameters); - } - - /** - * Convenience method. - * Attempt to execute a static method, given the class, - * method name, parameter type, and parameter. - * Return its result. - * Throw an exception if the method is not found. - * Useful for invoking private, package, or protected methods. - * Class#executeStaticMethod(String methodName, Class parameterType, Object parameter) throws NoSuchMethodException - */ - public static Object attemptToExecuteStaticMethod(Class javaClass, String methodName, Class parameterType, Object parameter) throws NoSuchMethodException { - return attemptToExecuteStaticMethod(javaClass, methodName, new Class[] {parameterType}, new Object[] {parameter}); - } - - /** - * Attempt to set a field value, given the - * containing object, field name, and new field value. - * Useful for accessing private, package, or protected fields. - * Throw an exception if the field is not defined. - * Object#setFieldValue(String fieldName, Object fieldValue) throws NoSuchFieldException - */ - public static void attemptToSetFieldValue(Object object, String fieldName, Object fieldValue) throws NoSuchFieldException { - try { - field(object, fieldName).set(object, fieldValue); - } catch (IllegalAccessException iae) { - throw new RuntimeException(iae + CR + fullyQualifiedFieldName(object, fieldName), iae); - } - } - - /** - * Attempt to set a static field value, given the - * containing class, field name, and new field value. - * Useful for accessing private, package, or protected fields. - * Throw an exception if the field is not defined. - * Class#setStaticFieldValue(String fieldName, Object fieldValue) throws NoSuchFieldException - */ - public static void attemptToSetStaticFieldValue(Class javaClass, String fieldName, Object fieldValue) throws NoSuchFieldException { - try { - field(javaClass, fieldName).set(null, fieldValue); - } catch (IllegalAccessException iae) { - throw new RuntimeException(iae + CR + fullyQualifiedFieldName(javaClass, fieldName), iae); - } - } - - /** - * Convenience method. - * Return the default (zero-argument) constructor - * for the specified class. - * Set accessible to true, so we can access - * private/package/protected constructors. - * Class#constructor() throws NoSuchMethodException - */ - public static Constructor constructor(Class javaClass) throws NoSuchMethodException { - return constructor(javaClass, ZERO_PARAMETER_TYPES); - } - - /** - * Return the constructor for the specified class - * and formal parameter types. - * Set accessible to true, so we can access - * private/package/protected constructors. - * Class#constructor(Class[] parameterTypes) throws NoSuchMethodException - */ - public static Constructor constructor(Class javaClass, Class[] parameterTypes) throws NoSuchMethodException { - Constructor constructor = javaClass.getDeclaredConstructor(parameterTypes); - constructor.setAccessible(true); - return constructor; - } - - /** - * Convenience method. - * Return the constructor for the specified class - * and formal parameter type. - * Set accessible to true, so we can access - * private/package/protected constructors. - * Class#constructor(Class parameterType) throws NoSuchMethodException - */ - public static Constructor constructor(Class javaClass, Class parameterType) throws NoSuchMethodException { - return constructor(javaClass, new Class[] {parameterType}); - } - - /** - * Return the declared fields for the specified class. - * Set accessible to true, so we can access - * private/package/protected fields. - * Class#accessibleDeclaredFields() - */ - public static Field[] declaredFields(Class javaClass) { - Field[] fields = javaClass.getDeclaredFields(); - for (Field field : fields) { - field.setAccessible(true); - } - return fields; - } - - /** - * Return the declared methods for the - * specified class. - * Set accessible to true, so we can access - * private/package/protected methods. - * Class#accessibleDeclaredMethods() - */ - public static Method[] declaredMethods(Class javaClass) { - Method[] methods = javaClass.getDeclaredMethods(); - for (Method method : methods) { - method.setAccessible(true); - } - return methods; - } - - /** - * Return the default (zero-argument) constructor - * for the specified class. - * Set accessible to true, so we can access - * private/package/protected constructors. - * Class#defaultConstructor() - */ - public static Constructor defaultConstructor(Class javaClass) throws NoSuchMethodException { - return constructor(javaClass); - } - - /** - * Return a field for the specified class and field name. - * If the class does not directly - * define the field, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected fields. - */ - public static Field field(Class javaClass, String fieldName) throws NoSuchFieldException { - Field field = null; - try { - field = javaClass.getDeclaredField(fieldName); - } catch (NoSuchFieldException ex) { - Class superclass = javaClass.getSuperclass(); - if (superclass == null) { - throw ex; - } - // recurse - return field(superclass, fieldName); - } - field.setAccessible(true); - return field; - } - - /** - * Convenience method. - * Return a field for the specified object and field name. - * If the object's class does not directly - * define the field, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected fields. - */ - public static Field field(Object object, String fieldName) throws NoSuchFieldException { - return field(object.getClass(), fieldName); - } - - /* - * Return a string representation of the specified constructor. - */ - private static String fullyQualifiedConstructorSignature(Class javaClass, Class[] parameterTypes) { - return fullyQualifiedMethodSignature(javaClass, null, parameterTypes); - } - - /* - * Return a string representation of the specified field. - */ - private static String fullyQualifiedFieldName(Class javaClass, String fieldName) { - StringBuilder sb = new StringBuilder(200); - sb.append(javaClass.getName()); - sb.append('.'); - sb.append(fieldName); - return sb.toString(); - } - - /* - * Return a string representation of the specified field. - */ - private static String fullyQualifiedFieldName(Object object, String fieldName) { - return fullyQualifiedFieldName(object.getClass(), fieldName); - } - - /* - * Return a string representation of the specified method. - */ - private static String fullyQualifiedMethodSignature(Class javaClass, String methodName, Class[] parameterTypes) { - StringBuilder sb = new StringBuilder(200); - sb.append(javaClass.getName()); - // this check allows us to use this code for constructors, where the methodName is null - if (methodName != null) { - sb.append('.'); - sb.append(methodName); - } - sb.append('('); - int max = parameterTypes.length - 1; - if (max != -1) { - // stop one short of the end of the array - for (int i = 0; i < max; i++) { - sb.append(parameterTypes[i].getName()); - sb.append(", "); - } - sb.append(parameterTypes[max].getName()); - } - sb.append(')'); - return sb.toString(); - } - - /* - * Return a string representation of the specified method. - */ - private static String fullyQualifiedMethodSignature(Object receiver, String methodName, Class[] parameterTypes) { - return fullyQualifiedMethodSignature(receiver.getClass(), methodName, parameterTypes); - } - - /** - * Get a field value, given the containing object and field name. - * Return its result. - * Useful for accessing private, package, or protected fields. - * Object#getFieldValue(String fieldName) - */ - public static Object fieldValue(Object object, String fieldName) { - try { - return attemptToGetFieldValue(object, fieldName); - } catch (NoSuchFieldException nsfe) { - throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(object, fieldName), nsfe); - } - } - - /** - * Get a static field value, given the containing class and field name. - * Return its result. - * Useful for accessing private, package, or protected fields. - * Class#getStaticFieldValue(String fieldName) - */ - public static Object staticFieldValue(Class javaClass, String fieldName) { - try { - return attemptToGetStaticFieldValue(javaClass, fieldName); - } catch (NoSuchFieldException nsfe) { - throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(javaClass, fieldName), nsfe); - } - } - - /** - * Convenience method. - * Execute a zero-argument method, given the receiver and method name. - * Return its result. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName) - */ - public static Object executeMethod(Object receiver, String methodName) { - return executeMethod(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS); - } - - /** - * Execute a method, given the receiver, - * method name, parameter types, and parameters. - * Return its result. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName, Class[] parameterTypes, Object[] parameters) - */ - public static Object executeMethod(Object receiver, String methodName, Class[] parameterTypes, Object[] parameters) { - try { - return attemptToExecuteMethod(receiver, methodName, parameterTypes, parameters); - } catch (NoSuchMethodException nsme) { - throw new RuntimeException(nsme + CR + fullyQualifiedMethodSignature(receiver, methodName, parameterTypes), nsme); - } - } - - /** - * Convenience method. - * Execute a one-argument method, given the receiver, - * method name, parameter type, and parameter. - * Return its result. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName, Class parameterType, Object parameter) - */ - public static Object executeMethod(Object receiver, String methodName, Class parameterType, Object parameter) { - return executeMethod(receiver, methodName, new Class[] {parameterType}, new Object[] {parameter}); - } - - /** - * Convenience method. - * Execute a zero-argument method, given the receiver and method name. - * Return its result. - * If the method throws an exception, rethrow that exception. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName) - */ - public static Object executeMethodWithException(Object receiver, String methodName) - throws Throwable - { - return executeMethodWithException(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS); - } - - /** - * Convenience method. - * Execute a one-argument method, given the receiver, - * method name, parameter type, and parameter. - * Return its result. - * If the method throws an exception, rethrow that exception. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName, Class parameterType, Object parameter) - */ - public static Object executeMethodWithException(Object receiver, String methodName, Class parameterType, Object parameter) - throws Throwable - { - return executeMethodWithException(receiver, methodName, new Class[] {parameterType}, new Object[] {parameter}); - } - - /** - * Execute a method, given the receiver, - * method name, parameter types, and parameters. - * Return its result. - * If the method throws an exception, rethrow that exception. - * Useful for invoking private, package, or protected methods. - * Object#execute(String methodName, Class[] parameterTypes, Object[] parameters) - */ - public static Object executeMethodWithException(Object receiver, String methodName, Class[] parameterTypes, Object[] parameters) - throws Throwable - { - try { - return attemptToExecuteMethodWithException(receiver, methodName, parameterTypes, parameters); - } catch (NoSuchMethodException nsme) { - throw new RuntimeException(nsme + CR + fullyQualifiedMethodSignature(receiver, methodName, parameterTypes), nsme); - } - } - - /** - * Execute the specified method with the specified parameters. - * Return its result. - * Convert exceptions to RuntimeExceptions. - */ - public static Object executeMethod(Method method, Object receiver, Object[] parameters) { - try { - return method.invoke(receiver, parameters); - } catch (IllegalAccessException iae) { - throw new RuntimeException(iae + CR + method, iae); - } catch (InvocationTargetException ite) { - throw new RuntimeException(method + CR + ite.getTargetException(), ite); - } - } - - /** - * Execute the specified method with the specified parameters. - * Return its result. - * If the method throws an exception, rethrow that exception. - * Convert all other exceptions to RuntimeExceptions. - */ - public static Object executeMethodWithException(Method method, Object receiver, Object[] parameters) - throws Throwable - { - try { - return method.invoke(receiver, parameters); - } catch (IllegalAccessException iae) { - throw new RuntimeException(iae + CR + method, iae); - } catch (InvocationTargetException ite) { - Throwable cause = ite.getCause(); - if (cause == null) { - throw new RuntimeException(method.toString(), ite); - } - throw cause; - } - } - - /** - * Convenience method. - * Execute a zero-argument static method, - * given the class and method name. - * Return its result. - * Useful for invoking private, package, or protected methods. - * Class#executeStaticMethod(String methodName) - */ - public static Object executeStaticMethod(Class javaClass, String methodName) { - return executeStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS); - } - - /** - * Execute a static method, given the class, - * method name, parameter types, and parameters. - * Return its result. - * Useful for invoking private, package, or protected methods. - * Class#executeStaticMethod(String methodName, Class[] parameterTypes, Object[] parameters) - */ - public static Object executeStaticMethod(Class javaClass, String methodName, Class[] parameterTypes, Object[] parameters) { - try { - return attemptToExecuteStaticMethod(javaClass, methodName, parameterTypes, parameters); - } catch (NoSuchMethodException nsme) { - throw new RuntimeException(nsme + CR + fullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), nsme); - } - } - - /** - * Convenience method. - * Execute a static method, given the class, - * method name, parameter type, and parameter. - * Return its result. - * Useful for invoking private, package, or protected methods. - * Class#executeStaticMethod(String methodName, Class parameterType, Object parameter) - */ - public static Object executeStaticMethod(Class javaClass, String methodName, Class parameterType, Object parameter) { - return executeStaticMethod(javaClass, methodName, new Class[] {parameterType}, new Object[] {parameter}); - } - - /** - * Execute the specified static method with the specified parameters. - * Return its result. - * Convert exceptions to RuntimeExceptions. - */ - public static Object executeStaticMethod(Method method, Object[] parameters) { - return executeMethod(method, null, parameters); - } - - /** - * Convenience method. - * Return a zero-argument method for the specified class - * and method name. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected methods. - */ - public static Method method(Class javaClass, String methodName) throws NoSuchMethodException { - return method(javaClass, methodName, ZERO_PARAMETER_TYPES); - } - - /** - * Return a method for the specified class, method name, - * and formal parameter types. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected methods. - */ - public static Method method(Class javaClass, String methodName, Class[] parameterTypes) throws NoSuchMethodException { - Method method = null; - try { - method = javaClass.getDeclaredMethod(methodName, parameterTypes); - } catch (NoSuchMethodException ex) { - Class superclass = javaClass.getSuperclass(); - if (superclass == null) { - throw ex; - } - // recurse - return method(superclass, methodName, parameterTypes); - } - method.setAccessible(true); - return method; - } - - /** - * Convenience method. - * Return a method for the specified class, method name, - * and formal parameter type. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected methods. - */ - public static Method method(Class javaClass, String methodName, Class parameterType) throws NoSuchMethodException { - return method(javaClass, methodName, new Class[] {parameterType}); - } - - /** - * Convenience method. - * Return a zero-argument method for the specified object - * and method name. If the object's class does not directly - * implement the method, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected methods. - */ - public static Method method(Object object, String methodName) throws NoSuchMethodException { - return method(object.getClass(), methodName); - } - - /** - * Convenience method. - * Return a method for the specified object, method name, - * and formal parameter types. If the object's class does not directly - * implement the method, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected methods. - */ - public static Method method(Object object, String methodName, Class[] parameterTypes) throws NoSuchMethodException { - return method(object.getClass(), methodName, parameterTypes); - } - - /** - * Convenience method. - * Return a method for the specified object, method name, - * and formal parameter type. If the object's class does not directly - * implement the method, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected methods. - */ - public static Method method(Object object, String methodName, Class parameterType) throws NoSuchMethodException { - return method(object.getClass(), methodName, parameterType); - } - - /** - * Convenience method. - * Return the specified class (without the checked exception). - */ - public static Class classForName(String className) { - try { - return Class.forName(className); - } catch (ClassNotFoundException ex) { - throw new RuntimeException(className, ex); - } - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * using the class's default (zero-argument) constructor. - * Class#newInstance() - */ - public static T newInstance(Class javaClass) { - return newInstance(javaClass, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS); - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * using the class's default (zero-argument) constructor. - * Class#newInstance() - */ - public static Object newInstance(String className) throws ClassNotFoundException { - return newInstance(className, null); - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * using the class's default (zero-argument) constructor. - * Class#newInstance() - */ - public static Object newInstance(String className, ClassLoader classLoader) throws ClassNotFoundException { - return newInstance(Class.forName(className, true, classLoader)); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter types and parameters. - * Class#newInstance(Class[] parameterTypes, Object[] parameters) - */ - public static T newInstance(Class javaClass, Class[] parameterTypes, Object[] parameters) { - try { - return attemptNewInstance(javaClass, parameterTypes, parameters); - } catch (NoSuchMethodException nsme) { - throw new RuntimeException(nsme + CR + fullyQualifiedConstructorSignature(javaClass, parameterTypes), nsme); - } - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter types and parameters. - * Class#newInstance(Class[] parameterTypes, Object[] parameters) - */ - public static Object newInstance(String className, Class[] parameterTypes, Object[] parameters) throws ClassNotFoundException { - return newInstance(className, parameterTypes, parameters, null); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter types and parameters. - * Class#newInstance(Class[] parameterTypes, Object[] parameters) - */ - public static Object newInstance(String className, Class[] parameterTypes, Object[] parameters, ClassLoader classLoader) throws ClassNotFoundException { - return newInstance(Class.forName(className, true, classLoader), parameterTypes, parameters); - } - - /** - * Convenience method. - * Return a new instance of the specified class, - * given the constructor parameter type and parameter. - * Class#newInstance(Class parameterType, Object parameter) - */ - public static T newInstance(Class javaClass, Class parameterType, Object parameter) { - return newInstance(javaClass, new Class[] {parameterType}, new Object[] {parameter}); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter type and parameter. - * Class#newInstance(Class parameterType, Object parameter) - */ - public static Object newInstance(String className, Class parameterType, Object parameter) throws ClassNotFoundException { - return newInstance(className, parameterType, parameter, null); - } - - /** - * Return a new instance of the specified class, - * given the constructor parameter type and parameter. - * Class#newInstance(Class parameterType, Object parameter) - */ - public static Object newInstance(String className, Class parameterType, Object parameter, ClassLoader classLoader) throws ClassNotFoundException { - return newInstance(Class.forName(className, false, classLoader), parameterType, parameter); - } - - /* - * Push the declared fields for the specified class - * onto the top of the stack. - */ - private static void pushDeclaredFields(Class javaClass, Stack stack) { - Field[] fields = declaredFields(javaClass); - for (int i = fields.length; i-- > 0; ) { - stack.push(fields[i]); - } - } - - /* - * Push the declared methods for the specified class - * onto the top of the stack. - */ - private static void pushDeclaredMethods(Class javaClass, Stack stack) { - Method[] methods = declaredMethods(javaClass); - for (int i = methods.length; i-- > 0; ) { - stack.push(methods[i]); - } - } - - /** - * Set a field value, given the containing object, field name, and new field value. - * Useful for accessing private, package, or protected fields. - * Object#setFieldValue(String fieldName, Object fieldValue) - */ - public static void setFieldValue(Object object, String fieldName, Object fieldValue) { - try { - attemptToSetFieldValue(object, fieldName, fieldValue); - } catch (NoSuchFieldException nsfe) { - throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(object, fieldName), nsfe); - } - } - - /** - * Set a static field value, given the containing class, field name, and new field value. - * Useful for accessing private, package, or protected fields. - * Class#setStaticFieldValue(String fieldName, Object fieldValue) - */ - public static void setStaticFieldValue(Class javaClass, String fieldName, Object fieldValue) { - try { - attemptToSetStaticFieldValue(javaClass, fieldName, fieldValue); - } catch (NoSuchFieldException nsfe) { - throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(javaClass, fieldName), nsfe); - } - } - - /** - * Return the short name of the object's class. - * Class#getShortName() - */ - public static String shortClassNameForObject(Object object) { - return shortNameFor(object.getClass()); - } - - /** - * Return the short name of the class (e.g. "Object"). - * Class#getShortName() - */ - public static String shortNameForClassNamed(String className) { - return className.substring(className.lastIndexOf('.') + 1); - } - - /** - * Return the short name of the class (e.g. "Object"). - * Class#getShortName() - */ - public static String shortNameFor(Class javaClass) { - return shortNameForClassNamed(javaClass.getName()); - } - - /** - * Return the nested name of the object's class. - * Class#getNestedName() - */ - public static String nestedClassNameForObject(Object object) { - return nestedNameFor(object.getClass()); - } - - /** - * Return the nested name of the class (e.g. "Entry"). - * Class#getNestedName() - */ - public static String nestedNameForClassNamed(String className) { - return className.substring(className.lastIndexOf(NESTED_CLASS_NAME_SEPARATOR) + 1); - } - - /** - * Return the nested name of the class (e.g. "Entry"). - * Class#getNestedName() - */ - public static String nestedNameFor(Class javaClass) { - return nestedNameForClassNamed(javaClass.getName()); - } - - /** - * Return the "toString()" name of the object's class. - */ - public static String toStringClassNameForObject(Object object) { - return toStringNameFor(object.getClass()); - } - - /** - * Return the "toString()" name of the class. - * "Member" classes will return only the final name: - * "com.foo.bar.TopLevelClass$MemberClass$NestedMemberClass" - * => "NestedMemberClass" - * "Local" and "anonymous" classes will still return the embedded '$'s: - * "com.foo.bar.TopLevelClass$1LocalClass" - * => "TopLevelClass$1LocalClass" - * "com.foo.bar.TopLevelClass$1" - * => "TopLevelClass$1" - */ - public static String toStringNameForClassNamed(String className) { - return classNamedIsMember(className) ? - className.substring(className.lastIndexOf(NESTED_CLASS_NAME_SEPARATOR) + 1) - : - className.substring(className.lastIndexOf('.') + 1); - } - - /** - * Return the "toString()" name of the class. - */ - public static String toStringNameFor(Class javaClass) { - return toStringNameForClassNamed(javaClass.getName()); - } - - /** - * Return the package name of the class (e.g. "java.lang"). - * Class#getPackageName() - */ - public static String packageNameFor(Class javaClass) { - return packageNameForClassNamed(javaClass.getName()); - } - - /** - * Return the package name of the class (e.g. "java.lang"). - * Class#getPackageName() - */ - public static String packageNameForClassNamed(String className) { - int lastPeriod = className.lastIndexOf('.'); - if (lastPeriod == -1) { - return ""; - } - return className.substring(0, lastPeriod); - } - - /** - * Return the short name of the class, - * followed by its package name (e.g. "Object (java.lang)"). - * Class#getShortNameWithPackage() - */ - public static String shortNameWithPackage(Class javaClass) { - StringBuilder sb = new StringBuilder(200); - sb.append(shortNameFor(javaClass)); - if ( ! javaClass.isPrimitive()) { - sb.append(" ("); - sb.append(packageNameFor(javaClass)); - sb.append(')'); - } - return sb.toString(); - } - - /** - * Convenience method. - * Return a zero-argument, static method for the specified class - * and method name. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected methods. - */ - public static Method staticMethod(Class javaClass, String methodName) throws NoSuchMethodException { - return staticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES); - } - - /** - * Return a static method for the specified class, method name, - * and formal parameter types. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected methods. - */ - public static Method staticMethod(Class javaClass, String methodName, Class[] parameterTypes) throws NoSuchMethodException { - Method method = method(javaClass, methodName, parameterTypes); - if (Modifier.isStatic(method.getModifiers())) { - return method; - } - throw new NoSuchMethodException(fullyQualifiedMethodSignature(javaClass, methodName, parameterTypes)); - } - - /** - * Convenience method. - * Return a static method for the specified class, method name, - * and formal parameter type. If the class does not directly - * implement the method, look for it in the class's superclasses. - * Set accessible to true, so we can access - * private/package/protected methods. - */ - public static Method staticMethod(Class javaClass, String methodName, Class parameterTypes) throws NoSuchMethodException { - return staticMethod(javaClass, methodName, new Class[] {parameterTypes}); - } - - /** - * Return whether the specified class can be "declared" in code; - * i.e. it is either a "top-level" class or a "member" class, but it - * is not an "array" class. This method rolls together all the checks - * from the other methods for a bit of a performance tweak. - * Class#isDeclarable() - */ - public static boolean classNamedIsDeclarable(String className) { - if (className.charAt(0) == ARRAY_INDICATOR) { - return false; // it is an "array" class - } - int index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR); - if (index == -1) { - return true; // it is a "top-level" class - } - do { - // the character immediately after each dollar sign cannot be a digit - index++; - if (Character.isDigit(className.charAt(index))) { - return false; - } - index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR, index); - } while (index != -1); - return true; - } - - /** - * Return whether the specified class is a "top-level" class, - * as opposed to a "member", "local", or "anonymous" class, - * using the standard jdk naming conventions (i.e. the class - * name does NOT contain a '$': "TopLevelClass"). - * Class#isTopLevel() - */ - public static boolean classNamedIsTopLevel(String className) { - if (classNamedIsArray(className)) { - return false; - } - return className.indexOf(NESTED_CLASS_NAME_SEPARATOR) == -1; - } - - /** - * Return whether the specified class is a "member" class, - * as opposed to a "top-level", "local", or "anonymous" class, - * using the standard jdk naming conventions (i.e. the class - * name contains at least one '$' and all the names between - * each '$' are legal class names: - * "TopLevelClass$MemberClass$NestedMemberClass"). - * Class#isMember() - */ - public static boolean classNamedIsMember(String className) { - if (classNamedIsArray(className)) { - return false; - } - int index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR); - if (index == -1) { - return false; // it is a "top-level" class - } - do { - // the character immediately after each dollar sign cannot be a digit - index++; - if (Character.isDigit(className.charAt(index))) { - return false; - } - index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR, index); - } while (index != -1); - return true; - } - - /** - * Return whether the specified class is a "local" class, - * as opposed to a "top-level", "member", or "anonymous" class, - * using the standard jdk (or Eclipse) naming conventions. - * In the jdk, the class name ends with '$nnnXXX' where the '$' is - * followed by a series of numeric digits which are followed by the - * local class name: "TopLevelClass$1LocalClass". - * In Eclipse, the class name ends with '$nnn$XXX' where the '$' is - * followed by a series of numeric digits which are separated from - * the local class name by another '$': "TopLevelClass$1$LocalClass". - * Class#isLocal() - */ - public static boolean classNamedIsLocal(String className) { - if (classNamedIsArray(className)) { - return false; - } - int dollar = className.indexOf(NESTED_CLASS_NAME_SEPARATOR); - if (dollar == -1) { - return false; - } - if ( ! Character.isDigit(className.charAt(dollar + 1))) { - return false; - } - int len = className.length(); - for (int i = dollar + 2; i < len; i++) { - if (Character.isJavaIdentifierStart(className.charAt(i))) { - return true; - } - } - // all the characters past the $ are digits (anonymous) - return false; - } - - /** - * Return whether the specified class is an "anonymous" class, - * as opposed to a "top-level", "member", or "local" class, - * using the standard jdk naming conventions (i.e. the class - * name ends with '$nnn' where all the characters past the - * last '$' are numeric digits: "TopLevelClass$1"). - * Class#isAnonymous() - */ - public static boolean classNamedIsAnonymous(String className) { - if (classNamedIsArray(className)) { - return false; - } - int dollar = className.indexOf(NESTED_CLASS_NAME_SEPARATOR); - if (dollar == -1) { - return false; - } - int start = dollar + 1; - for (int i = className.length(); i-- > start; ) { - if ( ! Character.isDigit(className.charAt(i))) { - return false; - } - } - // all the characters past the $ are digits - return true; - } - - /** - * Return the "array depth" of the specified class. - * The depth is the number of dimensions for an array type. - * Non-array types have a depth of zero. - * Class#getArrayDepth() - */ - public static int arrayDepthFor(Class javaClass) { - int depth = 0; - while (javaClass.isArray()) { - depth++; - javaClass = javaClass.getComponentType(); - } - return depth; - } - - /** - * Return the "array depth" of the specified object. - * The depth is the number of dimensions for an array. - * Non-arrays have a depth of zero. - */ - public static int arrayDepthForObject(Object object) { - return arrayDepthFor(object.getClass()); - } - - /** - * Return the "array depth" of the specified class. - * The depth is the number of dimensions for an array type. - * Non-array types have a depth of zero. - * @see java.lang.Class#getName() - * Class#getArrayDepth() - */ - public static int arrayDepthForClassNamed(String className) { - int depth = 0; - while (className.charAt(depth) == ARRAY_INDICATOR) { - depth++; - } - return depth; - } - - /** - * Return whether the specified class is an array type. - * @see java.lang.Class#getName() - */ - public static boolean classNamedIsArray(String className) { - return className.charAt(0) == ARRAY_INDICATOR; - } - - /** - * Return the "element type" of the specified class. - * The element type is the base type held by an array type. - * A non-array type simply returns itself. - * Class#getElementType() - */ - public static Class elementTypeFor(Class javaClass) { - while (javaClass.isArray()) { - javaClass = javaClass.getComponentType(); - } - return javaClass; - } - - /** - * Return the "element type" of the specified object. - * The element type is the base type held by an array. - * A non-array simply returns its class. - */ - public static Class elementTypeForObject(Object object) { - return elementTypeFor(object.getClass()); - } - - /** - * Return the "element type" of the specified class. - * The element type is the base type held by an array type. - * Non-array types simply return themselves. - * Class#getElementType() - */ - public static String elementTypeNameFor(Class javaClass) { - return elementTypeFor(javaClass).getName(); - } - - /** - * Return the "element type" of the specified class. - * The element type is the base type held by an array type. - * Non-array types simply return themselves. - * @see java.lang.Class#getName() - * Class#getElementType() - */ - public static String elementTypeNameForClassNamed(String className) { - int depth = arrayDepthForClassNamed(className); - if (depth == 0) { - // the name is in the form: "java.lang.Object" or "int" - return className; - } - int last = className.length() - 1; - if (className.charAt(depth) == REFERENCE_CLASS_CODE) { - // the name is in the form: "[[[Ljava.lang.Object;" - return className.substring(depth + 1, last); // drop the trailing ';' - } - // the name is in the form: "[[[I" - return classNameForCode(className.charAt(last)); - } - - /** - * Return whether the specified class is a "reference" - * class (i.e. neither 'void' nor one of the primitive variable classes, - * ['boolean', 'int', 'float', etc.]). - * NB: void.class.isPrimitive() == true - */ - public static boolean classNamedIsReference(String className) { - return ! classNamedIsPrimitive(className); - } - - /** - * Return whether the specified class is a primitive - * class (i.e. 'void' or one of the primitive variable classes, - * ['boolean', 'int', 'float', etc.]). - * NB: void.class.isPrimitive() == true - */ - public static boolean classNamedIsPrimitive(String className) { - if (classNamedIsArray(className) || (className.length() > maxPrimitiveClassNameLength())) { - return false; // performance tweak - } - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - if (codes[i].javaClass.getName().equals(className)) { - return true; - } - } - return false; - } - - /** - * Return whether the specified class is a "variable" primitive - * class (i.e. 'boolean', 'int', 'float', etc., but not 'void'). - * NB: void.class.isPrimitive() == true - */ - public static boolean classNamedIsVariablePrimitive(String className) { - return classNamedIsPrimitive(className) - && ( ! className.equals(VOID_CLASS_NAME)); - } - - /** - * Return whether the specified class is a primitive wrapper - * class (i.e. 'java.lang.Void' or one of the primitive variable wrapper classes, - * ['java.lang.Boolean', 'java.lang.Integer', 'java.lang.Float', etc.]). - * NB: void.class.isPrimitive() == true - */ - public static boolean classNamedIsPrimitiveWrapperClass(String className) { - if (classNamedIsArray(className) || (className.length() > maxPrimitiveWrapperClassNameLength())) { - return false; // performance tweak - } - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - if (codes[i].wrapperClass.getName().equals(className)) { - return true; - } - } - return false; - } - - /** - * Return whether the specified class is a "variable" primitive - * class (i.e. 'boolean', 'int', 'float', etc., but not 'void'). - * NB: void.class.isPrimitive() == true - */ - public static boolean classNamedIsVariablePrimitiveWrapperClass(String className) { - return classNamedIsPrimitiveWrapperClass(className) - && ( ! className.equals(VOID_WRAPPER_CLASS_NAME)); - } - - /** - * Return whether the specified class is a primitive wrapper - * class (i.e. 'java.lang.Void' or one of the primitive variable wrapper classes, - * ['java.lang.Boolean', 'java.lang.Integer', 'java.lang.Float', etc.]). - * NB: void.class.isPrimitive() == true - */ - public static boolean classIsPrimitiveWrapperClass(Class javaClass) { - if (javaClass.isArray() || (javaClass.getName().length() > maxPrimitiveWrapperClassNameLength())) { - return false; // performance tweak - } - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - if (codes[i].wrapperClass == javaClass) { - return true; - } - } - return false; - } - - /** - * Return whether the specified class is a "variable" primitive - * class (i.e. 'boolean', 'int', 'float', etc., but not 'void'). - * NB: void.class.isPrimitive() == true - */ - public static boolean classIsVariablePrimitiveWrapperClass(Class javaClass) { - return classIsPrimitiveWrapperClass(javaClass) - && (javaClass != java.lang.Void.class); - } - - /** - * Return the class name for the specified class code. - * @see java.lang.Class#getName() - */ - public static String classNameForCode(char classCode) { - return classForCode(classCode).getName(); - } - - /** - * Return the class name for the specified class code. - * @see java.lang.Class#getName() - */ - public static String classNameForCode(int classCode) { - return classNameForCode((char) classCode); - } - - /** - * Return the class for the specified class code. - * @see java.lang.Class#getName() - */ - public static Class classForCode(char classCode) { - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - if (codes[i].code == classCode) { - return codes[i].javaClass; - } - } - throw new IllegalArgumentException(String.valueOf(classCode)); - } - - /** - * Return the class for the specified class code. - * @see java.lang.Class#getName() - */ - public static Class classForCode(int classCode) { - return classForCode((char) classCode); - } - - /** - * Return the class code for the specified class. - * @see java.lang.Class#getName() - */ - public static char codeForClass(Class javaClass) { - if (( ! javaClass.isArray()) && (javaClass.getName().length() <= maxPrimitiveClassNameLength())) { - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - if (codes[i].javaClass == javaClass) { - return codes[i].code; - } - } - } - throw new IllegalArgumentException(javaClass.getName()); - } - - /** - * Return the class code for the specified class. - * @see java.lang.Class#getName() - */ - public static char codeForClassNamed(String className) { - if (( ! classNamedIsArray(className)) && (className.length() <= maxPrimitiveClassNameLength())) { - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - if (codes[i].javaClass.getName().equals(className)) { - return codes[i].code; - } - } - } - throw new IllegalArgumentException(className); - } - - /** - * Return the class for the specified "type declaration". - */ - public static Class classForTypeDeclaration(String typeDeclaration) throws ClassNotFoundException { - return classForTypeDeclaration(typeDeclaration, ClassTools.class.getClassLoader()); - } - - /** - * Return the class for the specified "type declaration", - * using the specified class loader. - */ - public static Class classForTypeDeclaration(String typeDeclaration, ClassLoader classLoader) throws ClassNotFoundException { - TypeDeclaration td = typeDeclaration(typeDeclaration); - return classForTypeDeclaration(td.elementTypeName, td.arrayDepth); - } - - private static TypeDeclaration typeDeclaration(String typeDeclaration) { - typeDeclaration = StringTools.removeAllWhitespace(typeDeclaration); - int arrayDepth = arrayDepthForTypeDeclaration_(typeDeclaration); - String elementTypeName = typeDeclaration.substring(0, typeDeclaration.length() - (arrayDepth * 2)); - return new TypeDeclaration(elementTypeName, arrayDepth); - } - - /** - * Return the class for the specified "type declaration". - */ - public static Class classForTypeDeclaration(String elementTypeName, int arrayDepth) throws ClassNotFoundException { - return classForTypeDeclaration(elementTypeName, arrayDepth, null); - } - - /** - * Return the class for the specified "type declaration", - * using the specified class loader. - */ - // see the "Evaluation" of jdk bug 6446627 for a discussion of loading classes - public static Class classForTypeDeclaration(String elementTypeName, int arrayDepth, ClassLoader classLoader) throws ClassNotFoundException { - // primitives cannot be loaded via Class#forName(), - // so check for a primitive class name first - Primitive pcc = null; - if (elementTypeName.length() <= maxPrimitiveClassNameLength()) { // performance tweak - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - if (codes[i].javaClass.getName().equals(elementTypeName)) { - pcc = codes[i]; - break; - } - } - } - - // non-array - if (arrayDepth == 0) { - return (pcc == null) ? Class.forName(elementTypeName, false, classLoader) : pcc.javaClass; - } - - // array - StringBuilder sb = new StringBuilder(100); - for (int i = arrayDepth; i-- > 0; ) { - sb.append(ARRAY_INDICATOR); - } - if (pcc == null) { - sb.append(REFERENCE_CLASS_CODE); - sb.append(elementTypeName); - sb.append(REFERENCE_CLASS_NAME_DELIMITER); - } else { - sb.append(pcc.code); - } - return Class.forName(sb.toString(), false, classLoader); - } - - /** - * Return the class name for the specified "type declaration"; e.g. - * "int[]" -> "[I" - * @see java.lang.Class#getName() - */ - public static String classNameForTypeDeclaration(String typeDeclaration) { - TypeDeclaration td = typeDeclaration(typeDeclaration); - return classNameForTypeDeclaration(td.elementTypeName, td.arrayDepth); - } - - /** - * Return the array depth for the specified "type declaration"; e.g. - * "int[]" -> 1 - */ - public static int arrayDepthForTypeDeclaration(String typeDeclaration) { - return arrayDepthForTypeDeclaration_(StringTools.removeAllWhitespace(typeDeclaration)); - } - - /* - * Assume no whitespace in the type declaration. - */ - private static int arrayDepthForTypeDeclaration_(String typeDeclaration) { - int last = typeDeclaration.length() - 1; - int depth = 0; - int close = last; - while (typeDeclaration.charAt(close) == TYPE_DECLARATION_ARRAY_CLOSE) { - if (typeDeclaration.charAt(close - 1) == TYPE_DECLARATION_ARRAY_OPEN) { - depth++; - } else { - throw new IllegalArgumentException("invalid type declaration: " + typeDeclaration); - } - close = last - (depth * 2); - } - return depth; - } - - /** - * Return the class name for the specified "type declaration". - * @see java.lang.Class#getName() - */ - public static String classNameForTypeDeclaration(String elementTypeName, int arrayDepth) { - // non-array - if (arrayDepth == 0) { - return elementTypeName; - } - - if (elementTypeName.equals(VOID_CLASS_NAME)) { - throw new IllegalArgumentException("'" + VOID_CLASS_NAME + "' must have an array depth of zero: " + arrayDepth + '.'); - } - // array - StringBuilder sb = new StringBuilder(100); - for (int i = arrayDepth; i-- > 0; ) { - sb.append(ARRAY_INDICATOR); - } - - // look for a primitive first - Primitive pcc = null; - if (elementTypeName.length() <= maxPrimitiveClassNameLength()) { // performance tweak - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - if (codes[i].javaClass.getName().equals(elementTypeName)) { - pcc = codes[i]; - break; - } - } - } - - if (pcc == null) { - sb.append(REFERENCE_CLASS_CODE); - sb.append(elementTypeName); - sb.append(REFERENCE_CLASS_NAME_DELIMITER); - } else { - sb.append(pcc.code); - } - - return sb.toString(); - } - - private static int maxPrimitiveClassNameLength() { - if (MAX_PRIMITIVE_CLASS_NAME_LENGTH == -1) { - MAX_PRIMITIVE_CLASS_NAME_LENGTH = calculateMaxPrimitiveClassNameLength(); - } - return MAX_PRIMITIVE_CLASS_NAME_LENGTH; - } - - private static int calculateMaxPrimitiveClassNameLength() { - int max = -1; - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - int len = codes[i].javaClass.getName().length(); - if (len > max) { - max = len; - } - } - return max; - } - - private static int maxPrimitiveWrapperClassNameLength() { - if (MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH == -1) { - MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH = calculateMaxPrimitiveWrapperClassNameLength(); - } - return MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH; - } - - private static int calculateMaxPrimitiveWrapperClassNameLength() { - int max = -1; - Primitive[] codes = primitives(); - for (int i = codes.length; i-- > 0; ) { - int len = codes[i].wrapperClass.getName().length(); - if (len > max) { - max = len; - } - } - return max; - } - - private static Primitive[] primitives() { - if (PRIMITIVES == null) { - PRIMITIVES = buildPrimitives(); - } - return PRIMITIVES; - } - - /** - * NB: void.class.isPrimitive() == true - */ - private static Primitive[] buildPrimitives() { - Primitive[] result = new Primitive[9]; - result[0] = new Primitive(BYTE_CODE, java.lang.Byte.class); - result[1] = new Primitive(CHAR_CODE, java.lang.Character.class); - result[2] = new Primitive(DOUBLE_CODE, java.lang.Double.class); - result[3] = new Primitive(FLOAT_CODE, java.lang.Float.class); - result[4] = new Primitive(INT_CODE, java.lang.Integer.class); - result[5] = new Primitive(LONG_CODE, java.lang.Long.class); - result[6] = new Primitive(SHORT_CODE, java.lang.Short.class); - result[7] = new Primitive(BOOLEAN_CODE, java.lang.Boolean.class); - result[8] = new Primitive(VOID_CODE, java.lang.Void.class); - return result; - } - - /** - * Suppress default constructor, ensuring non-instantiability. - */ - private ClassTools() { - super(); - throw new UnsupportedOperationException(); - } - - - // ********** member classes ********** - - private static class Primitive { - final char code; - final Class javaClass; - final Class wrapperClass; - private static final String WRAPPER_CLASS_TYPE_FIELD_NAME = "TYPE"; - // e.g. java.lang.Boolean.TYPE => boolean.class - Primitive(char code, Class wrapperClass) { - this.code = code; - this.wrapperClass = wrapperClass; - this.javaClass = (Class) staticFieldValue(wrapperClass, WRAPPER_CLASS_TYPE_FIELD_NAME); - } - } - - private static class TypeDeclaration { - final String elementTypeName; - final int arrayDepth; - TypeDeclaration(String elementTypeName, int arrayDepth) { - this.elementTypeName = elementTypeName; - this.arrayDepth = arrayDepth; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ArrayToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ArrayToolsTests.java deleted file mode 100644 index b5f840729f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ArrayToolsTests.java +++ /dev/null @@ -1,3523 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.Range; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.ReverseComparator; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; - -@SuppressWarnings("nls") -public class ArrayToolsTests extends TestCase { - - public ArrayToolsTests(String name) { - super(name); - } - - - // ********** instantiation ********** - - public void testNewArrayObjectArray() { - String[] array1 = new String[2]; - String[] array2 = ArrayTools.newArray(array1); - array2[0] = "foo"; - array2[1] = "bar"; - assertEquals(String.class, array2.getClass().getComponentType()); - assertEquals(2, array2.length); - } - - public void testNewArrayObjectArrayInt() { - String[] array1 = new String[2]; - String[] array2 = ArrayTools.newArray(array1, 5); - array2[0] = "foo"; - array2[4] = "bar"; - assertEquals(String.class, array2.getClass().getComponentType()); - assertEquals(5, array2.length); - } - - public void testNewArrayObjectArrayInt_Exception() { - String[] array1 = new String[2]; - Object[] array2 = ArrayTools.newArray(array1, 5); - boolean exCaught = false; - try { - array2[1] = Integer.valueOf(7); - fail("bogus array: " + Arrays.toString(array2)); - } catch (ArrayStoreException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testComponentType() { - String[] array = new String[2]; - Class javaClass = ArrayTools.componentType(array); - assertEquals(String.class, javaClass); - } - - public void testNewArrayClassInt() { - String[] array = ArrayTools.newArray(String.class, 5); - array[0] = "foo"; - array[4] = "bar"; - assertEquals(String.class, array.getClass().getComponentType()); - assertEquals(5, array.length); - } - - public void testNewArrayClassInt_Exception() { - Object[] array = ArrayTools.newArray(String.class, 5); - boolean exCaught = false; - try { - array[1] = Integer.valueOf(7); - fail("bogus array: " + Arrays.toString(array)); - } catch (ArrayStoreException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testNewArrayClassInt_Primitive() { - boolean exCaught = false; - try { - Object[] array = ArrayTools.newArray(int.class, 5); - fail("bogus array: " + Arrays.toString(array)); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - // ********** conversion ********** - - public void testArrayIterable() { - Iterable iterable = this.buildStringList1(); - Object[] a = ArrayTools.array(iterable); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIterableInt() { - Iterable iterable = this.buildStringList1(); - Object[] a = ArrayTools.array(iterable, 3); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIterableObjectArray_String() { - Iterable iterable = this.buildStringList1(); - String[] a = ArrayTools.array(iterable, new String[0]); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIterableObjectArray_Object() { - Iterable iterable = this.buildStringList1(); - Object[] a = ArrayTools.array(iterable, new Object[0]); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIterableIntObjectArray() { - Iterable iterable = this.buildStringList1(); - String[] a = ArrayTools.array(iterable, 3, new String[0]); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIterator() { - Object[] a = ArrayTools.array(this.buildStringList1().iterator()); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIterator_Empty() { - Object[] a = ArrayTools.array(EmptyIterator.instance()); - assertEquals(0, a.length); - } - - public void testArrayIteratorInt() { - Object[] a = ArrayTools.array(this.buildStringList1().iterator(), 3); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIteratorInt_Empty() { - Object[] a = ArrayTools.array(EmptyIterator.instance(), 3); - assertEquals(0, a.length); - } - - public void testArrayIteratorObjectArray_String() { - String[] a = ArrayTools.array(this.buildStringList1().iterator(), new String[0]); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIteratorObjectArray_Empty() { - String[] a = ArrayTools.array(EmptyIterator.instance(), new String[0]); - assertEquals(0, a.length); - } - - public void testArrayIteratorObjectArray_Empty_ClearArray() { - String[] a = ArrayTools.array(EmptyIterator.instance(), new String[5]); - assertEquals(5, a.length); - assertNull(a[0]); - } - - public void testArrayIteratorObjectArray_Object() { - Object[] a = ArrayTools.array(this.buildStringList1().iterator(), new Object[0]); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIteratorIntObjectArray() { - String[] a = ArrayTools.array(this.buildStringList1().iterator(), 3, new String[0]); - assertEquals(3, a.length); - assertTrue(ArrayTools.containsAll(a, this.buildStringList1().iterator())); - } - - public void testArrayIteratorIntObjectArray_Empty() { - String[] a = ArrayTools.array(EmptyIterator.instance(), 3, new String[0]); - assertEquals(0, a.length); - } - - - // ********** add ********** - - public void testAddObjectArrayObject_Object() { - Object[] a = ArrayTools.add(this.buildObjectArray1(), "twenty"); - assertEquals(4, a.length); - assertTrue(ArrayTools.contains(a, "twenty")); - assertEquals("twenty", a[a.length-1]); - } - - public void testAddObjectArrayObject_String() { - String[] a = ArrayTools.add(this.buildStringArray1(), "twenty"); - assertEquals(4, a.length); - assertTrue(ArrayTools.contains(a, "twenty")); - assertEquals("twenty", a[a.length-1]); - } - - public void testAddObjectArrayObject_EmptyArray() { - String[] a = new String[0]; - a = ArrayTools.add(a, "twenty"); - assertEquals(1, a.length); - assertTrue(ArrayTools.contains(a, "twenty")); - assertEquals("twenty", a[0]); - } - - public void testAddObjectArrayIntObject_Object() { - Object[] a = new Object[] { "a", "b", "c", "d" }; - a = ArrayTools.add(a, 2, "X"); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, "X")); - assertTrue(Arrays.equals(new Object[] { "a", "b", "X", "c", "d" }, a)); - } - - public void testAddObjectArrayIntObject_String() { - String[] a = new String[] { "a", "b", "c", "d" }; - a = ArrayTools.add(a, 2, "X"); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, "X")); - assertTrue(Arrays.equals(new String[] { "a", "b", "X", "c", "d" }, a)); - } - - public void testAddObjectArrayIntObject_End() { - String[] a = new String[] { "a", "b", "c", "d" }; - a = ArrayTools.add(a, 4, "X"); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, "X")); - assertTrue(Arrays.equals(new String[] { "a", "b", "c", "d", "X" }, a)); - } - - public void testAddObjectArrayIntObject_Zero() { - String[] a = new String[] { "a", "b", "c", "d" }; - a = ArrayTools.add(a, 0, "X"); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, "X")); - assertTrue(Arrays.equals(new String[] { "X", "a", "b", "c", "d" }, a)); - } - - public void testAddObjectArrayIntObject_Exception() { - Object[] a = new Object[] { "a", "b", "c", "d" }; - boolean exCaught = false; - try { - a = ArrayTools.add(a, 33, "X"); - } catch (IndexOutOfBoundsException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddCharArrayChar() { - char[] a = ArrayTools.add(this.buildCharArray(), 'd'); - assertEquals(4, a.length); - assertTrue(ArrayTools.contains(a, 'd')); - } - - public void testAddCharArrayChar_Empty() { - char[] a = new char[0]; - a = ArrayTools.add(a, 'd'); - assertEquals(1, a.length); - assertTrue(ArrayTools.contains(a, 'd')); - assertTrue(Arrays.equals(new char[] { 'd' }, a)); - } - - public void testAddCharArrayIntChar() { - char[] a = new char[] { 'a', 'b', 'c', 'd' }; - a = ArrayTools.add(a, 2, 'X'); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, 'X')); - assertTrue(Arrays.equals(new char[] { 'a', 'b', 'X', 'c', 'd' }, a)); - } - - public void testAddCharArrayIntChar_Zero() { - char[] a = new char[] { 'a', 'b', 'c', 'd' }; - a = ArrayTools.add(a, 0, 'X'); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, 'X')); - assertTrue(Arrays.equals(new char[] { 'X', 'a', 'b', 'c', 'd' }, a)); - } - - public void testAddCharArrayIntChar_End() { - char[] a = new char[] { 'a', 'b', 'c', 'd' }; - a = ArrayTools.add(a, 4, 'X'); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, 'X')); - assertTrue(Arrays.equals(new char[] { 'a', 'b', 'c', 'd', 'X' }, a)); - } - - public void testAddIntArrayInt() { - int[] a = ArrayTools.add(this.buildIntArray(), 30); - assertEquals(4, a.length); - assertTrue(ArrayTools.contains(a, 30)); - } - - public void testAddIntArrayInt_Empty() { - int[] a = new int[0]; - a = ArrayTools.add(a, 30); - assertEquals(1, a.length); - assertTrue(ArrayTools.contains(a, 30)); - assertTrue(Arrays.equals(new int[] { 30 }, a)); - } - - public void testAddIntArrayIntInt() { - int[] a = new int[] { 1, 2, 3, 4 }; - a = ArrayTools.add(a, 2, 99); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, 99)); - assertTrue(Arrays.equals(new int[] { 1, 2, 99, 3, 4 }, a)); - } - - public void testAddIntArrayIntInt_Zero() { - int[] a = new int[] { 1, 2, 3, 4 }; - a = ArrayTools.add(a, 0, 99); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, 99)); - assertTrue(Arrays.equals(new int[] { 99, 1, 2, 3, 4 }, a)); - } - - public void testAddIntArrayIntInt_End() { - int[] a = new int[] { 1, 2, 3, 4 }; - a = ArrayTools.add(a, 4, 99); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, 99)); - assertTrue(Arrays.equals(new int[] { 1, 2, 3, 4, 99 }, a)); - } - - - // ********** add all ********** - - public void testAddAllObjectArrayCollection_String() { - String[] a = this.buildStringArray1(); - Collection c = this.buildStringList2(); - String[] newArray = ArrayTools.addAll(a, c); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, c)); - } - - public void testAddAllObjectArrayCollection_Object() { - Object[] a = this.buildObjectArray1(); - Collection c = this.buildStringList2(); - Object[] newArray = ArrayTools.addAll(a, c); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, c)); - } - - public void testAddAllObjectArrayCollection_EmptyArray() { - String[] a = new String[0]; - Collection c = this.buildStringList2(); - String[] newArray = ArrayTools.addAll(a, c); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, c)); - } - - public void testAddAllObjectArrayCollection_EmptyCollection() { - String[] a = this.buildStringArray1(); - Collection c = new ArrayList(); - String[] newArray = ArrayTools.addAll(a, c); - - assertEquals(3, newArray.length); - } - - public void testAddAllObjectArrayIntCollection_String() { - String[] a = this.buildStringArray1(); - Collection c = this.buildStringList2(); - String[] newArray = ArrayTools.addAll(a, 1, c); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, c)); - } - - public void testAddAllObjectArrayIntCollection_String_End() { - String[] a = this.buildStringArray1(); - Collection c = this.buildStringList2(); - String[] newArray = ArrayTools.addAll(a, 3, c); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, c)); - } - - public void testAddAllObjectArrayIntCollection_EmptyArray() { - String[] a = new String[0]; - Collection c = this.buildStringList2(); - String[] newArray = ArrayTools.addAll(a, 0, c); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, c)); - } - - public void testAddAllObjectArrayIntCollection_EmptyArray_Exception() { - String[] a = new String[0]; - Collection c = this.buildStringList2(); - boolean exCaught = false; - try { - String[] newArray = ArrayTools.addAll(a, 3, c); - fail("bogus array: " + Arrays.toString(newArray)); - } catch (IndexOutOfBoundsException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddAllObjectArrayIntCollection_EmptyCollection() { - String[] a = this.buildStringArray1(); - Collection c = new ArrayList(); - String[] newArray = ArrayTools.addAll(a, 1, c); - - assertEquals(3, newArray.length); - } - - public void testAddAllObjectArrayIntIterable_String() { - String[] a = this.buildStringArray1(); - Iterable iterable = this.buildStringList2(); - String[] newArray = ArrayTools.addAll(a, 1, iterable); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, iterable)); - } - - public void testAddAllObjectArrayIntIterable_EmptyArray() { - String[] a = new String[0]; - Iterable iterable = this.buildStringList2(); - String[] newArray = ArrayTools.addAll(a, 0, iterable); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, iterable)); - } - - public void testAddAllObjectArrayIntIterable_EmptyIterable() { - String[] a = this.buildStringArray1(); - Iterable iterable = new ArrayList(); - String[] newArray = ArrayTools.addAll(a, 1, iterable); - - assertEquals(3, newArray.length); - } - - public void testAddAllObjectArrayIntIterableInt_String() { - String[] a = this.buildStringArray1(); - Iterable iterable = this.buildStringList2(); - String[] newArray = ArrayTools.addAll(a, 1, iterable, 3); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, iterable)); - } - - public void testAddAllObjectArrayIntIterableInt_EmptyArray() { - String[] a = new String[0]; - Iterable iterable = this.buildStringList2(); - String[] newArray = ArrayTools.addAll(a, 0, iterable, 3); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, iterable)); - } - - public void testAddAllObjectArrayIntIterableInt_EmptyIterable() { - String[] a = this.buildStringArray1(); - Iterable iterable = new ArrayList(); - String[] newArray = ArrayTools.addAll(a, 1, iterable, 0); - - assertEquals(3, newArray.length); - } - - public void testAddAllObjectArrayIntIterator_String() { - String[] a = this.buildStringArray1(); - Iterator iterator = this.buildStringList2().iterator(); - String[] newArray = ArrayTools.addAll(a, 1, iterator); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildStringList2())); - } - - public void testAddAllObjectArrayIntIterator_EmptyArray() { - String[] a = new String[0]; - Iterator iterator = this.buildStringList2().iterator(); - String[] newArray = ArrayTools.addAll(a, 0, iterator); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildStringList2())); - } - - public void testAddAllObjectArrayIntIterator_EmptyIterable() { - String[] a = this.buildStringArray1(); - Iterator iterator = EmptyIterator.instance(); - String[] newArray = ArrayTools.addAll(a, 1, iterator); - - assertEquals(3, newArray.length); - } - - public void testAddAllObjectArrayIntIteratorInt_String() { - String[] a = this.buildStringArray1(); - Iterator iterator = this.buildStringList2().iterator(); - String[] newArray = ArrayTools.addAll(a, 1, iterator, 3); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildStringList2())); - } - - public void testAddAllObjectArrayIntIteratorInt_EmptyArray() { - String[] a = new String[0]; - Iterator iterator = this.buildStringList2().iterator(); - String[] newArray = ArrayTools.addAll(a, 0, iterator, 3); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildStringList2())); - } - - public void testAddAllObjectArrayIntIteratorInt_EmptyIterator() { - String[] a = this.buildStringArray1(); - Iterator iterator = EmptyIterator.instance(); - String[] newArray = ArrayTools.addAll(a, 1, iterator, 0); - - assertEquals(3, newArray.length); - } - - public void testAddAllObjectArrayIterable() { - String[] a = this.buildStringArray1(); - Iterable iterable = this.buildStringList1(); - String[] newArray = ArrayTools.addAll(a, iterable); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildStringList1())); - } - - public void testAddAllObjectArrayIterableInt() { - String[] a = this.buildStringArray1(); - Iterable iterable = this.buildStringList1(); - String[] newArray = ArrayTools.addAll(a, iterable, 33); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildStringList1())); - } - - public void testAddAllObjectArrayIterator_String() { - String[] a = this.buildStringArray1(); - Iterator iterator = this.buildStringList1().iterator(); - String[] newArray = ArrayTools.addAll(a, iterator); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildStringList1())); - } - - public void testAddAllObjectArrayIterator_Object() { - String[] a = this.buildStringArray1(); - Iterator iterator = this.buildObjectList1().iterator(); - Object[] newArray = ArrayTools.addAll(a, iterator); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildObjectList1())); - } - - public void testAddAllObjectArrayIterator_EmptyIterator() { - String[] a = this.buildStringArray1(); - Iterator iterator = EmptyIterator.instance(); - String[] newArray = ArrayTools.addAll(a, iterator); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildStringList1())); - } - - public void testAddAllObjectArrayIteratorInt() { - String[] a = this.buildStringArray1(); - Iterator iterator = this.buildObjectList1().iterator(); - Object[] newArray = ArrayTools.addAll(a, iterator, 3); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildObjectList1())); - } - - public void testAddAllObjectArrayIteratorInt_EmptyIterator() { - String[] a = this.buildStringArray1(); - Iterator iterator = EmptyIterator.instance(); - String[] newArray = ArrayTools.addAll(a, iterator, 0); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, this.buildStringList1())); - } - - public void testAddAllObjectArrayObjectArray_Object() { - Object[] a1 = this.buildObjectArray1(); - Object[] a2 = this.buildObjectArray2(); - Object[] newArray = ArrayTools.addAll(a1, a2); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, a1)); - assertTrue(ArrayTools.containsAll(newArray, a2)); - } - - public void testAddAllObjectArrayObjectArray_String() { - String[] a1 = this.buildStringArray1(); - String[] a2 = this.buildStringArray2(); - String[] newArray = ArrayTools.addAll(a1, a2); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, (Object[]) a1)); - assertTrue(ArrayTools.containsAll(newArray, (Object[]) a2)); - } - - public void testAddAllObjectArrayObjectArray_ObjectString() { - Object[] a1 = this.buildObjectArray1(); - String[] a2 = this.buildStringArray2(); - Object[] newArray = ArrayTools.addAll(a1, (Object[]) a2); - - assertEquals(6, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, a1)); - assertTrue(ArrayTools.containsAll(newArray, (Object[]) a2)); - } - - public void testAddAllObjectArrayObjectArray_EmptyArray1() { - Object[] a1 = new Object[0]; - Object[] a2 = this.buildObjectArray2(); - Object[] newArray = ArrayTools.addAll(a1, a2); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, a2)); - } - - public void testAddAllObjectArrayObjectArray_EmptyArray2() { - Object[] a1 = this.buildObjectArray1(); - Object[] a2 = new Object[0]; - Object[] newArray = ArrayTools.addAll(a1, a2); - - assertEquals(3, newArray.length); - assertTrue(ArrayTools.containsAll(newArray, a1)); - } - - public void testAddAllObjectArrayIntObjectArray_Object() { - Object[] a = new Object[] { "a", "b", "c", "d" }; - a = ArrayTools.addAll(a, 2, new Object[] { "X", "X", "X" }); - assertEquals(7, a.length); - assertTrue(ArrayTools.contains(a, "X")); - assertTrue(Arrays.equals(new Object[] { "a", "b", "X", "X", "X", "c", "d" }, a)); - } - - public void testAddAllObjectArrayIntObjectArray_String() { - String[] a = new String[] { "a", "b", "c", "d" }; - a = ArrayTools.addAll(a, 2, new String[] { "X", "X", "X" }); - assertEquals(7, a.length); - assertTrue(ArrayTools.contains(a, "X")); - assertTrue(Arrays.equals(new String[] { "a", "b", "X", "X", "X", "c", "d" }, a)); - } - - public void testAddAllObjectArrayIntObjectArray_ObjectString() { - Object[] a = new Object[] { "a", "b", "c", "d" }; - a = ArrayTools.addAll(a, 2, (Object[]) new String[] { "X", "X", "X" }); - assertEquals(7, a.length); - assertTrue(ArrayTools.contains(a, "X")); - assertTrue(Arrays.equals(new Object[] { "a", "b", "X", "X", "X", "c", "d" }, a)); - } - - public void testAddAllObjectArrayIntObjectArray_End() { - Object[] a = new Object[] { "a", "b", "c", "d" }; - a = ArrayTools.addAll(a, 4, (Object[]) new String[] { "X", "X", "X" }); - assertEquals(7, a.length); - assertTrue(ArrayTools.contains(a, "X")); - assertTrue(Arrays.equals(new Object[] { "a", "b", "c", "d", "X", "X", "X" }, a)); - } - - public void testAddAllObjectArrayIntObjectArray_Zero() { - Object[] a = new Object[0]; - a = ArrayTools.addAll(a, 0, (Object[]) new String[] { "X", "X", "X" }); - assertEquals(3, a.length); - assertTrue(ArrayTools.contains(a, "X")); - assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, a)); - } - - public void testAddAllObjectArrayIntObjectArray_EmptyArray2() { - Object[] a = new Object[] { "a", "b", "c", "d" }; - a = ArrayTools.addAll(a, 4, (Object[]) new String[0]); - assertEquals(4, a.length); - assertTrue(Arrays.equals(new Object[] { "a", "b", "c", "d" }, a)); - } - - public void testAddAllObjectArrayIntObjectArray_EmptyArray1() { - Object[] a = new String[0]; - a = ArrayTools.addAll(a, 0, new Object[] { "a", "b", "c", "d" }); - assertEquals(4, a.length); - assertTrue(Arrays.equals(new Object[] { "a", "b", "c", "d" }, a)); - } - - public void testAddAllCharArrayCharArray() { - char[] a = ArrayTools.addAll(this.buildCharArray(), new char[] { 'd', 'e' }); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, 'd')); - assertTrue(ArrayTools.contains(a, 'e')); - } - - public void testAddAllCharArrayCharArray_EmptyArray2() { - char[] a = ArrayTools.addAll(this.buildCharArray(), new char[0]); - assertEquals(3, a.length); - } - - public void testAddAllCharArrayCharArrayEmptyArray1() { - char[] a = ArrayTools.addAll(new char[0], new char[] { 'd', 'e' }); - assertEquals(2, a.length); - assertTrue(ArrayTools.contains(a, 'd')); - assertTrue(ArrayTools.contains(a, 'e')); - } - - public void testAddAllCharArrayIntCharArray() { - char[] a = new char[] { 'a', 'b', 'c', 'd' }; - a = ArrayTools.addAll(a, 2, new char[] { 'X', 'X', 'X' }); - assertEquals(7, a.length); - assertTrue(ArrayTools.contains(a, 'X')); - assertTrue(Arrays.equals(new char[] { 'a', 'b', 'X', 'X', 'X', 'c', 'd' }, a)); - } - - public void testAddAllCharArrayIntCharArray_End() { - char[] a = new char[] { 'a', 'b', 'c', 'd' }; - a = ArrayTools.addAll(a, 4, new char[] { 'X', 'X', 'X' }); - assertEquals(7, a.length); - assertTrue(ArrayTools.contains(a, 'X')); - assertTrue(Arrays.equals(new char[] { 'a', 'b', 'c', 'd', 'X', 'X', 'X' }, a)); - } - - public void testAddAllCharArrayIntCharArray_EmptyArray1() { - char[] a = new char[0]; - a = ArrayTools.addAll(a, 0, new char[] { 'X', 'X', 'X' }); - assertEquals(3, a.length); - assertTrue(ArrayTools.contains(a, 'X')); - assertTrue(Arrays.equals(new char[] { 'X', 'X', 'X' }, a)); - } - - public void testAddAllCharArrayIntCharArray_EmptyArray2() { - char[] a = new char[] { 'a', 'b', 'c', 'd' }; - a = ArrayTools.addAll(a, 2, new char[0]); - assertEquals(4, a.length); - assertTrue(Arrays.equals(new char[] { 'a', 'b', 'c', 'd' }, a)); - } - - public void testAddAllIntArrayIntArray() { - int[] a = ArrayTools.addAll(this.buildIntArray(), new int[] { 30, 40 }); - assertEquals(5, a.length); - assertTrue(ArrayTools.contains(a, 30)); - assertTrue(ArrayTools.contains(a, 40)); - } - - public void testAddAllIntArrayIntArray_EmptyArray2() { - int[] a = ArrayTools.addAll(this.buildIntArray(), new int[0]); - assertEquals(3, a.length); - } - - public void testAddAllIntArrayIntArray_EmptyArray1() { - int[] a = ArrayTools.addAll(new int[0], new int[] { 30, 40 }); - assertEquals(2, a.length); - assertTrue(ArrayTools.contains(a, 30)); - assertTrue(ArrayTools.contains(a, 40)); - } - - public void testAddAllIntArrayIntIntArray() { - int[] a = new int[] { 1, 2, 3, 4 }; - a = ArrayTools.addAll(a, 2, new int[] { 99, 99, 99 }); - assertEquals(7, a.length); - assertTrue(ArrayTools.contains(a, 99)); - assertTrue(Arrays.equals(new int[] { 1, 2, 99, 99, 99, 3, 4 }, a)); - } - - public void testAddAllIntArrayIntIntArray_End() { - int[] a = new int[] { 1, 2, 3, 4 }; - a = ArrayTools.addAll(a, 4, new int[] { 99, 99, 99 }); - assertEquals(7, a.length); - assertTrue(ArrayTools.contains(a, 99)); - assertTrue(Arrays.equals(new int[] { 1, 2, 3, 4, 99, 99, 99 }, a)); - } - - public void testAddAllIntArrayIntIntArray_EmptyArray2() { - int[] a = new int[] { 1, 2, 3, 4 }; - a = ArrayTools.addAll(a, 2, new int[0]); - assertEquals(4, a.length); - assertTrue(Arrays.equals(new int[] { 1, 2, 3, 4 }, a)); - } - - public void testAddAllIntArrayIntIntArray_EmptyArray1() { - int[] a = new int[0]; - a = ArrayTools.addAll(a, 0, new int[] { 99, 99, 99 }); - assertEquals(3, a.length); - assertTrue(ArrayTools.contains(a, 99)); - assertTrue(Arrays.equals(new int[] { 99, 99, 99 }, a)); - } - - - // ********** clear ********** - - public void testClearObjectArray() { - String[] a = this.buildStringArray1(); - assertEquals(3, a.length); - a = ArrayTools.clear(a); - assertEquals(0, a.length); - } - - public void testClearObjectArray_Empty() { - String[] a = new String[0]; - assertEquals(0, a.length); - a = ArrayTools.clear(a); - assertEquals(0, a.length); - } - - - // ********** concatenate ********** - - public void testConcatenateObjectArrayArray() { - String[] aArray = new String[] { "a", "b", "c", "d" }; - String[] eArray = new String[] { "e", "f", "g", "h" }; - String[] iArray = new String[] { "i", "j", "k", "l" }; - - String[] expected = new String[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l" }; - String[] actual = ArrayTools.concatenate(aArray, eArray, iArray); - assertTrue(Arrays.equals(expected, actual)); - } - - public void testConcatenateObjectArrayArray_Empty() { - String[] aArray = new String[] { }; - String[] eArray = new String[0]; - String[] iArray = new String[0]; - - String[] expected = new String[0]; - String[] actual = ArrayTools.concatenate(aArray, eArray, iArray); - assertEquals(0, actual.length); - assertTrue(Arrays.equals(expected, actual)); - } - - public void testConcatenateCharArrayArray() { - char[] aArray = new char[] { 'a', 'b', 'c', 'd' }; - char[] eArray = new char[] { 'e', 'f', 'g', 'h' }; - char[] iArray = new char[] { 'i', 'j', 'k', 'l' }; - - char[] expected = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l' }; - char[] actual = ArrayTools.concatenate(aArray, eArray, iArray); - assertTrue(Arrays.equals(expected, actual)); - } - - public void testConcatenateCharArrayArray_Empty() { - char[] aArray = new char[] { }; - char[] eArray = new char[0]; - char[] iArray = new char[0]; - - char[] expected = new char[0]; - char[] actual = ArrayTools.concatenate(aArray, eArray, iArray); - assertEquals(0, actual.length); - assertTrue(Arrays.equals(expected, actual)); - } - - public void testConcatenateIntArrayArray() { - int[] aArray = new int[] { 'a', 'b', 'c', 'd' }; - int[] eArray = new int[] { 'e', 'f', 'g', 'h' }; - int[] iArray = new int[] { 'i', 'j', 'k', 'l' }; - - int[] expected = new int[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l' }; - int[] actual = ArrayTools.concatenate(aArray, eArray, iArray); - assertTrue(Arrays.equals(expected, actual)); - } - - public void testConcatenateIntArrayArray_Empty() { - int[] aArray = new int[] { }; - int[] eArray = new int[0]; - int[] iArray = new int[0]; - - int[] expected = new int[0]; - int[] actual = ArrayTools.concatenate(aArray, eArray, iArray); - assertEquals(0, actual.length); - assertTrue(Arrays.equals(expected, actual)); - } - - - // ********** contains ********** - - public void testContainsObjectArrayObject() { - Object[] a = this.buildObjectArray1(); - assertTrue(ArrayTools.contains(a, "one")); - assertFalse(ArrayTools.contains(a, null)); - Object[] a2 = ArrayTools.add(a, null); - assertTrue(ArrayTools.contains(a2, null)); - } - - public void testContainsObjectArrayObject_EmptyArray() { - Object[] a = new Object[0]; - assertFalse(ArrayTools.contains(a, "one")); - assertFalse(ArrayTools.contains(a, null)); - } - - public void testContainsCharArrayChar() { - char[] a = this.buildCharArray(); - assertTrue(ArrayTools.contains(a, 'a')); - assertFalse(ArrayTools.contains(a, 'z')); - char[] a2 = ArrayTools.add(a, 'z'); - assertTrue(ArrayTools.contains(a2, 'z')); - } - - public void testContainsCharArrayObject_EmptyArray() { - char[] a = new char[0]; - assertFalse(ArrayTools.contains(a, 'a')); - } - - public void testContainsIntArrayInt() { - int[] a = this.buildIntArray(); - assertTrue(ArrayTools.contains(a, 10)); - assertFalse(ArrayTools.contains(a, 55)); - int[] a2 = ArrayTools.add(a, 55); - assertTrue(ArrayTools.contains(a2, 55)); - } - - public void testContainsIntArrayObject_EmptyArray() { - int[] a = new int[0]; - assertFalse(ArrayTools.contains(a, 'a')); - } - - - // ********** contains all ********** - - public void testContainsAllObjectArrayCollection() { - assertTrue(ArrayTools.containsAll(this.buildObjectArray1(), this.buildStringList1())); - assertFalse(ArrayTools.containsAll(this.buildObjectArray1(), this.buildStringList2())); - } - - public void testContainsAllObjectArrayIterable() { - Iterable iterable = this.buildStringList1(); - assertTrue(ArrayTools.containsAll(this.buildObjectArray1(), iterable)); - iterable = this.buildStringList2(); - assertFalse(ArrayTools.containsAll(this.buildObjectArray1(), iterable)); - } - - public void testContainsAllObjectArrayIterator() { - assertTrue(ArrayTools.containsAll(this.buildObjectArray1(), this.buildStringList1().iterator())); - assertFalse(ArrayTools.containsAll(this.buildObjectArray1(), this.buildStringList2().iterator())); - } - - public void testContainsAllObjectArrayIterator_Empty() { - assertTrue(ArrayTools.containsAll(this.buildObjectArray1(), EmptyIterator.instance())); - } - - public void testContainsAllObjectArrayObjectArray() { - assertTrue(ArrayTools.containsAll(this.buildObjectArray1(), this.buildObjectArray1())); - assertFalse(ArrayTools.containsAll(this.buildObjectArray1(), this.buildObjectArray2())); - } - - public void testContainsAllCharArrayCharArray() { - assertTrue(ArrayTools.containsAll(this.buildCharArray(), this.buildCharArray())); - assertFalse(ArrayTools.containsAll(this.buildCharArray(), new char[] { 'x', 'y' })); - } - - public void testContainsAllIntArrayIntArray() { - assertTrue(ArrayTools.containsAll(this.buildIntArray(), this.buildIntArray())); - assertFalse(ArrayTools.containsAll(this.buildIntArray(), new int[] { 444, 888 })); - } - - - // ********** diff ********** - - public void testDiffEnd() { - String a = "a"; - String b = "b"; - String c = "c"; - String d = "d"; - String e = "e"; - String a_ = new String("a"); - String b_ = new String("b"); - String c_ = new String("c"); - String d_ = new String("d"); - String e_ = new String("e"); - assertTrue((a != a_) && a.equals(a_)); - assertTrue((b != b_) && b.equals(b_)); - assertTrue((c != c_) && c.equals(c_)); - assertTrue((d != d_) && d.equals(d_)); - assertTrue((e != e_) && e.equals(e_)); - String[] array1; - String[] array2; - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(-1, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[] { a }; - array2 = new String[] { a_ }; - assertEquals(-1, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(4, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { b_, c_, d_, e_ }; - assertEquals(4, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[0]; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(4, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[0]; - assertEquals(4, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[0]; - array2 = new String[0]; - assertEquals(-1, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { b_, c_, a_, d_, e_ }; - assertEquals(2, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, c_, d_, e_ }; - assertEquals(0, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[] { a, b, c, e }; - array2 = new String[] { a_, b_, c_, d_ }; - assertEquals(3, ArrayTools.diffEnd(array1, array2)); - - String c__ = new String(c); - assertTrue((c != c__) && c.equals(c_)); - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c__, d_, e_ }; - assertEquals(-1, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(2, ArrayTools.diffEnd(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, null, d_, e_ }; - assertEquals(-1, ArrayTools.diffEnd(array1, array2)); - } - - public void testDiffRange() { - String a = "a"; - String b = "b"; - String c = "c"; - String d = "d"; - String e = "e"; - String a_ = a; - String b_ = b; - String c_ = c; - String d_ = d; - String e_ = e; - assertTrue((a == a_) && a.equals(a_)); - assertTrue((b == b_) && b.equals(b_)); - assertTrue((c == c_) && c.equals(c_)); - assertTrue((d == d_) && d.equals(d_)); - assertTrue((e == e_) && e.equals(e_)); - String[] array1; - String[] array2; - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(new Range(5, -1), ArrayTools.diffRange(array1, array2)); - - array1 = new String[] { a }; - array2 = new String[] { a_ }; - assertEquals(new Range(1, -1), ArrayTools.diffRange(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(new Range(0, 4), ArrayTools.diffRange(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { b_, c_, d_, e_ }; - assertEquals(new Range(0, 4), ArrayTools.diffRange(array1, array2)); - - array1 = new String[0]; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(new Range(0, 4), ArrayTools.diffRange(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[0]; - assertEquals(new Range(0, 4), ArrayTools.diffRange(array1, array2)); - - array1 = new String[0]; - array2 = new String[0]; - assertEquals(new Range(0, -1), ArrayTools.diffRange(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { b_, c_, a_, d_, e_ }; - assertEquals(new Range(0, 2), ArrayTools.diffRange(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, c_, d_, e_ }; - assertEquals(new Range(0, 0), ArrayTools.diffRange(array1, array2)); - - array1 = new String[] { a, b, c, e }; - array2 = new String[] { a_, b_, c_, d_ }; - assertEquals(new Range(3, 3), ArrayTools.diffRange(array1, array2)); - - String c__ = new String(c); - assertTrue((c != c__) && c.equals(c_)); - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c__, d_, e_ }; - assertEquals(new Range(5, -1), ArrayTools.diffRange(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(new Range(2, 2), ArrayTools.diffRange(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, null, d_, e_ }; - assertEquals(new Range(5, -1), ArrayTools.diffRange(array1, array2)); - } - - public void testDiffStart() { - String a = "a"; - String b = "b"; - String c = "c"; - String d = "d"; - String e = "e"; - String a_ = new String("a"); - String b_ = new String("b"); - String c_ = new String("c"); - String d_ = new String("d"); - String e_ = new String("e"); - assertTrue((a != a_) && a.equals(a_)); - assertTrue((b != b_) && b.equals(b_)); - assertTrue((c != c_) && c.equals(c_)); - assertTrue((d != d_) && d.equals(d_)); - assertTrue((e != e_) && e.equals(e_)); - String[] array1; - String[] array2; - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(5, ArrayTools.diffStart(array1, array2)); - - array1 = new String[] { a }; - array2 = new String[] { a_ }; - assertEquals(1, ArrayTools.diffStart(array1, array2)); - - array1 = new String[] { a, b, c, d }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(4, ArrayTools.diffStart(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_ }; - assertEquals(4, ArrayTools.diffStart(array1, array2)); - - array1 = new String[0]; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(0, ArrayTools.diffStart(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[0]; - assertEquals(0, ArrayTools.diffStart(array1, array2)); - - array1 = new String[0]; - array2 = new String[0]; - assertEquals(0, ArrayTools.diffStart(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, e_, c_, d_ }; - assertEquals(2, ArrayTools.diffStart(array1, array2)); - - array1 = new String[] { a, b, c, e }; - array2 = new String[] { a_, b_, c_, d_ }; - assertEquals(3, ArrayTools.diffStart(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, c_, d_, e_ }; - assertEquals(0, ArrayTools.diffStart(array1, array2)); - - String c__ = new String(c); - assertTrue((c != c__) && c.equals(c__)); - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c__, d_, e_ }; - assertEquals(5, ArrayTools.diffStart(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(2, ArrayTools.diffStart(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, null, d_, e_ }; - assertEquals(5, ArrayTools.diffStart(array1, array2)); - } - - - // ********** identity diff ********** - - public void testIdentityDiffEnd() { - String a = "a"; - String b = "b"; - String c = "c"; - String d = "d"; - String e = "e"; - String a_ = a; - String b_ = b; - String c_ = c; - String d_ = d; - String e_ = e; - assertTrue((a == a_) && a.equals(a_)); - assertTrue((b == b_) && b.equals(b_)); - assertTrue((c == c_) && c.equals(c_)); - assertTrue((d == d_) && d.equals(d_)); - assertTrue((e == e_) && e.equals(e_)); - String[] array1; - String[] array2; - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(-1, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[] { a }; - array2 = new String[] { a_ }; - assertEquals(-1, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(4, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { b_, c_, d_, e_ }; - assertEquals(4, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[0]; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(4, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[0]; - assertEquals(4, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[0]; - array2 = new String[0]; - assertEquals(-1, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { b_, c_, a_, d_, e_ }; - assertEquals(2, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, c_, d_, e_ }; - assertEquals(0, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[] { a, b, c, e }; - array2 = new String[] { a_, b_, c_, d_ }; - assertEquals(3, ArrayTools.identityDiffEnd(array1, array2)); - - String c__ = new String(c); - assertTrue((c != c__) && c.equals(c_)); - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c__, d_, e_ }; - assertEquals(2, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(2, ArrayTools.identityDiffEnd(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, null, d_, e_ }; - assertEquals(-1, ArrayTools.identityDiffEnd(array1, array2)); - } - - public void testIdentityDiffRange() { - String a = "a"; - String b = "b"; - String c = "c"; - String d = "d"; - String e = "e"; - String a_ = a; - String b_ = b; - String c_ = c; - String d_ = d; - String e_ = e; - assertTrue((a == a_) && a.equals(a_)); - assertTrue((b == b_) && b.equals(b_)); - assertTrue((c == c_) && c.equals(c_)); - assertTrue((d == d_) && d.equals(d_)); - assertTrue((e == e_) && e.equals(e_)); - String[] array1; - String[] array2; - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(new Range(5, -1), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[] { a }; - array2 = new String[] { a_ }; - assertEquals(new Range(1, -1), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(new Range(0, 4), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { b_, c_, d_, e_ }; - assertEquals(new Range(0, 4), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[0]; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(new Range(0, 4), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[0]; - assertEquals(new Range(0, 4), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[0]; - array2 = new String[0]; - assertEquals(new Range(0, -1), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { b_, c_, a_, d_, e_ }; - assertEquals(new Range(0, 2), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, c_, d_, e_ }; - assertEquals(new Range(0, 0), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[] { a, b, c, e }; - array2 = new String[] { a_, b_, c_, d_ }; - assertEquals(new Range(3, 3), ArrayTools.identityDiffRange(array1, array2)); - - String c__ = new String(c); - assertTrue((c != c__) && c.equals(c_)); - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c__, d_, e_ }; - assertEquals(new Range(2, 2), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(new Range(2, 2), ArrayTools.identityDiffRange(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, null, d_, e_ }; - assertEquals(new Range(5, -1), ArrayTools.identityDiffRange(array1, array2)); - } - - public void testIdentityDiffStart() { - String a = "a"; - String b = "b"; - String c = "c"; - String d = "d"; - String e = "e"; - String a_ = a; - String b_ = b; - String c_ = c; - String d_ = d; - String e_ = e; - assertTrue((a == a_) && a.equals(a_)); - assertTrue((b == b_) && b.equals(b_)); - assertTrue((c == c_) && c.equals(c_)); - assertTrue((d == d_) && d.equals(d_)); - assertTrue((e == e_) && e.equals(e_)); - String[] array1; - String[] array2; - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(5, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[] { a }; - array2 = new String[] { a_ }; - assertEquals(1, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[] { a, b, c, d }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(4, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c_, d_ }; - assertEquals(4, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[0]; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(0, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[0]; - assertEquals(0, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[0]; - array2 = new String[0]; - assertEquals(0, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, e_, c_, d_ }; - assertEquals(2, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[] { a, b, c, e }; - array2 = new String[] { a_, b_, c_, d_ }; - assertEquals(3, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[] { b, c, d, e }; - array2 = new String[] { a_, c_, d_, e_ }; - assertEquals(0, ArrayTools.identityDiffStart(array1, array2)); - - String c__ = new String(c); - assertTrue((c != c__) && c.equals(c_)); - array1 = new String[] { a, b, c, d, e }; - array2 = new String[] { a_, b_, c__, d_, e_ }; - assertEquals(2, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, c_, d_, e_ }; - assertEquals(2, ArrayTools.identityDiffStart(array1, array2)); - - array1 = new String[] { a, b, null, d, e }; - array2 = new String[] { a_, b_, null, d_, e_ }; - assertEquals(5, ArrayTools.identityDiffStart(array1, array2)); - } - - - // ********** elements are identical ********** - - public void testElementsAreIdenticalObjectArrayObjectArray() { - Object[] a1 = new Object[4]; - for (int i = 0; i < a1.length; i++) { - a1[i] = String.valueOf(i * 1000); - } - - Object[] a2 = new Object[a1.length]; - for (int i = 0; i < a2.length; i++) { - a2[i] = a1[i]; - } - - assertTrue(ArrayTools.elementsAreIdentical(a1, a2)); - a2[2] = "2000"; - assertFalse(ArrayTools.elementsAreIdentical(a1, a2)); - assertTrue(Arrays.equals(a1, a2)); - } - - public void testElementsAreIdenticalObjectArrayObjectArray_BothNull() { - Object[] a1 = null; - Object[] a2 = null; - assertTrue(ArrayTools.elementsAreIdentical(a1, a2)); - } - - public void testElementsAreIdenticalObjectArrayObjectArray_OneNull() { - Object[] a1 = null; - Object[] a2 = new Object[0]; - assertFalse(ArrayTools.elementsAreIdentical(a1, a2)); - } - - public void testElementsAreIdenticalObjectArrayObjectArray_DifferentLengths() { - Object[] a1 = new String[] {"foo", "bar"}; - Object[] a2 = new String[] {"foo", "bar", "baz"}; - assertFalse(ArrayTools.elementsAreIdentical(a1, a2)); - } - - - // ********** index of ********** - - public void testIndexOfObjectArrayObject() { - Object[] a = this.buildObjectArray1(); - assertEquals(1, ArrayTools.indexOf(a, "one")); - } - - public void testIndexOfObjectArrayObject_NotFound() { - Object[] a = this.buildObjectArray1(); - assertEquals(-1, ArrayTools.indexOf(a, "twenty")); - } - - public void testIndexOfObjectArrayObject_Null() { - Object[] a = this.buildObjectArray1(); - a = ArrayTools.add(a, null); - assertEquals(a.length - 1, ArrayTools.indexOf(a, null)); - } - - public void testIndexOfObjectArrayObject_Null_NotFound() { - Object[] a = this.buildObjectArray1(); - assertEquals(-1, ArrayTools.indexOf(a, null)); - } - - public void testIdentityIndexOfObjectArrayObject() { - String foo = "foo"; - String bar = "bar"; - String baz = "baz"; - Object[] a = new Object[3]; - a[0] = foo; - a[1] = bar; - a[2] = baz; - assertEquals(1, ArrayTools.identityIndexOf(a, bar)); - } - - public void testIdentityIndexOfObjectArrayObject_NotFound() { - String foo = "foo"; - String bar = "bar"; - String baz = "baz"; - Object[] a = new Object[3]; - a[0] = foo; - a[1] = bar; - a[2] = baz; - assertEquals(-1, ArrayTools.identityIndexOf(a, new String("bar"))); - } - - public void testIndexOfCharArrayChar() { - char[] a = this.buildCharArray(); - assertEquals(1, ArrayTools.indexOf(a, 'b')); - a = ArrayTools.add(a, 'd'); - assertEquals(a.length - 1, ArrayTools.indexOf(a, 'd')); - } - - public void testIndexOfCharArrayChar_NotFound() { - char[] a = this.buildCharArray(); - assertEquals(-1, ArrayTools.indexOf(a, 'z')); - } - - public void testIndexOfIntArrayInt() { - int[] a = this.buildIntArray(); - assertEquals(1, ArrayTools.indexOf(a, 10)); - a = ArrayTools.add(a, 30); - assertEquals(a.length - 1, ArrayTools.indexOf(a, 30)); - } - - public void testIndexOfIntArrayInt_NotFound() { - int[] a = this.buildIntArray(); - assertEquals(-1, ArrayTools.indexOf(a, 1000)); - } - - - // ********** insertion index of ********** - - public void testInsertionIndexOfObjectArrayComparable() { - String[] a = new String[] { "A", "C", "D" }; - assertEquals(1, ArrayTools.insertionIndexOf(a, "B")); - - a = new String[] { "A", "B", "C", "D" }; - assertEquals(2, ArrayTools.insertionIndexOf(a, "B")); - - a = new String[] { "A", "B", "B", "B", "C", "D" }; - assertEquals(4, ArrayTools.insertionIndexOf(a, "B")); - - a = new String[] { "A", "B", "B", "B", "C", "D" }; - assertEquals(6, ArrayTools.insertionIndexOf(a, "E")); - - a = new String[] { "B", "B", "B", "C", "D" }; - assertEquals(0, ArrayTools.insertionIndexOf(a, "A")); - - a = new String[] { "A", "A", "B", "B", "C", "D" }; - assertEquals(2, ArrayTools.insertionIndexOf(a, "A")); - } - - public void testInsertionIndexOfObjectArrayObjectComparator() { - Comparator c = new ReverseComparator(); - String[] a = new String[] { "D", "C", "A" }; - assertEquals(2, ArrayTools.insertionIndexOf(a, "B", c)); - - a = new String[] { "D", "C", "B", "A" }; - assertEquals(3, ArrayTools.insertionIndexOf(a, "B", c)); - - a = new String[] { "D", "C", "B", "B", "B", "A" }; - assertEquals(5, ArrayTools.insertionIndexOf(a, "B", c)); - - a = new String[] { "D", "C", "B", "B", "B", "A" }; - assertEquals(0, ArrayTools.insertionIndexOf(a, "E", c)); - - a = new String[] { "D", "C", "B", "B", "B" }; - assertEquals(5, ArrayTools.insertionIndexOf(a, "A", c)); - - a = new String[] { "D", "C", "B", "B", "A", "A" }; - assertEquals(6, ArrayTools.insertionIndexOf(a, "A", c)); - } - - - // ********** last index of ********** - - public void testLastIndexOfObjectArrayObject() { - Object[] a = this.buildObjectArray1(); - assertEquals(1, ArrayTools.lastIndexOf(a, "one")); - } - - public void testLastIndexOfObjectArrayObject_NotFound() { - Object[] a = this.buildObjectArray1(); - assertEquals(-1, ArrayTools.lastIndexOf(a, "twenty")); - } - - public void testLastIndexOfObjectArrayObject_Null() { - Object[] a = this.buildObjectArray1(); - a = ArrayTools.add(a, null); - assertEquals(a.length - 1, ArrayTools.lastIndexOf(a, null)); - } - - public void testLastIndexOfObjectArrayObject_Null_NotFound() { - Object[] a = this.buildObjectArray1(); - assertEquals(-1, ArrayTools.lastIndexOf(a, null)); - } - - public void testLastIndexOfCharArrayChar() { - char[] a = this.buildCharArray(); - assertEquals(1, ArrayTools.lastIndexOf(a, 'b')); - a = ArrayTools.add(a, 'd'); - assertEquals(a.length - 1, ArrayTools.lastIndexOf(a, 'd')); - } - - public void testLastIndexOfCharArrayChar_NotFound() { - char[] a = this.buildCharArray(); - assertEquals(-1, ArrayTools.lastIndexOf(a, 'z')); - } - - public void testLastIndexOfIntArrayInt() { - int[] a = this.buildIntArray(); - assertEquals(1, ArrayTools.lastIndexOf(a, 10)); - a = ArrayTools.add(a, 30); - assertEquals(a.length - 1, ArrayTools.lastIndexOf(a, 30)); - } - - public void testLastIndexOfIntArrayInt_NotFound() { - int[] a = this.buildIntArray(); - assertEquals(-1, ArrayTools.lastIndexOf(a, 1000)); - } - - - // ********** min/max ********** - - public void testMinCharArray() { - assertEquals('a', ArrayTools.min(this.buildCharArray())); - } - - public void testMinCharArray_Exception() { - char[] array = new char[0]; - boolean exCaught = false; - try { - char c = ArrayTools.min(array); - fail("bogus char: " + c); - } catch (IndexOutOfBoundsException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testMinIntArray() { - assertEquals(0, ArrayTools.min(this.buildIntArray())); - } - - public void testMinIntArray_Exception() { - int[] array = new int[0]; - boolean exCaught = false; - try { - int i = ArrayTools.min(array); - fail("bogus int: " + i); - } catch (IndexOutOfBoundsException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testMaxCharArray1() { - assertEquals('c', ArrayTools.max(this.buildCharArray())); - } - - public void testMaxCharArray2() { - char[] array = new char[] { 'x', 'a', 'b', 'c' }; - assertEquals('x', ArrayTools.max(array)); - } - - public void testMaxCharArray_Exception() { - char[] array = new char[0]; - boolean exCaught = false; - try { - char c = ArrayTools.max(array); - fail("bogus char: " + c); - } catch (IndexOutOfBoundsException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testMaxIntArray1() { - assertEquals(20, ArrayTools.max(this.buildIntArray())); - } - - public void testMaxIntArray2() { - int[] array = new int[] { 77, 3, 1, -3 }; - assertEquals(77, ArrayTools.max(array)); - } - - public void testMaxIntArray_Exception() { - int[] array = new int[0]; - boolean exCaught = false; - try { - int i = ArrayTools.max(array); - fail("bogus int: " + i); - } catch (IndexOutOfBoundsException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - // ********** move ********** - - public void testMoveObjectArrayIntInt() { - String[] array = new String[] { "0", "1", "2", "3", "4", "5" }; - - String[] result = ArrayTools.move(array, 4, 2); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result)); - - result = ArrayTools.move(array, 0, 5); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result)); - - result = ArrayTools.move(array, 2, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result)); - - result = ArrayTools.move(array, 4, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result)); - } - - public void testMoveObjectArrayIntIntInt() { - String[] array = new String[] { "0", "1", "2", "3", "4", "5" }; - - String[] result = ArrayTools.move(array, 4, 2, 1); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result)); - - result = ArrayTools.move(array, 0, 5, 1); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result)); - - result = ArrayTools.move(array, 2, 4, 1); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result)); - - result = ArrayTools.move(array, 2, 4, 2); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result)); - - result = ArrayTools.move(array, 0, 1, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "0", "3", "2", "4", "5", "1" }, result)); - - result = ArrayTools.move(array, 1, 0, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result)); - - result = ArrayTools.move(array, 1, 1, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result)); - - result = ArrayTools.move(array, 1, 0, 0); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result)); - } - - public void testMoveIntArrayIntInt() { - int[] array = new int[] { 0, 1, 2, 3, 4, 5 }; - - int[] result = ArrayTools.move(array, 4, 2); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 0, 1, 3, 4, 2, 5 }, result)); - - result = ArrayTools.move(array, 0, 5); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 5, 0, 1, 3, 4, 2 }, result)); - - result = ArrayTools.move(array, 2, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 5, 0, 4, 1, 3, 2 }, result)); - - result = ArrayTools.move(array, 2, 2); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 5, 0, 4, 1, 3, 2 }, result)); - } - - public void testMoveIntArrayIntIntInt() { - int[] array = new int[] { 0, 1, 2, 3, 4, 5 }; - - int[] result = ArrayTools.move(array, 4, 2, 1); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 0, 1, 3, 4, 2, 5 }, result)); - - result = ArrayTools.move(array, 0, 5, 1); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 5, 0, 1, 3, 4, 2 }, result)); - - result = ArrayTools.move(array, 2, 4, 1); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 5, 0, 4, 1, 3, 2 }, result)); - - result = ArrayTools.move(array, 2, 4, 2); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 5, 0, 3, 2, 4, 1 }, result)); - - result = ArrayTools.move(array, 0, 1, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 0, 3, 2, 4, 5, 1 }, result)); - - result = ArrayTools.move(array, 1, 0, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 5, 0, 3, 2, 4, 1 }, result)); - - result = ArrayTools.move(array, 1, 1, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 5, 0, 3, 2, 4, 1 }, result)); - - result = ArrayTools.move(array, 1, 0, 0); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new int[] { 5, 0, 3, 2, 4, 1 }, result)); - } - - public void testMoveCharArrayIntInt() { - char[] array = new char[] { 'a', 'b', 'c', 'd', 'e', 'f' }; - - char[] result = ArrayTools.move(array, 4, 2); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'a', 'b', 'd', 'e', 'c', 'f' }, result)); - - result = ArrayTools.move(array, 0, 5); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'f', 'a', 'b', 'd', 'e', 'c' }, result)); - - result = ArrayTools.move(array, 2, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'f', 'a', 'e', 'b', 'd', 'c' }, result)); - - result = ArrayTools.move(array, 2, 2); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'f', 'a', 'e', 'b', 'd', 'c' }, result)); - } - - public void testMoveCharArrayIntIntInt() { - char[] array = new char[] { 'a', 'b', 'b', 'c', 'd', 'e' }; - - char[] result = ArrayTools.move(array, 4, 2, 1); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'a', 'b', 'c', 'd', 'b', 'e' }, result)); - - result = ArrayTools.move(array, 0, 5, 1); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'e', 'a', 'b', 'c', 'd', 'b' }, result)); - - result = ArrayTools.move(array, 2, 4, 1); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'e', 'a', 'd', 'b', 'c', 'b' }, result)); - - result = ArrayTools.move(array, 2, 4, 2); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'e', 'a', 'c', 'b', 'd', 'b' }, result)); - - result = ArrayTools.move(array, 0, 1, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'a', 'c', 'b', 'd', 'e', 'b' }, result)); - - result = ArrayTools.move(array, 1, 0, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'e', 'a', 'c', 'b', 'd', 'b' }, result)); - - result = ArrayTools.move(array, 1, 1, 4); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'e', 'a', 'c', 'b', 'd', 'b' }, result)); - - result = ArrayTools.move(array, 1, 0, 0); - assertSame(array, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new char[] { 'e', 'a', 'c', 'b', 'd', 'b' }, result)); - } - - - // ********** remove ********** - - public void testRemoveObjectArrayObject_Object() { - Object[] a = this.buildObjectArray1(); - a = ArrayTools.add(a, "three"); - a = ArrayTools.add(a, "four"); - a = ArrayTools.add(a, "five"); - - assertEquals(6, a.length); - assertTrue(ArrayTools.contains(a, "three")); - a = ArrayTools.remove(a, "three"); - assertEquals(5, a.length); - assertFalse(ArrayTools.contains(a, "three")); - assertTrue(ArrayTools.contains(a, "four")); - assertTrue(ArrayTools.contains(a, "five")); - } - - public void testRemoveObjectArrayObject_String() { - String[] a = this.buildStringArray1(); - a = ArrayTools.add(a, "three"); - a = ArrayTools.add(a, "four"); - a = ArrayTools.add(a, "five"); - - assertEquals(6, a.length); - assertTrue(ArrayTools.contains(a, "three")); - a = ArrayTools.remove(a, "three"); - assertEquals(5, a.length); - assertFalse(ArrayTools.contains(a, "three")); - assertTrue(ArrayTools.contains(a, "four")); - assertTrue(ArrayTools.contains(a, "five")); - } - - public void testRemoveCharArrayChar() { - char[] a = this.buildCharArray(); - a = ArrayTools.add(a, 'd'); - a = ArrayTools.add(a, 'e'); - a = ArrayTools.add(a, 'f'); - - assertEquals(6, a.length); - assertTrue(ArrayTools.contains(a, 'd')); - a = ArrayTools.remove(a, 'd'); - assertEquals(5, a.length); - assertFalse(ArrayTools.contains(a, 'd')); - assertTrue(ArrayTools.contains(a, 'e')); - assertTrue(ArrayTools.contains(a, 'f')); - } - - public void testRemoveIntArrayInt() { - int[] a = this.buildIntArray(); - a = ArrayTools.add(a, 30); - a = ArrayTools.add(a, 40); - a = ArrayTools.add(a, 50); - - assertEquals(6, a.length); - assertTrue(ArrayTools.contains(a, 30)); - a = ArrayTools.remove(a, 30); - assertEquals(5, a.length); - assertFalse(ArrayTools.contains(a, 30)); - assertTrue(ArrayTools.contains(a, 40)); - assertTrue(ArrayTools.contains(a, 50)); - } - - - // ********** remove all ********** - - public void testRemoveAllObjectArrayObjectArray() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - String[] a2 = new String[] { "E", "B" }; - String[] a3 = ArrayTools.removeAll(a1, (Object[]) a2); - assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3)); - } - - public void testRemoveAllObjectArrayObjectArray_Empty() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - String[] a2 = new String[0]; - String[] a3 = ArrayTools.removeAll(a1, (Object[]) a2); - assertTrue(Arrays.equals(a1, a3)); - } - - public void testRemoveAllObjectArrayObjectArray_NoMatches() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - String[] a2 = new String[] { "X", "Y", "Z" }; - String[] a3 = ArrayTools.removeAll(a1, (Object[]) a2); - assertTrue(Arrays.equals(a1, a3)); - } - - public void testRemoveAllObjectArrayIterable() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Iterable iterable = Arrays.asList(new String[] { "E", "B" }); - String[] a3 = ArrayTools.removeAll(a1, iterable); - assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3)); - } - - public void testRemoveAllObjectArrayIterableInt() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Iterable iterable = Arrays.asList(new String[] { "E", "B" }); - String[] a3 = ArrayTools.removeAll(a1, iterable, 7); - assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3)); - } - - public void testRemoveAllObjectArrayIterator() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Iterable iterable = Arrays.asList(new String[] { "E", "B" }); - String[] a3 = ArrayTools.removeAll(a1, iterable.iterator()); - assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3)); - } - - public void testRemoveAllObjectArrayIterator_Empty() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - String[] a3 = ArrayTools.removeAll(a1, EmptyIterator.instance()); - assertTrue(Arrays.equals(a1, a3)); - } - - public void testRemoveAllObjectArrayIteratorInt() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Iterable iterable = Arrays.asList(new String[] { "E", "B" }); - String[] a3 = ArrayTools.removeAll(a1, iterable.iterator(), 7); - assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3)); - } - - public void testRemoveAllObjectArrayIteratorInt_Empty() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - String[] a3 = ArrayTools.removeAll(a1, EmptyIterator.instance(), 7); - assertTrue(Arrays.equals(a1, a3)); - } - - public void testRemoveAllObjectArrayCollection() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Collection collection = Arrays.asList(new String[] { "E", "B" }); - String[] a3 = ArrayTools.removeAll(a1, collection); - assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3)); - } - - public void testRemoveAllObjectArrayCollection_Empty() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Collection collection = new ArrayList(); - String[] a3 = ArrayTools.removeAll(a1, collection); - assertTrue(Arrays.equals(a1, a3)); - } - - public void testRemoveAllObjectArrayCollection_EmptyArray() { - String[] a1 = new String[0]; - Collection collection = Arrays.asList(new String[] { "E", "B" }); - String[] a3 = ArrayTools.removeAll(a1, collection); - assertTrue(Arrays.equals(a1, a3)); - assertEquals(0, a3.length); - } - - public void testRemoveAllObjectArrayCollection_NoMatches() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Collection collection = Arrays.asList(new String[] { "X", "Y", "Z" }); - String[] a3 = ArrayTools.removeAll(a1, collection); - assertTrue(Arrays.equals(a1, a3)); - } - - public void testRemoveAllCharArrayCharArray() { - char[] a1 = new char[] { 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F' }; - char[] a2 = new char[] { 'E', 'B' }; - assertTrue(Arrays.equals(new char[] { 'A', 'A', 'C', 'C', 'D', 'D', 'F', 'F' }, ArrayTools.removeAll(a1, a2))); - } - - public void testRemoveAllCharArrayCharArray_Empty1() { - char[] a1 = new char[0]; - char[] a2 = new char[] { 'E', 'B' }; - assertTrue(Arrays.equals(a1, ArrayTools.removeAll(a1, a2))); - } - - public void testRemoveAllCharArrayCharArray_Empty2() { - char[] a1 = new char[] { 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F' }; - char[] a2 = new char[0]; - assertTrue(Arrays.equals(a1, ArrayTools.removeAll(a1, a2))); - } - - public void testRemoveAllCharArrayCharArray_NoMatches() { - char[] a1 = new char[] { 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F' }; - char[] a2 = new char[] { 'X', 'Z' }; - assertTrue(Arrays.equals(a1, ArrayTools.removeAll(a1, a2))); - } - - public void testRemoveAllIntArrayIntArray() { - int[] a1 = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6 }; - int[] a2 = new int[] { 5, 2 }; - assertTrue(Arrays.equals(new int[] { 1, 1, 3, 3, 4, 4, 6, 6 }, ArrayTools.removeAll(a1, a2))); - } - - public void testRemoveAllIntArrayIntArray_Empty1() { - int[] a1 = new int[0]; - int[] a2 = new int[] { 5, 2 }; - assertTrue(Arrays.equals(a1, ArrayTools.removeAll(a1, a2))); - } - - public void testRemoveAllIntArrayIntArray_Empty2() { - int[] a1 = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6 }; - int[] a2 = new int[0]; - assertTrue(Arrays.equals(a1, ArrayTools.removeAll(a1, a2))); - } - - public void testRemoveAllIntArrayIntArray_NoMatches() { - int[] a1 = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6 }; - int[] a2 = new int[] { 52, 67 }; - assertTrue(Arrays.equals(a1, ArrayTools.removeAll(a1, a2))); - } - - - // ********** remove all occurrences ********** - - public void testRemoveAllOccurrencesObjectArrayObject() { - String[] a = this.buildStringArray1(); - assertEquals(3, a.length); - a = ArrayTools.removeAllOccurrences(a, "three"); - assertEquals(3, a.length); - a = ArrayTools.removeAllOccurrences(a, "two"); - assertEquals(2, a.length); - a = ArrayTools.removeAllOccurrences(a, "two"); - assertEquals(2, a.length); - - a = ArrayTools.add(a, "five"); - a = ArrayTools.add(a, "five"); - a = ArrayTools.add(a, "five"); - assertEquals(5, a.length); - a = ArrayTools.removeAllOccurrences(a, "five"); - assertEquals(2, a.length); - a = ArrayTools.removeAllOccurrences(a, "five"); - assertEquals(2, a.length); - - a = ArrayTools.add(a, null); - a = ArrayTools.add(a, null); - a = ArrayTools.add(a, null); - assertEquals(5, a.length); - a = ArrayTools.removeAllOccurrences(a, null); - assertEquals(2, a.length); - a = ArrayTools.removeAllOccurrences(a, null); - assertEquals(2, a.length); - } - - public void testRemoveAllOccurrencesObjectArrayObject_Empty() { - String[] a = new String[0]; - a = ArrayTools.removeAllOccurrences(a, "three"); - assertEquals(0, a.length); - } - - public void testRemoveAllOccurrencesCharArrayChar() { - char[] a = this.buildCharArray(); - assertEquals(3, a.length); - a = ArrayTools.removeAllOccurrences(a, 'd'); - assertEquals(3, a.length); - a = ArrayTools.removeAllOccurrences(a, 'b'); - assertEquals(2, a.length); - a = ArrayTools.removeAllOccurrences(a, 'b'); - assertEquals(2, a.length); - - a = ArrayTools.add(a, 'g'); - a = ArrayTools.add(a, 'g'); - a = ArrayTools.add(a, 'g'); - assertEquals(5, a.length); - a = ArrayTools.removeAllOccurrences(a, 'g'); - assertEquals(2, a.length); - a = ArrayTools.removeAllOccurrences(a, 'g'); - assertEquals(2, a.length); - } - - public void testRemoveAllOccurrencesCharArrayChar_Empty() { - char[] a = new char[0]; - a = ArrayTools.removeAllOccurrences(a, 'a'); - assertEquals(0, a.length); - } - - public void testRemoveAllOccurrencesIntArrayInt() { - int[] a = this.buildIntArray(); - assertEquals(3, a.length); - a = ArrayTools.removeAllOccurrences(a, 55); - assertEquals(3, a.length); - a = ArrayTools.removeAllOccurrences(a, 10); - assertEquals(2, a.length); - a = ArrayTools.removeAllOccurrences(a, 10); - assertEquals(2, a.length); - - a = ArrayTools.add(a, 77); - a = ArrayTools.add(a, 77); - a = ArrayTools.add(a, 77); - assertEquals(5, a.length); - a = ArrayTools.removeAllOccurrences(a, 77); - assertEquals(2, a.length); - a = ArrayTools.removeAllOccurrences(a, 77); - assertEquals(2, a.length); - } - - public void testRemoveAllOccurrencesIntArrayInt_Empty() { - int[] a = new int[0]; - a = ArrayTools.removeAllOccurrences(a, 22); - assertEquals(0, a.length); - } - - - // ********** remove duplicate elements ********** - - public void testRemoveDuplicateElementsObjectArray() { - List list = this.buildStringVector1(); - list.add("zero"); - list.add("zero"); - list.add("two"); - list.add("zero"); - String[] array = ArrayTools.removeDuplicateElements(list.toArray(new String[list.size()])); - int i = 0; - assertEquals("zero", array[i++]); - assertEquals("one", array[i++]); - assertEquals("two", array[i++]); - assertEquals(i, array.length); - } - - public void testRemoveDuplicateElementsObjectArray_Empty() { - String[] array = ArrayTools.removeDuplicateElements(new String[0]); - assertEquals(0, array.length); - } - - public void testRemoveDuplicateElementsObjectArray_SingleElement() { - String[] array = ArrayTools.removeDuplicateElements(new String[] { "foo" }); - assertEquals(1, array.length); - } - - public void testRemoveDuplicateElementsObjectArray_NoDuplicates() { - String[] a1 = new String[] { "foo", "bar", "baz" }; - String[] a2 = ArrayTools.removeDuplicateElements(a1); - assertEquals(3, a2.length); - assertTrue(Arrays.equals(a1, a2)); - } - - - // ********** remove element at index ********** - - public void testRemoveElementAtIndexObjectArrayInt() { - String[] a = new String[] { "A", "B", "A", "C", "A", "D" }; - a = ArrayTools.removeElementAtIndex(a, 3); - assertTrue(Arrays.equals(new String[] { "A", "B", "A", "A", "D" }, a)); - } - - public void testRemoveElementAtIndexCharArrayInt() { - char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' }; - a = ArrayTools.removeElementAtIndex(a, 3); - assertTrue(Arrays.equals(new char[] { 'A', 'B', 'A', 'A', 'D' }, a)); - } - - public void testRemoveElementAtIndexIntArrayInt() { - int[] a = new int[] { 8, 6, 7, 33, 2, 11 }; - a = ArrayTools.removeElementsAtIndex(a, 3, 3); - assertTrue(Arrays.equals(new int[] { 8, 6, 7 }, a)); - } - - public void testRemoveFirstObjectArray() { - String[] a = new String[] { "A", "B", "A", "C", "A", "D" }; - a = ArrayTools.removeFirst(a); - assertTrue(Arrays.equals(new String[] { "B", "A", "C", "A", "D" }, a)); - } - - public void testRemoveFirstCharArray() { - char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' }; - a = ArrayTools.removeFirst(a); - assertTrue(Arrays.equals(new char[] { 'B', 'A', 'C', 'A', 'D' }, a)); - } - - public void testRemoveFirstIntArray() { - int[] a = new int[] { 8, 6, 7, 33, 2, 11 }; - a = ArrayTools.removeFirst(a); - assertTrue(Arrays.equals(new int[] { 6, 7, 33, 2, 11 }, a)); - } - - public void testRemoveLastObjectArray() { - String[] a = new String[] { "A", "B", "A", "C", "A", "D" }; - a = ArrayTools.removeLast(a); - assertTrue(Arrays.equals(new String[] { "A", "B", "A", "C", "A" }, a)); - } - - public void testRemoveLastCharArray() { - char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' }; - a = ArrayTools.removeLast(a); - assertTrue(Arrays.equals(new char[] { 'A', 'B', 'A', 'C', 'A' }, a)); - } - - public void testRemoveLastIntArray() { - int[] a = new int[] { 8, 6, 7, 33, 2, 11 }; - a = ArrayTools.removeLast(a); - assertTrue(Arrays.equals(new int[] { 8, 6, 7, 33, 2 }, a)); - } - - - // ********** remove elements at index ********** - - public void testRemoveElementsAtIndexObjectArrayIntInt() { - String[] a = new String[] { "A", "B", "A", "C", "A", "D" }; - a = ArrayTools.removeElementsAtIndex(a, 3, 2); - assertTrue(Arrays.equals(new String[] { "A", "B", "A", "D" }, a)); - } - - public void testRemoveElementsAtIndexObjectArrayIntInt_ZeroLength() { - String[] a1 = new String[] { "A", "B", "A", "C", "A", "D" }; - String[] a2 = ArrayTools.removeElementsAtIndex(a1, 3, 0); - assertTrue(Arrays.equals(a1, a2)); - } - - public void testRemoveElementsAtIndexObjectArrayIntInt_Empty() { - String[] a = new String[] { "A", "B", "A", "C", "A", "D" }; - a = ArrayTools.removeElementsAtIndex(a, 0, 6); - assertEquals(0, a.length); - } - - public void testRemoveElementsAtIndexCharArrayIntInt() { - char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' }; - a = ArrayTools.removeElementsAtIndex(a, 0, 5); - assertTrue(Arrays.equals(new char[] { 'D' }, a)); - } - - public void testRemoveElementsAtIndexCharArrayIntInt_ZeroLength() { - char[] a1 = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' }; - char[] a2 = ArrayTools.removeElementsAtIndex(a1, 3, 0); - assertTrue(Arrays.equals(a1, a2)); - } - - public void testRemoveElementsAtIndexCharArrayIntInt_Empty() { - char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' }; - a = ArrayTools.removeElementsAtIndex(a, 0, 6); - assertEquals(0, a.length); - } - - public void testRemoveElementsAtIndexIntArrayIntInt() { - int[] a = new int[] { 8, 6, 7, 33, 2, 11 }; - a = ArrayTools.removeElementsAtIndex(a, 3, 3); - assertTrue(Arrays.equals(new int[] { 8, 6, 7 }, a)); - } - - public void testRemoveElementsAtIndexIntArrayIntInt_ZeroLength() { - int[] a1 = new int[] { 8, 6, 7, 33, 2, 11 }; - int[] a2 = ArrayTools.removeElementsAtIndex(a1, 3, 0); - assertTrue(Arrays.equals(a1, a2)); - } - - public void testRemoveElementsAtIndexIntArrayIntInt_Empty() { - int[] a = new int[] { 8, 6, 7, 33, 2, 11 }; - a = ArrayTools.removeElementsAtIndex(a, 0, 6); - assertEquals(0, a.length); - } - - - // ********** replace all ********** - - public void testReplaceAllObjectArrayObjectObject_Object() { - Object[] a = new Object[] { "A", "B", "A", "C", "A", "D" }; - a = ArrayTools.replaceAll(a, "A", "Z"); - assertTrue(Arrays.equals(new Object[] { "Z", "B", "Z", "C", "Z", "D" }, a)); - } - - public void testReplaceAllObjectArrayObjectObject_String() { - String[] a = new String[] { "A", "B", "A", "C", "A", "D" }; - a = ArrayTools.replaceAll(a, "A", "Z"); - assertTrue(Arrays.equals(new String[] { "Z", "B", "Z", "C", "Z", "D" }, a)); - } - - public void testReplaceAllObjectArrayObjectObject_Null() { - String[] a = new String[] { null, "B", null, "C", null, "D" }; - a = ArrayTools.replaceAll(a, null, "Z"); - assertTrue(Arrays.equals(new String[] { "Z", "B", "Z", "C", "Z", "D" }, a)); - } - - public void testReplaceAllCharArrayCharChar() { - char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' }; - a = ArrayTools.replaceAll(a, 'A', 'Z'); - assertTrue(Arrays.equals(new char[] { 'Z', 'B', 'Z', 'C', 'Z', 'D' }, a)); - } - - public void testReplaceAllIntArrayIntInt() { - int[] a = new int[] { 0, 1, 0, 7, 0, 99 }; - a = ArrayTools.replaceAll(a, 0, 13); - assertTrue(Arrays.equals(new int[] { 13, 1, 13, 7, 13, 99 }, a)); - } - - - // ********** retain all ********** - - public void testRetainAllObjectArrayObjectArray() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Object[] a2 = new Object[] { "E", "B", new Integer(7) }; - assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, ArrayTools.retainAll(a1, a2))); - } - - public void testRetainAllObjectArrayObjectArray_EmptyObjectArray1() { - String[] a1 = new String[0]; - String[] a2 = new String[] { "E", "B", "" }; - String[] a3 = ArrayTools.retainAll(a1, a2); - assertEquals(0, a3.length); - } - - public void testRetainAllObjectArrayObjectArray_EmptyObjectArray2() { - String[] a1 = new String[] { "E", "B", "" }; - String[] a2 = new String[0]; - String[] a3 = ArrayTools.retainAll(a1, a2); - assertEquals(0, a3.length); - } - - public void testRetainAllObjectArrayObjectArray_BothEmpty() { - String[] a1 = new String[0]; - String[] a2 = new String[0]; - String[] a3 = ArrayTools.retainAll(a1, a2); - assertEquals(0, a3.length); - } - - public void testRetainAllObjectArrayIterable() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Iterable iterable = Arrays.asList(new String[] { "E", "B", "" }); - assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, ArrayTools.retainAll(a1, iterable))); - } - - public void testRetainAllObjectArrayIterable_EmptyObjectArray() { - String[] a1 = new String[0]; - Iterable iterable = Arrays.asList(new String[] { "E", "B", "" }); - String[] a3 = ArrayTools.retainAll(a1, iterable); - assertEquals(0, a3.length); - } - - public void testRetainAllObjectArrayIterableInt() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Iterable iterable = Arrays.asList(new String[] { "E", "B", "" }); - assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, ArrayTools.retainAll(a1, iterable, 3))); - } - - public void testRetainAllObjectArrayIterableInt_EmptyObjectArray() { - String[] a1 = new String[0]; - Iterable iterable = Arrays.asList(new String[] { "E", "B", "" }); - String[] a3 = ArrayTools.retainAll(a1, iterable, 3); - assertEquals(0, a3.length); - } - - public void testRetainAllObjectArrayIterator() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Iterator iterator = Arrays.asList(new String[] { "E", "B", "" }).iterator(); - assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, ArrayTools.retainAll(a1, iterator))); - } - - public void testRetainAllObjectArrayIterator_EmptyObjectArray() { - String[] a1 = new String[0]; - Iterator iterator = Arrays.asList(new String[] { "E", "B", "" }).iterator(); - String[] a3 = ArrayTools.retainAll(a1, iterator); - assertEquals(0, a3.length); - } - - public void testRetainAllObjectArrayIterator_EmptyIterator() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - assertTrue(Arrays.equals(new String[0], ArrayTools.retainAll(a1, EmptyIterator.instance()))); - } - - public void testRetainAllObjectArrayIteratorInt() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Iterator iterator = Arrays.asList(new String[] { "E", "B", "" }).iterator(); - assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, ArrayTools.retainAll(a1, iterator, 3))); - } - - public void testRetainAllObjectArrayIteratorInt_EmptyIterator() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - assertTrue(Arrays.equals(new String[0], ArrayTools.retainAll(a1, EmptyIterator.instance(), 3))); - } - - public void testRetainAllObjectArrayIteratorInt_EmptyObjectArray() { - String[] a1 = new String[0]; - Iterator iterator = Arrays.asList(new String[] { "E", "B", "" }).iterator(); - String[] a3 = ArrayTools.retainAll(a1, iterator, 3); - assertEquals(0, a3.length); - } - - public void testRetainAllObjectArrayCollection() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Collection collection = Arrays.asList(new String[] { "E", "B", "" }); - assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, ArrayTools.retainAll(a1, collection))); - } - - public void testRetainAllObjectArrayCollection_EmptyObjectArray() { - String[] a1 = new String[0]; - Collection collection = Arrays.asList(new String[] { "E", "B", "" }); - String[] a3 = ArrayTools.retainAll(a1, collection); - assertEquals(0, a3.length); - } - - public void testRetainAllObjectArrayCollection_EmptyCollection() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Collection collection = new ArrayList(); - String[] a3 = ArrayTools.retainAll(a1, collection); - assertEquals(0, a3.length); - } - - public void testRetainAllObjectArrayCollection_All() { - String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" }; - Collection collection = Arrays.asList(new String[] { "A", "B", "C", "D", "E", "F" }); - assertTrue(Arrays.equals(a1, ArrayTools.retainAll(a1, collection))); - } - - public void testRetainAllCharArrayCharArray() { - char[] a1 = new char[] { 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F' }; - char[] a2 = new char[] { 'E', 'B' }; - assertTrue(Arrays.equals(new char[] { 'B', 'B', 'E', 'E' }, ArrayTools.retainAll(a1, a2))); - } - - public void testRetainAllCharArrayCharArray_EmptyCharArray1() { - char[] a1 = new char[0]; - char[] a2 = new char[] { 'E', 'B' }; - assertSame(a1, ArrayTools.retainAll(a1, a2)); - } - - public void testRetainAllCharArrayCharArray_EmptyCharArray2() { - char[] a1 = new char[] { 'E', 'B' }; - char[] a2 = new char[0]; - assertEquals(0, ArrayTools.retainAll(a1, a2).length); - } - - public void testRetainAllCharArrayCharArray_RetainAll() { - char[] a1 = new char[] { 'E', 'B', 'E', 'B', 'E', 'B', 'E', 'B', 'E' }; - char[] a2 = new char[] { 'E', 'B' }; - assertSame(a1, ArrayTools.retainAll(a1, a2)); - } - - public void testRetainAllIntArrayIntArray() { - int[] a1 = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6 }; - int[] a2 = new int[] { 5, 2 }; - assertTrue(Arrays.equals(new int[] { 2, 2, 5, 5 }, ArrayTools.retainAll(a1, a2))); - } - - public void testRetainAllIntArrayIntArray_EmptyIntArray1() { - int[] a1 = new int[0]; - int[] a2 = new int[] { 5, 2 }; - assertSame(a1, ArrayTools.retainAll(a1, a2)); - } - - public void testRetainAllIntArrayIntArray_EmptyIntArray2() { - int[] a1 = new int[] { 5, 2 }; - int[] a2 = new int[0]; - assertEquals(0, ArrayTools.retainAll(a1, a2).length); - } - - public void testRetainAllIntArrayIntArray_RetainAll() { - int[] a1 = new int[] { 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5 }; - int[] a2 = new int[] { 5, 2 }; - assertSame(a1, ArrayTools.retainAll(a1, a2)); - } - - - // ********** reverse ********** - - public void testReverseObjectArray_Object() { - Object[] a = this.buildObjectArray1(); - a = ArrayTools.reverse(a); - assertEquals("two", a[0]); - assertEquals("one", a[1]); - assertEquals("zero", a[2]); - } - - public void testReverseObjectArray_String() { - String[] a = this.buildStringArray1(); - a = ArrayTools.reverse(a); - assertEquals("two", a[0]); - assertEquals("one", a[1]); - assertEquals("zero", a[2]); - } - - public void testReverseObjectArray_Singleton() { - String[] a1 = new String[] { "foo" }; - String[] a2 = ArrayTools.reverse(a1); - assertTrue(Arrays.equals(a1, a2)); - } - - public void testReverseCharArray() { - char[] a = this.buildCharArray(); - a = ArrayTools.reverse(a); - assertEquals('c', a[0]); - assertEquals('b', a[1]); - assertEquals('a', a[2]); - } - - public void testReverseCharArray_Singleton() { - char[] a1 = new char[] { 'f' }; - char[] a2 = ArrayTools.reverse(a1); - assertTrue(Arrays.equals(a1, a2)); - } - - public void testReverseIntArray() { - int[] a = this.buildIntArray(); - a = ArrayTools.reverse(a); - assertEquals(20, a[0]); - assertEquals(10, a[1]); - assertEquals(0, a[2]); - } - - public void testReverseIntArray_Singleton() { - int[] a1 = new int[] { 7 }; - int[] a2 = ArrayTools.reverse(a1); - assertTrue(Arrays.equals(a1, a2)); - } - - - // ********** rotate ********** - - public void testRotateObjectArray() { - String[] a = this.buildStringArray1(); - a = ArrayTools.rotate(a); - assertEquals("two", a[0]); - assertEquals("zero", a[1]); - assertEquals("one", a[2]); - } - - public void testRotateObjectArray_Zero() { - String[] a1 = new String[0]; - String[] a2 = ArrayTools.rotate(a1); - assertSame(a1, a2); - } - - public void testRotateObjectArray_One() { - String[] a1 = new String[] { "foo " }; - String[] a2 = ArrayTools.rotate(a1); - assertSame(a1, a2); - } - - public void testRotateObjectArrayInt() { - String[] a = this.buildStringArray1(); - a = ArrayTools.rotate(a, 2); - assertEquals("one", a[0]); - assertEquals("two", a[1]); - assertEquals("zero", a[2]); - } - - public void testRotateObjectArrayInt_ZeroDistance() { - String[] a1 = this.buildStringArray1(); - String[] a2 = ArrayTools.rotate(a1, 0); - assertSame(a1, a2); - } - - public void testRotateObjectArrayInt_NegativeDistance() { - String[] a1 = this.buildStringArray1(); - String[] a2 = ArrayTools.rotate(a1, -1); - assertEquals("one", a2[0]); - assertEquals("two", a2[1]); - assertEquals("zero", a2[2]); - } - - public void testRotateObjectArrayInt_Zero() { - String[] a1 = new String[0]; - String[] a2 = ArrayTools.rotate(a1, 7); - assertSame(a1, a2); - } - - public void testRotateObjectArrayInt_One() { - String[] a1 = new String[] { "foo " }; - String[] a2 = ArrayTools.rotate(a1, 8); - assertSame(a1, a2); - } - - public void testRotateCharArray() { - char[] a = this.buildCharArray(); - a = ArrayTools.rotate(a); - assertEquals('c', a[0]); - assertEquals('a', a[1]); - assertEquals('b', a[2]); - } - - public void testRotateCharArray_Zero() { - char[] a1 = new char[0]; - char[] a2 = ArrayTools.rotate(a1); - assertSame(a1, a2); - } - - public void testRotateCharArray_One() { - char[] a1 = new char[] { 'a' }; - char[] a2 = ArrayTools.rotate(a1); - assertSame(a1, a2); - } - - public void testRotateCharArrayInt() { - char[] a = this.buildCharArray(); - a = ArrayTools.rotate(a, 2); - assertEquals('b', a[0]); - assertEquals('c', a[1]); - assertEquals('a', a[2]); - } - - public void testRotateCharArrayInt_ZeroDistance() { - char[] a1 = new char[] { 'a', 'b', 'c' }; - char[] a2 = ArrayTools.rotate(a1, 0); - assertSame(a1, a2); - } - - public void testRotateCharArrayInt_NegativeDistance() { - char[] a = this.buildCharArray(); - a = ArrayTools.rotate(a, -1); - assertEquals('b', a[0]); - assertEquals('c', a[1]); - assertEquals('a', a[2]); - } - - public void testRotateCharArrayInt_Zero() { - char[] a1 = new char[0]; - char[] a2 = ArrayTools.rotate(a1, 2001); - assertSame(a1, a2); - } - - public void testRotateCharArrayInt_One() { - char[] a1 = new char[] { 'a' }; - char[] a2 = ArrayTools.rotate(a1, 22); - assertSame(a1, a2); - } - - public void testRotateIntArray() { - int[] a = this.buildIntArray(); - a = ArrayTools.rotate(a); - assertEquals(20, a[0]); - assertEquals(0, a[1]); - assertEquals(10, a[2]); - } - - public void testRotateIntArray_Zero() { - int[] a1 = new int[0]; - int[] a2 = ArrayTools.rotate(a1); - assertSame(a1, a2); - } - - public void testRotateIntArray_One() { - int[] a1 = new int[] { 77 }; - int[] a2 = ArrayTools.rotate(a1); - assertSame(a1, a2); - } - - public void testRotateIntArrayInt() { - int[] a = this.buildIntArray(); - a = ArrayTools.rotate(a, 2); - assertEquals(10, a[0]); - assertEquals(20, a[1]); - assertEquals(0, a[2]); - } - - public void testRotateIntArrayInt_ZeroDistance() { - int[] a1 = new int[] { 3, 2, 1 }; - int[] a2 = ArrayTools.rotate(a1, 0); - assertSame(a1, a2); - } - - public void testRotateIntArrayInt_NegativeDistance() { - int[] a = this.buildIntArray(); - a = ArrayTools.rotate(a, -1); - assertEquals(10, a[0]); - assertEquals(20, a[1]); - assertEquals(0, a[2]); - } - - public void testRotateIntArrayInt_Zero() { - int[] a1 = new int[0]; - int[] a2 = ArrayTools.rotate(a1, 3); - assertSame(a1, a2); - } - - public void testRotateIntArrayInt_One() { - int[] a1 = new int[] { 77 }; - int[] a2 = ArrayTools.rotate(a1, 44); - assertSame(a1, a2); - } - - - // ********** shuffle ********** - - public void testShuffleObjectArray() { - String[] array1 = this.buildStringArray1(); - String[] array2 = ArrayTools.shuffle(this.buildStringArray1()); - assertEquals(array1.length, array2.length); - assertTrue(ArrayTools.containsAll(array1, (Object[]) array2)); - } - - public void testShuffleObjectArray_Singleton() { - String[] array1 = new String[] { "foo" }; - String[] array2 = ArrayTools.shuffle(new String[] { "foo" }); - assertEquals(array1.length, array2.length); - assertTrue(ArrayTools.containsAll(array1, (Object[]) array2)); - } - - public void testShuffleCharArray() { - char[] array1 = this.buildCharArray(); - char[] array2 = ArrayTools.shuffle(this.buildCharArray()); - assertEquals(array1.length, array2.length); - assertTrue(ArrayTools.containsAll(array1, array2)); - } - - public void testShuffleCharArray_Singleton() { - char[] array1 = new char[] { 'f' }; - char[] array2 = ArrayTools.shuffle(new char[] { 'f' }); - assertEquals(array1.length, array2.length); - assertTrue(ArrayTools.containsAll(array1, array2)); - } - - public void testShuffleIntArray() { - int[] array1 = this.buildIntArray(); - int[] array2 = ArrayTools.shuffle(this.buildIntArray()); - assertEquals(array1.length, array2.length); - assertTrue(ArrayTools.containsAll(array1, array2)); - } - - public void testShuffleIntArray_Singleton() { - int[] array1 = new int[] { 7 }; - int[] array2 = ArrayTools.shuffle(new int[] { 7 }); - assertEquals(array1.length, array2.length); - assertTrue(ArrayTools.containsAll(array1, array2)); - } - - - // ********** sub-array ********** - - public void testSubArrayObjectArrayIntInt() { - String[] array = new String[] {"foo", "bar", "baz", "joo", "jar", "jaz"}; - String[] result = new String[] {"foo", "bar", "baz", "joo"}; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 0, 4))); - - result = new String[] {"jar"}; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 4, 5))); - - result = new String[0]; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 5, 5))); - - result = new String[] {"joo", "jar", "jaz"}; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 3, 6))); - } - - public void testSubArrayIntArrayIntInt() { - int[] array = new int[] {77, 99, 333, 4, 9090, 42}; - int[] result = new int[] {77, 99, 333, 4}; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 0, 4))); - - result = new int[] {9090}; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 4, 5))); - - result = new int[0]; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 5, 5))); - - result = new int[] {4, 9090, 42}; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 3, 6))); - } - - public void testSubArrayCharArrayIntInt() { - char[] array = new char[] {'a', 'b', 'c', 'd', 'e', 'f'}; - char[] result = new char[] {'a', 'b', 'c', 'd'}; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 0, 4))); - - result = new char[] {'e'}; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 4, 5))); - - result = new char[0]; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 5, 5))); - - result = new char[] {'d', 'e', 'f'}; - assertTrue(Arrays.equals(result, ArrayTools.subArray(array, 3, 6))); - } - - - // ********** swap ********** - - public void testSwapObjectArray() { - String[] a = this.buildStringArray1(); - a = ArrayTools.swap(a, 1, 2); - assertEquals("zero", a[0]); - assertEquals("two", a[1]); - assertEquals("one", a[2]); - } - - public void testSwapObjectArray_SameIndices() { - String[] a1 = this.buildStringArray1(); - String[] a2 = this.buildStringArray1(); - a1 = ArrayTools.swap(a1, 1, 1); - assertTrue(Arrays.equals(a1, a2)); - } - - public void testSwapCharArray() { - char[] a = this.buildCharArray(); - a = ArrayTools.swap(a, 1, 2); - assertEquals('a', a[0]); - assertEquals('c', a[1]); - assertEquals('b', a[2]); - } - - public void testSwapCharArray_SameIndices() { - char[] a1 = this.buildCharArray(); - char[] a2 = this.buildCharArray(); - a1 = ArrayTools.swap(a1, 1, 1); - assertTrue(Arrays.equals(a1, a2)); - } - - public void testSwapIntArray() { - int[] a = this.buildIntArray(); - a = ArrayTools.swap(a, 1, 2); - assertEquals(0, a[0]); - assertEquals(20, a[1]); - assertEquals(10, a[2]); - } - - public void testSwapIntArray_SameIndices() { - int[] a1 = this.buildIntArray(); - int[] a2 = this.buildIntArray(); - a1 = ArrayTools.swap(a1, 1, 1); - assertTrue(Arrays.equals(a1, a2)); - } - - - // ********** Arrays enhancements ********** - - public void testFillBooleanArrayBoolean() { - boolean[] a1 = new boolean[9]; - boolean[] a2 = ArrayTools.fill(a1, true); - for (boolean x : a1) { - assertTrue(x); - } - assertSame(a1, a2); - } - - public void testFillBooleanArrayIntIntBoolean() { - boolean[] a1 = new boolean[9]; - boolean[] a2 = ArrayTools.fill(a1, false); - int from = 3; - int to = 6; - boolean[] a3 = ArrayTools.fill(a2, from, to, true); - for (int i = 0; i < a1.length; i++) { - boolean x = a1[i]; - if (i < from || i >= to) { - assertFalse(x); - } else { - assertTrue(x); - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testFillByteArrayByte() { - byte[] a1 = new byte[9]; - byte[] a2 = ArrayTools.fill(a1, (byte) 77); - for (byte x : a1) { - assertEquals(77, x); - } - assertSame(a1, a2); - } - - public void testFillByteArrayIntIntByte() { - byte[] a1 = new byte[9]; - byte[] a2 = ArrayTools.fill(a1, (byte) 3); - int from = 3; - int to = 6; - byte[] a3 = ArrayTools.fill(a2, from, to, (byte) 77); - for (int i = 0; i < a1.length; i++) { - byte x = a1[i]; - if (i < from || i >= to) { - assertEquals(3, x); - } else { - assertEquals(77, x); - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testFillCharArrayChar() { - char[] a1 = new char[9]; - char[] a2 = ArrayTools.fill(a1, 'c'); - for (char x : a1) { - assertEquals('c', x); - } - assertSame(a1, a2); - } - - public void testFillCharArrayIntIntChar() { - char[] a1 = new char[9]; - char[] a2 = ArrayTools.fill(a1, 'a'); - int from = 3; - int to = 6; - char[] a3 = ArrayTools.fill(a2, from, to, 'c'); - for (int i = 0; i < a1.length; i++) { - char x = a1[i]; - if (i < from || i >= to) { - assertEquals('a', x); - } else { - assertEquals('c', x); - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testFillDoubleArrayDouble() { - double[] a1 = new double[9]; - double[] a2 = ArrayTools.fill(a1, 77.77); - for (double x : a1) { - assertEquals(77.77, x, 0.0); - } - assertSame(a1, a2); - } - - public void testFillDoubleArrayIntIntDouble() { - double[] a1 = new double[9]; - double[] a2 = ArrayTools.fill(a1, 3.3); - int from = 3; - int to = 6; - double[] a3 = ArrayTools.fill(a2, from, to, 77.77); - for (int i = 0; i < a1.length; i++) { - double x = a1[i]; - if (i < from || i >= to) { - assertEquals(3.3, x, 0.0); - } else { - assertEquals(77.77, x, 0.0); - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testFillFloatArrayFloat() { - float[] a1 = new float[9]; - float[] a2 = ArrayTools.fill(a1, 77.77f); - for (float x : a1) { - assertEquals(77.77f, x, 0.0); - } - assertSame(a1, a2); - } - - public void testFillFloatArrayIntIntFloat() { - float[] a1 = new float[9]; - float[] a2 = ArrayTools.fill(a1, 3.3f); - int from = 3; - int to = 6; - float[] a3 = ArrayTools.fill(a2, from, to, 77.77f); - for (int i = 0; i < a1.length; i++) { - float x = a1[i]; - if (i < from || i >= to) { - assertEquals(3.3f, x, 0.0); - } else { - assertEquals(77.77f, x, 0.0); - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testFillIntArrayInt() { - int[] a1 = new int[9]; - int[] a2 = ArrayTools.fill(a1, 77); - for (int x : a1) { - assertEquals(77, x); - } - assertSame(a1, a2); - } - - public void testFillIntArrayIntIntInt() { - int[] a1 = new int[9]; - int[] a2 = ArrayTools.fill(a1, 3); - int from = 3; - int to = 6; - int[] a3 = ArrayTools.fill(a2, from, to, 77); - for (int i = 0; i < a1.length; i++) { - int x = a1[i]; - if (i < from || i >= to) { - assertEquals(3, x); - } else { - assertEquals(77, x); - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testFillObjectArrayObject() { - String[] a1 = new String[9]; - String[] a2 = ArrayTools.fill(a1, "77"); - for (String x : a1) { - assertEquals("77", x); - } - assertSame(a1, a2); - } - - public void testFillObjectArrayIntIntObject() { - String[] a1 = new String[9]; - String[] a2 = ArrayTools.fill(a1, "3"); - int from = 3; - int to = 6; - String[] a3 = ArrayTools.fill(a2, from, to, "77"); - for (int i = 0; i < a1.length; i++) { - String x = a1[i]; - if (i < from || i >= to) { - assertEquals("3", x); - } else { - assertEquals("77", x); - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testFillLongArrayLong() { - long[] a1 = new long[9]; - long[] a2 = ArrayTools.fill(a1, 77); - for (long x : a1) { - assertEquals(77, x); - } - assertSame(a1, a2); - } - - public void testFillLongArrayIntIntLong() { - long[] a1 = new long[9]; - long[] a2 = ArrayTools.fill(a1, 3); - int from = 3; - int to = 6; - long[] a3 = ArrayTools.fill(a2, from, to, 77); - for (int i = 0; i < a1.length; i++) { - long x = a1[i]; - if (i < from || i >= to) { - assertEquals(3, x); - } else { - assertEquals(77, x); - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testFillShortArrayShort() { - short[] a1 = new short[9]; - short[] a2 = ArrayTools.fill(a1, (short) 77); - for (short x : a1) { - assertEquals(77, x); - } - assertSame(a1, a2); - } - - public void testFillShortArrayIntIntShort() { - short[] a1 = new short[9]; - short[] a2 = ArrayTools.fill(a1, (short) 3); - int from = 3; - int to = 6; - short[] a3 = ArrayTools.fill(a2, from, to, (short) 77); - for (int i = 0; i < a1.length; i++) { - short x = a1[i]; - if (i < from || i >= to) { - assertEquals(3, x); - } else { - assertEquals(77, x); - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testSortByteArray() { - byte[] a1 = new byte[3]; - a1[0] = (byte) 33; - a1[1] = (byte) 11; - a1[2] = (byte) 22; - byte[] a2 = ArrayTools.sort(a1); - byte last = (byte) 0; - for (byte x : a1) { - assertTrue(last < x); - last = x; - } - assertSame(a1, a2); - } - - public void testSortByteArrayIntInt() { - byte[] a1 = new byte[9]; - byte[] a2 = ArrayTools.fill(a1, (byte) 3); - a2[3] = (byte) 33; - a2[4] = (byte) 11; - a2[5] = (byte) 22; - int from = 3; - int to = 6; - byte[] a3 = ArrayTools.sort(a2, from, to); - byte last = (byte) 0; - for (int i = 0; i < a1.length; i++) { - byte x = a1[i]; - if (i < from || i >= to) { - assertEquals(3, x); - } else { - assertTrue(last < x); - last = x; - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testSortCharArray() { - char[] a1 = new char[3]; - a1[0] = 'z'; - a1[1] = 'b'; - a1[2] = 'm'; - char[] a2 = ArrayTools.sort(a1); - char last = 'a'; - for (char x : a1) { - assertTrue(last < x); - last = x; - } - assertSame(a1, a2); - } - - public void testSortCharArrayIntInt() { - char[] a1 = new char[9]; - char[] a2 = ArrayTools.fill(a1, 'c'); - a2[3] = 'z'; - a2[4] = 'b'; - a2[5] = 'm'; - int from = 3; - int to = 6; - char[] a3 = ArrayTools.sort(a2, from, to); - char last = 'a'; - for (int i = 0; i < a1.length; i++) { - char x = a1[i]; - if (i < from || i >= to) { - assertEquals('c', x); - } else { - assertTrue(last < x); - last = x; - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testSortDoubleArray() { - double[] a1 = new double[3]; - a1[0] = 33.33; - a1[1] = 11.11; - a1[2] = 22.22; - double[] a2 = ArrayTools.sort(a1); - double last = 0; - for (double x : a1) { - assertTrue(last < x); - last = x; - } - assertSame(a1, a2); - } - - public void testSortDoubleArrayIntInt() { - double[] a1 = new double[9]; - double[] a2 = ArrayTools.fill(a1, 3.3); - a2[3] = 33.33; - a2[4] = 11.11; - a2[5] = 22.22; - int from = 3; - int to = 6; - double[] a3 = ArrayTools.sort(a2, from, to); - double last = 0; - for (int i = 0; i < a1.length; i++) { - double x = a1[i]; - if (i < from || i >= to) { - assertEquals(3.3, x, 0.0); - } else { - assertTrue(last < x); - last = x; - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testSortFloatArray() { - float[] a1 = new float[3]; - a1[0] = 33.33f; - a1[1] = 11.11f; - a1[2] = 22.22f; - float[] a2 = ArrayTools.sort(a1); - float last = 0; - for (float x : a1) { - assertTrue(last < x); - last = x; - } - assertSame(a1, a2); - } - - public void testSortFloatArrayIntInt() { - float[] a1 = new float[9]; - float[] a2 = ArrayTools.fill(a1, 3.3f); - a2[3] = 33.33f; - a2[4] = 11.11f; - a2[5] = 22.22f; - int from = 3; - int to = 6; - float[] a3 = ArrayTools.sort(a2, from, to); - float last = 0; - for (int i = 0; i < a1.length; i++) { - float x = a1[i]; - if (i < from || i >= to) { - assertEquals(3.3f, x, 0.0); - } else { - assertTrue(last < x); - last = x; - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testSortIntArray() { - int[] a1 = new int[3]; - a1[0] = 33; - a1[1] = 11; - a1[2] = 22; - int[] a2 = ArrayTools.sort(a1); - int last = 0; - for (int x : a1) { - assertTrue(last < x); - last = x; - } - assertSame(a1, a2); - } - - public void testSortIntArrayIntInt() { - int[] a1 = new int[9]; - int[] a2 = ArrayTools.fill(a1, 3); - a2[3] = 33; - a2[4] = 11; - a2[5] = 22; - int from = 3; - int to = 6; - int[] a3 = ArrayTools.sort(a2, from, to); - int last = 0; - for (int i = 0; i < a1.length; i++) { - int x = a1[i]; - if (i < from || i >= to) { - assertEquals(3, x); - } else { - assertTrue(last < x); - last = x; - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testSortObjectArray() { - String[] a1 = new String[3]; - a1[0] = "y"; - a1[1] = "b"; - a1[2] = "m"; - String[] a2 = ArrayTools.sort(a1); - String last = "a"; - for (String x : a1) { - assertTrue(last.compareTo(x) < 0); - last = x; - } - assertSame(a1, a2); - } - - public void testSortObjectArrayComparator() { - String[] a1 = new String[3]; - a1[0] = "y"; - a1[1] = "b"; - a1[2] = "m"; - String[] a2 = ArrayTools.sort(a1, new ReverseComparator()); - String last = "z"; - for (String x : a1) { - assertTrue(last.compareTo(x) > 0); - last = x; - } - assertSame(a1, a2); - } - - public void testSortObjectArrayIntInt() { - String[] a1 = new String[9]; - String[] a2 = ArrayTools.fill(a1, "c"); - a2[3] = "y"; - a2[4] = "b"; - a2[5] = "m"; - int from = 3; - int to = 6; - String[] a3 = ArrayTools.sort(a2, from, to); - String last = "a"; - for (int i = 0; i < a1.length; i++) { - String x = a1[i]; - if (i < from || i >= to) { - assertEquals("c", x); - } else { - assertTrue(last.compareTo(x) < 0); - last = x; - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testSortObjectArrayIntIntComparator() { - String[] a1 = new String[9]; - String[] a2 = ArrayTools.fill(a1, "c"); - a2[3] = "y"; - a2[4] = "b"; - a2[5] = "m"; - int from = 3; - int to = 6; - String[] a3 = ArrayTools.sort(a2, from, to, new ReverseComparator()); - String last = "z"; - for (int i = 0; i < a1.length; i++) { - String x = a1[i]; - if (i < from || i >= to) { - assertEquals("c", x); - } else { - assertTrue(last.compareTo(x) > 0); - last = x; - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testSortLongArray() { - long[] a1 = new long[3]; - a1[0] = 33; - a1[1] = 11; - a1[2] = 22; - long[] a2 = ArrayTools.sort(a1); - long last = 0; - for (long x : a1) { - assertTrue(last < x); - last = x; - } - assertSame(a1, a2); - } - - public void testSortLongArrayIntInt() { - long[] a1 = new long[9]; - long[] a2 = ArrayTools.fill(a1, 3); - a2[3] = 33; - a2[4] = 11; - a2[5] = 22; - int from = 3; - int to = 6; - long[] a3 = ArrayTools.sort(a2, from, to); - long last = 0; - for (int i = 0; i < a1.length; i++) { - long x = a1[i]; - if (i < from || i >= to) { - assertEquals(3, x); - } else { - assertTrue(last < x); - last = x; - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - public void testSortShortArray() { - short[] a1 = new short[3]; - a1[0] = (short) 33; - a1[1] = (short) 11; - a1[2] = (short) 22; - short[] a2 = ArrayTools.sort(a1); - short last = (short) 0; - for (short x : a1) { - assertTrue(last < x); - last = x; - } - assertSame(a1, a2); - } - - public void testSortShortArrayIntInt() { - short[] a1 = new short[9]; - short[] a2 = ArrayTools.fill(a1, (short) 3); - a2[3] = (short) 33; - a2[4] = (short) 11; - a2[5] = (short) 22; - int from = 3; - int to = 6; - short[] a3 = ArrayTools.sort(a2, from, to); - short last = (short) 0; - for (int i = 0; i < a1.length; i++) { - short x = a1[i]; - if (i < from || i >= to) { - assertEquals(3, x); - } else { - assertTrue(last < x); - last = x; - } - } - assertSame(a1, a2); - assertSame(a1, a3); - } - - - // ********** constructor ********** - - public void testConstructor() { - boolean exCaught = false; - try { - Object at = ReflectionTools.newInstance(ArrayTools.class); - fail("bogus: " + at); - } catch (RuntimeException ex) { - if (ex.getCause() instanceof InvocationTargetException) { - if (ex.getCause().getCause() instanceof UnsupportedOperationException) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - - // ********** utility ********** - - private Object[] buildObjectArray1() { - return new Object[] { "zero", "one", "two" }; - } - - private String[] buildStringArray1() { - return new String[] { "zero", "one", "two" }; - } - - private char[] buildCharArray() { - return new char[] { 'a', 'b', 'c' }; - } - - private int[] buildIntArray() { - return new int[] { 0, 10, 20 }; - } - - private Object[] buildObjectArray2() { - return new Object[] { "three", "four", "five" }; - } - - private String[] buildStringArray2() { - return new String[] { "three", "four", "five" }; - } - - private List buildStringList1() { - List l = new ArrayList(); - this.addToCollection1(l); - return l; - } - - private List buildObjectList1() { - List l = new ArrayList(); - this.addToCollection1(l); - return l; - } - - private void addToCollection1(Collection c) { - c.add("zero"); - c.add("one"); - c.add("two"); - } - - private List buildStringList2() { - List l = new ArrayList(); - this.addToCollection2(l); - return l; - } - - private void addToCollection2(Collection c) { - c.add("three"); - c.add("four"); - c.add("five"); - } - - private Vector buildStringVector1() { - Vector v = new Vector(); - this.addToCollection1(v); - return v; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/AsynchronousCommandExecutorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/AsynchronousCommandExecutorTests.java deleted file mode 100644 index f8b32dcd28..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/AsynchronousCommandExecutorTests.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.AsynchronousCommandExecutor; -import org.eclipse.jpt.common.utility.internal.StatefulCommandExecutor; - -public class AsynchronousCommandExecutorTests - extends MultiThreadedTestCase -{ - public AsynchronousCommandExecutorTests(String name) { - super(name); - } - - public void testExecution() throws Exception { - TestCommand command = new TestCommand(); - StatefulCommandExecutor commandExecutor = new AsynchronousCommandExecutor(this.buildThreadFactory()); - commandExecutor.start(); - commandExecutor.execute(command); - commandExecutor.execute(command); - commandExecutor.execute(command); - Thread.sleep(TWO_TICKS); // wait for the command to execute - commandExecutor.stop(); - assertEquals(3, command.count); - } - - static class TestCommand implements Command { - int count = 0; - public void execute() { - this.count++; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BagTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BagTests.java deleted file mode 100644 index e018dfaeea..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BagTests.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.HashBag; - -@SuppressWarnings("nls") -public class BagTests extends TestCase { - - public BagTests(String name) { - super(name); - } - - public void testEmptyBag_iterator() throws Exception { - assertFalse(Bag.Empty.instance().iterator().hasNext()); - } - - public void testEmptyBag_size() throws Exception { - assertEquals(0, Bag.Empty.instance().size()); - } - - public void testEmptyBag_uniqueIterator() throws Exception { - assertFalse(Bag.Empty.instance().uniqueIterator().hasNext()); - } - - public void testEmptyBag_uniqueCount() throws Exception { - assertEquals(0, Bag.Empty.instance().uniqueCount()); - } - - public void testEmptyBag_count() throws Exception { - assertEquals(0, Bag.Empty.instance().count("foo")); - } - - public void testEmptyBag_entries() throws Exception { - assertFalse(Bag.Empty.instance().entries().hasNext()); - } - - public void testEmptyBag_remove() throws Exception { - assertFalse(Bag.Empty.instance().remove("foo", 3)); - } - - public void testEmptyBag_add() throws Exception { - boolean exCaught = false; - try { - Bag.Empty.instance().add("foo", 3); - fail(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testEmptyBag_equals() throws Exception { - assertTrue(Bag.Empty.instance().equals(Bag.Empty.instance())); - assertFalse(Bag.Empty.instance().equals("foo")); - - Bag bag = new HashBag(); - assertTrue(Bag.Empty.instance().equals(bag)); - bag.add("foo"); - assertFalse(Bag.Empty.instance().equals(bag)); - } - - public void testEmptyBag_hashCode() throws Exception { - assertEquals(0, Bag.Empty.instance().hashCode()); - } - - public void testEmptyBag_serialization() throws Exception { - Bag xxx = TestTools.serialize(Bag.Empty.instance()); - assertSame(Bag.Empty.instance(), xxx); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiFilterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiFilterTests.java deleted file mode 100644 index b2d1564479..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiFilterTests.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.BidiFilter; - -@SuppressWarnings("nls") -public class BidiFilterTests extends TestCase { - - public BidiFilterTests(String name) { - super(name); - } - - public void testNullBidiFilter_accept() throws Exception { - assertTrue(BidiFilter.Null.instance().accept("foo")); - } - - public void testNullBidiFilter_reverseAccept() throws Exception { - assertTrue(BidiFilter.Null.instance().reverseAccept("foo")); - } - - public void testNullBidiFilter_toString() throws Exception { - assertNotNull(BidiFilter.Null.instance().toString()); - } - - public void testNullBidiFilter_serialization() throws Exception { - BidiFilter xxx = TestTools.serialize(BidiFilter.Null.instance()); - assertSame(BidiFilter.Null.instance(), xxx); - } - - public void testOpaqueBidiFilter_accept() throws Exception { - assertFalse(BidiFilter.Opaque.instance().accept("foo")); - } - - public void testOpaqueBidiFilter_reverseAccept() throws Exception { - assertFalse(BidiFilter.Opaque.instance().reverseAccept("foo")); - } - - public void testOpaqueBidiFilter_toString() throws Exception { - assertNotNull(BidiFilter.Opaque.instance().toString()); - } - - public void testOpaqueBidiFilter_serialization() throws Exception { - BidiFilter xxx = TestTools.serialize(BidiFilter.Opaque.instance()); - assertSame(BidiFilter.Opaque.instance(), xxx); - } - - public void testDisabledBidiFilter_accept() throws Exception { - boolean exCaught = false; - try { - BidiFilter.Disabled.instance().accept("foo"); - fail(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testDisabledBidiFilter_reverseAccept() throws Exception { - boolean exCaught = false; - try { - BidiFilter.Disabled.instance().reverseAccept("foo"); - fail(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testDisabledBidiFilter_toString() throws Exception { - assertNotNull(BidiFilter.Disabled.instance().toString()); - } - - public void testDisabledBidiFilter_serialization() throws Exception { - BidiFilter xxx = TestTools.serialize(BidiFilter.Disabled.instance()); - assertSame(BidiFilter.Disabled.instance(), xxx); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiStringConverterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiStringConverterTests.java deleted file mode 100644 index cf0400b104..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiStringConverterTests.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.BidiStringConverter; - -@SuppressWarnings("nls") -public class BidiStringConverterTests extends TestCase { - - public BidiStringConverterTests(String name) { - super(name); - } - - public void testDefaultBidiStringConverter_convertToString() throws Exception { - assertEquals("foo", BidiStringConverter.Default.instance().convertToString("foo")); - assertNull(BidiStringConverter.Default.instance().convertToString(null)); - } - - public void testDefaultBidiStringConverter_convertToObject() throws Exception { - assertEquals("foo", BidiStringConverter.Default.instance().convertToObject("foo")); - assertNull(BidiStringConverter.Default.instance().convertToString(null)); - } - - public void testDefaultBidiStringConverter_toString() throws Exception { - assertNotNull(BidiStringConverter.Default.instance().toString()); - } - - public void testDefaultBidiStringConverter_serialization() throws Exception { - BidiStringConverter xxx = TestTools.serialize(BidiStringConverter.Default.instance()); - assertSame(BidiStringConverter.Default.instance(), xxx); - } - - public void testDisabledBidiStringConverter_convertToString() throws Exception { - boolean exCaught = false; - try { - BidiStringConverter.Disabled.instance().convertToString("foo"); - fail(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testDisabledBidiStringConverter_convertToObject() throws Exception { - boolean exCaught = false; - try { - BidiStringConverter.Disabled.instance().convertToObject("foo"); - fail(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testDisabledBidiStringConverter_toString() throws Exception { - assertNotNull(BidiStringConverter.Disabled.instance().toString()); - } - - public void testDisabledBidiStringConverter_serialization() throws Exception { - BidiStringConverter xxx = TestTools.serialize(BidiStringConverter.Disabled.instance()); - assertSame(BidiStringConverter.Disabled.instance(), xxx); - } - - public void testBooleanBidiStringConverter_convertToString() throws Exception { - assertEquals("true", BidiStringConverter.BooleanConverter.instance().convertToString(Boolean.TRUE)); - assertEquals("false", BidiStringConverter.BooleanConverter.instance().convertToString(Boolean.FALSE)); - assertNull(BidiStringConverter.BooleanConverter.instance().convertToString(null)); - } - - public void testBooleanBidiStringConverter_convertToObject() throws Exception { - assertEquals(Boolean.TRUE, BidiStringConverter.BooleanConverter.instance().convertToObject("true")); - assertEquals(Boolean.TRUE, BidiStringConverter.BooleanConverter.instance().convertToObject("TRUE")); - assertEquals(Boolean.FALSE, BidiStringConverter.BooleanConverter.instance().convertToObject("false")); - assertEquals(Boolean.FALSE, BidiStringConverter.BooleanConverter.instance().convertToObject("xxxx")); - assertNull(BidiStringConverter.BooleanConverter.instance().convertToObject(null)); - } - - public void testBooleanBidiStringConverter_toString() throws Exception { - assertNotNull(BidiStringConverter.BooleanConverter.instance().toString()); - } - - public void testBooleanBidiStringConverter_serialization() throws Exception { - BidiStringConverter xxx = TestTools.serialize(BidiStringConverter.BooleanConverter.instance()); - assertSame(BidiStringConverter.BooleanConverter.instance(), xxx); - } - - public void testIntegerBidiStringConverter_convertToString() throws Exception { - assertEquals("7", BidiStringConverter.IntegerConverter.instance().convertToString(Integer.valueOf(7))); - assertNull(BidiStringConverter.IntegerConverter.instance().convertToString(null)); - } - - public void testIntegerBidiStringConverter_convertToObject() throws Exception { - assertEquals(Integer.valueOf(7), BidiStringConverter.IntegerConverter.instance().convertToObject("7")); - assertNull(BidiStringConverter.IntegerConverter.instance().convertToObject(null)); - } - - public void testIntegerBidiStringConverter_toString() throws Exception { - assertNotNull(BidiStringConverter.IntegerConverter.instance().toString()); - } - - public void testIntegerBidiStringConverter_serialization() throws Exception { - BidiStringConverter xxx = TestTools.serialize(BidiStringConverter.IntegerConverter.instance()); - assertSame(BidiStringConverter.IntegerConverter.instance(), xxx); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiTransformerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiTransformerTests.java deleted file mode 100644 index 973f153f45..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BidiTransformerTests.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.BidiTransformer; - -@SuppressWarnings("nls") -public class BidiTransformerTests extends TestCase { - - public BidiTransformerTests(String name) { - super(name); - } - - public void testNullBidiTransformer_transform() throws Exception { - assertEquals("foo", BidiTransformer.Null.instance().transform("foo")); - assertNull(BidiTransformer.Null.instance().transform(null)); - } - - public void testNullBidiTransformer_reverseTransform() throws Exception { - assertEquals("foo", BidiTransformer.Null.instance().reverseTransform("foo")); - assertNull(BidiTransformer.Null.instance().transform(null)); - } - - public void testNullBidiTransformer_toString() throws Exception { - assertNotNull(BidiTransformer.Null.instance().toString()); - } - - public void testNullBidiTransformer_serialization() throws Exception { - BidiTransformer xxx = TestTools.serialize(BidiTransformer.Null.instance()); - assertSame(BidiTransformer.Null.instance(), xxx); - } - - public void testDisabledBidiTransformer_transform() throws Exception { - boolean exCaught = false; - try { - BidiTransformer.Disabled.instance().transform("foo"); - fail(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testDisabledBidiTransformer_reverseTransform() throws Exception { - boolean exCaught = false; - try { - BidiTransformer.Disabled.instance().reverseTransform("foo"); - fail(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testDisabledBidiTransformer_toString() throws Exception { - assertNotNull(BidiTransformer.Disabled.instance().toString()); - } - - public void testDisabledBidiTransformer_serialization() throws Exception { - BidiTransformer xxx = TestTools.serialize(BidiTransformer.Disabled.instance()); - assertSame(BidiTransformer.Disabled.instance(), xxx); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BitToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BitToolsTests.java deleted file mode 100644 index dd1941237b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BitToolsTests.java +++ /dev/null @@ -1,262 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.lang.reflect.InvocationTargetException; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.BitTools; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; - -public class BitToolsTests extends TestCase { - - public BitToolsTests(String name) { - super(name); - } - - public void testFlagIsSetIntInt() { - assertTrue(BitTools.flagIsSet(0x0003, 0x0001)); - assertTrue(BitTools.flagIsSet(0x0303, 0x0001)); - assertTrue(BitTools.flagIsSet(0x0303, 0x0101)); - assertTrue(BitTools.flagIsSet(0x0303, 0x0103)); - - assertFalse(BitTools.flagIsSet(0x0303, 0x1103)); - assertFalse(BitTools.flagIsSet(0x0000, 0x1103)); - } - - public void testFlagIsOffIntInt() { - assertFalse(BitTools.flagIsOff(0x0003, 0x0001)); - assertFalse(BitTools.flagIsOff(0x0303, 0x0001)); - assertFalse(BitTools.flagIsOff(0x0303, 0x0101)); - assertFalse(BitTools.flagIsOff(0x0303, 0x0103)); - - assertTrue(BitTools.flagIsOff(0x2204, 0x1103)); - assertTrue(BitTools.flagIsOff(0x0000, 0x1103)); - } - - public void testOnlyFlagIsSetIntInt() { - assertFalse(BitTools.onlyFlagIsSet(0x0003, 0x0001)); - assertTrue(BitTools.onlyFlagIsSet(0x0001, 0x0001)); - - assertFalse(BitTools.onlyFlagIsSet(0x0303, 0x0001)); - assertTrue(BitTools.onlyFlagIsSet(0x0001, 0x0001)); - - assertFalse(BitTools.onlyFlagIsSet(0x0303, 0x0101)); - assertTrue(BitTools.onlyFlagIsSet(0x0101, 0x0101)); - - assertFalse(BitTools.onlyFlagIsSet(0x0303, 0x0103)); - assertTrue(BitTools.onlyFlagIsSet(0x0103, 0x0103)); - - assertFalse(BitTools.onlyFlagIsSet(0x0303, 0x1103)); - assertTrue(BitTools.onlyFlagIsSet(0x1103, 0x1103)); - - assertFalse(BitTools.onlyFlagIsSet(0x0000, 0x1103)); - assertTrue(BitTools.onlyFlagIsSet(0x0103, 0x0103)); - } - - public void testOnlyFlagIsOffIntInt() { - assertFalse(BitTools.onlyFlagIsOff(0x0003, 0x0001)); - assertFalse(BitTools.onlyFlagIsOff(0x0303, 0x0001)); - assertTrue(BitTools.onlyFlagIsOff(0xFFFFFFFE, 0x0001)); - - assertFalse(BitTools.onlyFlagIsOff(0x0303, 0x0101)); - assertTrue(BitTools.onlyFlagIsOff(0xFFFFFEFE, 0x0101)); - - assertFalse(BitTools.onlyFlagIsOff(0x0303, 0x0103)); - assertTrue(BitTools.onlyFlagIsOff(0xFFFFFEFC, 0x0103)); - - assertFalse(BitTools.onlyFlagIsOff(0x0303, 0x1103)); - assertTrue(BitTools.onlyFlagIsOff(0xFFFFEEFC, 0x1103)); - } - - public void testAllFlagsAreSetIntInt() { - assertTrue(BitTools.allFlagsAreSet(0x0003, 0x0001)); - assertTrue(BitTools.allFlagsAreSet(0x0303, 0x0001)); - assertTrue(BitTools.allFlagsAreSet(0x0303, 0x0101)); - assertTrue(BitTools.allFlagsAreSet(0x0303, 0x0103)); - - assertFalse(BitTools.allFlagsAreSet(0x0303, 0x1103)); - assertFalse(BitTools.allFlagsAreSet(0x0000, 0x1103)); - } - - public void testAllFlagsAreOffIntInt() { - assertFalse(BitTools.allFlagsAreOff(0x0003, 0x0001)); - assertFalse(BitTools.allFlagsAreOff(0x0303, 0x0001)); - assertFalse(BitTools.allFlagsAreOff(0x0303, 0x0101)); - assertFalse(BitTools.allFlagsAreOff(0x0303, 0x0103)); - - assertTrue(BitTools.allFlagsAreOff(0x2204, 0x1103)); - assertTrue(BitTools.allFlagsAreOff(0x0000, 0x1103)); - } - - public void testOnlyFlagsAreSetIntInt() { - assertFalse(BitTools.onlyFlagsAreSet(0x0003, 0x0001)); - assertTrue(BitTools.onlyFlagsAreSet(0x0001, 0x0001)); - - assertFalse(BitTools.onlyFlagsAreSet(0x0303, 0x0001)); - assertTrue(BitTools.onlyFlagsAreSet(0x0001, 0x0001)); - - assertFalse(BitTools.onlyFlagsAreSet(0x0303, 0x0101)); - assertTrue(BitTools.onlyFlagsAreSet(0x0101, 0x0101)); - - assertFalse(BitTools.onlyFlagsAreSet(0x0303, 0x0103)); - assertTrue(BitTools.onlyFlagsAreSet(0x0103, 0x0103)); - - assertFalse(BitTools.onlyFlagsAreSet(0x0303, 0x1103)); - assertTrue(BitTools.onlyFlagsAreSet(0x1103, 0x1103)); - - assertFalse(BitTools.onlyFlagsAreSet(0x0000, 0x1103)); - assertTrue(BitTools.onlyFlagsAreSet(0x0103, 0x0103)); - } - - public void testOnlyFlagsAreOffIntInt() { - assertFalse(BitTools.onlyFlagsAreOff(0x0003, 0x0001)); - assertFalse(BitTools.onlyFlagsAreOff(0x0303, 0x0001)); - assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFFFE, 0x0001)); - - assertFalse(BitTools.onlyFlagsAreOff(0x0303, 0x0101)); - assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFEFE, 0x0101)); - - assertFalse(BitTools.onlyFlagsAreOff(0x0303, 0x0103)); - assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFEFC, 0x0103)); - - assertFalse(BitTools.onlyFlagsAreOff(0x0303, 0x1103)); - assertTrue(BitTools.onlyFlagsAreOff(0xFFFFEEFC, 0x1103)); - } - - public void testAnyFlagsAreSetIntInt() { - assertTrue(BitTools.anyFlagsAreSet(0x0003, 0x0001)); - assertTrue(BitTools.anyFlagsAreSet(0xFFFF, 0x0001)); - assertTrue(BitTools.anyFlagsAreSet(0x0003, 0xFFFF)); - - assertFalse(BitTools.anyFlagsAreSet(0x0303, 0x1010)); - assertFalse(BitTools.anyFlagsAreSet(0x0000, 0xFFFF)); - } - - public void testAnyFlagsAreOffIntInt() { - assertTrue(BitTools.anyFlagsAreOff(0x333E, 0x0001)); - assertTrue(BitTools.anyFlagsAreOff(0xFFFE, 0x0001)); - assertTrue(BitTools.anyFlagsAreOff(0x0003, 0xFFFF)); - - assertFalse(BitTools.anyFlagsAreOff(0x7373, 0x1010)); - assertFalse(BitTools.anyFlagsAreOff(0xFFFF, 0xFFFF)); - } - - public void testAllFlagsAreSetIntIntArray() { - assertTrue(BitTools.allFlagsAreSet(0x0003, new int[] { 0x0001 })); - assertTrue(BitTools.allFlagsAreSet(0x0303, new int[] { 0x0001 })); - assertTrue(BitTools.allFlagsAreSet(0x0303, new int[] { 0x0100, 0x0001 })); - assertTrue(BitTools.allFlagsAreSet(0x0303, new int[] { 0x0100, 0x0002, 0x0001 })); - - assertFalse(BitTools.allFlagsAreSet(0x0303, new int[] { 0x1000, 0x0100, 0x0002, 0x0001 })); - assertFalse(BitTools.allFlagsAreSet(0x0000, new int[] { 0x1000, 0x0100, 0x0002, 0x0001 })); - } - - public void testAllFlagsAreOffIntIntArray() { - assertFalse(BitTools.allFlagsAreOff(0x0003, new int[] { 0x0001 })); - assertFalse(BitTools.allFlagsAreOff(0x0303, new int[] { 0x0001 })); - assertFalse(BitTools.allFlagsAreOff(0x0303, new int[] { 0x0100, 0x0001 })); - assertFalse(BitTools.allFlagsAreOff(0x0303, new int[] { 0x0100, 0x0002, 0x0001 })); - - assertTrue(BitTools.allFlagsAreOff(0x0303, new int[] { 0x1000, 0x0400, 0x0020, 0x0000 })); - assertTrue(BitTools.allFlagsAreOff(0x0000, new int[] { 0x1000, 0x0100, 0x0002, 0x0001 })); - } - - public void testOnlyFlagsAreSetIntIntArray() { - assertFalse(BitTools.onlyFlagsAreSet(0x0003, new int[] { 0x001, 0x0000, 0x0000, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreSet(0x0001, new int[] { 0x001, 0x0000, 0x0000, 0x0001 })); - - assertFalse(BitTools.onlyFlagsAreSet(0x0303, new int[] { 0x001, 0x0000, 0x0000, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreSet(0x0001, new int[] { 0x001, 0x0000, 0x0000, 0x0001 })); - - assertFalse(BitTools.onlyFlagsAreSet(0x0303, new int[] { 0x001, 0x0100, 0x0000, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreSet(0x0101, new int[] { 0x001, 0x0100, 0x0000, 0x0001 })); - - assertFalse(BitTools.onlyFlagsAreSet(0x0303, new int[] { 0x001, 0x0100, 0x0002, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreSet(0x0103, new int[] { 0x001, 0x0100, 0x0002, 0x0001 })); - - assertFalse(BitTools.onlyFlagsAreSet(0x0303, new int[] { 0x011, 0x0100, 0x0002, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreSet(0x1103, new int[] { 0x1100, 0x0100, 0x0002, 0x0001 })); - - assertFalse(BitTools.onlyFlagsAreSet(0x0000, new int[] { 0x011, 0x0100, 0x0002, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreSet(0x0103, new int[] { 0x0101, 0x0100, 0x0002, 0x0001 })); - } - - public void testOnlyFlagsAreOffIntIntArray() { - assertFalse(BitTools.onlyFlagsAreOff(0x0003, new int[] { 0x001, 0x0000, 0x0000, 0x0001 })); - assertFalse(BitTools.onlyFlagsAreOff(0x0303, new int[] { 0x001, 0x0000, 0x0000, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFFFE, new int[] { 0x001, 0x0000, 0x0000, 0x0001 })); - - assertFalse(BitTools.onlyFlagsAreOff(0x0303, new int[] { 0x001, 0x0100, 0x0000, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFEFE, new int[] { 0x001, 0x0100, 0x0000, 0x0001 })); - - assertFalse(BitTools.onlyFlagsAreOff(0x0303, new int[] { 0x001, 0x0100, 0x0002, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFEFC, new int[] { 0x001, 0x0100, 0x0002, 0x0001 })); - - assertFalse(BitTools.onlyFlagsAreOff(0x0303, new int[] { 0x1100, 0x0100, 0x0002, 0x0001 })); - assertTrue(BitTools.onlyFlagsAreOff(0xFFFFEEFC, new int[] { 0x1100, 0x0100, 0x0002, 0x0001 })); - } - - public void testAnyFlagsAreSetIntIntArray() { - assertTrue(BitTools.anyFlagsAreSet(0x0003, new int[] { 0x0001 })); - assertTrue(BitTools.anyFlagsAreSet(0xFFFF, new int[] { 0x0001 })); - assertTrue(BitTools.anyFlagsAreSet(0x0303, new int[] { 0xF000, 0x0F00, 0x00F0, 0x000F })); - - assertFalse(BitTools.anyFlagsAreSet(0x0303, new int[] { 0x1000, 0x0010 })); - assertFalse(BitTools.anyFlagsAreSet(0x0000, new int[] { 0xF000, 0x0F00, 0x00F0, 0x000F })); - } - - public void testAnyFlagsAreOffIntIntArray() { - assertFalse(BitTools.anyFlagsAreOff(0x0003, new int[] { 0x0001 })); - assertFalse(BitTools.anyFlagsAreOff(0xFFFF, new int[] { 0x0001 })); - assertFalse(BitTools.anyFlagsAreOff(0x0303, new int[] { 0x0100, 0x0200, 0x0003, 0x0002 })); - - assertTrue(BitTools.anyFlagsAreOff(0x0303, new int[] { 0x0100, 0x0010 })); - assertTrue(BitTools.anyFlagsAreOff(0x0000, new int[] { 0xF000, 0x0F00, 0x00F0, 0x000F })); - } - - public void testOrFlags() { - assertEquals(0x0001, BitTools.orFlags(new int[] { 0x0001, 0x0000 })); - assertEquals(0x0011, BitTools.orFlags(new int[] { 0x0001, 0x0011 })); - assertEquals(0xF011, BitTools.orFlags(new int[] { 0x0001, 0x0011, 0xF000 })); - } - - public void testAndFlags() { - assertEquals(0x0001, BitTools.andFlags(new int[] { 0x0001, 0x0001 })); - assertEquals(0x0001, BitTools.andFlags(new int[] { 0x0001, 0x0011 })); - assertEquals(0x0000, BitTools.andFlags(new int[] { 0x0001, 0x0011, 0xF000 })); - assertEquals(0x0001, BitTools.andFlags(new int[] { 0x0001, 0x0011, 0xF001 })); - } - - public void testXorFlags() { - assertEquals(0x0001, BitTools.xorFlags(new int[] { 0x0001, 0x0000 })); - assertEquals(0x0010, BitTools.xorFlags(new int[] { 0x0001, 0x0011 })); - assertEquals(0xF010, BitTools.xorFlags(new int[] { 0x0001, 0x0011, 0xF000 })); - assertEquals(0xFF11, BitTools.xorFlags(new int[] { 0x0001, 0x0011, 0xF000, 0x0F01 })); - assertEquals(0xF010, BitTools.xorFlags(new int[] { 0x0001, 0x0011, 0xF000, 0x0F01, 0x0F01 })); - } - - public void testConstructor() { - boolean exCaught = false; - try { - Object at = ReflectionTools.newInstance(BitTools.class); - fail("bogus: " + at); //$NON-NLS-1$ - } catch (RuntimeException ex) { - if (ex.getCause() instanceof InvocationTargetException) { - if (ex.getCause().getCause() instanceof UnsupportedOperationException) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BooleanToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BooleanToolsTests.java deleted file mode 100644 index f134a70e87..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/BooleanToolsTests.java +++ /dev/null @@ -1,89 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.lang.reflect.InvocationTargetException; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.BooleanTools; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; - -public class BooleanToolsTests extends TestCase { - private static final Boolean TRUE = Boolean.TRUE; - private static final Boolean FALSE = Boolean.FALSE; - - public BooleanToolsTests(String name) { - super(name); - } - - public void testNOT() { - assertEquals(FALSE, BooleanTools.not(TRUE)); - assertEquals(TRUE, BooleanTools.not(FALSE)); - } - - public void testAND() { - assertEquals(TRUE, BooleanTools.and(TRUE, TRUE)); - assertEquals(FALSE, BooleanTools.and(TRUE, FALSE)); - assertEquals(FALSE, BooleanTools.and(FALSE, TRUE)); - assertEquals(FALSE, BooleanTools.and(FALSE, FALSE)); - } - - public void testOR() { - assertEquals(TRUE, BooleanTools.or(TRUE, TRUE)); - assertEquals(TRUE, BooleanTools.or(TRUE, FALSE)); - assertEquals(TRUE, BooleanTools.or(FALSE, TRUE)); - assertEquals(FALSE, BooleanTools.or(FALSE, FALSE)); - } - - public void testXOR() { - assertEquals(FALSE, BooleanTools.xor(TRUE, TRUE)); - assertEquals(TRUE, BooleanTools.xor(TRUE, FALSE)); - assertEquals(TRUE, BooleanTools.xor(FALSE, TRUE)); - assertEquals(FALSE, BooleanTools.xor(FALSE, FALSE)); - } - - public void testNAND() { - assertEquals(FALSE, BooleanTools.nand(TRUE, TRUE)); - assertEquals(TRUE, BooleanTools.nand(TRUE, FALSE)); - assertEquals(TRUE, BooleanTools.nand(FALSE, TRUE)); - assertEquals(TRUE, BooleanTools.nand(FALSE, FALSE)); - } - - public void testNOR() { - assertEquals(FALSE, BooleanTools.nor(TRUE, TRUE)); - assertEquals(FALSE, BooleanTools.nor(TRUE, FALSE)); - assertEquals(FALSE, BooleanTools.nor(FALSE, TRUE)); - assertEquals(TRUE, BooleanTools.nor(FALSE, FALSE)); - } - - public void testXNOR() { - assertEquals(TRUE, BooleanTools.xnor(TRUE, TRUE)); - assertEquals(FALSE, BooleanTools.xnor(TRUE, FALSE)); - assertEquals(FALSE, BooleanTools.xnor(FALSE, TRUE)); - assertEquals(TRUE, BooleanTools.xnor(FALSE, FALSE)); - } - - public void testConstructor() { - boolean exCaught = false; - try { - Object at = ReflectionTools.newInstance(BooleanTools.class); - fail("bogus: " + at); //$NON-NLS-1$ - } catch (RuntimeException ex) { - if (ex.getCause() instanceof InvocationTargetException) { - if (ex.getCause().getCause() instanceof UnsupportedOperationException) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClassNameTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClassNameTests.java deleted file mode 100644 index 8e070b6d18..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClassNameTests.java +++ /dev/null @@ -1,368 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.lang.reflect.Array; -import java.lang.reflect.InvocationTargetException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ClassName; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; - -@SuppressWarnings("nls") -public class ClassNameTests extends TestCase { - - public ClassNameTests(String name) { - super(name); - } - - public void testIsArray() { - assertFalse(ClassName.isArray(int.class.getName())); - assertTrue(ClassName.isArray(int[].class.getName())); - assertTrue(ClassName.isArray(int[][].class.getName())); - - assertFalse(ClassName.isArray(java.lang.String.class.getName())); - assertTrue(ClassName.isArray(java.lang.String[].class.getName())); - assertTrue(ClassName.isArray(java.lang.String[][].class.getName())); - } - - public void testGetElementTypeName() { - assertEquals(java.util.Vector.class.getName(), ClassName.getElementTypeName(java.util.Vector.class.getName())); - assertEquals(int.class.getName(), ClassName.getElementTypeName(int.class.getName())); - assertEquals(void.class.getName(), ClassName.getElementTypeName(void.class.getName())); - assertEquals(java.util.Vector.class.getName(), ClassName.getElementTypeName(java.util.Vector[].class.getName())); - assertEquals(int.class.getName(), ClassName.getElementTypeName(int[].class.getName())); - assertEquals(java.util.Vector.class.getName(), ClassName.getElementTypeName(java.util.Vector[][][].class.getName())); - assertEquals(int.class.getName(), ClassName.getElementTypeName(int[][][].class.getName())); - } - - public void testGetArrayDepth() { - assertEquals(0, ClassName.getArrayDepth(java.util.Vector.class.getName())); - assertEquals(0, ClassName.getArrayDepth(int.class.getName())); - assertEquals(0, ClassName.getArrayDepth(void.class.getName())); - assertEquals(1, ClassName.getArrayDepth(java.util.Vector[].class.getName())); - assertEquals(1, ClassName.getArrayDepth(int[].class.getName())); - assertEquals(3, ClassName.getArrayDepth(java.util.Vector[][][].class.getName())); - assertEquals(3, ClassName.getArrayDepth(int[][][].class.getName())); - } - - public void testGetComponentTypeName() { - assertEquals(null, ClassName.getComponentTypeName(java.lang.Object.class.getName())); - assertEquals(java.lang.Object.class.getName(), ClassName.getComponentTypeName(java.lang.Object[].class.getName())); - assertEquals(java.lang.Object[].class.getName(), ClassName.getComponentTypeName(java.lang.Object[][].class.getName())); - - assertEquals(null, ClassName.getComponentTypeName(int.class.getName())); - assertEquals(int.class.getName(), ClassName.getComponentTypeName(int[].class.getName())); - assertEquals(int[].class.getName(), ClassName.getComponentTypeName(int[][].class.getName())); - } - - public void testGetSimpleName() throws Exception { - assertEquals("Object", ClassName.getSimpleName(java.lang.Object.class.getName())); - assertEquals("Object[]", ClassName.getSimpleName(java.lang.Object[].class.getName())); - assertEquals("Object[][]", ClassName.getSimpleName(java.lang.Object[][].class.getName())); - - assertEquals(java.util.Map.class.getSimpleName(), ClassName.getSimpleName(java.util.Map.class.getName())); - assertEquals(java.util.Map.Entry.class.getSimpleName(), ClassName.getSimpleName(java.util.Map.Entry.class.getName())); - - assertEquals("int", ClassName.getSimpleName(int.class.getName())); - assertEquals("int[]", ClassName.getSimpleName(int[].class.getName())); - assertEquals("int[][]", ClassName.getSimpleName(int[][].class.getName())); - - Object anonObject = new Object() { - // anonymous class - }; - assertEquals("", ClassName.getSimpleName(anonObject.getClass().getName())); - - class Local { - // anonymous class - } - Local localObject = new Local(); - assertEquals("Local", ClassName.getSimpleName(localObject.getClass().getName())); - } - - public void testGetPackageName() throws Exception { - assertEquals(java.lang.Object.class.getPackage().getName(), ClassName.getPackageName(java.lang.Object.class.getName())); - assertEquals("", ClassName.getPackageName(java.lang.Object[].class.getName())); - assertEquals("", ClassName.getPackageName(java.lang.Object[][].class.getName())); - - assertEquals(java.util.Map.class.getPackage().getName(), ClassName.getPackageName(java.util.Map.class.getName())); - assertEquals(java.util.Map.Entry.class.getPackage().getName(), ClassName.getPackageName(java.util.Map.Entry.class.getName())); - - assertEquals("", ClassName.getPackageName(int.class.getName())); - assertEquals("", ClassName.getPackageName(int[].class.getName())); - assertEquals("", ClassName.getPackageName(int[][].class.getName())); - - assertEquals("", ClassName.getPackageName(void.class.getName())); - - Object anonObject = new Object() { - // anonymous class - }; - assertEquals(anonObject.getClass().getPackage().getName(), ClassName.getPackageName(anonObject.getClass().getName())); - } - - public void testIsTopLevel() throws Exception { - assertTrue(ClassName.isTopLevel(java.util.Map.class.getName())); // top-level - assertFalse(ClassName.isTopLevel(java.util.Map.Entry.class.getName())); // member - assertFalse(ClassName.isTopLevel(Class.forName(this.getClass().getName() + "$1LocalClass").getName())); // local - assertFalse(ClassName.isTopLevel(Class.forName("java.util.Vector$1").getName())); // anonymous - - Object[] array = new java.util.Map[0]; // top-level - assertFalse(ClassName.isTopLevel(array.getClass().getName())); - array = new java.util.Map.Entry[0]; // member - assertFalse(ClassName.isTopLevel(array.getClass().getName())); - Class localClass = Class.forName(this.getClass().getName() + "$1LocalClass"); // local - array = (Object[]) Array.newInstance(localClass, 0); - assertFalse(ClassName.isTopLevel(array.getClass().getName())); - Class anonClass = Class.forName("java.util.Vector$1"); // local - array = (Object[]) Array.newInstance(anonClass, 0); - assertFalse(ClassName.isTopLevel(array.getClass().getName())); - } - - public void testIsMember() throws Exception { - assertFalse(ClassName.isMember(java.util.Map.class.getName())); // top-level - assertTrue(ClassName.isMember(java.util.Map.Entry.class.getName())); // member - assertFalse(ClassName.isMember(Class.forName(this.getClass().getName() + "$1LocalClass").getName())); // local - assertFalse(ClassName.isMember(Class.forName("java.util.Vector$1").getName())); // anonymous - - Object[] array = new java.util.Map[0]; // top-level - assertFalse(ClassName.isMember(array.getClass().getName())); - array = new java.util.Map.Entry[0]; // member - assertFalse(ClassName.isMember(array.getClass().getName())); - Class localClass = Class.forName(this.getClass().getName() + "$1LocalClass"); // local - array = (Object[]) Array.newInstance(localClass, 0); - assertFalse(ClassName.isMember(array.getClass().getName())); - Class anonClass = Class.forName("java.util.Vector$1"); // local - array = (Object[]) Array.newInstance(anonClass, 0); - assertFalse(ClassName.isMember(array.getClass().getName())); - - // test a few edge cases - assertTrue(ClassName.isMember("java.util.Map$a1")); - assertTrue(ClassName.isMember("java.util.Map$1aa$aaa")); // member inside local - assertTrue(ClassName.isMember("java.util.Map$1$aaa")); // member inside anonymous - assertTrue(ClassName.isMember("java.util.Map$a1$aaa$bbb")); - assertTrue(ClassName.isMember("java.util.Map$1a1$aaa")); // member inside local - assertFalse(ClassName.isMember("java.util.Map$1a")); - assertTrue(ClassName.isMember("java.util.Map$a12345$b12345")); - assertFalse(ClassName.isMember("java.util.Map$12345a")); - assertFalse(ClassName.isMember("java.util.Map$333")); - assertFalse(ClassName.isMember("java.util.Map3$333")); - } - - public void testIsLocal() throws Exception { - class LocalClass { - void foo() { - System.getProperty("foo"); - } - } - new LocalClass().foo(); - assertFalse(ClassName.isLocal(java.util.Map.class.getName())); // top-level - assertFalse(ClassName.isLocal(java.util.Map.Entry.class.getName())); // member - assertTrue(ClassName.isLocal(Class.forName(this.getClass().getName() + "$1LocalClass").getName())); // local - assertFalse(ClassName.isLocal(Class.forName("java.util.Vector$1").getName())); // anonymous - - Object[] array = new java.util.Map[0]; // top-level - assertFalse(ClassName.isLocal(array.getClass().getName())); - array = new java.util.Map.Entry[0]; // member - assertFalse(ClassName.isLocal(array.getClass().getName())); - Class localClass = Class.forName(this.getClass().getName() + "$1LocalClass"); // local - array = (Object[]) Array.newInstance(localClass, 0); - assertFalse(ClassName.isLocal(array.getClass().getName())); - Class anonClass = Class.forName("java.util.Vector$1"); // local - array = (Object[]) Array.newInstance(anonClass, 0); - assertFalse(ClassName.isLocal(array.getClass().getName())); - - // test a few edge cases - assertFalse(ClassName.isLocal("java.util.Map$a1")); - assertFalse(ClassName.isLocal("java.util.Map$a1$aaa$bbb")); - assertFalse(ClassName.isLocal("java.util.Map$11$aaa")); - assertTrue(ClassName.isLocal("java.util.Map$1a")); - assertTrue(ClassName.isLocal("java.util.Map$2abc")); - assertTrue(ClassName.isLocal("java.util.Map$2abc1")); - assertFalse(ClassName.isLocal("java.util.Map$a12345$b12345")); - assertTrue(ClassName.isLocal("java.util.Map$12345$1234a")); - assertFalse(ClassName.isLocal("java.util.Map$333")); - assertFalse(ClassName.isLocal("java.util.Map3$333")); - } - - public void testIsAnonymous() throws Exception { - assertFalse(ClassName.isAnonymous(java.util.Map.class.getName())); // top-level - assertFalse(ClassName.isAnonymous(java.util.Map.Entry.class.getName())); // member - assertFalse(ClassName.isAnonymous(Class.forName(this.getClass().getName() + "$1LocalClass").getName())); // local - assertTrue(ClassName.isAnonymous(Class.forName("java.util.Vector$1").getName())); // anonymous - - Object[] array = new java.util.Map[0]; // top-level - assertFalse(ClassName.isAnonymous(array.getClass().getName())); - array = new java.util.Map.Entry[0]; // member - assertFalse(ClassName.isAnonymous(array.getClass().getName())); - Class localClass = Class.forName(this.getClass().getName() + "$1LocalClass"); // local - array = (Object[]) Array.newInstance(localClass, 0); - assertFalse(ClassName.isAnonymous(array.getClass().getName())); - Class anonClass = Class.forName("java.util.Vector$1"); // local - array = (Object[]) Array.newInstance(anonClass, 0); - assertFalse(ClassName.isAnonymous(array.getClass().getName())); - - // test a few edge cases - assertFalse(ClassName.isAnonymous("java.util.Map$a1")); - assertFalse(ClassName.isAnonymous("java.util.Map$a1$aaa$bbb")); - assertFalse(ClassName.isAnonymous("java.util.Map$1a1$aaa")); - assertFalse(ClassName.isAnonymous("java.util.Map$1$a")); - assertFalse(ClassName.isAnonymous("java.util.Map$1a")); - assertFalse(ClassName.isAnonymous("java.util.Map$a12345$b12345")); - assertFalse(ClassName.isAnonymous("java.util.Map$12345$a1234")); - assertTrue(ClassName.isAnonymous("java.util.Map$333")); - assertTrue(ClassName.isAnonymous("java.util.Map3$333")); - } - - public void testIsReference() throws Exception { - assertFalse(ClassName.isReference(int.class.getName())); // top-level - - assertTrue(ClassName.isReference(java.util.Map.class.getName())); // top-level - assertTrue(ClassName.isReference(java.util.Map.Entry.class.getName())); // member - assertTrue(ClassName.isReference(Class.forName(this.getClass().getName() + "$1LocalClass").getName())); // local - assertTrue(ClassName.isReference(Class.forName("java.util.Vector$1").getName())); // anonymous - - Object[] array = new java.util.Map[0]; // top-level - assertTrue(ClassName.isReference(array.getClass().getName())); - array = new java.util.Map.Entry[0]; // member - assertTrue(ClassName.isReference(array.getClass().getName())); - Class localClass = Class.forName(this.getClass().getName() + "$1LocalClass"); // local - array = (Object[]) Array.newInstance(localClass, 0); - assertTrue(ClassName.isReference(array.getClass().getName())); - Class anonClass = Class.forName("java.util.Vector$1"); // local - array = (Object[]) Array.newInstance(anonClass, 0); - assertTrue(ClassName.isReference(array.getClass().getName())); - } - - public void testIsPrimitive() { - assertTrue(void.class.isPrimitive()); - - assertTrue(ClassName.isPrimitive(void.class.getName())); - assertTrue(ClassName.isPrimitive(int.class.getName())); - assertTrue(ClassName.isPrimitive(float.class.getName())); - assertTrue(ClassName.isPrimitive(boolean.class.getName())); - - assertFalse(ClassName.isPrimitive(java.lang.Number.class.getName())); - assertFalse(ClassName.isPrimitive(java.lang.String.class.getName())); - assertFalse(ClassName.isPrimitive(java.lang.Boolean.class.getName())); - assertFalse(ClassName.isPrimitive(java.lang.Integer.class.getName())); - } - - public void testIsPrimitiveWrapper() { - assertFalse(ClassName.isPrimitiveWrapper(void.class.getName())); - assertFalse(ClassName.isPrimitiveWrapper(int.class.getName())); - assertFalse(ClassName.isPrimitiveWrapper(float.class.getName())); - assertFalse(ClassName.isPrimitiveWrapper(boolean.class.getName())); - - assertFalse(ClassName.isPrimitiveWrapper(java.lang.reflect.Field.class.getName())); - assertFalse(ClassName.isPrimitiveWrapper(java.lang.String.class.getName())); - assertTrue(ClassName.isPrimitiveWrapper(java.lang.Boolean.class.getName())); - assertTrue(ClassName.isPrimitiveWrapper(java.lang.Integer.class.getName())); - } - - public void testIsVariablePrimitive() { - assertFalse(ClassName.isVariablePrimitive(void.class.getName())); - - assertTrue(ClassName.isVariablePrimitive(int.class.getName())); - assertTrue(ClassName.isVariablePrimitive(float.class.getName())); - assertTrue(ClassName.isVariablePrimitive(boolean.class.getName())); - - assertFalse(ClassName.isVariablePrimitive(java.lang.Number.class.getName())); - assertFalse(ClassName.isVariablePrimitive(java.lang.String.class.getName())); - assertFalse(ClassName.isVariablePrimitive(java.lang.Boolean.class.getName())); - } - - public void testIsVariablePrimitiveWrapper() { - assertFalse(ClassName.isVariablePrimitiveWrapper(java.lang.Void.class.getName())); - - assertTrue(ClassName.isVariablePrimitiveWrapper(java.lang.Integer.class.getName())); - assertTrue(ClassName.isVariablePrimitiveWrapper(java.lang.Float.class.getName())); - assertTrue(ClassName.isVariablePrimitiveWrapper(java.lang.Boolean.class.getName())); - - assertFalse(ClassName.isVariablePrimitiveWrapper(java.lang.Number.class.getName())); - assertFalse(ClassName.isVariablePrimitiveWrapper(java.lang.String.class.getName())); - assertFalse(ClassName.isVariablePrimitiveWrapper(java.lang.Object.class.getName())); - } - - public void testGetWrapperClassName() { - assertEquals(java.lang.Void.class.getName(), ClassName.getWrapperClassName(void.class.getName())); - assertEquals(java.lang.Integer.class.getName(), ClassName.getWrapperClassName(int.class.getName())); - assertEquals(java.lang.Float.class.getName(), ClassName.getWrapperClassName(float.class.getName())); - assertEquals(java.lang.Boolean.class.getName(), ClassName.getWrapperClassName(boolean.class.getName())); - - assertNull(ClassName.getWrapperClassName(java.lang.String.class.getName())); - } - - public void testGetPrimitiveClassName() { - assertEquals(void.class.getName(), ClassName.getPrimitiveClassName(java.lang.Void.class.getName())); - assertEquals(int.class.getName(), ClassName.getPrimitiveClassName(java.lang.Integer.class.getName())); - assertEquals(float.class.getName(), ClassName.getPrimitiveClassName(java.lang.Float.class.getName())); - assertEquals(boolean.class.getName(), ClassName.getPrimitiveClassName(java.lang.Boolean.class.getName())); - - assertNull(ClassName.getPrimitiveClassName(java.lang.String.class.getName())); - } - - public void testAreAutoboxEquivalents() { - assertTrue(ClassName.areAutoboxEquivalents(Integer.class.getName(), Integer.class.getName())); - assertTrue(ClassName.areAutoboxEquivalents(int.class.getName(), Integer.class.getName())); - assertTrue(ClassName.areAutoboxEquivalents(Integer.class.getName(), int.class.getName())); - assertFalse(ClassName.areAutoboxEquivalents(int.class.getName(), Boolean.class.getName())); - assertTrue(ClassName.areAutoboxEquivalents(String.class.getName(), String.class.getName())); - } - - public void testForCode() { - assertEquals("byte", ClassName.forCode('B')); - assertEquals("char", ClassName.forCode('C')); - assertEquals("double", ClassName.forCode('D')); - assertEquals("float", ClassName.forCode('F')); - assertEquals("int", ClassName.forCode('I')); - assertEquals("long", ClassName.forCode('J')); - assertEquals("short", ClassName.forCode('S')); - assertEquals("boolean", ClassName.forCode('Z')); - assertEquals("void", ClassName.forCode('V')); - - assertNull(ClassName.forCode('X')); - - assertEquals("byte", ClassName.forCode((int) 'B')); - assertEquals("char", ClassName.forCode((int) 'C')); - assertEquals("double", ClassName.forCode((int) 'D')); - assertEquals("float", ClassName.forCode((int) 'F')); - assertEquals("int", ClassName.forCode((int) 'I')); - assertEquals("long", ClassName.forCode((int) 'J')); - assertEquals("short", ClassName.forCode((int) 'S')); - assertEquals("boolean", ClassName.forCode((int) 'Z')); - assertEquals("void", ClassName.forCode((int) 'V')); - - assertNull(ClassName.forCode((int) 'X')); - } - - public void testGetCodeForClassName() { - assertEquals('I', ClassName.getCodeForClassName(int.class.getName())); - assertEquals('I', ClassName.getCodeForClassName("int")); - assertEquals('B', ClassName.getCodeForClassName(byte.class.getName())); - assertEquals('B', ClassName.getCodeForClassName("byte")); - - assertEquals((char) 0, ClassName.getCodeForClassName(java.lang.Object.class.getName())); - } - - public void testConstructor() { - boolean exCaught = false; - try { - Object at = ReflectionTools.newInstance(ClassName.class); - fail("bogus: " + at); //$NON-NLS-1$ - } catch (RuntimeException ex) { - if (ex.getCause() instanceof InvocationTargetException) { - if (ex.getCause().getCause() instanceof UnsupportedOperationException) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClasspathTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClasspathTests.java deleted file mode 100644 index 6542662416..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClasspathTests.java +++ /dev/null @@ -1,402 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.Classpath; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.Tools; - -@SuppressWarnings("nls") -public class ClasspathTests extends TestCase { - private static final String JAVA_HOME = System.getProperty("java.home"); - - public ClasspathTests(String name) { - super(name); - } - - public void testCompressed() { - String path = ""; - - // no changes - path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;;;;C:\\jdk\\jaws.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;;;")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - // no changes - path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\..\\jdk\\i18n.jar;C:\\jdk\\jaws.jar")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - path = new Classpath(this.morph("C:\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk1\\jdk2\\jdk3\\..\\..\\..\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\jaws.jar")).compressed().getPath(); - assertEquals(this.morph("C:\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path); - - } - - public void testConvertToClassName() { - String fileName = "java/lang/String.class"; - File file = new File(fileName); - String className = Classpath.convertToClassName(file); - assertEquals(java.lang.String.class.getName(), className); - } - - public void testConvertToClass() throws ClassNotFoundException { - String fileName = "java/lang/String.class"; - File file = new File(fileName); - Class javaClass = Classpath.convertToClass(file); - assertEquals(java.lang.String.class, javaClass); - } - - public void testConvertToArchiveClassFileEntryName() { - String fileName = Classpath.convertToArchiveClassFileEntryName(java.lang.String.class); - assertEquals("java/lang/String.class", fileName); - } - - public void testConvertToArchiveEntryNameBase() { - String fileName = Classpath.convertToArchiveEntryNameBase(java.lang.String.class); - assertEquals("java/lang/String", fileName); - } - - public void testConvertToClassFileName() { - char sc = File.separatorChar; - String fileName = Classpath.convertToClassFileName(java.lang.String.class); - assertEquals("java" + sc + "lang" + sc + "String.class", fileName); - } - - public void testConvertToClassFileString() { - char sc = File.separatorChar; - File file = Classpath.convertToClassFile(java.lang.String.class.getName()); - assertEquals("java" + sc + "lang" + sc + "String.class", file.getPath()); - } - - public void testConvertToClassFileClass() { - char sc = File.separatorChar; - File file = Classpath.convertToClassFile(java.lang.String.class); - assertEquals("java" + sc + "lang" + sc + "String.class", file.getPath()); - } - - public void testConvertToJavaFileName() { - char sc = File.separatorChar; - String fileName = Classpath.convertToJavaFileName(java.lang.String.class); - assertEquals("java" + sc + "lang" + sc + "String.java", fileName); - } - - public void testConvertToJavaFileString() { - char sc = File.separatorChar; - File file = Classpath.convertToJavaFile(java.lang.String.class.getName()); - assertEquals("java" + sc + "lang" + sc + "String.java", file.getPath()); - } - - public void testConvertToJavaFileClass() { - char sc = File.separatorChar; - File file = Classpath.convertToJavaFile(java.lang.String.class); - assertEquals("java" + sc + "lang" + sc + "String.java", file.getPath()); - } - - public void testConvertToFileNameBase() { - char sc = File.separatorChar; - String fileName = Classpath.convertToFileNameBase(java.lang.String.class); - assertEquals("java" + sc + "lang" + sc + "String", fileName); - } - - public void testConvertToURLs() { - Iterator entries = new Classpath(this.morph("C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getURLs().iterator(); - assertEquals(this.morphURL("/C:/jdk/rt.jar"), entries.next().getPath()); - assertEquals(this.morphURL("/C:/jdk/i18n.jar"), entries.next().getPath()); - assertEquals(this.morphURL("/C:/jdk/jaws.jar"), entries.next().getPath()); - assertEquals(this.morphURL("/C:/foo/classes"), entries.next().getPath()); - assertEquals(this.morphURL("/C:/bar/bar.jar"), entries.next().getPath()); - assertFalse(entries.hasNext()); - } - - public void testGetEntries() { - Classpath cp = new Classpath(this.morph("C:\\jdk\\rt.jar;;.;C:\\jdk\\i18n.jar;;;C:\\jdk\\jaws.jar;;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\bar\\bar.jar;")); - Iterator entries = cp.getEntries().iterator(); - assertEquals(this.morph("C:\\jdk\\rt.jar"), entries.next().getFileName()); - assertEquals(this.morph("."), entries.next().getFileName()); - assertEquals(this.morph("C:\\jdk\\i18n.jar"), entries.next().getFileName()); - assertEquals(this.morph("C:\\jdk\\jaws.jar"), entries.next().getFileName()); - assertEquals(this.morph("C:\\foo\\classes"), entries.next().getFileName()); - assertEquals(this.morph("C:\\bar\\bar.jar"), entries.next().getFileName()); - assertEquals(this.morph("C:\\bar\\bar.jar"), entries.next().getFileName()); - assertFalse(entries.hasNext()); - - cp = cp.compressed(); - entries = cp.getEntries().iterator(); - assertEquals(this.morph("C:\\jdk\\rt.jar"), entries.next().getFileName()); - assertEquals(this.morph("."), entries.next().getFileName()); - assertEquals(this.morph("C:\\jdk\\i18n.jar"), entries.next().getFileName()); - assertEquals(this.morph("C:\\jdk\\jaws.jar"), entries.next().getFileName()); - assertEquals(this.morph("C:\\foo\\classes"), entries.next().getFileName()); - assertEquals(this.morph("C:\\bar\\bar.jar"), entries.next().getFileName()); - assertFalse(entries.hasNext()); - } - - public void testGetEntryForFileNamed() { - Classpath.Entry entry = null; - - // in the middle - qualified - entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar"); - assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName()); - - // in the middle - unqualified - entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;rt.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar"); - assertEquals("rt.jar", entry.getFileName()); - - // at the beginning - qualified - entry = new Classpath(this.morph("C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar"); - assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName()); - - // at the beginning - unqualified - entry = new Classpath(this.morph("rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar"); - assertEquals("rt.jar", entry.getFileName()); - - // at the end - qualified - entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rt.jar")).getEntryForFileNamed("rt.jar"); - assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName()); - - // at the end - unqualified - entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;rt.jar")).getEntryForFileNamed("rt.jar"); - assertEquals("rt.jar", entry.getFileName()); - - // alone - qualified - entry = new Classpath(this.morph("C:\\jdk\\rt.jar")).getEntryForFileNamed("rt.jar"); - assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName()); - - // alone - unqualified - entry = new Classpath("rt.jar").getEntryForFileNamed("rt.jar"); - assertEquals("rt.jar", entry.getFileName()); - - // trick entry at the beginning - entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar"); - assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName()); - - // trick entry in the middle - entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar"); - assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName()); - - // trick entry at the end - entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rtrtrt.jar")).getEntryForFileNamed("rt.jar"); - assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName()); - - // missing - entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rtrtrt.jar")).getEntryForFileNamed("rt.jar"); - assertEquals("path entry should not be found", null, entry); - - } - - public void testGetEntryForClassNamed() { - assertNotNull(Classpath.completeClasspath().getEntryForClassNamed(java.lang.String.class.getName())); - assertNull(Classpath.completeClasspath().getEntryForClassNamed("foo.bar.Baz")); - } - - public void testLocationForClass() { - Class javaClass = Classpath.class; - File entry = new File(Classpath.locationFor(javaClass)); - if (entry.isFile() || entry.isDirectory()) { - assertTrue(entry.exists()); - } - if (entry.isDirectory()) { - assertTrue(new File(entry, Classpath.convertToClassFileName(javaClass)).exists()); - } - } - - public void testRtJarName() throws IOException { - File rtFile = new File(Classpath.rtJarName()); - assertTrue("rt.jar does not exist", rtFile.exists()); - - JarFile rtJarFile = new JarFile(rtFile); - JarEntry entry = rtJarFile.getJarEntry("java/lang/Object.class"); - rtJarFile.close(); - assertTrue("bogus rt.jar", entry != null); - } - - public void testJREClassNames() { - assertTrue("Vector is missing from JRE class names", CollectionTools.contains(Classpath.bootClasspath().getClassNames(), java.util.Vector.class.getName())); - assertTrue("File is missing from JRE class names", CollectionTools.contains(Classpath.bootClasspath().getClassNames(), java.io.File.class.getName())); - } - - public void testJavaExtensionDirectoryNames() { - char sep = File.separatorChar; - String stdExtDirName = JAVA_HOME + sep + "lib" + sep + "ext"; - assertTrue("standard extension dir name missing: " + stdExtDirName, ArrayTools.contains(Classpath.javaExtensionDirectoryNames(), stdExtDirName)); - } - - public void testJavaExtensionDirectories() { - char sep = File.separatorChar; - File stdExtDir = new File(JAVA_HOME + sep + "lib" + sep + "ext"); - assertTrue("standard extension dir missing: " + stdExtDir.getParent(), ArrayTools.contains(Classpath.javaExtensionDirectories(), stdExtDir)); - } - - public void testJavaExtensionClasspathEntries() { - char sep = File.separatorChar; - String jdk = System.getProperty("java.version"); - if (jdk.startsWith("1.4") || jdk.startsWith("1.5") || jdk.startsWith("1.6")) { - Collection jarNames = new ArrayList(); - Iterable entries = Classpath.javaExtensionClasspath().getEntries(); - for (Classpath.Entry entry : entries) { - jarNames.add(entry.getFileName()); - } - String stdExtJarName = JAVA_HOME + sep + "lib" + sep + "ext" + sep + "dnsns.jar"; - String msg = "jdk 1.4.x standard extension jar missing: " + stdExtJarName; - boolean jarPresent = jarNames.contains(stdExtJarName); - if (Tools.jvmIsSun() || (Tools.jvmIsIBM() && jdk.startsWith("1.6"))) { - assertTrue(msg, jarPresent); - } - } else { - fail("we need to update this test for the current jdk"); - } - } - - public void testJavaExtensionClassNames() { - String jdk = System.getProperty("java.version"); - if (jdk.startsWith("1.4") || jdk.startsWith("1.5") || jdk.startsWith("1.6")) { - String className = "sun.net.spi.nameservice.dns.DNSNameService"; - String msg = "jdk 1.4.x standard extension class missing: " + className; - boolean classPresent = CollectionTools.contains(Classpath.javaExtensionClasspath().classNames(), className); - if (Tools.jvmIsSun() || (Tools.jvmIsIBM() && jdk.startsWith("1.6"))) { - assertTrue(msg, classPresent); - } - } else { - fail("we need to update this test for the current jdk"); - } - } - - public void testJavaClasspathClassNames() { - String className = this.getClass().getName(); - ClassLoader cl = this.getClass().getClassLoader(); - // make sure we are running under the "normal" class loader; - // when the tests are executed as an ANT task, they are run under - // an ANT class loader and the "Java" classpath does not include this class - if (cl.getClass().getName().startsWith("sun.misc")) { - assertTrue("class missing: " + className, CollectionTools.contains(Classpath.javaClasspath().getClassNames(), className)); - } - } - - public void testCompleteClasspathClassNames() { - String className = this.getClass().getName(); - ClassLoader cl = this.getClass().getClassLoader(); - // make sure we are running under the "normal" class loader; - // when the tests are executed as an ANT task, they are run under - // an ANT class loader and the "Java" classpath does not include this class - if (cl.getClass().getName().startsWith("sun.misc")) { - assertTrue("class missing: " + className, CollectionTools.contains(Classpath.completeClasspath().getClassNames(), className)); - } - } - - public void testClasspathForClass() { - assertNotNull(Classpath.classpathFor(java.lang.String.class)); - } - - public void testAddClassNamesTo() { - Collection classNames = new ArrayList(1000); - Classpath.bootClasspath().addClassNamesTo(classNames); - assertTrue(classNames.contains(java.util.Vector.class.getName())); - } - - public void testToString() { - assertNotNull(Classpath.bootClasspath().toString()); - } - - public void testEntry_getCanonicalFile() { - Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName()); - assertTrue(entry.getCanonicalFile().getPath().endsWith(".jar")); - } - - public void testEntry_getCanonicalFileName() { - Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName()); - String name = entry.getCanonicalFileName(); - if (Tools.jvmIsSun()) { - assertTrue(name.endsWith("rt.jar")); - } else if (Tools.jvmIsIBM()) { - assertTrue(name.endsWith("vm.jar")); - } - } - - public void testEntry_equals() { - Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName()); - assertFalse(entry.equals("foo")); - } - - public void testEntry_containsClass() { - Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName()); - assertTrue(entry.contains(java.lang.String.class)); - } - - public void testEntry_containsString() { - Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName()); - assertTrue(entry.contains(java.lang.String.class.getName())); - } - - public void testEntry_getClassNames() { - Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName()); - assertTrue(CollectionTools.contains(entry.getClassNames(), java.lang.String.class.getName())); - } - - public void testEntry_classNames() { - Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName()); - assertTrue(CollectionTools.contains(entry.classNames(), java.lang.String.class.getName())); - } - - /** - * morph the specified path to a platform-independent path - */ - private String morph(String path) { - String result = path; - result = result.replace('\\', File.separatorChar); - result = result.replace(';', File.pathSeparatorChar); - if (!ArrayTools.contains(File.listRoots(), new File("C:\\"))) { - result = result.replaceAll("C:", ""); - } - return result; - } - - /** - * morph the specified URL to a platform-independent path - */ - private String morphURL(String url) { - String result = url; - if (!ArrayTools.contains(File.listRoots(), new File("C:\\"))) { - result = result.replaceAll("/C:", ""); - } - return result; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CollectionToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CollectionToolsTests.java deleted file mode 100644 index a397d85f30..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CollectionToolsTests.java +++ /dev/null @@ -1,2354 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.ListIterator; -import java.util.NoSuchElementException; -import java.util.Random; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.Vector; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.Range; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.ReverseComparator; -import org.eclipse.jpt.common.utility.internal.enumerations.EmptyEnumeration; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; - -@SuppressWarnings("nls") -public class CollectionToolsTests extends TestCase { - - public CollectionToolsTests(String name) { - super(name); - } - - - // ********** add all ********** - - public void testAddAllCollectionIterable_StringModified() { - List list1 = this.buildStringList1(); - Iterable iterable2 = this.buildStringList2(); - assertTrue(CollectionTools.addAll(list1, iterable2.iterator())); - assertEquals(6, list1.size()); - assertTrue(list1.containsAll(this.buildStringList2())); - } - - public void testAddAllCollectionIterable_StringUnmodified() { - Set set1 = this.buildStringSet1(); - Iterable iterable3 = this.buildStringList1(); // same elements as set1 - assertFalse(CollectionTools.addAll(set1, iterable3.iterator())); - assertEquals(3, set1.size()); - assertTrue(set1.containsAll(this.buildStringList1())); - } - - public void testAddAllCollectionIterable_ObjectModified() { - List list1 = this.buildObjectList1(); - Iterable iterable2 = this.buildStringList2(); - assertTrue(CollectionTools.addAll(list1, iterable2)); - assertEquals(6, list1.size()); - assertTrue(list1.containsAll((List) iterable2)); - } - - public void testAddAllCollectionIterable_ObjectUnmodified() { - Set set1 = this.buildObjectSet1(); - Iterable iterable3 = this.buildStringList1(); // same elements as set1 - assertFalse(CollectionTools.addAll(set1, iterable3)); - assertEquals(3, set1.size()); - assertTrue(set1.containsAll((List) iterable3)); - } - - public void testAddAllCollectionIterable_EmptyIterable() { - Set set1 = this.buildObjectSet1(); - assertFalse(CollectionTools.addAll(set1, EmptyIterable.instance())); - assertEquals(3, set1.size()); - } - - public void testAddAllCollectionIterableInt_Modified() { - List list1 = this.buildStringList1(); - List list2 = this.buildStringList2(); - Iterable iterable2 = list2; - assertTrue(CollectionTools.addAll(list1, iterable2, list2.size())); - assertEquals(6, list1.size()); - assertTrue(list1.containsAll(this.buildStringList2())); - } - - public void testAddAllCollectionIterableInt_Unmodified() { - Set set1 = this.buildStringSet1(); - List list1 = this.buildStringList1(); // same elements as set1 - Iterable iterable3 = list1; - assertFalse(CollectionTools.addAll(set1, iterable3, list1.size())); - assertEquals(3, set1.size()); - assertTrue(set1.containsAll(this.buildStringList1())); - } - - public void testAddAllCollectionIterator_StringModified() { - List list1 = this.buildStringList1(); - List list2 = this.buildStringList2(); - assertTrue(CollectionTools.addAll(list1, list2.iterator())); - assertEquals(6, list1.size()); - assertTrue(list1.containsAll(list2)); - } - - public void testAddAllCollectionIterator_StringUnmodified() { - Set set1 = this.buildStringSet1(); - List list3 = this.buildStringList1(); // same elements as s1 - assertFalse(CollectionTools.addAll(set1, list3.iterator())); - assertEquals(3, set1.size()); - assertTrue(set1.containsAll(list3)); - } - - public void testAddAllCollectionIterator_ObjectModified() { - List list1 = this.buildObjectList1(); - List list2 = this.buildStringList2(); - assertTrue(CollectionTools.addAll(list1, list2.iterator())); - assertEquals(6, list1.size()); - assertTrue(list1.containsAll(list2)); - } - - public void testAddAllCollectionIterator_ObjectUnmodified() { - Set set1 = this.buildObjectSet1(); - List list3 = this.buildStringList1(); // same elements as s1 - assertFalse(CollectionTools.addAll(set1, list3.iterator())); - assertEquals(3, set1.size()); - assertTrue(set1.containsAll(list3)); - } - - public void testAddAllCollectionIterator_EmptyIterator() { - List list1 = this.buildStringList1(); - assertFalse(CollectionTools.addAll(list1, EmptyIterator.instance())); - assertEquals(3, list1.size()); - } - - public void testAddAllCollectionIteratorInt_Modified() { - List list1 = this.buildStringList1(); - List list2 = this.buildStringList2(); - assertTrue(CollectionTools.addAll(list1, list2.iterator(), 3)); - assertEquals(6, list1.size()); - assertTrue(list1.containsAll(list2)); - } - - public void testAddAllCollectionIteratorInt_Unmodified() { - Set set1 = this.buildStringSet1(); - List list3 = this.buildStringList1(); // same elements as s1 - assertFalse(CollectionTools.addAll(set1, list3.iterator(), 3)); - assertEquals(3, set1.size()); - assertTrue(set1.containsAll(list3)); - } - - public void testAddAllCollectionIteratorInt_EmptyIterator() { - List list1 = this.buildStringList1(); - assertFalse(CollectionTools.addAll(list1, EmptyIterator.instance(), 0)); - assertEquals(3, list1.size()); - } - - public void testAddAllCollectionObjectArray_StringModified() { - List list = this.buildStringList1(); - String[] a = this.buildStringArray1(); - assertTrue(CollectionTools.addAll(list, a)); - assertEquals(6, list.size()); - assertTrue(list.containsAll(CollectionTools.collection(a))); - } - - public void testAddAllCollectionObjectArray_StringListEmptyArray() { - List list = this.buildStringList1(); - assertFalse(CollectionTools.addAll(list, new String[0])); - } - - public void testAddAllCollectionObjectArray_StringUnmodified() { - Set set = this.buildStringSet1(); - String[] a = this.buildStringArray1(); - assertFalse(CollectionTools.addAll(set, a)); - assertEquals(3, set.size()); - assertTrue(set.containsAll(CollectionTools.collection(a))); - - assertFalse(CollectionTools.addAll(set, new String[0])); - } - - public void testAddAllCollectionObjectArray_StringSetEmptyArray() { - Set set = this.buildStringSet1(); - assertFalse(CollectionTools.addAll(set, new String[0])); - } - - public void testAddAllCollectionObjectArray_ObjectModified() { - List list = this.buildObjectList1(); - String[] a = this.buildStringArray1(); - - assertTrue(CollectionTools.addAll(list, a)); - assertEquals(6, list.size()); - assertTrue(list.containsAll(CollectionTools.collection(a))); - } - - public void testAddAllCollectionObjectArray_ObjectUnmodified() { - String[] a = this.buildStringArray1(); - Set set = this.buildObjectSet1(); - assertFalse(CollectionTools.addAll(set, a)); - assertEquals(3, set.size()); - assertTrue(set.containsAll(CollectionTools.collection(a))); - } - - public void testAddAllListIntObjectArray() { - List list = this.buildStringList1(); - CollectionTools.addAll(list, 2, new String[] { "X", "X", "X" }); - assertEquals(6, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray())); - } - - public void testAddAllListIntObjectArray_Zero() { - List list = new ArrayList(); - CollectionTools.addAll(list, 0, new String[] { "X", "X", "X" }); - assertEquals(3, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray())); - } - - public void testAddAllListIntObjectArray_EmptyArray() { - List list = this.buildStringList1(); - CollectionTools.addAll(list, 2, new String[0]); - assertEquals(3, list.size()); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray())); - } - - public void testAddAllListIntIterable() { - List list = this.buildStringList1(); - Iterable iterable = Arrays.asList(new String[] { "X", "X", "X" }); - CollectionTools.addAll(list, 2, iterable); - assertEquals(6, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray())); - } - - public void testAddAllListIntIterable_Zero() { - List list = new ArrayList(); - Iterable iterable = Arrays.asList(new String[] { "X", "X", "X" }); - CollectionTools.addAll(list, 0, iterable); - assertEquals(3, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray())); - } - - public void testAddAllListIntIterable_EmptyIterable() { - List list = this.buildStringList1(); - Iterable iterable = EmptyIterable.instance(); - CollectionTools.addAll(list, 2, iterable); - assertEquals(3, list.size()); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray())); - } - - public void testAddAllListIntIterableInt() { - List list = this.buildStringList1(); - Iterable iterable = Arrays.asList(new String[] { "X", "X", "X" }); - CollectionTools.addAll(list, 2, iterable, 3); - assertEquals(6, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray())); - } - - public void testAddAllListIntIterableInt_Zero() { - List list = new ArrayList(); - Iterable iterable = Arrays.asList(new String[] { "X", "X", "X" }); - CollectionTools.addAll(list, 0, iterable, 3); - assertEquals(3, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray())); - } - - public void testAddAllListIntIterableInt_EmptyIterable() { - List list = this.buildStringList1(); - Iterable iterable = EmptyIterable.instance(); - CollectionTools.addAll(list, 2, iterable, 0); - assertEquals(3, list.size()); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray())); - } - - public void testAddAllListIntIterator() { - List list = this.buildStringList1(); - Iterator iterator = Arrays.asList(new String[] { "X", "X", "X" }).iterator(); - CollectionTools.addAll(list, 2, iterator); - assertEquals(6, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray())); - } - - public void testAddAllListIntIterator_Zero() { - List list = new ArrayList(); - Iterator iterator = Arrays.asList(new String[] { "X", "X", "X" }).iterator(); - CollectionTools.addAll(list, 0, iterator); - assertEquals(3, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray())); - } - - public void testAddAllListIntIterator_EmptyIterator() { - List list = this.buildStringList1(); - Iterator iterator = EmptyIterator.instance(); - CollectionTools.addAll(list, 2, iterator); - assertEquals(3, list.size()); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray())); - } - - public void testAddAllListIntIteratorInt() { - List list = this.buildStringList1(); - Iterator iterator = Arrays.asList(new String[] { "X", "X", "X" }).iterator(); - CollectionTools.addAll(list, 2, iterator, 3); - assertEquals(6, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray())); - } - - public void testAddAllListIntIteratorInt_Zero() { - List list = new ArrayList(); - Iterator iterator = Arrays.asList(new String[] { "X", "X", "X" }).iterator(); - CollectionTools.addAll(list, 0, iterator, 3); - assertEquals(3, list.size()); - assertTrue(list.contains("X")); - assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray())); - } - - public void testAddAllListIntIteratorInt_EmptyIterator() { - List list = this.buildStringList1(); - Iterator iterator = EmptyIterator.instance(); - CollectionTools.addAll(list, 2, iterator, 0); - assertEquals(3, list.size()); - assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray())); - } - - - // ********** bag ********** - - public void testBagEnumeration_String() { - Bag b = CollectionTools.bag(this.buildStringVector1().elements()); - assertEquals(3, b.size()); - assertTrue(b.containsAll(this.buildStringVector1())); - } - - public void testBagEnumeration_Object() { - Bag b = CollectionTools.bag(this.buildStringVector1().elements()); - assertEquals(3, b.size()); - assertTrue(b.containsAll(this.buildStringVector1())); - } - - public void testBagEnumeration_Empty() { - Bag b = CollectionTools.bag(EmptyEnumeration.instance()); - assertEquals(0, b.size()); - } - - public void testBagEnumerationInt() { - Bag b = CollectionTools.bag(this.buildStringVector1().elements(), 3); - assertEquals(3, b.size()); - assertTrue(b.containsAll(this.buildStringVector1())); - } - - public void testBagEnumerationInt_Empty() { - Bag b = CollectionTools.bag(EmptyEnumeration.instance(), 3); - assertEquals(0, b.size()); - } - - public void testBagIterable() { - Iterable iterable = this.buildStringList1(); - Bag b = CollectionTools.bag(iterable); - assertEquals(3, b.size()); - assertTrue(b.containsAll(this.buildStringList1())); - } - - public void testBagIterableInt() { - Iterable iterable = this.buildStringList1(); - Bag b = CollectionTools.bag(iterable, 3); - assertEquals(3, b.size()); - assertTrue(b.containsAll(this.buildStringList1())); - } - - public void testBagIterator_String() { - Bag b = CollectionTools.bag(this.buildStringList1().iterator()); - assertEquals(3, b.size()); - assertTrue(b.containsAll(this.buildStringList1())); - } - - public void testBagIterator_StringObject() { - Collection c = new ArrayList(); - c.add("zero"); - c.add("one"); - c.add("two"); - c.add("three"); - Bag b = CollectionTools.bag(c.iterator()); - assertEquals(4, b.size()); - assertTrue(b.containsAll(c)); - } - - public void testBagIterator_Empty() { - Bag b = CollectionTools.bag(EmptyIterator.instance()); - assertEquals(0, b.size()); - } - - public void testBagIteratorInt() { - Bag b = CollectionTools.bag(this.buildStringList1().iterator(), 3); - assertEquals(3, b.size()); - assertTrue(b.containsAll(this.buildStringList1())); - } - - public void testBagIteratorInt_Empty() { - Bag b = CollectionTools.bag(EmptyIterator.instance(), 3); - assertEquals(0, b.size()); - } - - public void testBagObjectArray() { - Bag b = CollectionTools.bag(this.buildStringArray1()); - assertEquals(3, b.size()); - assertTrue(CollectionTools.containsAll(b, (Object[]) this.buildStringArray1())); - } - - public void testBagObjectArray_Vararg() { - Bag b = CollectionTools.bag("foo", "bar", "baz"); - assertEquals(3, b.size()); - assertTrue(CollectionTools.containsAll(b, new Object[]{"foo", "bar", "baz"})); - } - - public void testBagObjectArray_Empty() { - Bag b = CollectionTools.bag(Bag.Empty.instance()); - assertEquals(0, b.size()); - } - - - // ********** collection ********** - - public void testCollectionEnumeration() { - Collection c = CollectionTools.collection(this.buildStringVector1().elements()); - assertEquals(3, c.size()); - assertTrue(c.containsAll(this.buildStringVector1())); - } - - public void testCollectionEnumeration_ObjectString() { - Collection c = CollectionTools.collection(this.buildStringVector1().elements()); - assertEquals(3, c.size()); - assertTrue(c.containsAll(this.buildStringVector1())); - } - - public void testCollectionEnumerationInt() { - Collection c = CollectionTools.collection(this.buildStringVector1().elements(), 3); - assertEquals(3, c.size()); - assertTrue(c.containsAll(this.buildStringVector1())); - } - - public void testCollectionIterable() { - Iterable iterable = this.buildStringList1(); - Collection c = CollectionTools.collection(iterable); - assertEquals(3, c.size()); - assertTrue(c.containsAll(this.buildStringList1())); - } - - public void testCollectionIterableInt() { - Iterable iterable = this.buildStringList1(); - Collection c = CollectionTools.collection(iterable, 3); - assertEquals(3, c.size()); - assertTrue(c.containsAll(this.buildStringList1())); - } - - public void testCollectionIterator() { - Collection c = CollectionTools.collection(this.buildStringList1().iterator()); - assertEquals(3, c.size()); - assertTrue(c.containsAll(this.buildStringList1())); - } - - public void testCollectionIterator_ObjectString() { - Collection c = CollectionTools.collection(this.buildStringList1().iterator()); - assertEquals(3, c.size()); - assertTrue(c.containsAll(this.buildStringList1())); - } - - public void testCollectionIteratorInt() { - Collection c = CollectionTools.collection(this.buildStringList1().iterator(), 3); - assertEquals(3, c.size()); - assertTrue(c.containsAll(this.buildStringList1())); - } - - public void testCollectionObjectArray() { - Collection c = CollectionTools.collection(this.buildStringArray1()); - assertEquals(3, c.size()); - assertTrue(CollectionTools.containsAll(c, (Object[]) this.buildStringArray1())); - } - - - // ********** contains ********** - - public void testContainsEnumerationObject_String() { - Vector v = this.buildStringVector1(); - assertTrue(CollectionTools.contains(v.elements(), "one")); - assertFalse(CollectionTools.contains(v.elements(), null)); - v.add(null); - assertTrue(CollectionTools.contains(v.elements(), null)); - } - - public void testContainsEnumerationObject_Object() { - Vector c = new Vector(); - c.add("zero"); - c.add("one"); - c.add("two"); - c.add("three"); - String one = "one"; - assertTrue(CollectionTools.contains(c.elements(), one)); - assertFalse(CollectionTools.contains(c.elements(), null)); - c.add(null); - assertTrue(CollectionTools.contains(c.elements(), null)); - } - - public void testContainsIterableObject() { - Collection c = this.buildStringList1(); - Iterable iterable = c; - assertTrue(CollectionTools.contains(iterable, "one")); - assertFalse(CollectionTools.contains(iterable, null)); - c.add(null); - assertTrue(CollectionTools.contains(iterable, null)); - } - - public void testContainsIteratorObject_String() { - Collection c = this.buildStringList1(); - assertTrue(CollectionTools.contains(c.iterator(), "one")); - assertFalse(CollectionTools.contains(c.iterator(), null)); - c.add(null); - assertTrue(CollectionTools.contains(c.iterator(), null)); - } - - public void testContainsIteratorObject_Object() { - Collection c = new HashBag(); - c.add("zero"); - c.add("one"); - c.add("two"); - c.add("three"); - String one = "one"; - assertTrue(CollectionTools.contains(c.iterator(), one)); - assertFalse(CollectionTools.contains(c.iterator(), null)); - c.add(null); - assertTrue(CollectionTools.contains(c.iterator(), null)); - } - - - // ********** contains all ********** - - public void testContainsAllCollectionIterable() { - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(this.buildStringList1(), iterable)); - } - - public void testContainsAllCollectionIterator_String() { - assertTrue(CollectionTools.containsAll(this.buildStringList1(), this.buildStringList1().iterator())); - } - - public void testContainsAllCollectionIterator_Object() { - Collection c1 = new ArrayList(); - c1.add("zero"); - c1.add("one"); - c1.add("two"); - Collection c2 = new ArrayList(); - c2.add("two"); - c2.add("zero"); - c2.add("one"); - assertTrue(CollectionTools.containsAll(c1, c2.iterator())); - } - - public void testContainsAllCollectionObjectArray_StringObject() { - assertTrue(CollectionTools.containsAll(this.buildStringList1(), this.buildObjectArray1())); - } - - public void testContainsAllCollectionObjectArray() { - Object[] a = new Object[] { "zero", "one", "two" }; - assertTrue(CollectionTools.containsAll(this.buildStringList1(), a)); - } - - public void testContainsAllIterableCollection() { - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(iterable, this.buildStringList1())); - } - - public void testContainsAllIterableIntCollection() { - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(iterable, 3, this.buildStringList1())); - } - - public void testContainsAllIterableIterable() { - Iterable iterable1 = this.buildStringList1(); - Iterable iterable2 = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(iterable1, iterable2)); - } - - public void testContainsAllIterableIntIterable() { - Iterable iterable1 = this.buildStringList1(); - Iterable iterable2 = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(iterable1, 3, iterable2)); - } - - public void testContainsAllIterableIterator() { - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(iterable, this.buildStringList1().iterator())); - } - - public void testContainsAllIterableIntIterator() { - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(iterable, 3, this.buildStringList1().iterator())); - } - - public void testContainsAllIterableObjectArray() { - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(iterable, this.buildObjectArray1())); - iterable = this.buildStringList2(); - assertFalse(CollectionTools.containsAll(iterable, this.buildObjectArray1())); - } - - public void testContainsAllIterableIntObjectArray() { - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(iterable, 3, this.buildObjectArray1())); - iterable = this.buildStringList2(); - assertFalse(CollectionTools.containsAll(iterable, 3, this.buildObjectArray1())); - } - - public void testContainsAllIteratorCollection_StringString() { - assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildStringList1())); - assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildStringList2())); - } - - public void testContainsAllIteratorCollection_ObjectString() { - Collection c1 = new ArrayList(); - c1.add("zero"); - c1.add("one"); - c1.add("two"); - Collection c2 = new ArrayList(); - c2.add("zero"); - c2.add("one"); - c2.add("two"); - assertTrue(CollectionTools.containsAll(c1.iterator(), c2)); - } - - public void testContainsAllIteratorIntCollection() { - assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), 5, this.buildStringList1())); - assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), 5, this.buildStringList2())); - } - - public void testContainsAllIteratorIterable() { - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), iterable)); - iterable = this.buildStringList2(); - assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), iterable)); - } - - public void testContainsAllIteratorIntIterable() { - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, iterable)); - iterable = this.buildStringList2(); - assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, iterable)); - } - - public void testContainsAllIteratorIterator_StringString() { - assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildStringList1().iterator())); - assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildStringList2().iterator())); - } - - public void testContainsAllIteratorIterator_ObjectString() { - Collection c1 = new ArrayList(); - c1.add("zero"); - c1.add("one"); - c1.add("two"); - Collection c2 = new ArrayList(); - c2.add("zero"); - c2.add("one"); - c2.add("two"); - assertTrue(CollectionTools.containsAll(c1.iterator(), c2.iterator())); - } - - public void testContainsAllIteratorIntIterator() { - assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, this.buildStringList1().iterator())); - assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, this.buildStringList2().iterator())); - } - - public void testContainsAllIteratorObjectArray() { - assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildObjectArray1())); - assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildObjectArray2())); - } - - public void testContainsAllIteratorIntObjectArray() { - assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, this.buildObjectArray1())); - assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, this.buildObjectArray2())); - } - - - // ********** diff ********** - - public void testDiffEndListList() { - List list1 = new ArrayList(); - list1.add("a"); - list1.add("b"); - list1.add("c"); - List list2 = new ArrayList(); - list2.add(new String("a")); - list2.add(new String("b")); - list2.add(new String("c")); - assertEquals(-1, CollectionTools.diffEnd(list1, list2)); - } - - public void testDiffRangeListList() { - List list1 = new ArrayList(); - list1.add("a"); - list1.add("b"); - list1.add("c"); - List list2 = new ArrayList(); - list2.add(new String("a")); - list2.add(new String("b")); - list2.add(new String("c")); - assertEquals(new Range(3, -1), CollectionTools.diffRange(list1, list2)); - } - - public void testDiffStartListList() { - List list1 = new ArrayList(); - list1.add("a"); - list1.add("b"); - list1.add("c"); - List list2 = new ArrayList(); - list2.add(new String("a")); - list2.add(new String("b")); - list2.add(new String("c")); - assertEquals(3, CollectionTools.diffStart(list1, list2)); - } - - - // ********** identity diff ********** - - public void testIdentityDiffEndListList() { - List list1 = new ArrayList(); - list1.add("a"); - list1.add("b"); - list1.add("c"); - List list2 = new ArrayList(); - list2.add("a"); - list2.add("b"); - list2.add("c"); - assertEquals(-1, CollectionTools.identityDiffEnd(list1, list2)); - } - - public void testIdentityDiffRangeListList() { - List list1 = new ArrayList(); - list1.add("a"); - list1.add("b"); - list1.add("c"); - List list2 = new ArrayList(); - list2.add("a"); - list2.add("b"); - list2.add("c"); - assertEquals(new Range(3, -1), CollectionTools.identityDiffRange(list1, list2)); - } - - public void testIdentityDiffStartListList() { - List list1 = new ArrayList(); - list1.add("a"); - list1.add("b"); - list1.add("c"); - List list2 = new ArrayList(); - list2.add("a"); - list2.add("b"); - list2.add("c"); - assertEquals(3, CollectionTools.identityDiffStart(list1, list2)); - } - - - // ********** elements are equal ********** - - public void testElementsAreDifferentIterableIterable() { - List list1 = new ArrayList(); - list1.add("1000"); - list1.add("2000"); - list1.add("3000"); - list1.add("4000"); - - List list2 = new ArrayList(); - - assertTrue(CollectionTools.elementsAreDifferent(list1, list2)); - assertFalse(CollectionTools.elementsAreEqual(list1, list2)); - } - - public void testElementsAreDifferentIteratorIterator() { - List list1 = new ArrayList(); - list1.add("1000"); - list1.add("2000"); - list1.add("3000"); - list1.add("4000"); - - List list2 = new ArrayList(); - - assertTrue(CollectionTools.elementsAreDifferent(list1.iterator(), list2.iterator())); - assertFalse(CollectionTools.elementsAreEqual(list1, list2)); - } - - public void testElementsAreEqualIterableIterable() { - List list1 = new ArrayList(); - list1.add("1000"); - list1.add("2000"); - list1.add("3000"); - list1.add("4000"); - - List list2 = new ArrayList(); - for (int i = 0; i < list1.size(); i++) { - list2.add(String.valueOf((i + 1) * 1000)); - } - assertFalse(CollectionTools.elementsAreIdentical(list1, list2)); - assertFalse(CollectionTools.elementsAreDifferent(list1, list2)); - assertTrue(CollectionTools.elementsAreEqual(list1, list2)); - } - - public void testElementsAreEqualIteratorIterator() { - List list1 = new ArrayList(); - list1.add("1000"); - list1.add("2000"); - list1.add("3000"); - list1.add("4000"); - - List list2 = new ArrayList(); - for (int i = 0; i < list1.size(); i++) { - list2.add(String.valueOf((i + 1) * 1000)); - } - assertFalse(CollectionTools.elementsAreIdentical(list1.iterator(), list2.iterator())); - assertFalse(CollectionTools.elementsAreDifferent(list1.iterator(), list2.iterator())); - assertTrue(CollectionTools.elementsAreEqual(list1.iterator(), list2.iterator())); - } - - - // ********** elements are identical ********** - - public void testElementsAreIdenticalIterableIterable() { - List list1 = new ArrayList(); - list1.add("0"); - list1.add("1"); - list1.add("2"); - list1.add("3"); - Iterable iterable1 = list1; - - List list2 = new ArrayList(); - for (String s : list1) { - list2.add(s); - } - Iterable iterable2 = list2; - assertTrue(CollectionTools.elementsAreIdentical(iterable1, iterable2)); - assertTrue(CollectionTools.elementsAreEqual(iterable1, iterable2)); - } - - public void testElementsAreIdenticalIteratorIterator() { - List list1 = new ArrayList(); - list1.add("0"); - list1.add("1"); - list1.add("2"); - list1.add("3"); - - List list2 = new ArrayList(); - for (String s : list1) { - list2.add(s); - } - assertTrue(CollectionTools.elementsAreIdentical(list1.iterator(), list2.iterator())); - assertTrue(CollectionTools.elementsAreEqual(list1.iterator(), list2.iterator())); - } - - public void testElementsAreIdenticalIteratorIterator_Not() { - List list1 = new ArrayList(); - list1.add("0"); - list1.add("1"); - list1.add("2"); - list1.add("3"); - - List list2 = new ArrayList(); - for (String s : list1) { - list2.add(s); - } - list2.remove(0); - assertFalse(CollectionTools.elementsAreIdentical(list1.iterator(), list2.iterator())); - assertFalse(CollectionTools.elementsAreEqual(list1.iterator(), list2.iterator())); - } - - public void testElementsAreIdenticalIteratorIterator_DifferentSizes() { - List list1 = new ArrayList(); - list1.add("0"); - list1.add("1"); - list1.add("2"); - list1.add("3"); - - List list2 = new ArrayList(); - for (String s : list1) { - list2.add(s); - } - list2.remove(3); - assertFalse(CollectionTools.elementsAreIdentical(list1.iterator(), list2.iterator())); - assertFalse(CollectionTools.elementsAreEqual(list1.iterator(), list2.iterator())); - } - - - // ********** get ********** - - public void testGetIterableInt() { - List list = this.buildStringList1(); - Iterable iterable = list; - String o = CollectionTools.get(iterable, 1); - assertEquals("one", o); - list.add(null); - o = CollectionTools.get(iterable, 3); - assertNull(o); - } - - public void testGetIteratorInt1() { - List list = this.buildStringList1(); - String o = CollectionTools.get(list.iterator(), 1); - assertEquals("one", o); - list.add(null); - o = CollectionTools.get(list.iterator(), list.size() - 1); - assertNull(o); - } - - public void testGetIteratorInt2() { - List list = this.buildStringList1(); - boolean exCaught = false; - try { - CollectionTools.get(list.iterator(), list.size()); - fail(); - } catch (IndexOutOfBoundsException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - // ********** hash code ********** - - public void testHashCodeIterable1() { - Iterable iterable = null; - assertEquals(0, CollectionTools.hashCode(iterable)); - } - - public void testHashCodeIterable2() { - List list = this.buildStringList1(); - Iterable iterable = list; - int hashCode = CollectionTools.hashCode(iterable); - assertEquals(list.hashCode(), hashCode); - - list.add(null); - hashCode = CollectionTools.hashCode(iterable); - assertEquals(list.hashCode(), hashCode); - } - - - // ********** index of ********** - - public void testIndexOfIterableObject_String() { - Iterable iterable = this.buildStringList1(); - assertEquals(1, CollectionTools.indexOf(iterable, "one")); - } - - public void testIndexOfIteratorObject_String() { - List list = this.buildStringList1(); - assertEquals(1, CollectionTools.indexOf(list.iterator(), "one")); - } - - public void testIndexOfIteratorObject_String_Not() { - List list = this.buildStringList1(); - assertEquals(-1, CollectionTools.indexOf(list.iterator(), null)); - assertEquals(-1, CollectionTools.indexOf(list.iterator(), "shazam")); - } - - public void testIndexOfIteratorObject_Null() { - List list = this.buildStringList1(); - list.add(null); - assertEquals(list.size() - 1, CollectionTools.indexOf(list.iterator(), null)); - } - - public void testIndexOfIteratorObject_Object() { - List list = new ArrayList(); - list.add("0"); - list.add("1"); - list.add("2"); - list.add("3"); - - String one = "1"; - assertEquals(1, CollectionTools.indexOf(list.iterator(), one)); - list.add(null); - assertEquals(list.size() - 1, CollectionTools.indexOf(list.iterator(), null)); - } - - - // ********** insertion index of ********** - - public void testInsertionIndexOfListComparableRandomAccess() { - List list = Arrays.asList(new String[] { "A", "C", "D" }); - assertEquals(1, CollectionTools.insertionIndexOf(list, "B")); - - list = Arrays.asList(new String[] { "A", "B", "C", "D" }); - assertEquals(2, CollectionTools.insertionIndexOf(list, "B")); - - list = Arrays.asList(new String[] { "A", "B", "B", "B", "C", "D" }); - assertEquals(4, CollectionTools.insertionIndexOf(list, "B")); - - list = Arrays.asList(new String[] { "A", "B", "B", "B", "C", "D" }); - assertEquals(6, CollectionTools.insertionIndexOf(list, "E")); - - list = Arrays.asList(new String[] { "B", "B", "B", "C", "D" }); - assertEquals(0, CollectionTools.insertionIndexOf(list, "A")); - - list = Arrays.asList(new String[] { "A", "A", "B", "B", "C", "D" }); - assertEquals(2, CollectionTools.insertionIndexOf(list, "A")); - } - - public void testInsertionIndexOfListComparableNonRandomAccess() { - List list = new LinkedList(Arrays.asList(new String[] { "A", "C", "D" })); - assertEquals(1, CollectionTools.insertionIndexOf(list, "B")); - - list = new LinkedList(Arrays.asList(new String[] { "A", "B", "C", "D" })); - assertEquals(1, CollectionTools.insertionIndexOf(list, "B")); - - list = new LinkedList(Arrays.asList(new String[] { "A", "B", "B", "B", "C", "D" })); - assertEquals(1, CollectionTools.insertionIndexOf(list, "B")); - - list = new LinkedList(Arrays.asList(new String[] { "A", "B", "B", "B", "C", "D" })); - assertEquals(6, CollectionTools.insertionIndexOf(list, "E")); - - list = new LinkedList(Arrays.asList(new String[] { "B", "B", "B", "C", "D" })); - assertEquals(0, CollectionTools.insertionIndexOf(list, "A")); - - list = new LinkedList(Arrays.asList(new String[] { "A", "A", "B", "B", "C", "D" })); - assertEquals(0, CollectionTools.insertionIndexOf(list, "A")); - } - - public void testInsertionIndexOfListObjectComparatorRandomAccess() { - Comparator c = new ReverseComparator(); - List list = Arrays.asList(new String[] { "D", "C", "A" }); - assertEquals(2, CollectionTools.insertionIndexOf(list, "B", c)); - - list = Arrays.asList(new String[] { "D", "C", "B", "A" }); - assertEquals(3, CollectionTools.insertionIndexOf(list, "B", c)); - - list = Arrays.asList(new String[] { "D", "C", "B", "B", "B", "A" }); - assertEquals(5, CollectionTools.insertionIndexOf(list, "B", c)); - - list = Arrays.asList(new String[] { "D", "C", "B", "B", "B", "A" }); - assertEquals(0, CollectionTools.insertionIndexOf(list, "E", c)); - - list = Arrays.asList(new String[] { "D", "C", "B", "B", "B" }); - assertEquals(5, CollectionTools.insertionIndexOf(list, "A", c)); - - list = Arrays.asList(new String[] { "D", "C", "B", "B", "A", "A" }); - assertEquals(6, CollectionTools.insertionIndexOf(list, "A", c)); - } - - public void testInsertionIndexOfListObjectComparatorNonRandomAccess() { - Comparator c = new ReverseComparator(); - List list = new LinkedList(Arrays.asList(new String[] { "D", "C", "A" })); - assertEquals(2, CollectionTools.insertionIndexOf(list, "B", c)); - - list = new LinkedList(Arrays.asList(new String[] { "D", "C", "B", "A" })); - assertEquals(2, CollectionTools.insertionIndexOf(list, "B", c)); - - list = new LinkedList(Arrays.asList(new String[] { "D", "C", "B", "B", "B", "A" })); - assertEquals(2, CollectionTools.insertionIndexOf(list, "B", c)); - - list = new LinkedList(Arrays.asList(new String[] { "D", "C", "B", "B", "B", "A" })); - assertEquals(0, CollectionTools.insertionIndexOf(list, "E", c)); - - list = new LinkedList(Arrays.asList(new String[] { "D", "C", "B", "B", "B" })); - assertEquals(5, CollectionTools.insertionIndexOf(list, "A", c)); - - list = new LinkedList(Arrays.asList(new String[] { "D", "C", "B", "B", "A", "A" })); - assertEquals(4, CollectionTools.insertionIndexOf(list, "A", c)); - } - - - // ********** is empty ********** - - public void testIsEmptyIterable() { - assertFalse(CollectionTools.isEmpty(buildObjectList1())); - assertTrue(CollectionTools.isEmpty(EmptyIterable.instance())); - } - - public void testIsEmptyIterator() { - assertFalse(CollectionTools.isEmpty(buildObjectList1().iterator())); - assertTrue(CollectionTools.isEmpty(EmptyIterator.instance())); - } - - - // ********** iterable/iterator ********** - - public void testIterableObjectArray() { - String[] strings = this.buildStringArray1(); - int i = 0; - for (String string : CollectionTools.iterable(strings)) { - assertEquals(strings[i++], string); - } - } - - public void testIteratorObjectArray() { - String[] a = this.buildStringArray1(); - int i = 0; - for (Iterator stream = CollectionTools.iterator(a); stream.hasNext(); i++) { - assertEquals(a[i], stream.next()); - } - } - - - // ********** last ********** - - public void testLastIterable1() { - List list = this.buildStringList1(); - Iterable iterable = list; - assertEquals("two", CollectionTools.last(iterable)); - list.add(null); - assertEquals(null, CollectionTools.last(iterable)); - } - - public void testLastIterable2() { - Iterable iterable = new ArrayList(); - boolean exCaught = false; - try { - CollectionTools.last(iterable); - fail(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testLastIterator1() { - List list = this.buildStringList1(); - assertEquals("two", CollectionTools.last(list.iterator())); - list.add(null); - assertEquals(null, CollectionTools.last(list.iterator())); - } - - public void testLastIterator2() { - List list = new ArrayList(); - boolean exCaught = false; - try { - CollectionTools.last(list.iterator()); - fail(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - // ********** last index of ********** - - public void testLastIndexOfIterableObject() { - List list = this.buildStringList1(); - Iterable iterable = list; - assertEquals(1, CollectionTools.lastIndexOf(iterable, "one")); - list.add(null); - assertEquals(list.size() - 1, CollectionTools.lastIndexOf(iterable, null)); - } - - public void testLastIndexOfIterableIntObject() { - List list = this.buildStringList1(); - Iterable iterable = list; - assertEquals(1, CollectionTools.lastIndexOf(iterable, 23, "one")); - list.add(null); - assertEquals(list.size() - 1, CollectionTools.lastIndexOf(iterable, 42, null)); - } - - public void testLastIndexOfIteratorObject() { - List list = this.buildStringList1(); - assertEquals(1, CollectionTools.lastIndexOf(list.iterator(), "one")); - list.add(null); - assertEquals(list.size() - 1, CollectionTools.lastIndexOf(list.iterator(), null)); - } - - public void testLastIndexOfIteratorObject_Empty() { - assertEquals(-1, CollectionTools.lastIndexOf(EmptyIterator.instance(), "foo")); - } - - public void testLastIndexOfIteratorIntObject() { - List list = this.buildStringList1(); - assertEquals(1, CollectionTools.lastIndexOf(list.iterator(), 3, "one")); - list.add(null); - assertEquals(list.size() - 1, CollectionTools.lastIndexOf(list.iterator(), 4, null)); - } - - public void testLastIndexOfIteratorIntObject_Empty() { - assertEquals(-1, CollectionTools.lastIndexOf(EmptyIterator.instance(), 42, "foo")); - } - - - // ********** list ********** - - public void testListIterable() { - Iterable iterable = this.buildStringList1(); - assertEquals(this.buildStringList1(), CollectionTools.list(iterable)); - } - - public void testListIterableInt() { - Iterable iterable = this.buildStringList1(); - assertEquals(this.buildStringList1(), CollectionTools.list(iterable, 3)); - } - - public void testListIterator_String() { - List list = CollectionTools.list(this.buildStringList1().iterator()); - assertEquals(this.buildStringList1(), list); - } - - public void testListIterator_StringObject() { - List list1 = new ArrayList(); - list1.add("0"); - list1.add("1"); - list1.add("2"); - list1.add("3"); - - List list2 = CollectionTools.list(list1.iterator()); - assertEquals(list1, list2); - } - - public void testListIterator_Empty() { - assertEquals(0, CollectionTools.list(EmptyIterator.instance()).size()); - } - - public void testListIteratorInt() { - List list = CollectionTools.list(this.buildStringList1().iterator(), 3); - assertEquals(this.buildStringList1(), list); - } - - public void testListIteratorInt_Empty() { - assertEquals(0, CollectionTools.list(EmptyIterator.instance(), 5).size()); - } - - public void testListObjectArray() { - List list = CollectionTools.list(this.buildStringArray1()); - assertEquals(this.buildStringList1(), list); - } - - public void testListIteratorObjectArray() { - String[] a = this.buildStringArray1(); - int i = 0; - for (ListIterator stream = CollectionTools.listIterator(a); stream.hasNext(); i++) { - assertEquals(a[i], stream.next()); - } - } - - public void testListIteratorObjectArrayInt() { - String[] a = this.buildStringArray1(); - int i = 1; - for (ListIterator stream = CollectionTools.listIterator(a, 1); stream.hasNext(); i++) { - assertEquals(a[i], stream.next()); - } - } - - - // ********** move ********** - - public void testMoveListIntIntRandomAccess() { - List list = new ArrayList(); - CollectionTools.addAll(list, new String[] { "0", "1", "2", "3", "4", "5" }); - - List result = CollectionTools.move(list, 4, 2); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result.toArray())); - - result = CollectionTools.move(list, 0, 5); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result.toArray())); - - result = CollectionTools.move(list, 2, 4); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray())); - - result = CollectionTools.move(list, 2, 2); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray())); - } - - public void testMoveListIntIntSequentialAccess() { - List list = new LinkedList(); - CollectionTools.addAll(list, new String[] { "0", "1", "2", "3", "4", "5" }); - - List result = CollectionTools.move(list, 4, 2); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result.toArray())); - - result = CollectionTools.move(list, 0, 5); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result.toArray())); - - result = CollectionTools.move(list, 2, 4); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray())); - - result = CollectionTools.move(list, 2, 2); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray())); - } - - public void testMoveListIntIntIntRandomAccess() { - List list = new ArrayList(Arrays.asList(new String[] { "0", "1", "2", "3", "4", "5" })); - - List result = CollectionTools.move(list, 4, 2, 1); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result.toArray())); - - result = CollectionTools.move(list, 0, 5, 1); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result.toArray())); - - result = CollectionTools.move(list, 2, 4, 1); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray())); - - result = CollectionTools.move(list, 2, 4, 2); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray())); - - result = CollectionTools.move(list, 0, 1, 4); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "0", "3", "2", "4", "5", "1" }, result.toArray())); - - result = CollectionTools.move(list, 1, 0, 4); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray())); - - result = CollectionTools.move(list, 1, 1, 4); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray())); - - result = CollectionTools.move(list, 1, 0, 0); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray())); - } - - public void testMoveListIntIntIntSequentialAccess() { - List list = new LinkedList(Arrays.asList(new String[] { "0", "1", "2", "3", "4", "5" })); - - List result = CollectionTools.move(list, 4, 2, 1); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result.toArray())); - - result = CollectionTools.move(list, 0, 5, 1); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result.toArray())); - - result = CollectionTools.move(list, 2, 4, 1); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray())); - - result = CollectionTools.move(list, 2, 4, 2); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray())); - - result = CollectionTools.move(list, 0, 1, 4); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "0", "3", "2", "4", "5", "1" }, result.toArray())); - - result = CollectionTools.move(list, 1, 0, 4); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray())); - - result = CollectionTools.move(list, 1, 1, 4); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray())); - - result = CollectionTools.move(list, 1, 0, 0); - assertSame(list, result); // the array is modified in place and returned - assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray())); - } - - - // ********** remove all ********** - - public void testRemoveAllCollectionIterable() { - Collection c = this.buildStringList1(); - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.removeAll(c, iterable)); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - - c = this.buildStringList1(); - iterable = this.buildStringList2(); - assertFalse(CollectionTools.removeAll(c, iterable)); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - } - - public void testRemoveAllCollectionIterableInt() { - Collection c = this.buildStringList1(); - Iterable iterable = this.buildStringList1(); - assertTrue(CollectionTools.removeAll(c, iterable, 4)); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - - c = this.buildStringList1(); - iterable = this.buildStringList2(); - assertFalse(CollectionTools.removeAll(c, iterable, 55)); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - } - - public void testRemoveAllCollectionIterator_Empty() { - Collection c = this.buildStringList1(); - assertTrue(CollectionTools.removeAll(c, this.buildStringList1().iterator())); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - - c = this.buildStringList1(); - assertFalse(CollectionTools.removeAll(c, this.buildStringList2().iterator())); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - - c = this.buildStringList1(); - assertFalse(CollectionTools.removeAll(c, EmptyIterator.instance())); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - } - - public void testRemoveAllCollectionIteratorInt_Empty() { - Collection c = this.buildStringList1(); - assertTrue(CollectionTools.removeAll(c, this.buildStringList1().iterator(), 5)); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - - c = this.buildStringList1(); - assertFalse(CollectionTools.removeAll(c, this.buildStringList2().iterator(), 5)); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - - c = this.buildStringList1(); - assertFalse(CollectionTools.removeAll(c, EmptyIterator.instance(), 0)); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - } - - public void testRemoveAllCollectionIterator_Duplicates() { - Collection c = new ArrayList(); - c.add("a"); - c.add("a"); - c.add("b"); - c.add("c"); - c.add("d"); - c.add("d"); - String[] a = new String[] { "a", "d" }; - Iterator iterator = new ArrayIterator(a); - assertTrue(CollectionTools.removeAll(c, iterator)); - assertEquals(2, c.size()); - assertFalse(c.contains("a")); - assertTrue(c.contains("b")); - assertTrue(c.contains("c")); - assertFalse(c.contains("d")); - - iterator = new ArrayIterator(a); - assertFalse(CollectionTools.removeAll(c, iterator)); - } - - public void testRemoveAllCollectionIterator_ObjectString() { - Collection c = new ArrayList(); - c.add("a"); - c.add("a"); - c.add("b"); - c.add("c"); - c.add("d"); - c.add("d"); - String[] a = new String[] { "a", "d" }; - Iterator iterator = new ArrayIterator(a); - assertTrue(CollectionTools.removeAll(c, iterator)); - assertEquals(2, c.size()); - assertFalse(c.contains("a")); - assertTrue(c.contains("b")); - assertTrue(c.contains("c")); - assertFalse(c.contains("d")); - - iterator = new ArrayIterator(a); - assertFalse(CollectionTools.removeAll(c, iterator)); - } - - public void testRemoveAllCollectionObjectArray_Empty() { - Collection c = this.buildStringList1(); - assertTrue(CollectionTools.removeAll(c, this.buildObjectArray1())); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - - c = this.buildStringList1(); - assertFalse(CollectionTools.removeAll(c, this.buildObjectArray2())); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - - c = this.buildStringList1(); - assertFalse(CollectionTools.removeAll(c, new Object[0])); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - } - - public void testRemoveAllCollectionObjectArray_Duplicates() { - Collection c = new ArrayList(); - c.add("a"); - c.add("a"); - c.add("b"); - c.add("c"); - c.add("d"); - c.add("d"); - String[] a = new String[] { "a", "d" }; - assertTrue(CollectionTools.removeAll(c, (Object[]) a)); - assertEquals(2, c.size()); - assertFalse(c.contains("a")); - assertTrue(c.contains("b")); - assertTrue(c.contains("c")); - assertFalse(c.contains("d")); - - assertFalse(CollectionTools.removeAll(c,(Object[]) a)); - } - - public void testRemoveAllCollectionObjectArray_MoreDuplicates() { - Collection c = new ArrayList(); - c.add("a"); - c.add("b"); - c.add("c"); - c.add("d"); - c.add("a"); - c.add("d"); - c.add("d"); - c.add("a"); - c.add("c"); - String[] a = new String[] { "a", "d" }; - assertTrue(CollectionTools.removeAll(c, (Object[]) a)); - assertEquals(3, c.size()); - assertFalse(c.contains("a")); - assertTrue(c.contains("b")); - assertTrue(c.contains("c")); - assertFalse(c.contains("d")); - - assertFalse(CollectionTools.removeAll(c, (Object[]) a)); - } - - - // ********** remove all occurrences ********** - - public void testRemoveAllOccurrencesCollectionObject() { - Collection c = this.buildStringList1(); - assertEquals(3, c.size()); - assertFalse(CollectionTools.removeAllOccurrences(c, "three")); - assertTrue(CollectionTools.removeAllOccurrences(c, "two")); - assertFalse(CollectionTools.removeAllOccurrences(c, "two")); - assertEquals(2, c.size()); - - c.add("five"); - c.add("five"); - c.add("five"); - assertEquals(5, c.size()); - assertTrue(CollectionTools.removeAllOccurrences(c, "five")); - assertFalse(CollectionTools.removeAllOccurrences(c, "five")); - assertEquals(2, c.size()); - - c.add(null); - c.add(null); - c.add(null); - assertEquals(5, c.size()); - assertTrue(CollectionTools.removeAllOccurrences(c, null)); - assertFalse(CollectionTools.removeAllOccurrences(c, null)); - assertEquals(2, c.size()); - } - - - // ********** remove elements at index ********** - - public void testRemoveElementsAtIndexListIntInt() { - List list = new ArrayList(Arrays.asList(new String[] { "A", "B", "A", "C", "A", "D" })); - List removed = CollectionTools.removeElementsAtIndex(list, 3, 2); - assertTrue(Arrays.equals(new String[] { "A", "B", "A", "D" }, list.toArray())); - assertTrue(Arrays.equals(new String[] { "C", "A" }, removed.toArray())); - - list = new ArrayList(Arrays.asList(new String[] { "A", "B", "C", "D", "E", "F" })); - removed = CollectionTools.removeElementsAtIndex(list, 3, 3); - assertTrue(Arrays.equals(new String[] { "A", "B", "C" }, list.toArray())); - assertTrue(Arrays.equals(new String[] { "D", "E", "F" }, removed.toArray())); - - list = new ArrayList(Arrays.asList(new String[] { "A", "B", "C", "D", "E", "F" })); - removed = CollectionTools.removeElementsAtIndex(list, 0, 3); - assertTrue(Arrays.equals(new String[] { "D", "E", "F" }, list.toArray())); - assertTrue(Arrays.equals(new String[] { "A", "B", "C" }, removed.toArray())); - } - - - // ********** remove duplicate elements ********** - - public void testRemoveDuplicateElementsList1() { - List list = this.buildStringVector1(); - list.add("zero"); - list.add("zero"); - list.add("two"); - list.add("zero"); - assertTrue(CollectionTools.removeDuplicateElements(list)); - int i = 0; - assertEquals("zero", list.get(i++)); - assertEquals("one", list.get(i++)); - assertEquals("two", list.get(i++)); - assertEquals(i, list.size()); - } - - public void testRemoveDuplicateElementsList2() { - List list = this.buildStringVector1(); - assertFalse(CollectionTools.removeDuplicateElements(list)); - int i = 0; - assertEquals("zero", list.get(i++)); - assertEquals("one", list.get(i++)); - assertEquals("two", list.get(i++)); - assertEquals(i, list.size()); - } - - public void testRemoveDuplicateElementsList_Empty() { - List list = new ArrayList(); - assertFalse(CollectionTools.removeDuplicateElements(list)); - assertEquals(0, list.size()); - } - - public void testRemoveDuplicateElementsList_SingleElement() { - List list = new ArrayList(); - list.add("zero"); - assertFalse(CollectionTools.removeDuplicateElements(list)); - assertEquals(1, list.size()); - } - - - // ********** retain all ********** - - public void testRetainAllCollectionIterable() { - Collection c = this.buildStringList1(); - Iterable iterable = this.buildStringList1(); - assertFalse(CollectionTools.retainAll(c, iterable)); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - - iterable = this.buildStringList2(); - assertTrue(CollectionTools.retainAll(c, iterable)); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - } - - public void testRetainAllCollectionIterableInt() { - Collection c = this.buildStringList1(); - Iterable iterable = this.buildStringList1(); - assertFalse(CollectionTools.retainAll(c, iterable)); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - - iterable = this.buildStringList2(); - assertTrue(CollectionTools.retainAll(c, iterable, 7)); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - } - - public void testRetainAllCollectionIterator() { - Collection c = this.buildStringList1(); - assertFalse(CollectionTools.retainAll(c, this.buildStringList1().iterator())); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - - assertTrue(CollectionTools.retainAll(c, this.buildStringList2().iterator())); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - } - - public void testRetainAllCollectionIterator_ObjectString() { - Collection c1 = new ArrayList(); - c1.add("zero"); - c1.add("one"); - c1.add("two"); - - Collection c2 = new ArrayList(); - c2.add("zero"); - c2.add("one"); - c2.add("two"); - - assertFalse(CollectionTools.retainAll(c1, c2.iterator())); - assertEquals(c2.size(), c1.size()); - assertEquals(c2, c1); - - Collection c3 = new ArrayList(); - c3.add("three"); - c3.add("four"); - c3.add("five"); - } - - public void testRetainAllCollectionIterator_EmptyIterator() { - Collection c = this.buildStringList1(); - assertTrue(CollectionTools.retainAll(c, EmptyIterator.instance())); - assertEquals(0, c.size()); - } - - public void testRetainAllCollectionIterator_EmptyCollection() { - Collection c = new ArrayList(); - assertFalse(CollectionTools.retainAll(c, this.buildStringList1().iterator())); - assertEquals(0, c.size()); - } - - public void testRetainAllCollectionIterator_EmptyCollectionEmptyIterator() { - Collection c = new ArrayList(); - assertFalse(CollectionTools.retainAll(c, EmptyIterator.instance())); - assertEquals(0, c.size()); - } - - public void testRetainAllCollectionIteratorInt() { - Collection c = this.buildStringList1(); - assertFalse(CollectionTools.retainAll(c, this.buildStringList1().iterator(), 8)); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - - assertTrue(CollectionTools.retainAll(c, this.buildStringList2().iterator(), 9)); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - } - - public void testRetainAllCollectionIteratorInt_EmptyIterator() { - Collection c = this.buildStringList1(); - assertTrue(CollectionTools.retainAll(c, EmptyIterator.instance(), 0)); - assertEquals(0, c.size()); - } - - public void testRetainAllCollectionIteratorInt_EmptyCollection() { - Collection c = new ArrayList(); - assertFalse(CollectionTools.retainAll(c, this.buildStringList1().iterator(), 3)); - assertEquals(0, c.size()); - } - - public void testRetainAllCollectionIteratorInt_EmptyCollectionEmptyIterator() { - Collection c = new ArrayList(); - assertFalse(CollectionTools.retainAll(c, EmptyIterator.instance(), 0)); - assertEquals(0, c.size()); - } - - public void testRetainAllCollectionObjectArray() { - Collection c = this.buildStringList1(); - assertFalse(CollectionTools.retainAll(c, this.buildObjectArray1())); - assertEquals(this.buildStringList1().size(), c.size()); - assertEquals(this.buildStringList1(), c); - - assertTrue(CollectionTools.retainAll(c, this.buildObjectArray2())); - assertEquals(0, c.size()); - assertFalse(c.contains("one")); - assertFalse(c.contains("two")); - assertFalse(c.contains("three")); - } - - public void testRetainAllCollectionObjectArray_EmptyObjectArray() { - Collection c = this.buildStringList1(); - assertTrue(CollectionTools.retainAll(c, new Object[0])); - assertEquals(0, c.size()); - } - - public void testRetainAllCollectionObjectArray_EmptyCollection() { - Collection c = new ArrayList(); - assertFalse(CollectionTools.retainAll(c, (Object[]) new String[] { "foo" })); - assertEquals(0, c.size()); - } - - public void testRetainAllCollectionObjectArray_EmptyCollectionEmptyObjectArray() { - Collection c = new ArrayList(); - assertFalse(CollectionTools.retainAll(c, (Object[]) new String[0])); - assertEquals(0, c.size()); - } - - - // ********** reverse list ********** - - public void testReverseListIterable() { - Iterable iterable = this.buildStringList1(); - List actual = CollectionTools.reverseList(iterable); - List expected = this.buildStringList1(); - Collections.reverse(expected); - assertEquals(expected, actual); - } - - public void testReverseListIterableInt() { - Iterable iterable = this.buildStringList1(); - List actual = CollectionTools.reverseList(iterable, 10); - List expected = this.buildStringList1(); - Collections.reverse(expected); - assertEquals(expected, actual); - } - - public void testReverseListIterator_String() { - List actual = CollectionTools.reverseList(this.buildStringList1().iterator()); - List expected = this.buildStringList1(); - Collections.reverse(expected); - assertEquals(expected, actual); - } - - public void testReverseListIterator_Object() { - List actual = CollectionTools.reverseList(this.buildStringList1().iterator()); - List expected = this.buildObjectList1(); - Collections.reverse(expected); - assertEquals(expected, actual); - } - - public void testReverseListIteratorInt() { - List actual = CollectionTools.reverseList(this.buildStringList1().iterator(), 33); - List expected = this.buildStringList1(); - Collections.reverse(expected); - assertEquals(expected, actual); - } - - - // ********** rotate ********** - - public void testRotateList() { - List actual = CollectionTools.rotate(this.buildStringList1()); - List expected = this.buildStringList1(); - Collections.rotate(expected, 1); - assertEquals(expected, actual); - } - - - // ********** set ********** - - public void testSetIterable() { - Iterable iterable = this.buildStringSet1(); - assertEquals(this.buildStringSet1(), CollectionTools.set(iterable)); - } - - public void testSetIterableInt() { - Iterable iterable = this.buildStringSet1(); - assertEquals(this.buildStringSet1(), CollectionTools.set(iterable, 22)); - } - - public void testSetIterator_String() { - assertEquals(this.buildStringSet1(), CollectionTools.set(this.buildStringSet1().iterator())); - } - - public void testSetIterator_Object() { - List list = new ArrayList(); - list.add("0"); - list.add("1"); - list.add("2"); - list.add("3"); - list.add("0"); - list.add("1"); - list.add("2"); - list.add("3"); - Set set = new HashSet(); - set.addAll(list); - - assertEquals(set, CollectionTools.set(list.iterator())); - } - - public void testSetIteratorInt() { - assertEquals(this.buildStringSet1(), CollectionTools.set(this.buildStringSet1().iterator(), 3)); - } - - public void testSetObjectArray() { - assertEquals(this.buildStringSet1(), CollectionTools.set(this.buildStringSet1().toArray())); - } - - - // ********** singleton iterator ********** - - public void testSingletonIterator_String() { - Iterator stream = CollectionTools.singletonIterator("foo"); - assertTrue(stream.hasNext()); - assertEquals("foo", stream.next()); - } - - public void testSingletonIterator_Object() { - Iterator stream = CollectionTools.singletonIterator("foo"); - assertTrue(stream.hasNext()); - assertEquals("foo", stream.next()); - } - - public void testSingletonIterator_Cast() { - Iterator stream = CollectionTools.singletonIterator((Object) "foo"); - assertTrue(stream.hasNext()); - assertEquals("foo", stream.next()); - } - - public void testSingletonListIterator_String() { - ListIterator stream = CollectionTools.singletonListIterator("foo"); - assertTrue(stream.hasNext()); - assertEquals("foo", stream.next()); - assertFalse(stream.hasNext()); - assertTrue(stream.hasPrevious()); - assertEquals("foo", stream.previous()); - } - - - // ********** size ********** - - public void testSizeIterable() { - Iterable iterable = this.buildObjectList1(); - assertEquals(3, CollectionTools.size(iterable)); - } - - public void testSizeIterator() { - assertEquals(3, CollectionTools.size(this.buildObjectList1().iterator())); - } - - - // ********** sort ********** - - public void testSortIterable() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss = new TreeSet(); - ss.addAll(list); - - Iterable iterable1 = list; - Iterable iterable2 = CollectionTools.sort(iterable1); - assertTrue(CollectionTools.elementsAreEqual(ss, iterable2)); - } - - public void testSortIterableInt() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss = new TreeSet(); - ss.addAll(list); - - Iterable iterable1 = list; - Iterable iterable2 = CollectionTools.sort(iterable1, 77); - assertTrue(CollectionTools.elementsAreEqual(ss, iterable2)); - } - - public void testSortIterableComparator() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss = new TreeSet(new ReverseComparator()); - ss.addAll(list); - - Iterable iterable1 = list; - Iterable iterable2 = CollectionTools.sort(iterable1, new ReverseComparator()); - assertTrue(CollectionTools.elementsAreEqual(ss, iterable2)); - } - - public void testSortIterableComparatorInt() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss = new TreeSet(new ReverseComparator()); - ss.addAll(list); - - Iterable iterable1 = list; - Iterable iterable2 = CollectionTools.sort(iterable1, new ReverseComparator(), 77); - assertTrue(CollectionTools.elementsAreEqual(ss, iterable2)); - } - - public void testSortIterator() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss = new TreeSet(); - ss.addAll(list); - - Iterator iterator1 = list.iterator(); - Iterator iterator2 = CollectionTools.sort(iterator1); - assertTrue(CollectionTools.elementsAreEqual(ss.iterator(), iterator2)); - } - - public void testSortIteratorInt() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss = new TreeSet(); - ss.addAll(list); - - Iterator iterator1 = list.iterator(); - Iterator iterator2 = CollectionTools.sort(iterator1, 77); - assertTrue(CollectionTools.elementsAreEqual(ss.iterator(), iterator2)); - } - - public void testSortIteratorComparator() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss = new TreeSet(new ReverseComparator()); - ss.addAll(list); - - Iterator iterator1 = list.iterator(); - Iterator iterator2 = CollectionTools.sort(iterator1, new ReverseComparator()); - assertTrue(CollectionTools.elementsAreEqual(ss.iterator(), iterator2)); - } - - public void testSortIteratorComparatorInt() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss = new TreeSet(new ReverseComparator()); - ss.addAll(list); - - Iterator iterator1 = list.iterator(); - Iterator iterator2 = CollectionTools.sort(iterator1, new ReverseComparator(), 77); - assertTrue(CollectionTools.elementsAreEqual(ss.iterator(), iterator2)); - } - - - // ********** sorted set ********** - - public void testSortedSetIterable() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss1 = new TreeSet(); - ss1.addAll(list); - - Iterable iterable = list; - SortedSet ss2 = CollectionTools.sortedSet(iterable); - assertEquals(ss1, ss2); - } - - public void testSortedSetIterableInt() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss1 = new TreeSet(); - ss1.addAll(list); - - Iterable iterable = list; - SortedSet ss2 = CollectionTools.sortedSet(iterable, 5); - assertEquals(ss1, ss2); - } - - public void testSortedSetIterableComparator() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss1 = new TreeSet(new ReverseComparator()); - ss1.addAll(list); - - Iterable iterable = list; - SortedSet ss2 = CollectionTools.sortedSet(iterable, new ReverseComparator()); - assertEquals(ss1, ss2); - } - - public void testSortedSetIterableComparatorInt() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss1 = new TreeSet(new ReverseComparator()); - ss1.addAll(list); - - Iterable iterable = list; - SortedSet ss2 = CollectionTools.sortedSet(iterable, new ReverseComparator(), 5); - assertEquals(ss1, ss2); - } - - public void testSortedSetIterator() { - assertEquals(this.buildSortedStringSet1(), CollectionTools.sortedSet(this.buildSortedStringSet1().iterator())); - } - - public void testSortedSetIterator_TreeSet() { - SortedSet ss1 = new TreeSet(); - ss1.add("0"); - ss1.add("2"); - ss1.add("3"); - ss1.add("1"); - - SortedSet set2 = CollectionTools.sortedSet(ss1.iterator()); - assertEquals(ss1, set2); - } - - public void testSortedSetIteratorInt() { - assertEquals(this.buildSortedStringSet1(), CollectionTools.sortedSet(this.buildSortedStringSet1().iterator(), 8)); - } - - public void testSortedSetObjectArray() { - assertEquals(this.buildSortedStringSet1(), CollectionTools.sortedSet(this.buildStringSet1().toArray(new String[0]))); - } - - public void testSortedSetObjectArrayComparator() { - ArrayList list = new ArrayList(); - list.add("0"); - list.add("2"); - list.add("3"); - list.add("1"); - - SortedSet ss1 = new TreeSet(new ReverseComparator()); - ss1.addAll(list); - - String[] array = list.toArray(new String[list.size()]); - SortedSet ss2 = CollectionTools.sortedSet(array, new ReverseComparator()); - assertEquals(ss1, ss2); - } - - - // ********** Old School Vector ********** - - public void testVectorIterable() { - Iterable iterable = this.buildStringList1(); - Vector v = CollectionTools.vector(iterable); - assertEquals(3, v.size()); - assertTrue(v.containsAll(this.buildStringList1())); - } - - public void testVectorIterableInt() { - Iterable iterable = this.buildStringList1(); - Vector v = CollectionTools.vector(iterable, 8); - assertEquals(3, v.size()); - assertTrue(v.containsAll(this.buildStringList1())); - } - - public void testVectorIterator_String() { - Vector v = CollectionTools.vector(this.buildStringList1().iterator()); - assertEquals(3, v.size()); - assertTrue(v.containsAll(this.buildStringList1())); - } - - public void testVectorIterator_Object() { - Vector v = CollectionTools.vector(this.buildStringList1().iterator()); - assertEquals(3, v.size()); - assertTrue(v.containsAll(this.buildStringList1())); - } - - public void testVectorIteratorInt() { - Vector v = CollectionTools.vector(this.buildStringList1().iterator(), 7); - assertEquals(3, v.size()); - assertTrue(v.containsAll(this.buildStringList1())); - } - - public void testVectorObjectArray() { - Vector v = CollectionTools.vector(this.buildStringArray1()); - assertEquals(3, v.size()); - assertTrue(v.containsAll(this.buildStringList1())); - } - - - // ********** single-use iterable ********** - - public void testIterableIterator() { - Iterator emptyIterator = EmptyIterator.instance(); - Iterable emptyIterable = CollectionTools.iterable(emptyIterator); - - assertFalse(emptyIterable.iterator().hasNext()); - - boolean exceptionThrown = false; - try { - emptyIterator = emptyIterable.iterator(); - fail("invalid iterator: " + emptyIterator); - } catch (IllegalStateException ise) { - exceptionThrown = true; - } - assertTrue("IllegalStateException not thrown.", exceptionThrown); - } - - public void testIterableIterator_NPE() { - Iterator nullIterator = null; - boolean exceptionThrown = false; - try { - Iterable emptyIterable = CollectionTools.iterable(nullIterator); - fail("invalid iterable: " + emptyIterable); - } catch (NullPointerException ise) { - exceptionThrown = true; - } - assertTrue(exceptionThrown); - } - - public void testIterableIterator_ToString() { - Iterator emptyIterator = EmptyIterator.instance(); - Iterable emptyIterable = CollectionTools.iterable(emptyIterator); - assertNotNull(emptyIterable.toString()); - } - - - // ********** java.util.Collections enhancements ********** - - public void testCopyListList() { - List src = this.buildStringList1(); - List dest = new ArrayList(); - for (String s : src) { - dest.add(s.toUpperCase()); - } - List result = CollectionTools.copy(dest, src); - assertSame(dest, result); - assertTrue(CollectionTools.elementsAreIdentical(src, dest)); - } - - public void testFillListObject() { - List list = this.buildStringList1(); - List result = CollectionTools.fill(list, "foo"); - assertSame(list, result); - for (String string : result) { - assertEquals("foo", string); - } - } - - public void testShuffleList() { - List list = this.buildStringList1(); - List result = CollectionTools.shuffle(list); - assertSame(list, result); - } - - public void testShuffleListRandom() { - List list = this.buildStringList1(); - List result = CollectionTools.shuffle(list, new Random()); - assertSame(list, result); - } - - public void testSortList() { - List list = this.buildStringList1(); - SortedSet ss = new TreeSet(); - ss.addAll(list); - List result = CollectionTools.sort(list); - assertSame(list, result); - assertTrue(CollectionTools.elementsAreEqual(ss, result)); - } - - public void testSwapListIntInt() { - List list = this.buildStringList1(); - List result = CollectionTools.swap(list, 0, 1); - assertSame(list, result); - List original = this.buildStringList1(); - assertEquals(original.get(0), result.get(1)); - assertEquals(original.get(1), result.get(0)); - assertEquals(original.get(2), result.get(2)); - } - - public void testConstructor() { - boolean exCaught = false; - try { - Object at = ReflectionTools.newInstance(CollectionTools.class); - fail("bogus: " + at); //$NON-NLS-1$ - } catch (RuntimeException ex) { - if (ex.getCause() instanceof InvocationTargetException) { - if (ex.getCause().getCause() instanceof UnsupportedOperationException) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - - // ********** test harness ********** - - private Object[] buildObjectArray1() { - return new Object[] { "zero", "one", "two" }; - } - - private String[] buildStringArray1() { - return new String[] { "zero", "one", "two" }; - } - - private Object[] buildObjectArray2() { - return new Object[] { "three", "four", "five" }; - } - - private Vector buildStringVector1() { - Vector v = new Vector(); - this.addToCollection1(v); - return v; - } - - private List buildStringList1() { - List l = new ArrayList(); - this.addToCollection1(l); - return l; - } - - private List buildObjectList1() { - List l = new ArrayList(); - this.addToCollection1(l); - return l; - } - - private void addToCollection1(Collection c) { - c.add("zero"); - c.add("one"); - c.add("two"); - } - - private List buildStringList2() { - List l = new ArrayList(); - this.addToCollection2(l); - return l; - } - - private void addToCollection2(Collection c) { - c.add("three"); - c.add("four"); - c.add("five"); - } - - private Set buildStringSet1() { - Set s = new HashSet(); - this.addToCollection1(s); - return s; - } - - private Set buildObjectSet1() { - Set s = new HashSet(); - this.addToCollection1(s); - return s; - } - - private SortedSet buildSortedStringSet1() { - SortedSet s = new TreeSet(); - this.addToCollection1(s); - return s; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandExecutorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandExecutorTests.java deleted file mode 100644 index 693b9c91b4..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandExecutorTests.java +++ /dev/null @@ -1,113 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.CommandExecutor; -import org.eclipse.jpt.common.utility.internal.ThreadLocalCommandExecutor; - -public class CommandExecutorTests - extends MultiThreadedTestCase -{ - - public CommandExecutorTests(String name) { - super(name); - } - - public void testDefaultCommandExecutor_toString() throws Exception { - CommandExecutor commandExecutor = CommandExecutor.Default.instance(); - assertNotNull(commandExecutor.toString()); - } - - public void testDefaultCommandExecutor_serialization() throws Exception { - CommandExecutor commandExecutor1 = CommandExecutor.Default.instance(); - CommandExecutor commandExecutor2 = TestTools.serialize(commandExecutor1); - assertSame(commandExecutor1, commandExecutor2); - } - - public void testDefaultCommandExecutor() { - TestCommand testCommand = new TestCommand(); - assertEquals(0, testCommand.count); - CommandExecutor commandExecutor = CommandExecutor.Default.instance(); - commandExecutor.execute(testCommand); - assertEquals(1, testCommand.count); - } - - static class TestCommand implements Command { - int count = 0; - public void execute() { - this.count++; - } - } - - public void testThreadLocalCommandExecutor_toString() throws Exception { - CommandExecutor commandExecutor = new ThreadLocalCommandExecutor(); - assertNotNull(commandExecutor.toString()); - } - - public void testThreadLocalCommandExecutor() throws Exception { - ThreadLocalCommandExecutor threadLocalCommandExecutor = new ThreadLocalCommandExecutor(); - TestRunnable testRunnable1 = new TestRunnable(threadLocalCommandExecutor, 1); - Thread thread1 = this.buildThread(testRunnable1); - thread1.run(); - - TestRunnable testRunnable2 = new TestRunnable(threadLocalCommandExecutor, 2); - Thread thread2 = this.buildThread(testRunnable2); - thread2.run(); - - TestRunnable testRunnable3 = new TestRunnable(threadLocalCommandExecutor, 3, null); - Thread thread3 = this.buildThread(testRunnable3); - thread3.run(); - - thread1.join(); - thread2.join(); - thread3.join(); - - assertEquals(1, testRunnable1.testCommand.count); - assertEquals(1, testRunnable1.testCommandExecutor.count); - - assertEquals(2, testRunnable2.testCommand.count); - assertEquals(2, testRunnable2.testCommandExecutor.count); - - assertEquals(3, testRunnable3.testCommand.count); - assertNull(testRunnable3.testCommandExecutor); - } - - static class TestCommandExecutor implements CommandExecutor { - int count = 0; - public void execute(Command command) { - this.count++; - command.execute(); - } - } - - static class TestRunnable implements Runnable { - final ThreadLocalCommandExecutor threadLocalCommandExecutor; - final int executionCount; - final TestCommand testCommand = new TestCommand(); - final TestCommandExecutor testCommandExecutor; - TestRunnable(ThreadLocalCommandExecutor threadLocalCommandExecutor, int executionCount) { - this(threadLocalCommandExecutor, executionCount, new TestCommandExecutor()); - } - TestRunnable(ThreadLocalCommandExecutor threadLocalCommandExecutor, int executionCount, TestCommandExecutor testCommandExecutor) { - super(); - this.threadLocalCommandExecutor = threadLocalCommandExecutor; - this.executionCount = executionCount; - this.testCommandExecutor = testCommandExecutor; - } - public void run() { - this.threadLocalCommandExecutor.set(this.testCommandExecutor); - for (int i = 0; i < this.executionCount; i++) { - this.threadLocalCommandExecutor.execute(this.testCommand); - } - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandRunnableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandRunnableTests.java deleted file mode 100644 index 623b2b2449..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandRunnableTests.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.CommandRunnable; - -@SuppressWarnings("nls") -public class CommandRunnableTests extends TestCase { - boolean commandExecuted = false; - - public CommandRunnableTests(String name) { - super(name); - } - - public void testNullCommand() { - boolean exCaught = false; - try { - Runnable runnable = new CommandRunnable(null); - fail("bogus: " + runnable); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRun() { - Runnable runnable = new CommandRunnable(this.buildCommand()); - runnable.run(); - assertTrue(this.commandExecuted); - } - - public void testToString() { - Runnable runnable = new CommandRunnable(this.buildCommand()); - assertNotNull(runnable.toString()); - } - - private Command buildCommand() { - return new Command() { - public void execute() { - CommandRunnableTests.this.commandExecuted = true; - } - }; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandTests.java deleted file mode 100644 index 0eb8392e8b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CommandTests.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.CommandExecutor; -import org.eclipse.jpt.common.utility.internal.CommandRunnable; -import org.eclipse.jpt.common.utility.internal.RunnableCommand; -import org.eclipse.jpt.common.utility.internal.ThreadLocalCommand; - -public class CommandTests - extends MultiThreadedTestCase -{ - public CommandTests(String name) { - super(name); - } - - public void testNullCommand() { - Command command = Command.Null.instance(); - command.execute(); // just make sure it doesn't blow up? - } - - public void testNullCommand_toString() { - Command command = Command.Null.instance(); - assertNotNull(command.toString()); - } - - public void testNullCommand_serialization() throws Exception { - Command command1 = Command.Null.instance(); - Command command2 = TestTools.serialize(command1); - assertSame(command1, command2); - } - - public void testDisabledCommand() { - Command command = Command.Disabled.instance(); - boolean exCaught = false; - try { - command.execute(); - fail(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testDisabledCommand_toString() { - Command command = Command.Disabled.instance(); - assertNotNull(command.toString()); - } - - public void testDisabledCommand_serialization() throws Exception { - Command command1 = Command.Disabled.instance(); - Command command2 = TestTools.serialize(command1); - assertSame(command1, command2); - } - - public void testRunnableCommand() { - SimpleTestRunnable testRunnable = new SimpleTestRunnable(); - assertFalse(testRunnable.ran); - Command command = new RunnableCommand(testRunnable); - command.execute(); - assertTrue(testRunnable.ran); - } - - static class SimpleTestRunnable implements Runnable { - boolean ran = false; - public void run() { - this.ran = true; - } - } - - public void testCommandRunnable() { - TestCommand testCommand = new TestCommand(); - assertEquals(0, testCommand.count); - Runnable runnable = new CommandRunnable(testCommand); - runnable.run(); - assertEquals(1, testCommand.count); - } - - static class TestCommand implements Command { - int count = 0; - public void execute() { - this.count++; - } - } - - public void testThreadLocalCommand() throws Exception { - ThreadLocalCommand threadLocalCommand = new ThreadLocalCommand(); - TestRunnable testRunnable1 = new TestRunnable(threadLocalCommand, 1); - Thread thread1 = this.buildThread(testRunnable1); - thread1.run(); - - TestRunnable testRunnable2 = new TestRunnable(threadLocalCommand, 2); - Thread thread2 = this.buildThread(testRunnable2); - thread2.run(); - - thread1.join(); - thread2.join(); - - assertEquals(1, testRunnable1.testCommand.count); - - assertEquals(2, testRunnable2.testCommand.count); - } - - static class TestCommandExecutor implements CommandExecutor { - int count = 0; - public void execute(Command command) { - this.count++; - command.execute(); - } - } - - static class TestRunnable implements Runnable { - final ThreadLocalCommand threadLocalCommand; - final int executionCount; - final TestCommand testCommand = new TestCommand(); - TestRunnable(ThreadLocalCommand threadLocalCommand, int executionCount) { - super(); - this.threadLocalCommand = threadLocalCommand; - this.executionCount = executionCount; - } - public void run() { - this.threadLocalCommand.set(this.testCommand); - for (int i = 0; i < this.executionCount; i++) { - this.threadLocalCommand.execute(); - } - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CompositeCommandTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CompositeCommandTests.java deleted file mode 100644 index cfabc54bef..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CompositeCommandTests.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.CommandRunnable; -import org.eclipse.jpt.common.utility.internal.CompositeCommand; - -public class CompositeCommandTests extends TestCase { - boolean command1Executed = false; - boolean command2Executed = false; - - public CompositeCommandTests(String name) { - super(name); - } - - public void testRun() { - Runnable runnable = new CommandRunnable(this.buildCompositeCommand()); - runnable.run(); - assertTrue(this.command1Executed); - assertTrue(this.command2Executed); - } - - public void testToString() { - Runnable runnable = new CommandRunnable(this.buildCompositeCommand()); - assertNotNull(runnable.toString()); - } - - private Command buildCompositeCommand() { - return new CompositeCommand( - this.buildCommand1(), - this.buildCommand2() - ); - } - - private Command buildCommand1() { - return new Command() { - public void execute() { - CompositeCommandTests.this.command1Executed = true; - } - }; - } - - private Command buildCommand2() { - return new Command() { - public void execute() { - CompositeCommandTests.this.command2Executed = true; - } - }; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ExceptionHandlerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ExceptionHandlerTests.java deleted file mode 100644 index 23097f3ab5..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ExceptionHandlerTests.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.ExceptionHandler; - -public class ExceptionHandlerTests extends TestCase { - - public ExceptionHandlerTests(String name) { - super(name); - } - - public void testNullExceptionHandler() { - ExceptionHandler exceptionHandler = ExceptionHandler.Null.instance(); - exceptionHandler.handleException(new NullPointerException()); // just make sure it doesn't blow up? - } - - public void testNullExceptionHandlerToString() { - ExceptionHandler exceptionHandler = ExceptionHandler.Null.instance(); - assertNotNull(exceptionHandler.toString()); - } - - public void testRuntimeExceptionHandler() { - Exception npe = new NullPointerException(); - ExceptionHandler exceptionHandler = ExceptionHandler.Runtime.instance(); - boolean exCaught = false; - try { - exceptionHandler.handleException(npe); - fail(); - } catch (RuntimeException ex) { - assertSame(npe, ex.getCause()); - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRuntimeExceptionHandlerToString() { - ExceptionHandler exceptionHandler = ExceptionHandler.Runtime.instance(); - assertNotNull(exceptionHandler.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/FileToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/FileToolsTests.java deleted file mode 100644 index 5483b8588d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/FileToolsTests.java +++ /dev/null @@ -1,593 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.io.File; -import java.io.FileFilter; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.Reader; -import java.io.Writer; -import java.lang.reflect.InvocationTargetException; -import java.net.URL; -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.FileTools; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.Tools; - -@SuppressWarnings("nls") -public class FileToolsTests extends TestCase { - private File tempDir; - - public FileToolsTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.tempDir = this.buildTempDir(); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - this.deleteDir(this.tempDir); - } - - public void testFilesIn() { - Collection files = CollectionTools.collection(FileTools.filesIn(this.tempDir.getPath())); - assertEquals("invalid file count", 3, files.size()); - } - - public void testDirectoriesIn() { - Collection files = CollectionTools.collection(FileTools.directoriesIn(this.tempDir.getPath())); - assertEquals("invalid directory count", 2, files.size()); - } - - public void testFilesInTree() { - Collection files = CollectionTools.collection(FileTools.filesInTree(this.tempDir.getPath())); - assertEquals("invalid file count", 9, files.size()); - } - - public void testDirectoriesInTree() { - Collection files = CollectionTools.collection(FileTools.directoriesInTree(this.tempDir.getPath())); - assertEquals("invalid directory count", 3, files.size()); - } - - public void testDeleteDirectory() throws IOException { - // build another temporary directory just for this test - File dir = this.buildTempDir(); - assertTrue("temporary directory not created", dir.exists()); - FileTools.deleteDirectory(dir.getPath()); - assertFalse("temporary directory not deleted", dir.exists()); - } - - public void testDeleteDirectoryContents() throws IOException { - // build another temporary directory just for this test - File dir = this.buildTempDir(); - assertTrue("temporary directory not created", dir.exists()); - FileTools.deleteDirectoryContents(dir.getPath()); - assertTrue("temporary directory should not have been deleted", dir.exists()); - assertTrue("temporary directory contents not deleted", dir.listFiles().length == 0); - dir.delete(); - } - - public void testCopyToFile() throws IOException { - File destFile = new File(this.tempDir, "destfile.txt"); - this.copyToFile(destFile, "testCopyToFile"); - } - - public void testCopyToPreExistingFile() throws IOException { - File destFile = new File(this.tempDir, "destfile.txt"); - Writer writer = new OutputStreamWriter(new FileOutputStream(destFile)); - writer.write("this text should be replaced..."); - writer.close(); - this.copyToFile(destFile, "testCopyToPreExistingFile"); - } - - private void copyToFile(File destFile, String writeString) throws IOException { - File sourceFile = new File(this.tempDir, "sourcefile.txt"); - char[] readBuffer = new char[writeString.length()]; - - Writer writer = new OutputStreamWriter(new FileOutputStream(sourceFile)); - writer.write(writeString); - writer.close(); - - FileTools.copyToFile(sourceFile, destFile); - - Reader reader = new InputStreamReader(new FileInputStream(destFile)); - reader.read(readBuffer); - reader.close(); - String readString = new String(readBuffer); - assertEquals(writeString, readString); - } - - public void testCopyToDirectory() throws IOException { - File sourceFile = new File(this.tempDir, "sourcefile.txt"); - String writeString = "testCopyToDirectory"; - - File destDir = new File(this.tempDir, "destdir"); - destDir.mkdir(); - File destFile = new File(destDir, "sourcefile.txt"); - char[] readBuffer = new char[writeString.length()]; - - Writer writer = new OutputStreamWriter(new FileOutputStream(sourceFile)); - writer.write(writeString); - writer.close(); - - FileTools.copyToDirectory(sourceFile, destDir); - - Reader reader = new InputStreamReader(new FileInputStream(destFile)); - reader.read(readBuffer); - reader.close(); - String readString = new String(readBuffer); - assertEquals(writeString, readString); - - FileTools.copyToDirectory(sourceFile, destDir); //Try again with the directory is already created - reader = new InputStreamReader(new FileInputStream(destFile)); - reader.read(readBuffer); - reader.close(); - readString = new String(readBuffer); - assertEquals(writeString, readString); - } - - public void testFilter() throws IOException { - String prefix = "XXXtestFileXXX"; - File testFile1 = new File(this.tempDir, prefix + "1"); - testFile1.createNewFile(); - File testFile2 = new File(this.tempDir, prefix + "2"); - testFile2.createNewFile(); - - FileFilter filter = this.buildFileFilter(prefix); - Iterator filteredFilesIterator = FileTools.filter(FileTools.filesIn(this.tempDir), filter); - Collection filteredFiles = CollectionTools.collection(filteredFilesIterator); - assertEquals(2, filteredFiles.size()); - assertTrue(filteredFiles.contains(testFile1)); - assertTrue(filteredFiles.contains(testFile2)); - } - - private FileFilter buildFileFilter(final String prefix) { - return new FileFilter() { - public boolean accept(File file) { - return file.getName().startsWith(prefix); - } - }; - } - - public void testStripExtension() { - assertEquals("foo", FileTools.stripExtension("foo.xml")); - assertEquals("foo.bar", FileTools.stripExtension("foo.bar.xml")); - assertEquals("foo", FileTools.stripExtension("foo")); - assertEquals("foo", FileTools.stripExtension("foo.")); - } - - public void testExtension() { - assertEquals(".xml", FileTools.extension("foo.xml")); - assertEquals(".xml", FileTools.extension("foo.bar.xml")); - assertEquals("", FileTools.extension("foo")); - assertEquals("", FileTools.extension("foo,xml")); - assertEquals(".", FileTools.extension("foo.")); - } - - public void testEmptyTemporaryDirectory() throws IOException { - File tempDir1 = FileTools.temporaryDirectory(); - File testFile1 = new File(tempDir1, "junk"); - testFile1.createNewFile(); - - File tempDir2 = FileTools.emptyTemporaryDirectory(); - assertEquals(tempDir1, tempDir2); - assertTrue(tempDir2.isDirectory()); - assertEquals(0, tempDir2.listFiles().length); - tempDir2.delete(); - } - - public void testCanonicalFileName() { - File file1 = new File("foo"); - file1 = new File(file1, "bar"); - file1 = new File(file1, "baz"); - file1 = new File(file1, ".."); - file1 = new File(file1, ".."); - file1 = new File(file1, "bar"); - file1 = new File(file1, "baz"); - File file2 = new File(System.getProperty("user.dir")); - file2 = new File(file2, "foo"); - file2 = new File(file2, "bar"); - file2 = new File(file2, "baz"); - File file3 = FileTools.canonicalFile(file1); - assertEquals(file2, file3); - } - - public void testPathFiles() { - File[] expected; - File[] actual; - - if (Tools.osIsWindows()) { - expected = new File[] { new File("C:/"), new File("C:/foo"), new File("C:/foo/bar"), new File("C:/foo/bar/baz.txt") }; - actual = this.pathFiles(new File("C:/foo/bar/baz.txt")); - assertTrue(Arrays.equals(expected, actual)); - } - - expected = new File[] { new File("/"), new File("/foo"), new File("/foo/bar"), new File("/foo/bar/baz.txt") }; - actual = this.pathFiles(new File("/foo/bar/baz.txt")); - assertTrue(Arrays.equals(expected, actual)); - - expected = new File[] { new File("foo"), new File("foo/bar"), new File("foo/bar/baz.txt") }; - actual = this.pathFiles(new File("foo/bar/baz.txt")); - assertTrue(Arrays.equals(expected, actual)); - - expected = new File[] { new File(".."), new File("../foo"), new File("../foo/bar"), new File("../foo/bar/baz.txt") }; - actual = this.pathFiles(new File("../foo/bar/baz.txt")); - assertTrue(Arrays.equals(expected, actual)); - - expected = new File[] { new File("."), new File("./foo"), new File("./foo/bar"), new File("./foo/bar/baz.txt") }; - actual = this.pathFiles(new File("./foo/bar/baz.txt")); - assertTrue(Arrays.equals(expected, actual)); - } - - private File[] pathFiles(File file) { - return (File[]) ReflectionTools.executeStaticMethod(FileTools.class, "pathFiles", File.class, file); - } - - public void testRelativeParentFile() { - assertEquals(new File(".."), this.relativeParentFile(1)); - assertEquals(new File("../.."), this.relativeParentFile(2)); - assertEquals(new File("../../.."), this.relativeParentFile(3)); - - boolean exCaught = false; - try { - File file = this.relativeParentFile(0); - fail("invalid return: " + file); - } catch (RuntimeException ex) { - if (ex.getCause() instanceof InvocationTargetException) { - InvocationTargetException ite = (InvocationTargetException) ex.getCause(); - if (ite.getTargetException() instanceof IllegalArgumentException) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - private File relativeParentFile(int len) { - return (File) ReflectionTools.executeStaticMethod(FileTools.class, "relativeParentFile", int.class, new Integer(len)); - } - - public void testConvertToRelativeFile() { - String prefix = Tools.osIsWindows() ? "C:" : ""; - File file; - File dir; - File relativeFile; - - if (Tools.osIsWindows()) { - // on Windows, a drive must be specified for a file to be absolute (i.e. not relative) - this.verifyUnchangedRelativeFile("/dir1/dir2/file.txt", "C:/dir1/dir2"); - // different drives - this.verifyUnchangedRelativeFile("D:/dir1/dir2/file.txt", "C:/dir1/dir2"); - } - this.verifyUnchangedRelativeFile("dir1/dir2/file.txt", prefix + "/dir1/dir2"); - this.verifyUnchangedRelativeFile("./dir1/dir2/file.txt", prefix + "/dir1/dir2"); - this.verifyUnchangedRelativeFile("../../dir1/dir2/file.txt", prefix + "/dir1/dir2"); - - file = new File(prefix + "/dir1/dir2"); - dir = new File(prefix + "/dir1/dir2"); - relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(new File("."), relativeFile); - - file = new File(prefix + "/dir1/dir2/file.txt"); - dir = new File(prefix + "/dir1/dir2"); - relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(new File("file.txt"), relativeFile); - - file = new File(prefix + "/dir1/dir2/../dir2/file.txt"); - dir = new File(prefix + "/dir1/dir2"); - relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(new File("file.txt"), relativeFile); - - file = new File(prefix + "/dir1/dir2/dir3/dir4/dir5/file.txt"); - dir = new File(prefix + "/dir1/dir2"); - relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(new File("dir3/dir4/dir5/file.txt"), relativeFile); - - file = new File(prefix + "/dir1/dir2/file.txt"); - dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5"); - relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(new File("../../../file.txt"), relativeFile); - - file = new File(prefix + "/dir1/dir2/file.txt"); - dir = new File(prefix + "/dir1/dir2/dir3"); - relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(new File("../file.txt"), relativeFile); - - file = new File(prefix + "/dir1/dir2/dirA/dirB/dirC/file.txt"); - dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5"); - relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(new File("../../../dirA/dirB/dirC/file.txt"), relativeFile); - - file = new File(prefix + "/dir1/dir2"); - dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5"); - relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(new File("../../.."), relativeFile); - - file = new File(prefix + "/My Documents/My Workspace/Project 1/lib/toplink.jar"); - dir = new File(prefix + "/My Documents/My Workspace/Project 1"); - relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(new File("lib/toplink.jar"), relativeFile); - } - - private void verifyUnchangedRelativeFile(String fileName, String dirName) { - File file = new File(fileName); - File dir = new File(dirName); - File relativeFile = FileTools.convertToRelativeFile(file, dir); - assertEquals(file, relativeFile); - } - - public void testConvertToAbsoluteFile() { - String prefix = Tools.osIsWindows() ? "C:" : ""; - File file; - File dir; - File absoluteFile; - - if (Tools.osIsWindows()) { - // on Windows, a drive must be specified for a file to be absolute (i.e. not relative) - this.verifyUnchangedAbsoluteFile("C:/dir1/dir2/file.txt", "C:/dir1/dir2"); - // different drives - this.verifyUnchangedAbsoluteFile("D:/dir1/dir2/file.txt", "C:/dir1/dir2"); - } - this.verifyUnchangedAbsoluteFile(prefix + "/dir1/dir2/file.txt", prefix + "/dir1/dir2"); - this.verifyUnchangedAbsoluteFile(prefix + "/./dir1/dir2/file.txt", prefix + "/dir1/dir2"); - this.verifyUnchangedAbsoluteFile(prefix + "/dir1/dir2/../../dir1/dir2/file.txt", prefix + "/dir1/dir2"); - - file = new File("."); - dir = new File(prefix + "/dir1/dir2"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/dir1/dir2"), absoluteFile); - - file = new File("./file.txt"); - dir = new File(prefix + "/dir1/dir2"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile); - - file = new File("file.txt"); - dir = new File(prefix + "/dir1/dir2"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile); - - file = new File("../dir2/file.txt"); - dir = new File(prefix + "/dir1/dir2"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile); - - file = new File("dir3/dir4/dir5/file.txt"); - dir = new File(prefix + "/dir1/dir2"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/dir1/dir2/dir3/dir4/dir5/file.txt"), absoluteFile); - - file = new File("../../../file.txt"); - dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile); - - // too many ".." directories will resolve to the root; - // this is consistent with Windows and Linux command shells - file = new File("../../../../../../../../file.txt"); - dir = new File(prefix + "/dir1/dir2"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/file.txt"), absoluteFile); - - file = new File("../file.txt"); - dir = new File(prefix + "/dir1/dir2/dir3"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile); - - file = new File("../../../dirA/dirB/dirC/file.txt"); - dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/dir1/dir2/dirA/dirB/dirC/file.txt"), absoluteFile); - - file = new File("../../.."); - dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/dir1/dir2"), absoluteFile); - - file = new File("lib/toplink.jar"); - dir = new File(prefix + "/My Documents/My Workspace/Project 1"); - absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(new File(prefix + "/My Documents/My Workspace/Project 1/lib/toplink.jar"), absoluteFile); - } - - public void testFileNameIsReserved() { - boolean expected = Tools.osIsWindows(); - assertEquals(expected, FileTools.fileNameIsReserved("CON")); - assertEquals(expected, FileTools.fileNameIsReserved("con")); - assertEquals(expected, FileTools.fileNameIsReserved("cON")); - assertEquals(expected, FileTools.fileNameIsReserved("AUX")); - assertEquals(expected, FileTools.fileNameIsReserved("COM3")); - assertEquals(expected, FileTools.fileNameIsReserved("LPT3")); - assertEquals(expected, FileTools.fileNameIsReserved("nUL")); - assertEquals(expected, FileTools.fileNameIsReserved("Prn")); - } - - public void testFileHasAnyReservedComponents() { - boolean expected = Tools.osIsWindows(); - assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("C:/CON"))); - assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("/con/foo"))); - assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("c:/temp/cON"))); - assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("bar//baz//AUX"))); - assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("COM3//ttt"))); - assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("d:/LPT3/xxx"))); - assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("c:/my docs and stuff/tuesday/nUL"))); - assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("Prn"))); - } - - public void testShortenFileNameFile() { - if (Tools.osIsWindows()) { - this.verifyShortenFileNameFileWin(); - } else { - this.verifyShortenFileNameFileNonWin(); - } - } - - private void verifyShortenFileNameFileWin() { - File file = new File("C:\\Documents and Settings\\Administrator\\Desktop\\Project\\Text.txt"); - String fileName = FileTools.shortenFileName(file); - assertEquals("C:\\Documents and Settings\\...\\Desktop\\Project\\Text.txt", fileName); - assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH); - - file = new File("C:/"); - fileName = FileTools.shortenFileName(file); - assertEquals("C:\\", fileName); - assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH); - } - - private void verifyShortenFileNameFileNonWin() { - File file = new File("/home/administrator/documents and settings/desktop/Project/Text.txt"); - String fileName = FileTools.shortenFileName(file); - assertEquals("/home/administrator/.../desktop/Project/Text.txt", fileName); - assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH); - - file = new File("/home"); - fileName = FileTools.shortenFileName(file); - assertEquals("/home", fileName); - assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH); - } - - public void testShortenFileNameFileInt() { - if (Tools.osIsWindows()) { - this.verifyShortenFileNameFileIntWin(); - } else { - this.verifyShortenFileNameFileIntNonWin(); - } - } - - private void verifyShortenFileNameFileIntWin() { - File file = new File("C:\\Documents and Settings\\Administrator\\Desktop\\Project\\Text.txt"); - String fileName = FileTools.shortenFileName(file, 31); - assertEquals("C:\\...\\Desktop\\Project\\Text.txt", fileName); - assertEquals(31, fileName.length()); - - file = new File("C:/This is the file name.txt"); - fileName = FileTools.shortenFileName(file, 10); - assertEquals("C:\\This is the file name.txt", fileName); - assertEquals(28, fileName.length()); - } - - private void verifyShortenFileNameFileIntNonWin() { - File file = new File("/home/administrator/documents and settings/desktop/Project/Text.txt"); - String fileName = FileTools.shortenFileName(file, 31); - assertEquals("/home/.../desktop/Project/Text.txt", fileName); - assertEquals(34, fileName.length()); - - file = new File("/This is the file name.txt"); - fileName = FileTools.shortenFileName(file, 10); - assertEquals("/This is the file name.txt", fileName); - assertEquals(26, fileName.length()); - } - - public void testShortenFileNameURL() throws Exception { - if (Tools.osIsWindows()) { - this.verifyShortenFileNameURLWin(); - } else { - this.verifyShortenFileNameURLNonWin(); - } - } - - private void verifyShortenFileNameURLWin() throws Exception { - URL url = new URL("file", "", "C:/Documents and Settings/Administrator/Desktop/Project/Text.txt"); - String fileName = FileTools.shortenFileName(url); - assertEquals("C:\\Documents and Settings\\...\\Desktop\\Project\\Text.txt", fileName); - assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH); - } - - private void verifyShortenFileNameURLNonWin() throws Exception { - URL url = new URL("file", "", "/home/administrator/documents and settings/desktop/Project/Text.txt"); - String fileName = FileTools.shortenFileName(url); - assertEquals("/home/administrator/.../desktop/Project/Text.txt", fileName); - assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH); - } - - public void testShortenFileNameURLInt() throws Exception { - if (Tools.osIsWindows()) { - this.verifyShortenFileNameURLIntWin(); - } else { - this.verifyShortenFileNameURLIntNonWin(); - } - } - - private void verifyShortenFileNameURLIntWin() throws Exception { - URL url = new URL("file", "", "/C:/Documents and Settings/Administrator/Desktop/Project/Text.txt"); - String fileName = FileTools.shortenFileName(url, 31); - assertEquals("C:\\...\\Desktop\\Project\\Text.txt", fileName); - assertEquals(31, fileName.length()); - } - - private void verifyShortenFileNameURLIntNonWin() throws Exception { - URL url = new URL("file", "", "/home/administrator/documents and settings/desktop/Project/Text.txt"); - String fileName = FileTools.shortenFileName(url, 31); - assertEquals("/home/.../desktop/Project/Text.txt", fileName); - assertEquals(34, fileName.length()); - } - - private void verifyUnchangedAbsoluteFile(String fileName, String dirName) { - File file = new File(fileName); - File dir = new File(dirName); - File absoluteFile = FileTools.convertToAbsoluteFile(file, dir); - assertEquals(file, absoluteFile); - } - - private File buildTempDir() throws IOException { - // build a new directory for each test, to prevent any cross-test effects - File dir = FileTools.newTemporaryDirectory(this.getClass().getSimpleName() + "." + this.getName()); - - File file0a = new File(dir, "file0a"); - file0a.createNewFile(); - File file0b = new File(dir, "file0b"); - file0b.createNewFile(); - File file0c = new File(dir, "file0c"); - file0c.createNewFile(); - - File subdir1 = new File(dir, "subdir1"); - subdir1.mkdir(); - File file1a = new File(subdir1, "file1a"); - file1a.createNewFile(); - File file1b = new File(subdir1, "file1b"); - file1b.createNewFile(); - - File subdir2 = new File(dir, "subdir2"); - subdir2.mkdir(); - File file2a = new File(subdir2, "file2a"); - file2a.createNewFile(); - File file2b = new File(subdir2, "file2b"); - file2b.createNewFile(); - - File subdir3 = new File(subdir2, "subdir3"); - subdir3.mkdir(); - File file3a = new File(subdir3, "file3a"); - file3a.createNewFile(); - File file3b = new File(subdir3, "file3b"); - file3b.createNewFile(); - - return dir; - } - - private void deleteDir(File dir) { - FileTools.deleteDirectory(dir); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/FilterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/FilterTests.java deleted file mode 100644 index b27a0a3543..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/FilterTests.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.Filter; - -@SuppressWarnings("nls") -public class FilterTests extends TestCase { - - public FilterTests(String name) { - super(name); - } - - public void testNullFilter() { - Filter filter = Filter.Null.instance(); - assertTrue(filter.accept("")); - assertTrue(filter.accept("foo")); - assertTrue(filter.accept("bar")); - } - - public void testNullFilter_toString() { - Filter filter = Filter.Null.instance(); - assertNotNull(filter.toString()); - } - - public void testNullFilter_serialization() throws Exception { - Filter filter = Filter.Null.instance(); - assertSame(filter, TestTools.serialize(filter)); - } - - public void testOpaqueFilter() { - Filter filter = Filter.Opaque.instance(); - assertFalse(filter.accept("")); - assertFalse(filter.accept("foo")); - assertFalse(filter.accept("bar")); - } - - public void testOpaqueFilter_toString() { - Filter filter = Filter.Opaque.instance(); - assertNotNull(filter.toString()); - } - - public void testOpaqueFilter_serialization() throws Exception { - Filter filter = Filter.Opaque.instance(); - assertSame(filter, TestTools.serialize(filter)); - } - - public void testDisabledFilter() { - Filter filter = Filter.Disabled.instance(); - boolean exCaught = false; - try { - assertFalse(filter.accept("foo")); - fail(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testDisabledFilter_toString() { - Filter filter = Filter.Disabled.instance(); - assertNotNull(filter.toString()); - } - - public void testDisabledFilter_serialization() throws Exception { - Filter filter = Filter.Disabled.instance(); - assertSame(filter, TestTools.serialize(filter)); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/HashBagTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/HashBagTests.java deleted file mode 100644 index df2a10bd28..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/HashBagTests.java +++ /dev/null @@ -1,555 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.ConcurrentModificationException; -import java.util.Iterator; -import java.util.NoSuchElementException; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.Tools; - -@SuppressWarnings("nls") -public class HashBagTests extends TestCase { - private HashBag bag; - - public HashBagTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.bag = this.buildBag(); - } - - private HashBag buildBag() { - HashBag b = new HashBag(); - b.add(null); - b.add(new String("one")); - b.add(new String("two")); - b.add(new String("two")); - b.add(new String("three")); - b.add(new String("three")); - b.add(new String("three")); - b.add(new String("four")); - b.add(new String("four")); - b.add(new String("four")); - b.add(new String("four")); - return b; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - private Collection buildCollection() { - Collection c = new ArrayList(); - c.add(new String("foo")); - c.add(new String("foo")); - c.add(new String("bar")); - c.add(new String("bar")); - c.add(new String("bar")); - return c; - } - - public void testCtorCollection() { - Collection c = this.buildCollection(); - Bag b = new HashBag(c); - for (String s : c) { - assertTrue(b.contains(s)); - } - } - - public void testCtorIntFloat() { - boolean exCaught; - - exCaught = false; - try { - this.bag = new HashBag(-20, 0.66f); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - exCaught = false; - try { - this.bag = new HashBag(20, -0.66f); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAdd() { - // the other adds took place in setUp - assertTrue(this.bag.add("five")); - - assertTrue(this.bag.contains("one")); - assertTrue(this.bag.contains("two")); - assertTrue(this.bag.contains("three")); - assertTrue(this.bag.contains("four")); - assertTrue(this.bag.contains("five")); - } - - public void testAddCount() { - // the other adds took place in setUp - this.bag.add("minus3", -3); - this.bag.add("zero", 0); - this.bag.add("five", 5); - - assertFalse(this.bag.contains("minus3")); - assertFalse(this.bag.contains("zero")); - assertEquals(1, this.bag.count("one")); - assertEquals(2, this.bag.count("two")); - assertEquals(3, this.bag.count("three")); - assertEquals(4, this.bag.count("four")); - assertEquals(5, this.bag.count("five")); - - this.bag.add("three", 2); - assertEquals(5, this.bag.count("three")); - } - - public void testAddAll() { - Collection c = this.buildCollection(); - assertTrue(this.bag.addAll(c)); - for (String s : c) { - assertTrue(this.bag.contains(s)); - } - } - - public void testClear() { - assertTrue(this.bag.contains("one")); - assertTrue(this.bag.contains("two")); - assertTrue(this.bag.contains("three")); - assertTrue(this.bag.contains("four")); - assertTrue(this.bag.contains(null)); - assertEquals(11, this.bag.size()); - this.bag.clear(); - assertFalse(this.bag.contains("one")); - assertFalse(this.bag.contains("two")); - assertFalse(this.bag.contains("three")); - assertFalse(this.bag.contains("four")); - assertFalse(this.bag.contains(null)); - assertEquals(0, this.bag.size()); - } - - public void testClone() { - Bag bag2 = this.bag.clone(); - assertTrue(this.bag != bag2); - assertEquals(this.bag, bag2); - assertTrue(this.bag.hashCode() == bag2.hashCode()); - } - - public void testContains() { - assertTrue(this.bag.contains(null)); - assertTrue(this.bag.contains("one")); - assertTrue(this.bag.contains("two")); - assertTrue(this.bag.contains("three")); - assertTrue(this.bag.contains("four")); - assertTrue(this.bag.contains(new String("four"))); - assertTrue(this.bag.contains("fo" + "ur")); - assertFalse(this.bag.contains("five")); - } - - public void testContainsAll() { - Collection c = new ArrayList(); - c.add(null); - c.add(new String("one")); - c.add(new String("two")); - c.add(new String("three")); - c.add(new String("four")); - assertTrue(this.bag.containsAll(c)); - } - - public void testCount() { - assertEquals(0, this.bag.count("zero")); - assertEquals(1, this.bag.count("one")); - assertEquals(2, this.bag.count("two")); - assertEquals(3, this.bag.count("three")); - assertEquals(4, this.bag.count("four")); - assertEquals(0, this.bag.count("five")); - } - - public void testEquals() { - Bag bag2 = this.buildBag(); - assertEquals(this.bag, bag2); - bag2.add("five"); - assertFalse(this.bag.equals(bag2)); - Collection c = new ArrayList(this.bag); - assertFalse(this.bag.equals(c)); - } - - public void testHashCode() { - Bag bag2 = this.buildBag(); - assertEquals(this.bag.hashCode(), bag2.hashCode()); - } - - public void testIsEmpty() { - assertFalse(this.bag.isEmpty()); - this.bag.clear(); - assertTrue(this.bag.isEmpty()); - this.bag.add("foo"); - assertFalse(this.bag.isEmpty()); - } - - public void testEmptyIterator() { - this.bag.clear(); - Iterator iterator = this.bag.iterator(); - assertFalse(iterator.hasNext()); - - boolean exCaught = false; - Object element = null; - try { - element = iterator.next(); - fail(element.toString()); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testIterator() { - int i = 0; - Iterator iterator = this.bag.iterator(); - assertTrue(iterator.hasNext()); - while (iterator.hasNext()) { - iterator.next(); - i++; - } - assertEquals(11, i); - assertFalse(iterator.hasNext()); - - boolean exCaught = false; - Object element = null; - try { - element = iterator.next(); - fail(element.toString()); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - - iterator.remove(); - assertEquals(10, this.bag.size()); - - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - - // start over - iterator = this.bag.iterator(); - this.bag.add("five"); - exCaught = false; - try { - iterator.next(); - } catch (ConcurrentModificationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testUniqueIterator() { - int i = 0; - Iterator iterator = this.bag.uniqueIterator(); - assertTrue(iterator.hasNext()); - while (iterator.hasNext()) { - iterator.next(); - i++; - } - assertEquals(5, i); - assertFalse(iterator.hasNext()); - - boolean exCaught = false; - Object element = null; - try { - element = iterator.next(); - fail(element.toString()); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - - // start over - iterator = this.bag.uniqueIterator(); - Object next = null; - while (iterator.hasNext() && !"four".equals(next)) { - next = iterator.next(); - } - iterator.remove(); - assertEquals(7, this.bag.size()); - - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - - // start over - iterator = this.bag.uniqueIterator(); - this.bag.add("five"); - exCaught = false; - try { - iterator.next(); - } catch (ConcurrentModificationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testEntries() { - int i = 0; - Iterator> iterator = this.bag.entries(); - assertTrue(iterator.hasNext()); - while (iterator.hasNext()) { - iterator.next(); - i++; - } - assertEquals(5, i); - assertFalse(iterator.hasNext()); - - boolean exCaught = false; - Object element = null; - try { - element = iterator.next(); - fail(element.toString()); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - - // start over - iterator = this.bag.entries(); - Bag.Entry next = null; - while (iterator.hasNext()) { - next = iterator.next(); - if (next.getElement().equals("four")) { - iterator.remove(); - break; - } - } - assertEquals(7, this.bag.size()); - - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - - // start over - iterator = this.bag.entries(); - this.bag.add("five"); - exCaught = false; - try { - iterator.next(); - } catch (ConcurrentModificationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testHashingDistribution() throws Exception { - Bag bigBag = new HashBag(); - for (int i = 0; i < 10000; i++) { - bigBag.add("object" + i); - } - - java.lang.reflect.Field field = bigBag.getClass().getDeclaredField("table"); - field.setAccessible(true); - Object[] table = (Object[]) field.get(bigBag); - int bucketCount = table.length; - int filledBucketCount = 0; - for (Object o : table) { - if (o != null) { - filledBucketCount++; - } - } - float loadFactor = ((float) filledBucketCount) / ((float) bucketCount); - if ((loadFactor < 0.20) || (loadFactor > 0.80)) { - String msg = "poor load factor: " + loadFactor; - if (Tools.jvmIsSun()) { - fail(msg); - } else { - // poor load factor is seen in the Eclipse build environment for some reason... - System.out.println(this.getClass().getName() + '.' + this.getName() + " - " + msg); - TestTools.printSystemProperties(); - } - } - } - - public void testRemove() { - assertTrue(this.bag.remove("one")); - assertFalse(this.bag.contains("one")); - assertFalse(this.bag.remove("one")); - - assertTrue(this.bag.remove("two")); - assertTrue(this.bag.remove("two")); - assertFalse(this.bag.contains("two")); - assertFalse(this.bag.remove("two")); - } - - public void testRemoveCount() { - assertFalse(this.bag.remove("one", 0)); - assertTrue(this.bag.contains("one")); - - assertTrue(this.bag.remove("one", 1)); - assertFalse(this.bag.contains("one")); - assertFalse(this.bag.remove("one")); - - assertFalse(this.bag.remove("two", -3)); - assertTrue(this.bag.remove("two", 1)); - assertTrue(this.bag.contains("two")); - - assertTrue(this.bag.remove("two", 1)); - assertFalse(this.bag.contains("two")); - assertFalse(this.bag.remove("two")); - - assertTrue(this.bag.remove("three", 3)); - assertFalse(this.bag.contains("three")); - assertFalse(this.bag.remove("three")); - } - - public void testRemoveAll() { - Collection c = new ArrayList(); - c.add("one"); - c.add("three"); - assertTrue(this.bag.removeAll(c)); - assertFalse(this.bag.contains("one")); - assertFalse(this.bag.contains("three")); - assertFalse(this.bag.remove("one")); - assertFalse(this.bag.remove("three")); - assertFalse(this.bag.removeAll(c)); - } - - public void testRetainAll() { - Collection c = new ArrayList(); - c.add("one"); - c.add("three"); - assertTrue(this.bag.retainAll(c)); - assertTrue(this.bag.contains("one")); - assertTrue(this.bag.contains("three")); - assertFalse(this.bag.contains("two")); - assertFalse(this.bag.contains("four")); - assertFalse(this.bag.remove("two")); - assertFalse(this.bag.remove("four")); - assertFalse(this.bag.retainAll(c)); - } - - public void testSize() { - assertTrue(this.bag.size() == 11); - this.bag.add("five"); - this.bag.add("five"); - this.bag.add("five"); - this.bag.add("five"); - this.bag.add("five"); - assertEquals(16, this.bag.size()); - } - - public void testSerialization() throws Exception { - Bag bag2 = TestTools.serialize(this.bag); - - assertTrue("same object?", this.bag != bag2); - assertEquals(11, bag2.size()); - assertEquals(this.bag, bag2); - // look for similar elements - assertTrue(bag2.contains(null)); - assertTrue(bag2.contains("one")); - assertTrue(bag2.contains("two")); - assertTrue(bag2.contains("three")); - assertTrue(bag2.contains("four")); - - int nullCount = 0, oneCount = 0, twoCount = 0, threeCount = 0, fourCount = 0; - for (String s : bag2) { - if (s == null) { - nullCount++; - } else if (s.equals("one")) { - oneCount++; - } else if (s.equals("two")) { - twoCount++; - } else if (s.equals("three")) { - threeCount++; - } else if (s.equals("four")) { - fourCount++; - } - } - assertEquals(1, nullCount); - assertEquals(1, oneCount); - assertEquals(2, twoCount); - assertEquals(3, threeCount); - assertEquals(4, fourCount); - } - - public void testToArray() { - Object[] a = this.bag.toArray(); - assertEquals(11, a.length); - assertTrue(ArrayTools.contains(a, null)); - assertTrue(ArrayTools.contains(a, "one")); - assertTrue(ArrayTools.contains(a, "two")); - assertTrue(ArrayTools.contains(a, "three")); - assertTrue(ArrayTools.contains(a, "four")); - } - - public void testToArrayObjectArray() { - String[] a = new String[12]; - a[11] = "not null"; - String[] b = this.bag.toArray(a); - assertEquals(a, b); - assertEquals(12, a.length); - assertTrue(ArrayTools.contains(a, null)); - assertTrue(ArrayTools.contains(a, "one")); - assertTrue(ArrayTools.contains(a, "two")); - assertTrue(ArrayTools.contains(a, "three")); - assertTrue(ArrayTools.contains(a, "four")); - assertTrue(a[11] == null); - } - - public void testToString() { - String s = this.bag.toString(); - assertTrue(s.startsWith("[")); - assertTrue(s.endsWith("]")); - int commaCount = 0; - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == ',') { - commaCount++; - } - } - assertEquals(10, commaCount); - assertTrue(s.indexOf("one") != -1); - assertTrue(s.indexOf("two") != -1); - assertTrue(s.indexOf("three") != -1); - assertTrue(s.indexOf("four") != -1); - assertTrue(s.indexOf("null") != -1); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/IdentityHashBagTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/IdentityHashBagTests.java deleted file mode 100644 index f1738bdeb5..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/IdentityHashBagTests.java +++ /dev/null @@ -1,573 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.ConcurrentModificationException; -import java.util.Iterator; -import java.util.NoSuchElementException; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.IdentityHashBag; -import org.eclipse.jpt.common.utility.internal.Tools; - -@SuppressWarnings("nls") -public class IdentityHashBagTests extends TestCase { - private IdentityHashBag bag; - private String one = "one"; - private String two = "two"; - private String three = "three"; - private String four = "four"; - private String foo = "foo"; - private String bar = "bar"; - - public IdentityHashBagTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.bag = this.buildBag(); - } - - protected IdentityHashBag buildBag() { - IdentityHashBag result = new IdentityHashBag(); - result.add(null); - result.add(this.one); - result.add(this.two); - result.add(this.two); - result.add(this.three); - result.add(this.three); - result.add(this.three); - result.add(this.four); - result.add(this.four); - result.add(this.four); - result.add(this.four); - return result; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - private Collection buildCollection() { - Collection c = new ArrayList(); - c.add(this.foo); - c.add(this.foo); - c.add(this.bar); - c.add(this.bar); - c.add(this.bar); - return c; - } - - public void testCtorCollection() { - Collection c = this.buildCollection(); - IdentityHashBag localBag = new IdentityHashBag(c); - for (String s : c) { - assertTrue(localBag.contains(s)); - } - } - - public void testCtorIntFloat() { - boolean exCaught; - - exCaught = false; - try { - this.bag = new IdentityHashBag(-20, 0.66f); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue("IllegalArgumentException not thrown", exCaught); - - exCaught = false; - try { - this.bag = new IdentityHashBag(20, -0.66f); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue("IllegalArgumentException not thrown", exCaught); - } - - public void testAdd() { - // the other adds took place in setUp - String five = "five"; - assertTrue(this.bag.add(five)); - - assertTrue(this.bag.contains(this.one)); - assertTrue(this.bag.contains(this.two)); - assertTrue(this.bag.contains(this.three)); - assertTrue(this.bag.contains(this.four)); - assertTrue(this.bag.contains(five)); - } - - public void testAddCount() { - String minus3 = "minus3"; - String zero = "zero"; - String five = "five"; - // the other adds took place in setUp - this.bag.add(minus3, -3); - this.bag.add(zero, 0); - this.bag.add(five, 5); - - assertFalse(this.bag.contains(minus3)); - assertFalse(this.bag.contains(zero)); - assertEquals(1, this.bag.count(this.one)); - assertEquals(2, this.bag.count(this.two)); - assertEquals(3, this.bag.count(this.three)); - assertEquals(4, this.bag.count(this.four)); - assertEquals(5, this.bag.count(five)); - - this.bag.add(this.three, 2); - assertEquals(5, this.bag.count(this.three)); - } - - public void testAddAll() { - Collection c = this.buildCollection(); - assertTrue(this.bag.addAll(c)); - for (String s : c) { - assertTrue(this.bag.contains(s)); - } - } - - public void testClear() { - assertTrue(this.bag.contains(this.one)); - assertTrue(this.bag.contains(this.two)); - assertTrue(this.bag.contains(this.three)); - assertTrue(this.bag.contains(this.four)); - assertTrue(this.bag.contains(null)); - assertEquals(11, this.bag.size()); - this.bag.clear(); - assertFalse(this.bag.contains(this.one)); - assertFalse(this.bag.contains(this.two)); - assertFalse(this.bag.contains(this.three)); - assertFalse(this.bag.contains(this.four)); - assertFalse(this.bag.contains(null)); - assertEquals(0, this.bag.size()); - } - - public void testClone() { - IdentityHashBag bag2 = this.bag.clone(); - assertTrue("bad clone", this.bag != bag2); - assertEquals("bad clone", this.bag, bag2); - assertTrue("bad clone", this.bag.hashCode() == bag2.hashCode()); - } - - public void testContains() { - assertTrue(this.bag.contains(null)); - assertTrue(this.bag.contains(this.one)); - assertTrue(this.bag.contains(this.two)); - assertTrue(this.bag.contains(this.three)); - assertTrue(this.bag.contains(this.four)); - - assertFalse(this.bag.contains(new String("four"))); - assertFalse(this.bag.contains("five")); - } - - public void testContainsAll() { - Collection c = new ArrayList(); - c.add(null); - c.add(this.one); - c.add(this.two); - c.add(this.three); - c.add(this.four); - assertTrue(this.bag.containsAll(c)); - c.add(new String(this.four)); - assertFalse(this.bag.containsAll(c)); - } - - public void testCount() { - assertEquals(0, this.bag.count("zero")); - assertEquals(1, this.bag.count("one")); - assertEquals(2, this.bag.count("two")); - assertEquals(3, this.bag.count("three")); - assertEquals(4, this.bag.count("four")); - assertEquals(0, this.bag.count("five")); - } - - public void testEquals() { - IdentityHashBag bag2 = this.buildBag(); - assertEquals(this.bag, bag2); - bag2.add("five"); - assertFalse(this.bag.equals(bag2)); - Collection c = new ArrayList(this.bag); - assertFalse(this.bag.equals(c)); - } - - public void testHashCode() { - IdentityHashBag bag2 = this.buildBag(); - assertEquals(this.bag.hashCode(), bag2.hashCode()); - } - - public void testIsEmpty() { - assertFalse(this.bag.isEmpty()); - this.bag.clear(); - assertTrue(this.bag.isEmpty()); - this.bag.add("foo"); - assertFalse(this.bag.isEmpty()); - } - - public void testEmptyIterator() { - this.bag.clear(); - Iterator iterator = this.bag.iterator(); - assertFalse(iterator.hasNext()); - - boolean exCaught = false; - Object element = null; - try { - element = iterator.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + element, exCaught); - - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue("IllegalStateException not thrown", exCaught); - } - - public void testIterator() { - int i = 0; - Iterator iterator = this.bag.iterator(); - assertTrue(iterator.hasNext()); - while (iterator.hasNext()) { - iterator.next(); - i++; - } - assertEquals(11, i); - assertFalse(iterator.hasNext()); - - boolean exCaught = false; - Object element = null; - try { - element = iterator.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + element, exCaught); - - iterator.remove(); - assertEquals(10, this.bag.size()); - - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue("IllegalStateException not thrown", exCaught); - - // start over - iterator = this.bag.iterator(); - this.bag.add("five"); - exCaught = false; - try { - iterator.next(); - } catch (ConcurrentModificationException ex) { - exCaught = true; - } - assertTrue("ConcurrentModificationException not thrown", exCaught); - } - - public void testUniqueIterator() { - int i = 0; - Iterator iterator = this.bag.uniqueIterator(); - assertTrue(iterator.hasNext()); - while (iterator.hasNext()) { - iterator.next(); - i++; - } - assertEquals(5, i); - assertFalse(iterator.hasNext()); - - boolean exCaught = false; - Object element = null; - try { - element = iterator.next(); - fail(element.toString()); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - - // start over - iterator = this.bag.uniqueIterator(); - Object next = null; - while (iterator.hasNext() && !this.four.equals(next)) { - next = iterator.next(); - } - iterator.remove(); - assertEquals(7, this.bag.size()); - - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - - // start over - iterator = this.bag.uniqueIterator(); - String five = "five"; - this.bag.add(five); - exCaught = false; - try { - iterator.next(); - } catch (ConcurrentModificationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testEntries() { - int i = 0; - Iterator> iterator = this.bag.entries(); - assertTrue(iterator.hasNext()); - while (iterator.hasNext()) { - iterator.next(); - i++; - } - assertEquals(5, i); - assertFalse(iterator.hasNext()); - - boolean exCaught = false; - Object element = null; - try { - element = iterator.next(); - fail(element.toString()); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - - // start over - iterator = this.bag.entries(); - org.eclipse.jpt.common.utility.internal.Bag.Entry next = null; - while (iterator.hasNext()) { - next = iterator.next(); - if (next.getElement().equals(this.four)) { - iterator.remove(); - break; - } - } - assertEquals(7, this.bag.size()); - - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - - // start over - iterator = this.bag.entries(); - String five = "five"; - this.bag.add(five); - exCaught = false; - try { - iterator.next(); - } catch (ConcurrentModificationException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testHashingDistribution() throws Exception { - IdentityHashBag bigBag = new IdentityHashBag(); - for (int i = 0; i < 10000; i++) { - bigBag.add("object" + i); - } - - java.lang.reflect.Field field = bigBag.getClass().getDeclaredField("table"); - field.setAccessible(true); - Object[] table = (Object[]) field.get(bigBag); - int bucketCount = table.length; - int filledBucketCount = 0; - for (int i = 0; i < bucketCount; i++) { - if (table[i] != null) { - filledBucketCount++; - } - } - float loadFactor = ((float) filledBucketCount) / ((float) bucketCount); - if ((loadFactor < 0.20) || (loadFactor > 0.80)) { - String msg = "poor load factor: " + loadFactor; - if (Tools.jvmIsSun()) { - fail(msg); - } else { - // poor load factor is seen in the Eclipse build environment for some reason... - System.out.println(this.getClass().getName() + '.' + this.getName() + " - " + msg); - TestTools.printSystemProperties(); - } - } - } - - public void testRemove() { - assertTrue(this.bag.remove(this.one)); - assertFalse(this.bag.contains(this.one)); - assertFalse(this.bag.remove(this.one)); - - assertTrue(this.bag.remove(this.two)); - assertTrue(this.bag.remove(this.two)); - assertFalse(this.bag.contains(this.two)); - assertFalse(this.bag.remove(this.two)); - - assertFalse(this.bag.remove(new String(this.three))); - } - - public void testRemoveCount() { - assertFalse(this.bag.remove(this.one, 0)); - assertTrue(this.bag.contains(this.one)); - - assertTrue(this.bag.remove(this.one, 1)); - assertFalse(this.bag.contains(this.one)); - assertFalse(this.bag.remove(this.one)); - - assertFalse(this.bag.remove(this.two, -3)); - assertTrue(this.bag.remove(this.two, 1)); - assertTrue(this.bag.contains(this.two)); - - assertTrue(this.bag.remove(this.two, 1)); - assertFalse(this.bag.contains(this.two)); - assertFalse(this.bag.remove(this.two)); - - assertTrue(this.bag.remove(this.three, 3)); - assertFalse(this.bag.contains(this.three)); - assertFalse(this.bag.remove(this.three)); - } - - public void testRemoveAll() { - Collection c = new ArrayList(); - c.add(this.one); - c.add(new String(this.two)); - c.add(this.three); - assertTrue(this.bag.removeAll(c)); - assertFalse(this.bag.contains(this.one)); - assertTrue(this.bag.contains(this.two)); - assertFalse(this.bag.contains(this.three)); - assertFalse(this.bag.remove(this.one)); - assertTrue(this.bag.remove(this.two)); - assertFalse(this.bag.remove(this.three)); - assertFalse(this.bag.removeAll(c)); - } - - public void testRetainAll() { - Collection c = new ArrayList(); - c.add(this.one); - c.add(new String(this.two)); - c.add(this.three); - assertTrue(this.bag.retainAll(c)); - assertTrue(this.bag.contains(this.one)); - assertFalse(this.bag.contains(this.two)); - assertTrue(this.bag.contains(this.three)); - assertFalse(this.bag.contains(this.four)); - assertFalse(this.bag.remove(this.two)); - assertFalse(this.bag.remove(this.four)); - assertFalse(this.bag.retainAll(c)); - } - - public void testSize() { - assertTrue(this.bag.size() == 11); - String five = "five"; - this.bag.add(five); - this.bag.add(five); - this.bag.add(five); - this.bag.add(five); - this.bag.add(new String(five)); - assertEquals(16, this.bag.size()); - } - - public void testSerialization() throws Exception { - IdentityHashBag bag2 = TestTools.serialize(this.bag); - - assertTrue("same object?", this.bag != bag2); - assertEquals(11, bag2.size()); - assertEquals(CollectionTools.bag(this.bag.iterator()), CollectionTools.bag(bag2.iterator())); - // look for similar elements - assertTrue(CollectionTools.bag(bag2.iterator()).contains(null)); - assertTrue(CollectionTools.bag(bag2.iterator()).contains("one")); - assertTrue(CollectionTools.bag(bag2.iterator()).contains("two")); - assertTrue(CollectionTools.bag(bag2.iterator()).contains("three")); - assertTrue(CollectionTools.bag(bag2.iterator()).contains("four")); - - int nullCount = 0, oneCount = 0, twoCount = 0, threeCount = 0, fourCount = 0; - for (String next : bag2) { - if (next == null) - nullCount++; - else if (next.equals("one")) - oneCount++; - else if (next.equals("two")) - twoCount++; - else if (next.equals("three")) - threeCount++; - else if (next.equals("four")) - fourCount++; - } - assertEquals(1, nullCount); - assertEquals(1, oneCount); - assertEquals(2, twoCount); - assertEquals(3, threeCount); - assertEquals(4, fourCount); - } - - public void testToArray() { - Object[] a = this.bag.toArray(); - assertEquals(11, a.length); - assertTrue(ArrayTools.contains(a, null)); - assertTrue(ArrayTools.contains(a, this.one)); - assertTrue(ArrayTools.contains(a, this.two)); - assertTrue(ArrayTools.contains(a, this.three)); - assertTrue(ArrayTools.contains(a, this.four)); - } - - public void testToArrayObjectArray() { - String[] a = new String[12]; - a[11] = "not null"; - String[] b = this.bag.toArray(a); - assertEquals(a, b); - assertEquals(12, a.length); - assertTrue(ArrayTools.contains(a, null)); - assertTrue(ArrayTools.contains(a, this.one)); - assertTrue(ArrayTools.contains(a, this.two)); - assertTrue(ArrayTools.contains(a, this.three)); - assertTrue(ArrayTools.contains(a, this.four)); - assertTrue(a[11] == null); - } - - public void testToString() { - String s = this.bag.toString(); - assertTrue(s.startsWith("[")); - assertTrue(s.endsWith("]")); - int commaCount = 0; - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == ',') { - commaCount++; - } - } - assertEquals("invalid number of commas", 10, commaCount); - assertTrue(s.indexOf("one") != -1); - assertTrue(s.indexOf("two") != -1); - assertTrue(s.indexOf("three") != -1); - assertTrue(s.indexOf("four") != -1); - assertTrue(s.indexOf("null") != -1); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/IndentingPrintWriterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/IndentingPrintWriterTests.java deleted file mode 100644 index 33d331b5f6..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/IndentingPrintWriterTests.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.io.StringWriter; -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.IndentingPrintWriter; - -@SuppressWarnings("nls") -public class IndentingPrintWriterTests extends TestCase { - StringWriter sw1; - StringWriter sw2; - IndentingPrintWriter ipw1; - IndentingPrintWriter ipw2; - - static final String CR = System.getProperty("line.separator"); - - public IndentingPrintWriterTests(String name) { - super(name); - } - - @Override - public void setUp() throws Exception { - super.setUp(); - this.sw1 = new StringWriter(); - this.ipw1 = new IndentingPrintWriter(this.sw1); - this.sw2 = new StringWriter(); - this.ipw2 = new IndentingPrintWriter(this.sw2, " "); // indent with 4 spaces instead of a tab - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIndent() { - assertEquals("wrong indent level", 0, this.ipw1.getIndentLevel()); - this.ipw1.indent(); - assertEquals("wrong indent level", 1, this.ipw1.getIndentLevel()); - } - - public void testUndent() { - assertEquals("wrong indent level", 0, this.ipw1.getIndentLevel()); - this.ipw1.indent(); - assertEquals("wrong indent level", 1, this.ipw1.getIndentLevel()); - this.ipw1.undent(); - assertEquals("wrong indent level", 0, this.ipw1.getIndentLevel()); - } - - public void testIncrementIndentLevel() { - assertEquals("wrong indent level", 0, this.ipw1.getIndentLevel()); - this.ipw1.incrementIndentLevel(); - assertEquals("wrong indent level", 1, this.ipw1.getIndentLevel()); - } - - public void testDecrementIndentLevel() { - assertEquals("wrong indent level", 0, this.ipw1.getIndentLevel()); - this.ipw1.incrementIndentLevel(); - assertEquals("wrong indent level", 1, this.ipw1.getIndentLevel()); - this.ipw1.decrementIndentLevel(); - assertEquals("wrong indent level", 0, this.ipw1.getIndentLevel()); - } - - public void testPrintTab() { - String expected = "foo0" + CR + "\tfoo1" + CR + "\tfoo1" + CR + "\t\tfoo2" + CR + "\tfoo1" + CR + "\tfoo1" + CR + "foo0" + CR; - - this.ipw1.println("foo0"); - this.ipw1.indent(); - this.ipw1.println("foo1"); - this.ipw1.println("foo1"); - this.ipw1.indent(); - this.ipw1.println("foo2"); - this.ipw1.undent(); - this.ipw1.println("foo1"); - this.ipw1.println("foo1"); - this.ipw1.undent(); - this.ipw1.println("foo0"); - - assertEquals("bogus output", expected, this.sw1.toString()); - } - - public void testPrintSpaces() { - String expected = "foo0" + CR + " foo1" + CR + " foo1" + CR + " foo2" + CR + " foo1" + CR + " foo1" + CR + "foo0" + CR; - - this.ipw2.println("foo0"); - this.ipw2.indent(); - this.ipw2.println("foo1"); - this.ipw2.println("foo1"); - this.ipw2.indent(); - this.ipw2.println("foo2"); - this.ipw2.undent(); - this.ipw2.println("foo1"); - this.ipw2.println("foo1"); - this.ipw2.undent(); - this.ipw2.println("foo0"); - - assertEquals("bogus output", expected, this.sw2.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JDBCTypeTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JDBCTypeTests.java deleted file mode 100644 index 7853463449..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JDBCTypeTests.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.sql.Types; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.JDBCType; - -@SuppressWarnings("nls") -public class JDBCTypeTests extends TestCase { - - public JDBCTypeTests(String name) { - super(name); - } - - public void testTypesSize() { - assertEquals(Types.class.getDeclaredFields().length, JDBCType.types().length); - } - - public void testName() { - JDBCType jdbcType; - jdbcType = JDBCType.type(Types.VARCHAR); - assertEquals("VARCHAR", jdbcType.name()); - - jdbcType = JDBCType.type(Types.INTEGER); - assertEquals("INTEGER", jdbcType.name()); - } - - public void testCode() { - JDBCType jdbcType; - jdbcType = JDBCType.type(Types.VARCHAR); - assertEquals(Types.VARCHAR, jdbcType.code()); - - jdbcType = JDBCType.type(Types.INTEGER); - assertEquals(Types.INTEGER, jdbcType.code()); - } - - public void testInvalidTypeCode() throws Exception { - boolean exCaught = false; - try { - JDBCType jdbcType = JDBCType.type(55); - fail("invalid JDBCType: " + jdbcType); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidTypeName() throws Exception { - boolean exCaught = false; - try { - JDBCType jdbcType = JDBCType.type("VARCHAR2"); - fail("invalid JDBCType: " + jdbcType); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JavaTypeTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JavaTypeTests.java deleted file mode 100644 index da07a02a38..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JavaTypeTests.java +++ /dev/null @@ -1,252 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.JavaType; -import org.eclipse.jpt.common.utility.internal.SimpleJavaType; - -@SuppressWarnings("nls") -public class JavaTypeTests extends TestCase { - - public JavaTypeTests(String name) { - super(name); - } - - public void testInvalidElementTypeNull() throws Exception { - boolean exCaught = false; - try { - JavaType javaType = new SimpleJavaType(null, 0); - fail("invalid JavaType: " + javaType); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidElementTypeEmpty() throws Exception { - boolean exCaught = false; - try { - JavaType javaType = new SimpleJavaType("", 0); - fail("invalid JavaType: " + javaType); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidElementTypeArray() throws Exception { - boolean exCaught = false; - try { - JavaType javaType = new SimpleJavaType(java.lang.Object[].class.getName(), 0); - fail("invalid JavaType: " + javaType); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidArrayDepthNegative() throws Exception { - boolean exCaught = false; - try { - JavaType javaType = new SimpleJavaType(java.lang.Object.class.getName(), -2); - fail("invalid JavaType: " + javaType); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidVoidArray() throws Exception { - boolean exCaught = false; - try { - JavaType javaType = new SimpleJavaType(void.class.getName(), 2); - fail("invalid JavaType: " + javaType); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testElementTypeName() throws Exception { - JavaType javaType; - javaType = new SimpleJavaType(java.lang.Object.class); - assertEquals("java.lang.Object", javaType.getElementTypeName()); - - javaType = new SimpleJavaType(java.lang.Object[].class); - assertEquals("java.lang.Object", javaType.getElementTypeName()); - - javaType = new SimpleJavaType(int.class); - assertEquals("int", javaType.getElementTypeName()); - - javaType = new SimpleJavaType(int[].class); - assertEquals("int", javaType.getElementTypeName()); - - javaType = new SimpleJavaType(void.class); - assertEquals("void", javaType.getElementTypeName()); - - javaType = new SimpleJavaType(java.util.Map.Entry.class); - assertEquals("java.util.Map$Entry", javaType.getElementTypeName()); - - javaType = new SimpleJavaType(java.util.Map.Entry[][].class); - assertEquals("java.util.Map$Entry", javaType.getElementTypeName()); - } - - public void testArrayDepth() throws Exception { - JavaType javaType; - javaType = new SimpleJavaType(java.lang.Object.class); - assertEquals(0, javaType.getArrayDepth()); - - javaType = new SimpleJavaType(java.lang.Object[].class); - assertEquals(1, javaType.getArrayDepth()); - - javaType = new SimpleJavaType(int.class); - assertEquals(0, javaType.getArrayDepth()); - - javaType = new SimpleJavaType(int[].class); - assertEquals(1, javaType.getArrayDepth()); - - javaType = new SimpleJavaType(void.class); - assertEquals(0, javaType.getArrayDepth()); - - javaType = new SimpleJavaType(java.util.Map.Entry.class); - assertEquals(0, javaType.getArrayDepth()); - - javaType = new SimpleJavaType(java.util.Map.Entry[][].class); - assertEquals(2, javaType.getArrayDepth()); - } - - public void testIsArray() throws Exception { - JavaType javaType; - javaType = new SimpleJavaType(java.lang.Object.class); - assertFalse(javaType.isArray()); - - javaType = new SimpleJavaType(java.lang.Object[].class); - assertTrue(javaType.isArray()); - - javaType = new SimpleJavaType(int.class); - assertFalse(javaType.isArray()); - - javaType = new SimpleJavaType(int[].class); - assertTrue(javaType.isArray()); - - javaType = new SimpleJavaType(void.class); - assertFalse(javaType.isArray()); - - javaType = new SimpleJavaType(java.util.Map.Entry.class); - assertFalse(javaType.isArray()); - - javaType = new SimpleJavaType(java.util.Map.Entry[][].class); - assertTrue(javaType.isArray()); - } - - public void testJavaClass() throws Exception { - this.verifyJavaClass(java.lang.Object.class); - this.verifyJavaClass(java.lang.Object[].class); - this.verifyJavaClass(int.class); - this.verifyJavaClass(int[].class); - this.verifyJavaClass(void.class); - this.verifyJavaClass(java.util.Map.Entry.class); - this.verifyJavaClass(java.util.Map.Entry[][].class); - } - - private void verifyJavaClass(Class javaClass) throws Exception { - JavaType javaType = new SimpleJavaType(javaClass); - assertEquals(javaClass, javaType.getJavaClass()); - } - - public void testJavaClassName() throws Exception { - JavaType javaType; - javaType = new SimpleJavaType(java.lang.Object.class); - assertEquals("java.lang.Object", javaType.getJavaClassName()); - - javaType = new SimpleJavaType(java.lang.Object[].class); - assertEquals("[Ljava.lang.Object;", javaType.getJavaClassName()); - - javaType = new SimpleJavaType(int.class); - assertEquals("int", javaType.getJavaClassName()); - - javaType = new SimpleJavaType(int[].class); - assertEquals("[I", javaType.getJavaClassName()); - - javaType = new SimpleJavaType(void.class); - assertEquals("void", javaType.getJavaClassName()); - - javaType = new SimpleJavaType(java.util.Map.Entry.class); - assertEquals("java.util.Map$Entry", javaType.getJavaClassName()); - - javaType = new SimpleJavaType(java.util.Map.Entry[][].class); - assertEquals("[[Ljava.util.Map$Entry;", javaType.getJavaClassName()); - } - - public void testDescribes() throws Exception { - this.verifyDescribes(java.lang.Object.class); - this.verifyDescribes(java.lang.Object[].class); - this.verifyDescribes(int.class); - this.verifyDescribes(int[].class); - this.verifyDescribes(void.class); - this.verifyDescribes(java.util.Map.Entry.class); - this.verifyDescribes(java.util.Map.Entry[][].class); - } - - private void verifyDescribes(Class javaClass) throws Exception { - JavaType javaType = new SimpleJavaType(javaClass); - assertTrue(javaType.describes(javaClass)); - } - - public void testDeclaration() throws Exception { - JavaType javaType; - javaType = new SimpleJavaType(java.lang.Object.class); - assertEquals("java.lang.Object", javaType.declaration()); - - javaType = new SimpleJavaType(java.lang.Object[].class); - assertEquals("java.lang.Object[]", javaType.declaration()); - - javaType = new SimpleJavaType(int.class); - assertEquals("int", javaType.declaration()); - - javaType = new SimpleJavaType(int[].class); - assertEquals("int[]", javaType.declaration()); - - javaType = new SimpleJavaType(void.class); - assertEquals("void", javaType.declaration()); - - javaType = new SimpleJavaType(java.util.Map.Entry.class); - assertEquals("java.util.Map.Entry", javaType.declaration()); - - javaType = new SimpleJavaType(java.util.Map.Entry[][].class); - assertEquals("java.util.Map.Entry[][]", javaType.declaration()); - } - - public void testIsPrimitive() throws Exception { - JavaType javaType; - javaType = new SimpleJavaType(java.lang.Object.class); - assertFalse(javaType.isPrimitive()); - - javaType = new SimpleJavaType(java.lang.Object[].class); - assertFalse(javaType.isPrimitive()); - - javaType = new SimpleJavaType(int.class); - assertTrue(javaType.isPrimitive()); - - javaType = new SimpleJavaType(int[].class); - assertFalse(javaType.isPrimitive()); - - javaType = new SimpleJavaType(void.class); - assertTrue(javaType.isPrimitive()); - - javaType = new SimpleJavaType(java.util.Map.Entry.class); - assertFalse(javaType.isPrimitive()); - - javaType = new SimpleJavaType(java.util.Map.Entry[][].class); - assertFalse(javaType.isPrimitive()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JptCommonUtilityTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JptCommonUtilityTests.java deleted file mode 100644 index 10b181ba15..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/JptCommonUtilityTests.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.jpt.common.utility.tests.internal.enumerations.JptUtilityEnumerationsTests; -import org.eclipse.jpt.common.utility.tests.internal.iterables.JptUtilityIterablesTests; -import org.eclipse.jpt.common.utility.tests.internal.iterators.JptUtilityIteratorsTests; -import org.eclipse.jpt.common.utility.tests.internal.model.JptUtilityModelTests; -import org.eclipse.jpt.common.utility.tests.internal.node.JptUtilityNodeTests; -import org.eclipse.jpt.common.utility.tests.internal.synchronizers.JptUtilitySynchronizersTests; - -/** - * decentralize test creation code - */ -public class JptCommonUtilityTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptCommonUtilityTests.class.getPackage().getName()); - - suite.addTest(JptUtilityEnumerationsTests.suite()); - suite.addTest(JptUtilityIterablesTests.suite()); - suite.addTest(JptUtilityIteratorsTests.suite()); - suite.addTest(JptUtilityModelTests.suite()); - suite.addTest(JptUtilityNodeTests.suite()); - suite.addTest(JptUtilitySynchronizersTests.suite()); - - suite.addTestSuite(ArrayToolsTests.class); - suite.addTestSuite(AsynchronousCommandExecutorTests.class); - suite.addTestSuite(BagTests.class); - suite.addTestSuite(BidiFilterTests.class); - suite.addTestSuite(BidiStringConverterTests.class); - suite.addTestSuite(BidiTransformerTests.class); - suite.addTestSuite(BitToolsTests.class); - suite.addTestSuite(SimpleBooleanReferenceTests.class); - suite.addTestSuite(BooleanToolsTests.class); - suite.addTestSuite(ClasspathTests.class); - suite.addTestSuite(ClassNameTests.class); - suite.addTestSuite(CollectionToolsTests.class); - suite.addTestSuite(CommandExecutorTests.class); - suite.addTestSuite(CommandRunnableTests.class); - suite.addTestSuite(CommandTests.class); - suite.addTestSuite(CompositeCommandTests.class); - suite.addTestSuite(ExceptionHandlerTests.class); - suite.addTestSuite(FileToolsTests.class); - suite.addTestSuite(FilterTests.class); - suite.addTestSuite(HashBagTests.class); - suite.addTestSuite(IdentityHashBagTests.class); - suite.addTestSuite(IndentingPrintWriterTests.class); - suite.addTestSuite(SimpleIntReferenceTests.class); - suite.addTestSuite(JavaTypeTests.class); - suite.addTestSuite(JDBCTypeTests.class); - suite.addTestSuite(KeyedSetTests.class); - suite.addTestSuite(ListenerListTests.class); - suite.addTestSuite(MethodSignatureTests.class); - suite.addTestSuite(NameToolsTests.class); - suite.addTestSuite(NotNullFilterTests.class); - suite.addTestSuite(RangeTests.class); - suite.addTestSuite(ReflectionToolsTests.class); - suite.addTestSuite(ReverseComparatorTests.class); - suite.addTestSuite(SimpleAssociationTests.class); - suite.addTestSuite(SimpleObjectReferenceTests.class); - suite.addTestSuite(SimpleQueueTests.class); - suite.addTestSuite(SimpleStackTests.class); - suite.addTestSuite(StringToolsTests.class); - suite.addTestSuite(SynchronizedBooleanTests.class); - suite.addTestSuite(SynchronizedIntTests.class); - suite.addTestSuite(SynchronizedObjectTests.class); - suite.addTestSuite(SynchronizedQueueTests.class); - suite.addTestSuite(SynchronizedStackTests.class); - suite.addTestSuite(ToolsTests.class); - suite.addTestSuite(XMLStringEncoderTests.class); - - return suite; - } - - private JptCommonUtilityTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/KeyedSetTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/KeyedSetTests.java deleted file mode 100644 index 7c27e5d2a6..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/KeyedSetTests.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.KeyedSet; - -@SuppressWarnings("nls") -public class KeyedSetTests - extends TestCase { - - private KeyedSet nicknames; - - - public KeyedSetTests(String name) { - super(name); - } - - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.nicknames = this.buildNicknames(); - } - - private KeyedSet buildNicknames() { - KeyedSet ks = new KeyedSet(); - ks.addItem("Jimmy", "James Sullivan"); - ks.addKey("Sully", "James Sullivan"); - ks.addItem("Bob", "Robert McKenna"); - ks.addKey("Mac", "Robert McKenna"); - return ks; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testAddItem() { - // items added in setup - assertTrue(this.nicknames.containsItem("James Sullivan")); - assertTrue(this.nicknames.containsItem("Robert McKenna")); - - assertFalse(this.nicknames.containsItem("John Teasdale")); - this.nicknames.addItem("Jack", "John Teasdale"); - assertTrue(this.nicknames.containsItem("John Teasdale")); - - this.nicknames.addItem("Teaser", "John Teasdale"); - assertTrue(this.nicknames.containsItem("John Teasdale")); - assertTrue(this.nicknames.containsKey("Teaser")); - } - - public void testAddKey() { - // items added in setup - assertTrue(this.nicknames.containsKey("Jimmy")); - assertTrue(this.nicknames.containsKey("Sully")); - assertTrue(this.nicknames.containsKey("Bob")); - assertTrue(this.nicknames.containsKey("Mac")); - - assertFalse(this.nicknames.containsKey("Robbie")); - this.nicknames.addKey("Robbie", "Robert McKenna"); - assertTrue(this.nicknames.containsKey("Robbie")); - - boolean exceptionCaught = false; - try { - this.nicknames.addKey("Teaser", "John Teasdale"); - } - catch (IllegalArgumentException iae) { - exceptionCaught = true; - } - assertTrue(exceptionCaught); - } - - public void testGetItem() { - // items added in setup - assertEquals(this.nicknames.getItem("Jimmy"), "James Sullivan"); - assertEquals(this.nicknames.getItem("Sully"), "James Sullivan"); - assertEquals(this.nicknames.getItem("Bob"), "Robert McKenna"); - assertEquals(this.nicknames.getItem("Mac"), "Robert McKenna"); - assertNull(this.nicknames.getItem("Jack")); - } - - public void testRemoveItem() { - // items added in setup - assertTrue(this.nicknames.containsItem("James Sullivan")); - assertTrue(this.nicknames.containsKey("Jimmy")); - assertTrue(this.nicknames.containsKey("Sully")); - - assertTrue(this.nicknames.removeItem("James Sullivan")); - assertFalse(this.nicknames.containsItem("James Sullivan")); - assertFalse(this.nicknames.containsKey("Jimmy")); - assertFalse(this.nicknames.containsKey("Sully")); - - assertFalse(this.nicknames.removeItem("William Goldberg")); - } - - public void testRemoveKey() { - // items added in setup - assertTrue(this.nicknames.containsItem("James Sullivan")); - assertTrue(this.nicknames.containsKey("Jimmy")); - assertTrue(this.nicknames.containsKey("Sully")); - - assertTrue(this.nicknames.removeKey("Jimmy")); - assertTrue(this.nicknames.containsItem("James Sullivan")); - assertFalse(this.nicknames.containsKey("Jimmy")); - assertTrue(this.nicknames.containsKey("Sully")); - - assertTrue(this.nicknames.removeKey("Sully")); - assertFalse(this.nicknames.containsItem("James Sullivan")); - assertFalse(this.nicknames.containsKey("Jimmy")); - assertFalse(this.nicknames.containsKey("Sully")); - - assertFalse(this.nicknames.removeKey("Billy")); - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ListenerListTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ListenerListTests.java deleted file mode 100644 index 7dd0f52e9f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ListenerListTests.java +++ /dev/null @@ -1,194 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.io.Serializable; -import java.util.EventListener; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.internal.Tools; - -@SuppressWarnings("nls") -public class ListenerListTests extends TestCase { - - public ListenerListTests(String name) { - super(name); - } - - public void testGetListeners() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - Listener listener1 = new LocalListener(); - Listener listener2 = new LocalListener(); - Iterable listeners = listenerList.getListeners(); - assertEquals(0, CollectionTools.size(listeners)); - - listenerList.add(listener1); - listenerList.add(listener2); - listeners = listenerList.getListeners(); - assertEquals(2, CollectionTools.size(listeners)); - assertTrue(CollectionTools.contains(listeners, listener1)); - assertTrue(CollectionTools.contains(listeners, listener2)); - } - - public void testSize() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - Listener listener1 = new LocalListener(); - Listener listener2 = new LocalListener(); - assertEquals(0, listenerList.size()); - - listenerList.add(listener1); - listenerList.add(listener2); - assertEquals(2, listenerList.size()); - } - - public void testIsEmpty() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - Listener listener1 = new LocalListener(); - Listener listener2 = new LocalListener(); - assertTrue(listenerList.isEmpty()); - - listenerList.add(listener1); - listenerList.add(listener2); - assertFalse(listenerList.isEmpty()); - } - - public void testAdd_null() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - boolean exCaught = false; - try { - listenerList.add(null); - fail("invalid listener list: " + listenerList); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAdd_duplicate() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - Listener listener = new LocalListener(); - listenerList.add(listener); - - boolean exCaught = false; - try { - listenerList.add(listener); - fail("invalid listener list: " + listenerList); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRemove() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - Listener listener1 = new LocalListener(); - Listener listener2 = new LocalListener(); - listenerList.add(listener1); - listenerList.add(listener2); - assertTrue(CollectionTools.contains(listenerList.getListeners(), listener1)); - assertTrue(CollectionTools.contains(listenerList.getListeners(), listener2)); - - listenerList.remove(listener1); - assertFalse(CollectionTools.contains(listenerList.getListeners(), listener1)); - assertTrue(CollectionTools.contains(listenerList.getListeners(), listener2)); - - listenerList.remove(listener2); - assertFalse(CollectionTools.contains(listenerList.getListeners(), listener2)); - } - - public void testRemove_null() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - boolean exCaught = false; - try { - listenerList.remove(null); - fail("invalid listener list: " + listenerList); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRemove_unregistered() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - Listener listener = new LocalListener(); - listenerList.add(listener); - listenerList.remove(listener); - - boolean exCaught = false; - try { - listenerList.remove(listener); - fail("invalid listener list: " + listenerList); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testClear() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - Listener listener1 = new LocalListener(); - Listener listener2 = new LocalListener(); - listenerList.add(listener1); - listenerList.add(listener2); - assertTrue(CollectionTools.contains(listenerList.getListeners(), listener1)); - assertTrue(CollectionTools.contains(listenerList.getListeners(), listener2)); - - listenerList.clear(); - assertFalse(CollectionTools.contains(listenerList.getListeners(), listener1)); - assertFalse(CollectionTools.contains(listenerList.getListeners(), listener2)); - } - - public void testSerialization() throws Exception { - // This test doesn't pass in the Eclipse build environment (Linux/IBM VM) for some reason - if (Tools.jvmIsSun()) { - this.verifySerialization(); - } - } - - private void verifySerialization() throws Exception { - ListenerList listenerList = new ListenerList(Listener.class); - Listener listener1 = new LocalListener(); - Listener listener2 = new LocalListener(); - listenerList.add(listener1); - listenerList.add(listener2); - - ListenerList listenerList2 = TestTools.serialize(listenerList); - assertNotSame(listenerList, listenerList2); - assertEquals(2, listenerList2.size()); - - Listener listener3 = new NonSerializableListener(); - listenerList.add(listener3); - - listenerList2 = TestTools.serialize(listenerList); - assertNotSame(listenerList, listenerList2); - assertEquals(2, listenerList2.size()); - - } - - interface Listener extends EventListener { - void somethingHappened(); - } - - static class LocalListener implements Listener, Serializable { - public void somethingHappened() { - // do nothing - } - } - - static class NonSerializableListener implements Listener { - public void somethingHappened() { - // do nothing - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MethodSignatureTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MethodSignatureTests.java deleted file mode 100644 index 6558e2f45f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MethodSignatureTests.java +++ /dev/null @@ -1,208 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.lang.reflect.Method; -import java.util.Arrays; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.JavaType; -import org.eclipse.jpt.common.utility.MethodSignature; -import org.eclipse.jpt.common.utility.internal.SimpleJavaType; -import org.eclipse.jpt.common.utility.internal.SimpleMethodSignature; - -@SuppressWarnings("nls") -public class MethodSignatureTests extends TestCase { - - public MethodSignatureTests(String name) { - super(name); - } - - public void testInvalidNameNull() throws Exception { - boolean exCaught = false; - try { - MethodSignature methodSignature = new SimpleMethodSignature((String) null); - fail("invalid MethodSignature: " + methodSignature); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidNameEmpty() throws Exception { - boolean exCaught = false; - try { - MethodSignature methodSignature = new SimpleMethodSignature(""); - fail("invalid MethodSignature: " + methodSignature); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidParameterTypesNull() throws Exception { - boolean exCaught = false; - try { - MethodSignature methodSignature = new SimpleMethodSignature("foo", (JavaType[]) null); - fail("invalid MethodSignature: " + methodSignature); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidParameterTypesNullItem() throws Exception { - boolean exCaught = false; - try { - MethodSignature methodSignature = new SimpleMethodSignature("foo", new JavaType[1]); - fail("invalid MethodSignature: " + methodSignature); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidParameterTypesVoidItem() throws Exception { - JavaType jt = new SimpleJavaType(void.class.getName()); - boolean exCaught = false; - try { - MethodSignature methodSignature = new SimpleMethodSignature("foo", new JavaType[] {jt}); - fail("invalid MethodSignature: " + methodSignature); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidParameterTypeNamesNull() throws Exception { - boolean exCaught = false; - try { - MethodSignature methodSignature = new SimpleMethodSignature("foo", (String[]) null); - fail("invalid MethodSignature: " + methodSignature); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidParameterTypeNamesNullItem() throws Exception { - boolean exCaught = false; - try { - MethodSignature methodSignature = new SimpleMethodSignature("foo", new String[1]); - fail("invalid MethodSignature: " + methodSignature); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidParameterJavaClassesNull() throws Exception { - boolean exCaught = false; - try { - MethodSignature methodSignature = new SimpleMethodSignature("foo", (Class[]) null); - fail("invalid MethodSignature: " + methodSignature); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidParameterJavaClassesNullItem() throws Exception { - boolean exCaught = false; - try { - MethodSignature methodSignature = new SimpleMethodSignature("foo", new Class[1]); - fail("invalid MethodSignature: " + methodSignature); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testGetSignature0() throws Exception { - MethodSignature ms = new SimpleMethodSignature(this.getMethod("method0")); - assertEquals("method0()", ms.getSignature()); - } - - public void testGetSignature1() throws Exception { - MethodSignature ms = new SimpleMethodSignature(this.getMethod("method1")); - assertEquals("method1(int)", ms.getSignature()); - } - - public void testGetSignature2() throws Exception { - MethodSignature ms = new SimpleMethodSignature(this.getMethod("method2")); - assertEquals("method2(int, java.lang.String)", ms.getSignature()); - } - - public void testGetSignature3() throws Exception { - MethodSignature ms = new SimpleMethodSignature(this.getMethod("method3")); - assertEquals("method3(int, java.lang.String, java.lang.Object[][])", ms.getSignature()); - } - - public void testGetName() throws Exception { - MethodSignature ms = new SimpleMethodSignature(this.getMethod("method2")); - assertEquals("method2", ms.getName()); - } - - public void testGetParameterTypes() throws Exception { - MethodSignature ms = new SimpleMethodSignature(this.getMethod("method3")); - JavaType[] expected = new JavaType[3]; - expected[0] = new SimpleJavaType("int"); - expected[1] = new SimpleJavaType("java.lang.String"); - expected[2] = new SimpleJavaType("java.lang.Object", 2); - assertTrue(Arrays.equals(expected, ms.getParameterTypes())); - } - - public void testEquals() throws Exception { - Object ms1 = new SimpleMethodSignature(this.getMethod("method3")); - Object ms2 = new SimpleMethodSignature(this.getMethod("method3")); - assertNotSame(ms1, ms2); - assertEquals(ms1, ms1); - assertEquals(ms1, ms2); - assertEquals(ms1.hashCode(), ms2.hashCode()); - - Object ms3 = new SimpleMethodSignature(this.getMethod("method2")); - assertNotSame(ms1, ms3); - assertFalse(ms1.equals(ms3)); - } - - public void testClone() throws Exception { - SimpleMethodSignature ms1 = new SimpleMethodSignature(this.getMethod("method3")); - SimpleMethodSignature ms2 = (SimpleMethodSignature) ms1.clone(); - assertNotSame(ms1, ms2); - assertEquals(ms1, ms2); - } - - public void testSerialization() throws Exception { - SimpleMethodSignature ms1 = new SimpleMethodSignature(this.getMethod("method3")); - SimpleMethodSignature ms2 = TestTools.serialize(ms1); - assertNotSame(ms1, ms2); - assertEquals(ms1, ms2); - } - - private Method getMethod(String methodName) { - for (Method method : this.getClass().getMethods()) { - if (method.getName().equals(methodName)) { - return method; - } - } - throw new IllegalArgumentException("method not found: " + methodName); - } - - public void method0() { /* used by tests */ } - @SuppressWarnings("unused") public void method1(int foo) { /* used by tests */ } - @SuppressWarnings("unused") public void method2(int foo, String bar) { /* used by tests */ } - @SuppressWarnings("unused") public void method3(int foo, String bar, Object[][] baz) { /* used by tests */ } - - @SuppressWarnings("unused") public void methodA(int foo, String bar) { /* used by tests */ } - @SuppressWarnings("unused") public void methodA(int foo, String bar, String baz) { /* used by tests */ } - - @SuppressWarnings("unused") public void methodB(int foo, Object bar) { /* used by tests */ } - @SuppressWarnings("unused") public void methodB(int foo, String bar) { /* used by tests */ } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MultiThreadedTestCase.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MultiThreadedTestCase.java deleted file mode 100644 index 10ac313cc0..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/MultiThreadedTestCase.java +++ /dev/null @@ -1,141 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.ArrayList; -import java.util.Vector; -import java.util.concurrent.ThreadFactory; - -import org.eclipse.jpt.common.utility.internal.CompositeException; - -import junit.framework.TestCase; - -/** - * This test case helps simplify the testing of multi-threaded code. - */ -@SuppressWarnings("nls") -public abstract class MultiThreadedTestCase - extends TestCase -{ - private final ArrayList threads = new ArrayList(); - /* private */ final Vector exceptions = new Vector(); - - /** - * The default "tick" is one second. - * Specify the appropriate system property to override. - */ - public static final String TICK_SYSTEM_PROPERTY_NAME = "org.eclipse.jpt.common.utility.tests.tick"; - public static final long TICK = Long.getLong(TICK_SYSTEM_PROPERTY_NAME, 1000).longValue(); - public static final long TWO_TICKS = 2 * TICK; - public static final long THREE_TICKS = 3 * TICK; - - /** - * Default constructor. - */ - public MultiThreadedTestCase() { - super(); - } - - /** - * Named constructor. - */ - public MultiThreadedTestCase(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - } - - /** - * Stop all the threads constructed during the test case. - * If any exceptions were thrown by the threads, re-throw them here. - */ - @Override - protected void tearDown() throws Exception { - for (Thread thread : this.threads) { - if (thread.isAlive()) { - throw new IllegalStateException("thread is still alive: " + thread); - } - } - if ( ! this.exceptions.isEmpty()) { - throw new CompositeException(this.exceptions); - } - TestTools.clear(this); - super.tearDown(); - } - - protected Thread buildThread(Runnable runnable) { - return this.buildThread(runnable, null); - } - - protected Thread buildThread(Runnable runnable, String name) { - Thread thread = new Thread(new RunnableWrapper(runnable)); - if (name != null) { - thread.setName(name); - } - this.threads.add(thread); - return thread; - } - - protected ThreadFactory buildThreadFactory() { - return new TestThreadFactory(); - } - - /** - * Convenience method that handles {@link InterruptedException}. - */ - public void sleep(long millis) { - TestTools.sleep(millis); - } - - - /** - * Wrap a runnable and log any exception it throws. - */ - public class TestThreadFactory implements ThreadFactory { - public Thread newThread(Runnable r) { - return MultiThreadedTestCase.this.buildThread(r); - } - } - - /** - * Simplify runnables that execute call that throws checked exceptions. - */ - public abstract class TestRunnable implements Runnable { - public final void run() { - try { - this.run_(); - } catch (Throwable ex) { - throw new RuntimeException(ex); - } - } - protected abstract void run_() throws Throwable; - } - - /** - * Wrap a runnable and log any exception it throws. - */ - private class RunnableWrapper implements Runnable { - private final Runnable runnable; - RunnableWrapper(Runnable runnable) { - super(); - this.runnable = runnable; - } - public void run() { - try { - this.runnable.run(); - } catch (Throwable ex) { - MultiThreadedTestCase.this.exceptions.add(ex); - } - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/NameToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/NameToolsTests.java deleted file mode 100644 index d486aab6b7..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/NameToolsTests.java +++ /dev/null @@ -1,226 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.NameTools; - -@SuppressWarnings("nls") -public class NameToolsTests extends TestCase { - - public NameToolsTests(String name) { - super(name); - } - - public void testStringAbsentIgnoreCase() { - List colorCollection = this.buildColorCollection(); - String returned = NameTools.uniqueNameForIgnoreCase("Taupe", colorCollection); - assertEquals("Taupe", returned); - } - - public void testStringPresentCaseDiffers() { - List colorCollection = this.buildColorCollection(); - String returned = NameTools.uniqueNameFor("green", colorCollection); - assertEquals("green", returned); - } - - public void testStringPresentIgnoreCase() { - List colorCollection = this.buildColorCollection(); - String returned = NameTools.uniqueNameForIgnoreCase("green", colorCollection); - assertEquals("green2", returned); - } - - public void testStringPresentWithAppendices() { - List colorCollection = this.buildColorCollection(); - colorCollection.add("Red1"); - colorCollection.add("red2"); - String returned = NameTools.uniqueNameForIgnoreCase("red", colorCollection); - colorCollection.remove("Red1"); - colorCollection.remove("red2"); - assertEquals("red3", returned); - } - - private List buildColorCollection() { - List colorCollection = new ArrayList(); - colorCollection.add("Red"); - colorCollection.add("Orange"); - colorCollection.add("Yellow"); - colorCollection.add("Green"); - colorCollection.add("Blue"); - colorCollection.add("Indigo"); - colorCollection.add("Violet"); - return colorCollection; - } - - public void testUniqueNameForCollection1() { - Collection strings = new ArrayList(); - strings.add("Oracle"); - strings.add("Oracle Corporation"); - strings.add("Oracle2"); - strings.add("oracle1"); - strings.add("Oracl"); - - assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings)); - assertEquals("Test", NameTools.uniqueNameFor("Test", strings)); - - assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings)); - assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings)); - assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings)); - } - - public void testUniqueNameForCollection2() { - Collection strings = new ArrayList(); - strings.add("Oracle"); - strings.add("oracle"); - strings.add("Oracle2"); - strings.add("Oracle1"); - - assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings)); - assertEquals("Test", NameTools.uniqueNameFor("Test", strings)); - - strings.add("Oracle Corporation"); - assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings)); - assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings)); - assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings)); - } - - public void testUniqueNameForCollection3() { - Collection strings = new ArrayList(); - strings.add("Oracle"); - strings.add("Oracle"); - strings.add("Oracle2"); - strings.add("Oracle1"); - - assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings)); - } - - public void testUniqueNameForIterator1() { - Collection strings = new ArrayList(); - strings.add("Oracle"); - strings.add("Oracle Corporation"); - strings.add("Oracle2"); - strings.add("oracle1"); - strings.add("Oracl"); - - assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator())); - assertEquals("Test", NameTools.uniqueNameFor("Test", strings.iterator())); - - assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings.iterator())); - assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings.iterator())); - assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings.iterator())); - } - - public void testUniqueNameForIterator2() { - Collection strings = new ArrayList(); - strings.add("Oracle"); - strings.add("oracle"); - strings.add("Oracle2"); - strings.add("Oracle1"); - - assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator())); - assertEquals("Test", NameTools.uniqueNameFor("Test", strings.iterator())); - - strings.add("Oracle Corporation"); - assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings.iterator())); - assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings.iterator())); - assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings.iterator())); - } - - public void testUniqueNameForIterator3() { - Collection strings = new ArrayList(); - strings.add("Oracle"); - strings.add("Oracle"); - strings.add("Oracle2"); - strings.add("Oracle1"); - - assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator())); - } - - public void testBuildQualifiedDatabaseObjectName() { - assertEquals("catalog.schema.name", NameTools.buildQualifiedDatabaseObjectName("catalog", "schema", "name")); - assertEquals("catalog..name", NameTools.buildQualifiedDatabaseObjectName("catalog", null, "name")); - assertEquals("schema.name", NameTools.buildQualifiedDatabaseObjectName(null, "schema", "name")); - assertEquals("name", NameTools.buildQualifiedDatabaseObjectName(null, null, "name")); - } - - public void testJavaReservedWords() { - assertTrue(CollectionTools.contains(NameTools.javaReservedWords(), "class")); - assertFalse(CollectionTools.contains(NameTools.javaReservedWords(), "Class")); - assertTrue(CollectionTools.contains(NameTools.javaReservedWords(), "private")); - } - - public void testconvertToJavaIdentifierString() { - assertEquals("foo", NameTools.convertToJavaIdentifier("foo")); - assertEquals("foo1", NameTools.convertToJavaIdentifier("foo1")); - assertEquals("private_", NameTools.convertToJavaIdentifier("private")); - assertEquals("throw_", NameTools.convertToJavaIdentifier("throw")); - assertEquals("_foo", NameTools.convertToJavaIdentifier("1foo")); - assertEquals("foo_", NameTools.convertToJavaIdentifier("foo%")); - assertEquals("foo__bar__", NameTools.convertToJavaIdentifier("foo bar ")); - } - - public void testconvertToJavaIdentifierStringChar() { - assertEquals("foo", NameTools.convertToJavaIdentifier("foo", '$')); - assertEquals("foo1", NameTools.convertToJavaIdentifier("foo1", '$')); - assertEquals("private$", NameTools.convertToJavaIdentifier("private", '$')); - assertEquals("throwss", NameTools.convertToJavaIdentifier("throw", 's')); - assertEquals("$foo", NameTools.convertToJavaIdentifier("1foo", '$')); - assertEquals("foo$", NameTools.convertToJavaIdentifier("foo%", '$')); - assertEquals("foo$$bar$$", NameTools.convertToJavaIdentifier("foo bar ", '$')); - - boolean exCaught = false; - try { - String s = NameTools.convertToJavaIdentifier("1foo", '7'); - fail("invalid string: \"" + s + "\""); - } catch (IllegalArgumentException ex) { - if (ex.getMessage().indexOf('7') != -1) { - exCaught = true; - } - } - assertTrue(exCaught); - - exCaught = false; - try { - String s = NameTools.convertToJavaIdentifier("foo%", '^'); - fail("invalid string: \"" + s + "\""); - } catch (IllegalArgumentException ex) { - if (ex.getMessage().indexOf('^') != -1) { - exCaught = true; - } - } - assertTrue(exCaught); - - exCaught = false; - try { - String s = NameTools.convertToJavaIdentifier("private", '^'); - fail("invalid string: \"" + s + "\""); - } catch (IllegalArgumentException ex) { - if (ex.getMessage().indexOf('^') != -1) { - exCaught = true; - } - } - assertTrue(exCaught); - - } - - public void testStringIsLegalJavaIdentifier() { - assertFalse(NameTools.stringIsLegalJavaIdentifier("class")); - assertTrue(NameTools.stringIsLegalJavaIdentifier("clasS")); - - assertFalse(NameTools.stringIsLegalJavaIdentifier("7foo")); - assertFalse(NameTools.stringIsLegalJavaIdentifier("foo@bar")); - assertTrue(NameTools.stringIsLegalJavaIdentifier("_foo")); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/NotNullFilterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/NotNullFilterTests.java deleted file mode 100644 index caf06708ae..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/NotNullFilterTests.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.NotNullFilter; - -@SuppressWarnings("nls") -public class NotNullFilterTests extends TestCase { - - public NotNullFilterTests(String name) { - super(name); - } - - public void testNotNullFilter() { - Filter filter = NotNullFilter.instance(); - assertTrue(filter.accept("")); - assertFalse(filter.accept(null)); - assertTrue(filter.accept("foo")); - assertTrue(filter.accept("bar")); - } - - public void testToString() { - Filter filter = NotNullFilter.instance(); - assertNotNull(filter.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/RangeTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/RangeTests.java deleted file mode 100644 index dcd959295a..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/RangeTests.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.Range; - -public class RangeTests extends TestCase { - - public RangeTests(String name) { - super(name); - } - - public void testIncludes() { - Range range = new Range(5, 17); - assertFalse(range.includes(-55)); - assertFalse(range.includes(0)); - assertFalse(range.includes(4)); - assertTrue(range.includes(5)); - assertTrue(range.includes(6)); - assertTrue(range.includes(16)); - assertTrue(range.includes(17)); - assertFalse(range.includes(18)); - assertFalse(range.includes(200)); - } - - public void testEquals() { - Range range1 = new Range(5, 17); - Range range2 = new Range(5, 17); - assertNotSame(range1, range2); - assertEquals(range1, range1); - assertEquals(range1, range2); - assertEquals(range2, range1); - assertEquals(range1.hashCode(), range2.hashCode()); - - range2 = new Range(17, 5); - assertFalse(range1.equals(range2)); - assertFalse(range2.equals(range1)); - // although they are unequal, they can have the same hash code - assertEquals(range1.hashCode(), range2.hashCode()); - - range2 = new Range(5, 15); - assertFalse(range1.equals(range2)); - assertFalse(range2.equals(range1)); - } - - public void testClone() { - Range range1 = new Range(5, 17); - Range range2 = range1.clone(); - assertNotSame(range1, range2); - assertEquals(range1, range1); - assertEquals(range1, range2); - assertEquals(range2, range1); - assertEquals(range1.hashCode(), range2.hashCode()); - } - - public void testSerialization() throws Exception { - Range range1 = new Range(5, 17); - Range range2 = TestTools.serialize(range1); - assertNotSame(range1, range2); - assertEquals(range1, range1); - assertEquals(range1, range2); - assertEquals(range2, range1); - assertEquals(range1.hashCode(), range2.hashCode()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ReflectionToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ReflectionToolsTests.java deleted file mode 100644 index d210cb0f5f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ReflectionToolsTests.java +++ /dev/null @@ -1,440 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.Vector; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; - -@SuppressWarnings("nls") -public class ReflectionToolsTests extends TestCase { - - private static String testStaticField; - - public ReflectionToolsTests(String name) { - super(name); - } - -// this is no longer true - it appears the JLS now defines the generated names... -// /** -// * Return the compiler-generated class name. The Eclipse compiler generates -// * "local" classes with names in the form "com.foo.Outer$1$Local"; while the -// * JDK compiler generates "com.foo.Outer$1Local". There might be other -// * differences.... ~bjv -// */ -// public static String compilerDependentClassNameFor(String className) { -// int index = className.indexOf("$1$"); -// if (index == -1) { -// return className; -// } -// try { -// Class.forName(className); -// } catch (ClassNotFoundException ex) { -// return className.substring(0, index + 2) + className.substring(index + 3); -// } -// return className; -// } -// -// private static String munge(String className) { -// return compilerDependentClassNameFor(className); -// } - - public void testAllFields() { - int fieldCount = 0; - fieldCount += java.util.Vector.class.getDeclaredFields().length; - fieldCount += java.util.AbstractList.class.getDeclaredFields().length; - fieldCount += java.util.AbstractCollection.class.getDeclaredFields().length; - fieldCount += java.lang.Object.class.getDeclaredFields().length; - Iterable fields = ReflectionTools.getAllFields(java.util.Vector.class); - assertEquals(fieldCount, CollectionTools.size(fields)); - assertTrue(CollectionTools.contains(this.fieldNames(fields), "modCount")); - assertTrue(CollectionTools.contains(this.fieldNames(fields), "serialVersionUID")); - assertTrue(CollectionTools.contains(this.fieldNames(fields), "capacityIncrement")); - assertTrue(CollectionTools.contains(this.fieldNames(fields), "elementCount")); - assertTrue(CollectionTools.contains(this.fieldNames(fields), "elementData")); - assertTrue(fields.iterator().next().isAccessible()); - } - - public void testAllMethods() { - int methodCount = 0; - methodCount += java.util.Vector.class.getDeclaredMethods().length; - methodCount += java.util.AbstractList.class.getDeclaredMethods().length; - methodCount += java.util.AbstractCollection.class.getDeclaredMethods().length; - methodCount += java.lang.Object.class.getDeclaredMethods().length; - Iterable methods = ReflectionTools.getAllMethods(java.util.Vector.class); - assertEquals(methodCount, CollectionTools.size(methods)); - assertTrue(CollectionTools.contains(this.methodNames(methods), "wait")); - assertTrue(CollectionTools.contains(this.methodNames(methods), "addElement")); - assertTrue(methods.iterator().next().isAccessible()); - } - - public void testNewInstanceClass() { - Vector v = ReflectionTools.newInstance(java.util.Vector.class); - assertNotNull(v); - assertEquals(0, v.size()); - } - - public void testNewInstanceClassClassObject() { - int initialCapacity = 200; - Vector v = ReflectionTools.newInstance(java.util.Vector.class, int.class, new Integer(initialCapacity)); - assertNotNull(v); - assertEquals(0, v.size()); - Object[] elementData = (Object[]) ReflectionTools.getFieldValue(v, "elementData"); - assertEquals(initialCapacity, elementData.length); - } - - public void testNewInstanceClassClassArrayObjectArray() { - int initialCapacity = 200; - Class[] parmTypes = new Class[1]; - parmTypes[0] = int.class; - Object[] parms = new Object[1]; - parms[0] = new Integer(initialCapacity); - Vector v = ReflectionTools.newInstance(java.util.Vector.class, parmTypes, parms); - assertNotNull(v); - assertEquals(0, v.size()); - Object[] elementData = (Object[]) ReflectionTools.getFieldValue(v, "elementData"); - assertEquals(initialCapacity, elementData.length); - - parms[0] = new Integer(-1); - boolean exCaught = false; - try { - v = ReflectionTools.newInstance(java.util.Vector.class, parmTypes, parms); - } catch (RuntimeException ex) { - exCaught = true; - } - assertTrue("RuntimeException not thrown", exCaught); - - parmTypes[0] = java.lang.String.class; - parms[0] = "foo"; - exCaught = false; - try { - v = ReflectionTools.newInstance(java.util.Vector.class, parmTypes, parms); - } catch (RuntimeException ex) { - if (ex.getCause() instanceof NoSuchMethodException) { - exCaught = true; - } - } - assertTrue("NoSuchMethodException not thrown", exCaught); - } - - public void testFieldValue() { - int initialCapacity = 200; - Vector v = new Vector(initialCapacity); - Object[] elementData = (Object[]) ReflectionTools.getFieldValue(v, "elementData"); - assertEquals(initialCapacity, elementData.length); - - // test inherited field - Integer modCountInteger = (Integer) ReflectionTools.getFieldValue(v, "modCount"); - int modCount = modCountInteger.intValue(); - assertEquals(0, modCount); - - boolean exCaught = false; - Object bogusFieldValue = null; - try { - bogusFieldValue = ReflectionTools.getFieldValue(v, "bogusField"); - } catch (RuntimeException ex) { - if (ex.getCause() instanceof NoSuchFieldException) { - exCaught = true; - } - } - assertTrue("NoSuchFieldException not thrown: " + bogusFieldValue, exCaught); - } - - public void testExecuteMethodObjectString() { - Vector v = new Vector(); - int size = ((Integer) ReflectionTools.executeMethod(v, "size")).intValue(); - assertEquals(0, size); - - v.addElement("foo"); - size = ((Integer) ReflectionTools.executeMethod(v, "size")).intValue(); - assertEquals(1, size); - } - - public void testExecuteMethodObjectStringClassObject() { - Vector v = new Vector(); - boolean booleanResult = ((Boolean) ReflectionTools.executeMethod(v, "add", Object.class, "foo")).booleanValue(); - assertTrue(booleanResult); - assertTrue(v.contains("foo")); - Object voidResult = ReflectionTools.executeMethod(v, "addElement", Object.class, "bar"); - assertNull(voidResult); - } - - public void testExecuteMethodObjectStringClassArrayObjectArray() { - Vector v = new Vector(); - Class[] parmTypes = new Class[1]; - parmTypes[0] = java.lang.Object.class; - Object[] parms = new Object[1]; - parms[0] = "foo"; - boolean booleanResult = ((Boolean) ReflectionTools.executeMethod(v, "add", parmTypes, parms)).booleanValue(); - assertTrue(booleanResult); - assertTrue(v.contains("foo")); - - boolean exCaught = false; - Object bogusMethodReturnValue = null; - try { - bogusMethodReturnValue = ReflectionTools.executeMethod(v, "bogusMethod", parmTypes, parms); - } catch (RuntimeException ex) { - if (ex.getCause() instanceof NoSuchMethodException) { - exCaught = true; - } - } - assertTrue("NoSuchMethodException not thrown: " + bogusMethodReturnValue, exCaught); - } - - public void testExecuteStaticMethodClassString() { - Double randomObject = (Double) ReflectionTools.executeStaticMethod(java.lang.Math.class, "random"); - assertNotNull(randomObject); - double random = randomObject.doubleValue(); - assertTrue(random >= 0); - assertTrue(random < 1); - } - - public void testExecuteStaticMethodClassStringClassObject() { - String s = (String) ReflectionTools.executeStaticMethod(java.lang.String.class, "valueOf", boolean.class, Boolean.TRUE); - assertNotNull(s); - assertEquals("true", s); - } - - public void testExecuteStaticMethodClassStringClassArrayObjectArray() { - Class[] parmTypes = new Class[1]; - parmTypes[0] = boolean.class; - Object[] parms = new Object[1]; - parms[0] = Boolean.TRUE; - String s = (String) ReflectionTools.executeStaticMethod(java.lang.String.class, "valueOf", parmTypes, parms); - assertNotNull(s); - assertEquals("true", s); - - boolean exCaught = false; - Object bogusStaticMethodReturnValue = null; - try { - bogusStaticMethodReturnValue = ReflectionTools.executeStaticMethod(java.lang.String.class, "bogusStaticMethod", parmTypes, parms); - } catch (RuntimeException ex) { - if (ex.getCause() instanceof NoSuchMethodException) { - exCaught = true; - } - } - assertTrue("NoSuchMethodException not thrown: " + bogusStaticMethodReturnValue, exCaught); - - // test non-static method - exCaught = false; - try { - bogusStaticMethodReturnValue = ReflectionTools.executeStaticMethod(java.lang.String.class, "toString"); - } catch (RuntimeException ex) { - if (ex.getCause() instanceof NoSuchMethodException) { - exCaught = true; - } - } - assertTrue("NoSuchMethodException not thrown: " + bogusStaticMethodReturnValue, exCaught); - } - - public void testSetFieldValue() { - Vector v = new Vector(); - Object[] newElementData = new Object[5]; - newElementData[0] = "foo"; - ReflectionTools.setFieldValue(v, "elementData", newElementData); - ReflectionTools.setFieldValue(v, "elementCount", new Integer(1)); - // test inherited field - ReflectionTools.setFieldValue(v, "modCount", new Integer(1)); - assertTrue(v.contains("foo")); - - boolean exCaught = false; - try { - ReflectionTools.setFieldValue(v, "bogusField", "foo"); - } catch (RuntimeException ex) { - if (ex.getCause() instanceof NoSuchFieldException) { - exCaught = true; - } - } - assertTrue("NoSuchFieldException not thrown", exCaught); - } - - public void testSetStaticFieldValue() { - ReflectionTools.setStaticFieldValue(this.getClass(), "testStaticField", "new value"); - assertEquals(testStaticField, "new value"); - - boolean exCaught = false; - try { - ReflectionTools.setStaticFieldValue(this.getClass(), "bogusStaticField", "new value"); - } catch (RuntimeException ex) { - if (ex.getCause() instanceof NoSuchFieldException) { - exCaught = true; - } - } - assertTrue("NoSuchFieldException not thrown", exCaught); - } - - public void testSimpleName() { - assertEquals("Vector", java.util.Vector.class.getSimpleName()); - assertEquals("Entry", java.util.Map.Entry.class.getSimpleName()); - assertEquals("int", int.class.getSimpleName()); - assertEquals("int[]", int[].class.getSimpleName()); - assertEquals("int[][]", int[][].class.getSimpleName()); - assertEquals("void", void.class.getSimpleName()); - } - - public void testPackageName() { - assertEquals("java.util", java.util.Vector.class.getPackage().getName()); - assertEquals("java.util", java.util.Map.Entry.class.getPackage().getName()); - } - - public void testArrayDepthFor() { - assertEquals(0, ReflectionTools.getArrayDepth(java.util.Vector.class)); - assertEquals(0, ReflectionTools.getArrayDepth(int.class)); - assertEquals(0, ReflectionTools.getArrayDepth(void.class)); - assertEquals(1, ReflectionTools.getArrayDepth(java.util.Vector[].class)); - assertEquals(1, ReflectionTools.getArrayDepth(int[].class)); - assertEquals(3, ReflectionTools.getArrayDepth(java.util.Vector[][][].class)); - assertEquals(3, ReflectionTools.getArrayDepth(int[][][].class)); - } - - public void testElementTypeFor() { - assertEquals(java.util.Vector.class, ReflectionTools.getElementType(java.util.Vector.class)); - assertEquals(int.class, ReflectionTools.getElementType(int.class)); - assertEquals(void.class, ReflectionTools.getElementType(void.class)); - assertEquals(java.util.Vector.class, ReflectionTools.getElementType(java.util.Vector[].class)); - assertEquals(int.class, ReflectionTools.getElementType(int[].class)); - assertEquals(java.util.Vector.class, ReflectionTools.getElementType(java.util.Vector[][][].class)); - assertEquals(int.class, ReflectionTools.getElementType(int[][][].class)); - } - - public void testClassIsPrimitiveWrapperClass() { - assertTrue(ReflectionTools.classIsPrimitiveWrapper(java.lang.Void.class)); - assertTrue(ReflectionTools.classIsPrimitiveWrapper(java.lang.Boolean.class)); - assertTrue(ReflectionTools.classIsPrimitiveWrapper(java.lang.Integer.class)); - assertTrue(ReflectionTools.classIsPrimitiveWrapper(java.lang.Float.class)); - - assertFalse(ReflectionTools.classIsPrimitiveWrapper(java.lang.String.class)); - assertFalse(ReflectionTools.classIsPrimitiveWrapper(void.class)); - assertFalse(ReflectionTools.classIsPrimitiveWrapper(int.class)); - } - - public void testClassIsVariablePrimitiveWrapperClass() { - assertFalse(ReflectionTools.classIsVariablePrimitiveWrapper(java.lang.Void.class)); - - assertTrue(ReflectionTools.classIsVariablePrimitiveWrapper(java.lang.Boolean.class)); - assertTrue(ReflectionTools.classIsVariablePrimitiveWrapper(java.lang.Integer.class)); - assertTrue(ReflectionTools.classIsVariablePrimitiveWrapper(java.lang.Float.class)); - - assertFalse(ReflectionTools.classIsVariablePrimitiveWrapper(java.lang.String.class)); - assertFalse(ReflectionTools.classIsVariablePrimitiveWrapper(void.class)); - assertFalse(ReflectionTools.classIsVariablePrimitiveWrapper(int.class)); - } - - public void testWrapperClass() { - assertEquals(java.lang.Void.class, ReflectionTools.getWrapperClass(void.class)); - assertEquals(java.lang.Integer.class, ReflectionTools.getWrapperClass(int.class)); - assertEquals(java.lang.Float.class, ReflectionTools.getWrapperClass(float.class)); - assertEquals(java.lang.Boolean.class, ReflectionTools.getWrapperClass(boolean.class)); - - assertNull(ReflectionTools.getWrapperClass(java.lang.String.class)); - } - - public void testClassForTypeDeclarationStringInt() throws Exception { - assertEquals(int.class, ReflectionTools.getClassForTypeDeclaration("int", 0)); - assertEquals(int[].class, ReflectionTools.getClassForTypeDeclaration("int", 1)); - assertEquals(int[][][].class, ReflectionTools.getClassForTypeDeclaration("int", 3)); - - assertEquals(Object.class, ReflectionTools.getClassForTypeDeclaration("java.lang.Object", 0)); - assertEquals(Object[][][].class, ReflectionTools.getClassForTypeDeclaration("java.lang.Object", 3)); - - assertEquals(void.class, ReflectionTools.getClassForTypeDeclaration("void", 0)); - try { - ReflectionTools.getClassForTypeDeclaration(void.class.getName(), 1); - fail("should not get here..."); - } catch (RuntimeException ex) { - // expected - } - } - - public void testCodeForClass() { - assertEquals('I', ReflectionTools.getCodeForClass(int.class)); - assertEquals('B', ReflectionTools.getCodeForClass(byte.class)); - } - - public void testClassNameForTypeDeclarationString() throws Exception { - assertEquals("int", ReflectionTools.getClassNameForTypeDeclaration("int")); - assertEquals("[I", ReflectionTools.getClassNameForTypeDeclaration("int[]")); - assertEquals("[[I", ReflectionTools.getClassNameForTypeDeclaration("int [ ] [ ]")); - - assertEquals("java.lang.Object", ReflectionTools.getClassNameForTypeDeclaration("java.lang.Object")); - assertEquals("[Ljava.lang.Object;", ReflectionTools.getClassNameForTypeDeclaration("java.lang.Object\t[]")); - assertEquals("[[Ljava.lang.Object;", ReflectionTools.getClassNameForTypeDeclaration("java.lang.Object\t[]\t[]")); - } - - public void testArrayDepthForTypeDeclarationString() throws Exception { - assertEquals(0, ReflectionTools.getArrayDepthForTypeDeclaration("java.lang.Object")); - assertEquals(1, ReflectionTools.getArrayDepthForTypeDeclaration("java.lang.Object[]")); - assertEquals(3, ReflectionTools.getArrayDepthForTypeDeclaration("java.lang.Object[][][]")); - - assertEquals(0, ReflectionTools.getArrayDepthForTypeDeclaration("int")); - assertEquals(1, ReflectionTools.getArrayDepthForTypeDeclaration("int[]")); - assertEquals(3, ReflectionTools.getArrayDepthForTypeDeclaration("int[][][]")); - - assertEquals(0, ReflectionTools.getArrayDepthForTypeDeclaration("float")); - assertEquals(1, ReflectionTools.getArrayDepthForTypeDeclaration("float [ ]")); - assertEquals(3, ReflectionTools.getArrayDepthForTypeDeclaration("float[] [] []")); - } - - public void testElementTypeNameForTypeDeclarationString() throws Exception { - assertEquals("java.lang.Object", ReflectionTools.getElementTypeNameForTypeDeclaration("java.lang.Object")); - assertEquals("java.lang.Object", ReflectionTools.getElementTypeNameForTypeDeclaration("java.lang.Object[]")); - assertEquals("java.lang.Object", ReflectionTools.getElementTypeNameForTypeDeclaration("java.lang.Object[][][]")); - - assertEquals("int", ReflectionTools.getElementTypeNameForTypeDeclaration("int")); - assertEquals("int", ReflectionTools.getElementTypeNameForTypeDeclaration("int[]")); - assertEquals("int", ReflectionTools.getElementTypeNameForTypeDeclaration("int[][][]")); - - assertEquals("float", ReflectionTools.getElementTypeNameForTypeDeclaration("float")); - assertEquals("float", ReflectionTools.getElementTypeNameForTypeDeclaration("float [ ]")); - assertEquals("float", ReflectionTools.getElementTypeNameForTypeDeclaration("float[] [] []")); - } - - public void testClassNameForTypeDeclarationStringInt() throws Exception { - assertEquals(int.class.getName(), ReflectionTools.getClassNameForTypeDeclaration("int", 0)); - assertEquals(int[].class.getName(), ReflectionTools.getClassNameForTypeDeclaration("int", 1)); - assertEquals(int[][][].class.getName(), ReflectionTools.getClassNameForTypeDeclaration("int", 3)); - - assertEquals(Object.class.getName(), ReflectionTools.getClassNameForTypeDeclaration("java.lang.Object", 0)); - assertEquals(Object[][][].class.getName(), ReflectionTools.getClassNameForTypeDeclaration("java.lang.Object", 3)); - - assertEquals(void.class.getName(), ReflectionTools.getClassNameForTypeDeclaration("void", 0)); - try { - ReflectionTools.getClassNameForTypeDeclaration(void.class.getName(), 1); - fail("should not get here..."); - } catch (IllegalArgumentException ex) { - // expected - } - } - - private Iterable fieldNames(Iterable fields) { - return new TransformationIterable(fields) { - @Override - protected String transform(Field field) { - return field.getName(); - } - }; - } - - private Iterable methodNames(Iterable methods) { - return new TransformationIterable(methods) { - @Override - protected String transform(Method method) { - return method.getName(); - } - }; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ReverseComparatorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ReverseComparatorTests.java deleted file mode 100644 index 1287868a13..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ReverseComparatorTests.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ReverseComparator; - -@SuppressWarnings("nls") -public class ReverseComparatorTests extends TestCase { - private Comparator naturalReverseComparator; - private Comparator customComparator; - private Comparator customReverseComparator; - - public ReverseComparatorTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.naturalReverseComparator = new ReverseComparator(); - this.customComparator = this.buildCustomComparator(); - this.customReverseComparator = new ReverseComparator(this.customComparator); - } - - private Comparator buildCustomComparator() { - return new Comparator() { - public int compare(String s1, String s2) { - String lower1 = s1.toLowerCase(); - String lower2 = s2.toLowerCase(); - int result = lower1.compareTo(lower2); - if (result == 0) { - return s1.compareTo(s2); // use case to differentiate "equal" strings - } - return result; - } - }; - } - - private List buildUnsortedList() { - List result = new ArrayList(); - result.add("T"); - result.add("Z"); - result.add("Y"); - result.add("M"); - result.add("m"); - result.add("a"); - result.add("B"); - result.add("b"); - result.add("A"); - return result; - } - - private List buildNaturallySortedList() { - List result = new ArrayList(this.buildUnsortedList()); - Collections.sort(result); - return result; - } - - private List buildCustomSortedList() { - List result = new ArrayList(this.buildUnsortedList()); - Collections.sort(result, this.customComparator); - return result; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testNatural() { - List list = this.buildUnsortedList(); - Collections.sort(list, this.naturalReverseComparator); - this.verifyList(this.buildNaturallySortedList(), list); - } - - public void testCustom() { - List list = this.buildUnsortedList(); - Collections.sort(list, this.customReverseComparator); - this.verifyList(this.buildCustomSortedList(), list); - } - - private void verifyList(List normal, List reverse) { - int size = normal.size(); - int max = size - 1; - for (int i = 0; i < size; i++) { - assertEquals(normal.get(i), reverse.get(max - i)); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleAssociationTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleAssociationTests.java deleted file mode 100644 index 96fe163217..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleAssociationTests.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import org.eclipse.jpt.common.utility.internal.Association; -import org.eclipse.jpt.common.utility.internal.SimpleAssociation; - -@SuppressWarnings("nls") -public class SimpleAssociationTests extends TestCase { - private SimpleAssociation assoc; - - public static Test suite() { - return new TestSuite(SimpleAssociationTests.class); - } - - public SimpleAssociationTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.assoc = new SimpleAssociation("foo", "bar"); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testGetKey() { - assertEquals("foo", this.assoc.getKey()); - } - - public void testGetValue() { - assertEquals("bar", this.assoc.getValue()); - } - - public void testSetValue() { - assertEquals("bar", this.assoc.getValue()); - this.assoc.setValue("baz"); - assertEquals("baz", this.assoc.getValue()); - } - - public void testEquals() { - assertFalse(this.assoc.equals("foo")); - - assertEquals(this.assoc, this.copy(this.assoc)); - - SimpleAssociation assoc2 = new SimpleAssociation("foo", "baz"); - assertFalse(this.assoc.equals(assoc2)); - - assoc2 = new SimpleAssociation("fop", "bar"); - assertFalse(this.assoc.equals(assoc2)); - - SimpleAssociation assoc3 = new SimpleAssociation(null, null); - SimpleAssociation assoc4 = new SimpleAssociation(null, null); - assertEquals(assoc3, assoc4); - } - - public void testHashCode() { - assertEquals(this.assoc.hashCode(), this.copy(this.assoc).hashCode()); - - SimpleAssociation assoc2 = new SimpleAssociation(null, null); - assertEquals(assoc2.hashCode(), this.copy(assoc2).hashCode()); - } - - public void testToString() { - assertNotNull(this.assoc.toString()); - } - - public void testClone() { - this.verifyClone(this.assoc, this.assoc.clone()); - } - - private void verifyClone(Association expected, Association actual) { - assertEquals(expected, actual); - assertNotSame(expected, actual); - assertEquals(expected.getKey(), actual.getKey()); - assertSame(expected.getKey(), actual.getKey()); - assertEquals(expected.getValue(), actual.getValue()); - assertSame(expected.getValue(), actual.getValue()); - } - - public void testSerialization() throws Exception { - @SuppressWarnings("cast") - Association assoc2 = (Association) TestTools.serialize(this.assoc); - - assertEquals(this.assoc, assoc2); - assertNotSame(this.assoc, assoc2); - assertEquals(this.assoc.getKey(), assoc2.getKey()); - assertNotSame(this.assoc.getKey(), assoc2.getKey()); - assertEquals(this.assoc.getValue(), assoc2.getValue()); - assertNotSame(this.assoc.getValue(), assoc2.getValue()); - } - - private SimpleAssociation copy(SimpleAssociation sa) { - return new SimpleAssociation(sa.getKey(), sa.getValue()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleBooleanReferenceTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleBooleanReferenceTests.java deleted file mode 100644 index 04c06ddde3..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleBooleanReferenceTests.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.SimpleBooleanReference; - -@SuppressWarnings("nls") -public class SimpleBooleanReferenceTests extends TestCase { - - public SimpleBooleanReferenceTests(String name) { - super(name); - } - - public void testGetValue() { - SimpleBooleanReference br = new SimpleBooleanReference(true); - assertTrue(br.getValue()); - } - - public void testGetValueDefault() { - SimpleBooleanReference br = new SimpleBooleanReference(); - assertFalse(br.getValue()); - } - - public void testIs() { - SimpleBooleanReference br = new SimpleBooleanReference(true); - assertTrue(br.is(true)); - assertFalse(br.is(false)); - } - - public void testIsNot() { - SimpleBooleanReference br = new SimpleBooleanReference(true); - assertFalse(br.isNot(true)); - assertTrue(br.isNot(false)); - } - - public void testIsTrue() { - SimpleBooleanReference br = new SimpleBooleanReference(true); - assertTrue(br.isTrue()); - } - - public void testIsFalse() { - SimpleBooleanReference br = new SimpleBooleanReference(true); - assertFalse(br.isFalse()); - br.setFalse(); - assertTrue(br.isFalse()); - } - - public void testSetValue() { - SimpleBooleanReference br = new SimpleBooleanReference(true); - assertTrue(br.getValue()); - br.setValue(false); - assertFalse(br.getValue()); - } - - public void testFlip() { - SimpleBooleanReference br = new SimpleBooleanReference(true); - assertTrue(br.getValue()); - assertFalse(br.flip()); - assertFalse(br.getValue()); - assertTrue(br.flip()); - assertTrue(br.getValue()); - } - - public void testSetNotBoolean() { - SimpleBooleanReference br = new SimpleBooleanReference(false); - assertFalse(br.getValue()); - br.setNot(true); - assertFalse(br.getValue()); - br.setNot(true); - assertFalse(br.getValue()); - br.setNot(false); - assertTrue(br.getValue()); - } - - public void testSetTrue() { - SimpleBooleanReference br = new SimpleBooleanReference(false); - assertFalse(br.getValue()); - br.setTrue(); - assertTrue(br.getValue()); - } - - public void testSetFalse() { - SimpleBooleanReference br = new SimpleBooleanReference(true); - assertTrue(br.getValue()); - br.setFalse(); - assertFalse(br.getValue()); - } - - public void testClone() { - SimpleBooleanReference br = new SimpleBooleanReference(true); - SimpleBooleanReference clone = br.clone(); - assertTrue(clone.getValue()); - } - - public void testToString() { - SimpleBooleanReference br1 = new SimpleBooleanReference(true); - assertEquals("[true]", br1.toString()); - br1.setFalse(); - assertEquals("[false]", br1.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleIntReferenceTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleIntReferenceTests.java deleted file mode 100644 index 196570b6de..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleIntReferenceTests.java +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.SimpleIntReference; - -@SuppressWarnings("nls") -public class SimpleIntReferenceTests extends TestCase { - - public SimpleIntReferenceTests(String name) { - super(name); - } - - public void testCtors() { - SimpleIntReference ir; - ir = new SimpleIntReference(); - assertEquals(0, ir.getValue()); - ir = new SimpleIntReference(7); - assertEquals(7, ir.getValue()); - ir = new SimpleIntReference(-7); - assertEquals(-7, ir.getValue()); - } - - public void testEqualsInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(); - assertTrue(ir.equals(0)); - assertFalse(ir.equals(7)); - - ir = new SimpleIntReference(7); - assertTrue(ir.equals(7)); - assertFalse(ir.equals(0)); - } - - public void testNotEqualInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(); - assertFalse(ir.notEqual(0)); - assertTrue(ir.notEqual(7)); - - ir = new SimpleIntReference(7); - assertFalse(ir.notEqual(7)); - assertTrue(ir.notEqual(0)); - } - - public void testIsZero() { - SimpleIntReference ir; - ir = new SimpleIntReference(); - assertTrue(ir.isZero()); - - ir = new SimpleIntReference(7); - assertFalse(ir.isZero()); - } - - public void testIsNotZero() { - SimpleIntReference ir; - ir = new SimpleIntReference(); - assertFalse(ir.isNotZero()); - - ir = new SimpleIntReference(7); - assertTrue(ir.isNotZero()); - } - - public void testIsGreaterThanInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(); - assertTrue(ir.isGreaterThan(-1)); - assertFalse(ir.isGreaterThan(0)); - assertFalse(ir.isGreaterThan(7)); - } - - public void testIsGreaterThanOrEqualInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(); - assertTrue(ir.isGreaterThanOrEqual(-1)); - assertTrue(ir.isGreaterThanOrEqual(0)); - assertFalse(ir.isGreaterThanOrEqual(7)); - } - - public void testIsLessThanInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(); - assertFalse(ir.isLessThan(-1)); - assertFalse(ir.isLessThan(0)); - assertTrue(ir.isLessThan(7)); - } - - public void testIsLessThanOrEqualInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(); - assertFalse(ir.isLessThanOrEqual(-1)); - assertTrue(ir.isLessThanOrEqual(0)); - assertTrue(ir.isLessThanOrEqual(7)); - } - - public void testIsPositive() { - SimpleIntReference ir; - ir = new SimpleIntReference(-3); - assertFalse(ir.isPositive()); - - ir = new SimpleIntReference(); - assertFalse(ir.isPositive()); - - ir = new SimpleIntReference(7); - assertTrue(ir.isPositive()); - } - - public void testIsNotPositive() { - SimpleIntReference ir; - ir = new SimpleIntReference(-3); - assertTrue(ir.isNotPositive()); - - ir = new SimpleIntReference(); - assertTrue(ir.isNotPositive()); - - ir = new SimpleIntReference(7); - assertFalse(ir.isNotPositive()); - } - - public void testIsNegative() { - SimpleIntReference ir; - ir = new SimpleIntReference(-3); - assertTrue(ir.isNegative()); - - ir = new SimpleIntReference(); - assertFalse(ir.isNegative()); - - ir = new SimpleIntReference(7); - assertFalse(ir.isNegative()); - } - - public void testIsNotNegative() { - SimpleIntReference ir; - ir = new SimpleIntReference(-3); - assertFalse(ir.isNotNegative()); - - ir = new SimpleIntReference(); - assertTrue(ir.isNotNegative()); - - ir = new SimpleIntReference(7); - assertTrue(ir.isNotNegative()); - } - - public void testSetValueInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(-3); - assertEquals(-3, ir.getValue()); - assertEquals(-3, ir.setValue(4)); - assertEquals(4, ir.getValue()); - } - - public void testAbs() { - SimpleIntReference ir; - ir = new SimpleIntReference(-3); - assertEquals(-3, ir.getValue()); - assertEquals(3, ir.abs()); - - ir.setValue(3); - assertEquals(3, ir.getValue()); - assertEquals(3, ir.abs()); - } - - public void testNeg() { - SimpleIntReference ir; - ir = new SimpleIntReference(-3); - assertEquals(-3, ir.getValue()); - assertEquals(3, ir.neg()); - - ir.setValue(3); - assertEquals(3, ir.getValue()); - assertEquals(-3, ir.neg()); - } - - public void testSetZero() { - SimpleIntReference ir; - ir = new SimpleIntReference(-3); - assertEquals(-3, ir.getValue()); - assertEquals(-3, ir.setZero()); - assertEquals(0, ir.getValue()); - } - - public void testAddInt() { - SimpleIntReference ir; - int value; - ir = new SimpleIntReference(); - assertEquals(0, ir.getValue()); - - value = ir.add(3); - assertEquals(3, value); - - ir.setValue(3); - value = ir.add(-7); - assertEquals(-4, value); - } - - public void testIncrement() { - SimpleIntReference ir; - int value; - ir = new SimpleIntReference(); - assertEquals(0, ir.getValue()); - - value = ir.increment(); - assertEquals(1, value); - assertEquals(1, ir.getValue()); - } - - public void testSubtractInt() { - SimpleIntReference ir; - int count; - ir = new SimpleIntReference(); - assertEquals(0, ir.getValue()); - - count = ir.subtract(3); - assertEquals(-3, count); - - ir.setValue(-3); - count = ir.subtract(-7); - assertEquals(4, count); - } - - public void testDecrement() { - SimpleIntReference ir; - int count; - ir = new SimpleIntReference(); - assertEquals(0, ir.getValue()); - - count = ir.decrement(); - assertEquals(-1, count); - assertEquals(-1, ir.getValue()); - } - - public void testMultiplyInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(3); - assertEquals(3, ir.getValue()); - assertEquals(9, ir.multiply(3)); - } - - public void testDivideInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(24); - assertEquals(24, ir.getValue()); - assertEquals(8, ir.divide(3)); - } - - public void testRemainderInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(25); - assertEquals(25, ir.getValue()); - assertEquals(1, ir.remainder(3)); - } - - public void testMinInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(25); - assertEquals(25, ir.getValue()); - assertEquals(3, ir.min(3)); - assertEquals(25, ir.min(33)); - } - - public void testMaxInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(25); - assertEquals(25, ir.getValue()); - assertEquals(25, ir.max(3)); - assertEquals(30, ir.max(30)); - } - - public void testPowInt() { - SimpleIntReference ir; - ir = new SimpleIntReference(5); - assertEquals(5, ir.getValue()); - assertTrue(ir.pow(2) == 25L); - } - - public void testCompareToIntReference() { - SimpleIntReference ir1 = new SimpleIntReference(44); - SimpleIntReference ir2 = new SimpleIntReference(44); - assertTrue(ir1.compareTo(ir2) == 0); - ir2 = new SimpleIntReference(55); - assertTrue(ir1.compareTo(ir2) < 0); - ir2 = new SimpleIntReference(33); - assertTrue(ir1.compareTo(ir2) > 0); - } - - public void testClone() { - SimpleIntReference ir1 = new SimpleIntReference(44); - SimpleIntReference ir2 = ir1.clone(); - assertEquals(44, ir2.getValue()); - assertNotSame(ir1, ir2); - } - - public void testSerialization() throws Exception { - SimpleIntReference ir1 = new SimpleIntReference(44); - SimpleIntReference ir2 = TestTools.serialize(ir1); - assertEquals(44, ir2.getValue()); - assertNotSame(ir1, ir2); - } - - public void testToString() { - SimpleIntReference ir; - ir = new SimpleIntReference(5); - assertEquals("[5]", ir.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleObjectReferenceTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleObjectReferenceTests.java deleted file mode 100644 index ea91ac9f7c..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleObjectReferenceTests.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.SimpleObjectReference; - -@SuppressWarnings("nls") -public class SimpleObjectReferenceTests extends TestCase { - - public SimpleObjectReferenceTests(String name) { - super(name); - } - - public void testGetValue() { - SimpleObjectReference or = new SimpleObjectReference(); - assertNull(or.getValue()); - or.setValue("foo"); - assertEquals("foo", or.getValue()); - } - - public void testValueEqualsObject() { - SimpleObjectReference or = new SimpleObjectReference(); - assertTrue(or.valueEquals(null)); - assertFalse(or.valueEquals("foo")); - - or.setValue("foo"); - assertFalse(or.valueEquals(null)); - assertTrue(or.valueEquals("foo")); - } - - public void testValueNotEqualObject() { - SimpleObjectReference or = new SimpleObjectReference(); - assertFalse(or.valueNotEqual(null)); - assertTrue(or.valueNotEqual("foo")); - - or.setValue("foo"); - assertTrue(or.valueNotEqual(null)); - assertFalse(or.valueNotEqual("foo")); - } - - public void testIsNull() { - SimpleObjectReference or = new SimpleObjectReference(); - assertTrue(or.isNull()); - or.setValue("foo"); - assertFalse(or.isNull()); - } - - public void testIsNotNull() { - SimpleObjectReference or = new SimpleObjectReference(); - assertFalse(or.isNotNull()); - or.setValue("foo"); - assertTrue(or.isNotNull()); - } - - public void testSetNull() { - SimpleObjectReference or = new SimpleObjectReference(); - assertNull(or.getValue()); - or.setValue("foo"); - assertEquals("foo", or.getValue()); - or.setNull(); - assertNull(or.getValue()); - } - - public void testClone() { - SimpleObjectReference or = new SimpleObjectReference("foo"); - @SuppressWarnings("cast") - SimpleObjectReference clone = (SimpleObjectReference) or.clone(); - assertEquals("foo", clone.getValue()); - assertNotSame(or, clone); - } - - public void testToString() { - SimpleObjectReference or = new SimpleObjectReference(); - assertEquals("[null]", or.toString()); - or.setValue("foo"); - assertEquals("[foo]", or.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleQueueTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleQueueTests.java deleted file mode 100644 index 4fb99dbc5a..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleQueueTests.java +++ /dev/null @@ -1,149 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.Queue; -import org.eclipse.jpt.common.utility.internal.SimpleQueue; - -@SuppressWarnings("nls") -public class SimpleQueueTests - extends MultiThreadedTestCase -{ - - public SimpleQueueTests(String name) { - super(name); - } - - Queue buildQueue() { - return new SimpleQueue(); - } - - public void testIsEmpty() { - Queue queue = this.buildQueue(); - assertTrue(queue.isEmpty()); - queue.enqueue("first"); - assertFalse(queue.isEmpty()); - queue.enqueue("second"); - assertFalse(queue.isEmpty()); - queue.dequeue(); - assertFalse(queue.isEmpty()); - queue.dequeue(); - assertTrue(queue.isEmpty()); - } - - public void testEnqueueAndDequeue() { - Queue queue = this.buildQueue(); - String first = "first"; - String second = "second"; - - queue.enqueue(first); - queue.enqueue(second); - assertEquals(first, queue.dequeue()); - assertEquals(second, queue.dequeue()); - } - - public void testEnqueueAndPeek() { - Queue queue = this.buildQueue(); - String first = "first"; - String second = "second"; - - queue.enqueue(first); - queue.enqueue(second); - assertEquals(first, queue.peek()); - assertEquals(first, queue.peek()); - assertEquals(first, queue.dequeue()); - assertEquals(second, queue.peek()); - assertEquals(second, queue.peek()); - assertEquals(second, queue.dequeue()); - } - - public void testEmptyQueueExceptionPeek() { - Queue queue = this.buildQueue(); - String first = "first"; - String second = "second"; - - queue.enqueue(first); - queue.enqueue(second); - assertEquals(first, queue.peek()); - assertEquals(first, queue.dequeue()); - assertEquals(second, queue.peek()); - assertEquals(second, queue.dequeue()); - - boolean exCaught = false; - try { - queue.peek(); - fail(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testEmptyQueueExceptionDequeue() { - Queue queue = this.buildQueue(); - String first = "first"; - String second = "second"; - - queue.enqueue(first); - queue.enqueue(second); - assertEquals(first, queue.peek()); - assertEquals(first, queue.dequeue()); - assertEquals(second, queue.peek()); - assertEquals(second, queue.dequeue()); - - boolean exCaught = false; - try { - queue.dequeue(); - fail(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testClone() { - SimpleQueue queue = (SimpleQueue) this.buildQueue(); - queue.enqueue("first"); - queue.enqueue("second"); - queue.enqueue("third"); - - this.verifyClone(queue, queue.clone()); - } - - public void testSerialization() throws Exception { - Queue queue = this.buildQueue(); - queue.enqueue("first"); - queue.enqueue("second"); - queue.enqueue("third"); - - this.verifyClone(queue, TestTools.serialize(queue)); - } - - private void verifyClone(Queue original, Queue clone) { - assertNotSame(original, clone); - assertEquals(original.peek(), clone.peek()); - assertEquals(original.dequeue(), clone.dequeue()); - assertEquals(original.peek(), clone.peek()); - assertEquals(original.dequeue(), clone.dequeue()); - assertEquals(original.isEmpty(), clone.isEmpty()); - assertEquals(original.peek(), clone.peek()); - assertEquals(original.dequeue(), clone.dequeue()); - assertTrue(original.isEmpty()); - assertEquals(original.isEmpty(), clone.isEmpty()); - - original.enqueue("fourth"); - assertFalse(original.isEmpty()); - // clone should still be empty - assertTrue(clone.isEmpty()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleStackTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleStackTests.java deleted file mode 100644 index b73d8633e3..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SimpleStackTests.java +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.EmptyStackException; - -import org.eclipse.jpt.common.utility.internal.SimpleStack; -import org.eclipse.jpt.common.utility.internal.Stack; - -@SuppressWarnings("nls") -public class SimpleStackTests - extends MultiThreadedTestCase -{ - public SimpleStackTests(String name) { - super(name); - } - - Stack buildStack() { - return new SimpleStack(); - } - - public void testIsEmpty() { - Stack stack = this.buildStack(); - assertTrue(stack.isEmpty()); - stack.push("first"); - assertFalse(stack.isEmpty()); - stack.push("second"); - assertFalse(stack.isEmpty()); - stack.pop(); - assertFalse(stack.isEmpty()); - stack.pop(); - assertTrue(stack.isEmpty()); - } - - public void testPushAndPop() { - Stack stack = this.buildStack(); - String first = "first"; - String second = "second"; - - stack.push(first); - stack.push(second); - assertEquals(second, stack.pop()); - assertEquals(first, stack.pop()); - } - - public void testPushAndPeek() { - Stack stack = this.buildStack(); - String first = "first"; - String second = "second"; - - stack.push(first); - stack.push(second); - assertEquals(second, stack.peek()); - assertEquals(second, stack.peek()); - assertEquals(second, stack.pop()); - assertEquals(first, stack.peek()); - assertEquals(first, stack.peek()); - assertEquals(first, stack.pop()); - } - - public void testEmptyStackExceptionPeek() { - Stack stack = this.buildStack(); - String first = "first"; - String second = "second"; - - stack.push(first); - stack.push(second); - assertEquals(second, stack.peek()); - assertEquals(second, stack.pop()); - assertEquals(first, stack.peek()); - assertEquals(first, stack.pop()); - - boolean exCaught = false; - try { - stack.peek(); - fail(); - } catch (EmptyStackException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testEmptyStackExceptionPop() { - Stack stack = this.buildStack(); - String first = "first"; - String second = "second"; - - stack.push(first); - stack.push(second); - assertEquals(second, stack.peek()); - assertEquals(second, stack.pop()); - assertEquals(first, stack.peek()); - assertEquals(first, stack.pop()); - - boolean exCaught = false; - try { - stack.pop(); - fail(); - } catch (EmptyStackException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testClone() { - SimpleStack stack = (SimpleStack) this.buildStack(); - stack.push("first"); - stack.push("second"); - stack.push("third"); - - this.verifyClone(stack, stack.clone()); - } - - public void testSerialization() throws Exception { - Stack stack = this.buildStack(); - stack.push("first"); - stack.push("second"); - stack.push("third"); - - this.verifyClone(stack, TestTools.serialize(stack)); - } - - private void verifyClone(Stack original, Stack clone) { - assertNotSame(original, clone); - assertEquals(original.peek(), clone.peek()); - assertEquals(original.pop(), clone.pop()); - assertEquals(original.peek(), clone.peek()); - assertEquals(original.pop(), clone.pop()); - assertEquals(original.isEmpty(), clone.isEmpty()); - assertEquals(original.peek(), clone.peek()); - assertEquals(original.pop(), clone.pop()); - assertTrue(original.isEmpty()); - assertEquals(original.isEmpty(), clone.isEmpty()); - - original.push("fourth"); - assertFalse(original.isEmpty()); - // clone should still be empty - assertTrue(clone.isEmpty()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java deleted file mode 100644 index 137b55249a..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java +++ /dev/null @@ -1,1850 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.io.StringWriter; -import java.io.Writer; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.StringTools; - -@SuppressWarnings("nls") -public class StringToolsTests extends TestCase { - - public StringToolsTests(String name) { - super(name); - } - - private static void assertEquals(String expected, char[] actual) { - assertEquals(expected, new String(actual)); - } - - // ********** padding/truncating ********** - - public void testPad() { - assertEquals("fred", StringTools.pad("fred", 4)); - assertEquals("fred ", StringTools.pad("fred", 6)); - boolean exThrown = false; - try { - assertEquals("fr", StringTools.pad("fred", 2)); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testPadCharArray() { - assertEquals("fred", StringTools.pad(new char[] { 'f', 'r', 'e', 'd' }, 4)); - assertEquals("fred ", StringTools.pad(new char[] { 'f', 'r', 'e', 'd' }, 6)); - boolean exThrown = false; - try { - assertEquals("fr", StringTools.pad(new char[] { 'f', 'r', 'e', 'd' }, 2)); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testPadOnWriter() { - Writer writer; - writer = new StringWriter(); - StringTools.padOn("fred", 4, writer); - assertEquals("fred", writer.toString()); - - writer = new StringWriter(); - StringTools.padOn("fred", 6, writer); - assertEquals("fred ", writer.toString()); - - writer = new StringWriter(); - boolean exThrown = false; - try { - StringTools.padOn("fred", 2, writer); - fail(); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testPadOnStringBuffer() { - StringBuffer sb; - sb = new StringBuffer(); - StringTools.padOn("fred", 4, sb); - assertEquals("fred", sb.toString()); - - sb = new StringBuffer(); - StringTools.padOn("fred", 6, sb); - assertEquals("fred ", sb.toString()); - - sb = new StringBuffer(); - boolean exThrown = false; - try { - StringTools.padOn("fred", 2, sb); - fail(); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testPadOnStringBuilder() { - StringBuilder sb; - sb = new StringBuilder(); - StringTools.padOn("fred", 4, sb); - assertEquals("fred", sb.toString()); - - sb = new StringBuilder(); - StringTools.padOn("fred", 6, sb); - assertEquals("fred ", sb.toString()); - - sb = new StringBuilder(); - boolean exThrown = false; - try { - StringTools.padOn("fred", 2, sb); - fail(); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testPadOrTruncate() { - assertEquals("fred", StringTools.padOrTruncate("fred", 4)); - assertEquals("fred ", StringTools.padOrTruncate("fred", 6)); - assertEquals("fr", StringTools.padOrTruncate("fred", 2)); - } - - public void testPadOrTruncateCharArray() { - assertEquals("fred", StringTools.padOrTruncate(new char[] { 'f', 'r', 'e', 'd' }, 4)); - assertEquals("fred ", StringTools.padOrTruncate(new char[] { 'f', 'r', 'e', 'd' }, 6)); - assertEquals("fr", StringTools.padOrTruncate(new char[] { 'f', 'r', 'e', 'd' }, 2)); - } - - public void testPadOrTruncateOnWriter() { - this.verifyPadOrTruncateOnWriter("fred", "fred", 4); - this.verifyPadOrTruncateOnWriter("fred ", "fred", 6); - this.verifyPadOrTruncateOnWriter("fr", "fred", 2); - } - - private void verifyPadOrTruncateOnWriter(String expected, String string, int length) { - Writer writer = new StringWriter(); - StringTools.padOrTruncateOn(string, length, writer); - assertEquals(expected, writer.toString()); - } - - public void testPadOrTruncateOnStringBuffer() { - this.verifyPadOrTruncateOnStringBuffer("fred", "fred", 4); - this.verifyPadOrTruncateOnStringBuffer("fred ", "fred", 6); - this.verifyPadOrTruncateOnStringBuffer("fr", "fred", 2); - } - - private void verifyPadOrTruncateOnStringBuffer(String expected, String string, int length) { - StringBuffer sb = new StringBuffer(); - StringTools.padOrTruncateOn(string, length, sb); - assertEquals(expected, sb.toString()); - } - - public void testPadOrTruncateOnStringBuilder() { - this.verifyPadOrTruncateOnStringBuilder("fred", "fred", 4); - this.verifyPadOrTruncateOnStringBuilder("fred ", "fred", 6); - this.verifyPadOrTruncateOnStringBuilder("fr", "fred", 2); - } - - private void verifyPadOrTruncateOnStringBuilder(String expected, String string, int length) { - StringBuilder sb = new StringBuilder(); - StringTools.padOrTruncateOn(string, length, sb); - assertEquals(expected, sb.toString()); - } - - public void testZeroPad() { - assertEquals("1234", StringTools.zeroPad("1234", 4)); - assertEquals("001234", StringTools.zeroPad("1234", 6)); - boolean exThrown = false; - try { - assertEquals("12", StringTools.zeroPad("1234", 2)); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testZeroPadCharArray() { - assertEquals("1234", StringTools.zeroPad(new char[] { '1', '2', '3', '4' }, 4)); - assertEquals("001234", StringTools.zeroPad(new char[] { '1', '2', '3', '4' }, 6)); - boolean exThrown = false; - try { - assertEquals("12", StringTools.zeroPad(new char[] { '1', '2', '3', '4' }, 2)); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testZeroPadOnWriter() { - Writer writer; - writer = new StringWriter(); - StringTools.zeroPadOn("1234", 4, writer); - assertEquals("1234", writer.toString()); - - writer = new StringWriter(); - StringTools.zeroPadOn("1234", 6, writer); - assertEquals("001234", writer.toString()); - - writer = new StringWriter(); - boolean exThrown = false; - try { - StringTools.zeroPadOn("1234", 2, writer); - fail(); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testZeroPadOnStringBuffer() { - StringBuffer sb; - sb = new StringBuffer(); - StringTools.zeroPadOn("1234", 4, sb); - assertEquals("1234", sb.toString()); - - sb = new StringBuffer(); - StringTools.zeroPadOn("1234", 6, sb); - assertEquals("001234", sb.toString()); - - sb = new StringBuffer(); - boolean exThrown = false; - try { - StringTools.zeroPadOn("1234", 2, sb); - fail(); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testZeroPadOnStringBuilder() { - StringBuilder sb; - sb = new StringBuilder(); - StringTools.zeroPadOn("1234", 4, sb); - assertEquals("1234", sb.toString()); - - sb = new StringBuilder(); - StringTools.zeroPadOn("1234", 6, sb); - assertEquals("001234", sb.toString()); - - sb = new StringBuilder(); - boolean exThrown = false; - try { - StringTools.zeroPadOn("1234", 2, sb); - fail(); - } catch (IllegalArgumentException ex) { - exThrown = true; - } - assertTrue(exThrown); - } - - public void testZeroPadOrTruncate() { - assertEquals("1234", StringTools.zeroPadOrTruncate("1234", 4)); - assertEquals("001234", StringTools.zeroPadOrTruncate("1234", 6)); - assertEquals("34", StringTools.zeroPadOrTruncate("1234", 2)); - } - - public void testZeroPadOrTruncateCharArray() { - assertEquals("1234", StringTools.zeroPadOrTruncate(new char[] { '1', '2', '3', '4' }, 4)); - assertEquals("001234", StringTools.zeroPadOrTruncate(new char[] { '1', '2', '3', '4' }, 6)); - assertEquals("34", StringTools.zeroPadOrTruncate(new char[] { '1', '2', '3', '4' }, 2)); - } - - public void testZeroPadOrTruncateOnWriter() { - this.verifyZeroPadOrTruncateOnWriter("1234", "1234", 4); - this.verifyZeroPadOrTruncateOnWriter("001234", "1234", 6); - this.verifyZeroPadOrTruncateOnWriter("34", "1234", 2); - } - - private void verifyZeroPadOrTruncateOnWriter(String expected, String string, int length) { - Writer writer = new StringWriter(); - StringTools.zeroPadOrTruncateOn(string, length, writer); - assertEquals(expected, writer.toString()); - } - - public void testZeroPadOrTruncateOnStringBuffer() { - this.verifyZeroPadOrTruncateOnStringBuffer("1234", "1234", 4); - this.verifyZeroPadOrTruncateOnStringBuffer("001234", "1234", 6); - this.verifyZeroPadOrTruncateOnStringBuffer("34", "1234", 2); - } - - private void verifyZeroPadOrTruncateOnStringBuffer(String expected, String string, int length) { - StringBuffer sb = new StringBuffer(); - StringTools.zeroPadOrTruncateOn(string, length, sb); - assertEquals(expected, sb.toString()); - } - - public void testZeroPadOrTruncateOnStringBuilder() { - this.verifyZeroPadOrTruncateOnStringBuilder("1234", "1234", 4); - this.verifyZeroPadOrTruncateOnStringBuilder("001234", "1234", 6); - this.verifyZeroPadOrTruncateOnStringBuilder("34", "1234", 2); - } - - private void verifyZeroPadOrTruncateOnStringBuilder(String expected, String string, int length) { - StringBuilder sb = new StringBuilder(); - StringTools.zeroPadOrTruncateOn(string, length, sb); - assertEquals(expected, sb.toString()); - } - - // ********** separating ********** - - public void testSeparateStringCharInt() { - this.verifySeparate("012345", '-', 22, "012345"); - this.verifySeparate("012345", '-', 6, "012345"); - this.verifySeparate("012345", '-', 5, "01234-5"); - this.verifySeparate("012345", '-', 4, "0123-45"); - this.verifySeparate("012345", '-', 3, "012-345"); - this.verifySeparate("012345", '-', 2, "01-23-45"); - this.verifySeparate("012345", '-', 1, "0-1-2-3-4-5"); - } - - private void verifySeparate(String string, char separator, int segmentLength, String expected) { - assertEquals(expected, StringTools.separate(string, separator, segmentLength)); - } - - public void testSeparateOnStringCharIntWriter() { - this.verifySeparateOnWriter("012345", '-', 22, "012345"); - this.verifySeparateOnWriter("012345", '-', 6, "012345"); - this.verifySeparateOnWriter("012345", '-', 5, "01234-5"); - this.verifySeparateOnWriter("012345", '-', 4, "0123-45"); - this.verifySeparateOnWriter("012345", '-', 3, "012-345"); - this.verifySeparateOnWriter("012345", '-', 2, "01-23-45"); - this.verifySeparateOnWriter("012345", '-', 1, "0-1-2-3-4-5"); - } - - private void verifySeparateOnWriter(String string, char separator, int segmentLength, String expected) { - Writer writer = new StringWriter(); - StringTools.separateOn(string, separator, segmentLength, writer); - assertEquals(expected, writer.toString()); - } - - public void testSeparateOnStringCharIntStringBuffer() { - this.verifySeparateOnStringBuffer("012345", '-', 22, "012345"); - this.verifySeparateOnStringBuffer("012345", '-', 6, "012345"); - this.verifySeparateOnStringBuffer("012345", '-', 5, "01234-5"); - this.verifySeparateOnStringBuffer("012345", '-', 4, "0123-45"); - this.verifySeparateOnStringBuffer("012345", '-', 3, "012-345"); - this.verifySeparateOnStringBuffer("012345", '-', 2, "01-23-45"); - this.verifySeparateOnStringBuffer("012345", '-', 1, "0-1-2-3-4-5"); - } - - private void verifySeparateOnStringBuffer(String string, char separator, int segmentLength, String expected) { - StringBuffer sb = new StringBuffer(); - StringTools.separateOn(string, separator, segmentLength, sb); - assertEquals(expected, sb.toString()); - } - - public void testSeparateOnStringCharIntStringBuilder() { - this.verifySeparateOnStringBuilder("012345", '-', 22, "012345"); - this.verifySeparateOnStringBuilder("012345", '-', 6, "012345"); - this.verifySeparateOnStringBuilder("012345", '-', 5, "01234-5"); - this.verifySeparateOnStringBuilder("012345", '-', 4, "0123-45"); - this.verifySeparateOnStringBuilder("012345", '-', 3, "012-345"); - this.verifySeparateOnStringBuilder("012345", '-', 2, "01-23-45"); - this.verifySeparateOnStringBuilder("012345", '-', 1, "0-1-2-3-4-5"); - } - - private void verifySeparateOnStringBuilder(String string, char separator, int segmentLength, String expected) { - StringBuilder sb = new StringBuilder(); - StringTools.separateOn(string, separator, segmentLength, sb); - assertEquals(expected, sb.toString()); - } - - public void testSeparateCharArrayCharInt() { - this.verifySeparateCharArray("012345", '-', 22, "012345"); - this.verifySeparateCharArray("012345", '-', 6, "012345"); - this.verifySeparateCharArray("012345", '-', 5, "01234-5"); - this.verifySeparateCharArray("012345", '-', 4, "0123-45"); - this.verifySeparateCharArray("012345", '-', 3, "012-345"); - this.verifySeparateCharArray("012345", '-', 2, "01-23-45"); - this.verifySeparateCharArray("012345", '-', 1, "0-1-2-3-4-5"); - } - - private void verifySeparateCharArray(String string, char separator, int segmentLength, String expected) { - assertEquals(expected, StringTools.separate(string.toCharArray(), separator, segmentLength)); - } - - public void testSeparateOnCharArrayCharIntWriter() { - this.verifySeparateCharArrayOnWriter("012345", '-', 22, "012345"); - this.verifySeparateCharArrayOnWriter("012345", '-', 6, "012345"); - this.verifySeparateCharArrayOnWriter("012345", '-', 5, "01234-5"); - this.verifySeparateCharArrayOnWriter("012345", '-', 4, "0123-45"); - this.verifySeparateCharArrayOnWriter("012345", '-', 3, "012-345"); - this.verifySeparateCharArrayOnWriter("012345", '-', 2, "01-23-45"); - this.verifySeparateCharArrayOnWriter("012345", '-', 1, "0-1-2-3-4-5"); - } - - private void verifySeparateCharArrayOnWriter(String string, char separator, int segmentLength, String expected) { - Writer writer = new StringWriter(); - StringTools.separateOn(string.toCharArray(), separator, segmentLength, writer); - assertEquals(expected, writer.toString()); - } - - public void testSeparateOnCharArrayCharIntStringBuffer() { - this.verifySeparateCharArrayOnStringBuffer("012345", '-', 22, "012345"); - this.verifySeparateCharArrayOnStringBuffer("012345", '-', 6, "012345"); - this.verifySeparateCharArrayOnStringBuffer("012345", '-', 5, "01234-5"); - this.verifySeparateCharArrayOnStringBuffer("012345", '-', 4, "0123-45"); - this.verifySeparateCharArrayOnStringBuffer("012345", '-', 3, "012-345"); - this.verifySeparateCharArrayOnStringBuffer("012345", '-', 2, "01-23-45"); - this.verifySeparateCharArrayOnStringBuffer("012345", '-', 1, "0-1-2-3-4-5"); - } - - private void verifySeparateCharArrayOnStringBuffer(String string, char separator, int segmentLength, String expected) { - StringBuffer sb = new StringBuffer(); - StringTools.separateOn(string.toCharArray(), separator, segmentLength, sb); - assertEquals(expected, sb.toString()); - } - - public void testSeparateOnCharArrayCharIntStringBuilder() { - this.verifySeparateCharArrayOnStringBuilder("012345", '-', 22, "012345"); - this.verifySeparateCharArrayOnStringBuilder("012345", '-', 6, "012345"); - this.verifySeparateCharArrayOnStringBuilder("012345", '-', 5, "01234-5"); - this.verifySeparateCharArrayOnStringBuilder("012345", '-', 4, "0123-45"); - this.verifySeparateCharArrayOnStringBuilder("012345", '-', 3, "012-345"); - this.verifySeparateCharArrayOnStringBuilder("012345", '-', 2, "01-23-45"); - this.verifySeparateCharArrayOnStringBuilder("012345", '-', 1, "0-1-2-3-4-5"); - } - - private void verifySeparateCharArrayOnStringBuilder(String string, char separator, int segmentLength, String expected) { - StringBuilder sb = new StringBuilder(); - StringTools.separateOn(string.toCharArray(), separator, segmentLength, sb); - assertEquals(expected, sb.toString()); - } - - // ********** delimiting ********** - - public void testDelimit() { - this.verifyDelimit("Employee", "123", "123Employee123"); - this.verifyDelimit("123", "123", "123123123"); - this.verifyDelimit("", "123", "123123"); - } - - private void verifyDelimit(String string, String delimiter, String expectedString) { - assertEquals(expectedString, StringTools.delimit(string, delimiter)); - } - - public void testDelimitOnWriter() { - this.verifyDelimitOnWriter("Employee", "123", "123Employee123"); - this.verifyDelimitOnWriter("123", "123", "123123123"); - this.verifyDelimitOnWriter("", "123", "123123"); - } - - private void verifyDelimitOnWriter(String string, String delimiter, String expectedString) { - Writer writer = new StringWriter(); - StringTools.delimitOn(string, delimiter, writer); - assertEquals(expectedString, writer.toString()); - } - - public void testDelimitOnStringBuffer() { - this.verifyDelimitOnStringBuffer("Employee", "123", "123Employee123"); - this.verifyDelimitOnStringBuffer("123", "123", "123123123"); - this.verifyDelimitOnStringBuffer("", "123", "123123"); - } - - private void verifyDelimitOnStringBuffer(String string, String delimiter, String expectedString) { - StringBuffer sb = new StringBuffer(); - StringTools.delimitOn(string, delimiter, sb); - assertEquals(expectedString, sb.toString()); - } - - public void testDelimitOnStringBuilder() { - this.verifyDelimitOnStringBuilder("Employee", "123", "123Employee123"); - this.verifyDelimitOnStringBuilder("123", "123", "123123123"); - this.verifyDelimitOnStringBuilder("", "123", "123123"); - } - - private void verifyDelimitOnStringBuilder(String string, String delimiter, String expectedString) { - StringBuilder sb = new StringBuilder(); - StringTools.delimitOn(string, delimiter, sb); - assertEquals(expectedString, sb.toString()); - } - - public void testQuote() { - this.verifyQuote("Employee", "\"Employee\""); - this.verifyQuote("123", "\"123\""); - this.verifyQuote("", "\"\""); - this.verifyQuote("Emp\"loyee", "\"Emp\"\"loyee\""); - } - - private void verifyQuote(String string, String expectedString) { - assertEquals(expectedString, StringTools.quote(string)); - } - - public void testQuoteOnWriter() { - this.verifyQuoteOnWriter("Employee", "\"Employee\""); - this.verifyQuoteOnWriter("123", "\"123\""); - this.verifyQuoteOnWriter("", "\"\""); - this.verifyQuoteOnWriter("Emp\"loyee", "\"Emp\"\"loyee\""); - } - - private void verifyQuoteOnWriter(String string, String expectedString) { - Writer writer = new StringWriter(); - StringTools.quoteOn(string, writer); - assertEquals(expectedString, writer.toString()); - } - - public void testQuoteOnStringBuffer() { - this.verifyQuoteOnStringBuffer("Employee", "\"Employee\""); - this.verifyQuoteOnStringBuffer("123", "\"123\""); - this.verifyQuoteOnStringBuffer("", "\"\""); - this.verifyQuoteOnStringBuffer("Emp\"loyee", "\"Emp\"\"loyee\""); - } - - private void verifyQuoteOnStringBuffer(String string, String expectedString) { - StringBuffer sb = new StringBuffer(); - StringTools.quoteOn(string, sb); - assertEquals(expectedString, sb.toString()); - } - - public void testQuoteOnStringBuilder() { - this.verifyQuoteOnStringBuilder("Employee", "\"Employee\""); - this.verifyQuoteOnStringBuilder("123", "\"123\""); - this.verifyQuoteOnStringBuilder("", "\"\""); - this.verifyQuoteOnStringBuilder("Emp\"loyee", "\"Emp\"\"loyee\""); - } - - private void verifyQuoteOnStringBuilder(String string, String expectedString) { - StringBuilder sb = new StringBuilder(); - StringTools.quoteOn(string, sb); - assertEquals(expectedString, sb.toString()); - } - - // ********** removing characters ********** - - public void testRemoveFirstOccurrence() { - this.verifyRemoveFirstOccurrence("Emplo&yee", '&', "Employee"); - this.verifyRemoveFirstOccurrence("Emplo&yee&", '&', "Employee&"); - this.verifyRemoveFirstOccurrence("Employee &Foo", '&', "Employee Foo"); - this.verifyRemoveFirstOccurrence("Employee&", '&', "Employee"); - this.verifyRemoveFirstOccurrence("&Employee", '&', "Employee"); - } - - private void verifyRemoveFirstOccurrence(String string, char charToRemove, String expectedString) { - assertEquals(expectedString, StringTools.removeFirstOccurrence(string, charToRemove)); - } - - public void testRemoveFirstOccurrenceCharArray() { - this.verifyRemoveFirstOccurrenceCharArray("Emplo&yee", '&', "Employee"); - this.verifyRemoveFirstOccurrenceCharArray("Emplo&yee&", '&', "Employee&"); - this.verifyRemoveFirstOccurrenceCharArray("Employee &Foo", '&', "Employee Foo"); - this.verifyRemoveFirstOccurrenceCharArray("Employee&", '&', "Employee"); - this.verifyRemoveFirstOccurrenceCharArray("&Employee", '&', "Employee"); - } - - private void verifyRemoveFirstOccurrenceCharArray(String string, char charToRemove, String expectedString) { - assertEquals(expectedString, StringTools.removeFirstOccurrence(string.toCharArray(), charToRemove)); - } - - public void testRemoveFirstOccurrenceOnWriter() { - this.verifyRemoveFirstOccurrenceOnWriter("Emplo&yee", '&', "Employee"); - this.verifyRemoveFirstOccurrenceOnWriter("Emplo&yee&", '&', "Employee&"); - this.verifyRemoveFirstOccurrenceOnWriter("Employee &Foo", '&', "Employee Foo"); - this.verifyRemoveFirstOccurrenceOnWriter("Employee&", '&', "Employee"); - this.verifyRemoveFirstOccurrenceOnWriter("&Employee", '&', "Employee"); - } - - private void verifyRemoveFirstOccurrenceOnWriter(String string, char charToRemove, String expectedString) { - Writer writer = new StringWriter(); - StringTools.removeFirstOccurrenceOn(string, charToRemove, writer); - assertEquals(expectedString, writer.toString()); - } - - public void testRemoveFirstOccurrenceOnStringBuffer() { - this.verifyRemoveFirstOccurrenceOnStringBuffer("Emplo&yee", '&', "Employee"); - this.verifyRemoveFirstOccurrenceOnStringBuffer("Emplo&yee&", '&', "Employee&"); - this.verifyRemoveFirstOccurrenceOnStringBuffer("Employee &Foo", '&', "Employee Foo"); - this.verifyRemoveFirstOccurrenceOnStringBuffer("Employee&", '&', "Employee"); - this.verifyRemoveFirstOccurrenceOnStringBuffer("&Employee", '&', "Employee"); - } - - private void verifyRemoveFirstOccurrenceOnStringBuffer(String string, char charToRemove, String expectedString) { - StringBuffer sb = new StringBuffer(); - StringTools.removeFirstOccurrenceOn(string, charToRemove, sb); - assertEquals(expectedString, sb.toString()); - } - - public void testRemoveFirstOccurrenceOnStringBuilder() { - this.verifyRemoveFirstOccurrenceOnStringBuilder("Emplo&yee", '&', "Employee"); - this.verifyRemoveFirstOccurrenceOnStringBuilder("Emplo&yee&", '&', "Employee&"); - this.verifyRemoveFirstOccurrenceOnStringBuilder("Employee &Foo", '&', "Employee Foo"); - this.verifyRemoveFirstOccurrenceOnStringBuilder("Employee&", '&', "Employee"); - this.verifyRemoveFirstOccurrenceOnStringBuilder("&Employee", '&', "Employee"); - } - - private void verifyRemoveFirstOccurrenceOnStringBuilder(String string, char charToRemove, String expectedString) { - StringBuilder sb = new StringBuilder(); - StringTools.removeFirstOccurrenceOn(string, charToRemove, sb); - assertEquals(expectedString, sb.toString()); - } - - public void testRemoveAllOccurrences() { - this.verifyRemoveAllOccurrences("Employee Fred", ' ', "EmployeeFred"); - this.verifyRemoveAllOccurrences(" Employee ", ' ', "Employee"); - this.verifyRemoveAllOccurrences("Employee Foo", ' ', "EmployeeFoo"); - this.verifyRemoveAllOccurrences(" Emp loyee Foo", ' ', "EmployeeFoo"); - } - - private void verifyRemoveAllOccurrences(String string, char charToRemove, String expectedString) { - assertEquals(expectedString, StringTools.removeAllOccurrences(string, charToRemove)); - } - - public void testRemoveAllOccurrencesCharArray() { - this.verifyRemoveAllOccurrencesCharArray("Employee Fred", ' ', "EmployeeFred"); - this.verifyRemoveAllOccurrencesCharArray(" Employee ", ' ', "Employee"); - this.verifyRemoveAllOccurrencesCharArray("Employee Foo", ' ', "EmployeeFoo"); - this.verifyRemoveAllOccurrencesCharArray(" Emp loyee Foo", ' ', "EmployeeFoo"); - } - - private void verifyRemoveAllOccurrencesCharArray(String string, char charToRemove, String expectedString) { - assertEquals(expectedString, StringTools.removeAllOccurrences(string.toCharArray(), charToRemove)); - } - - public void testRemoveAllOccurrencesOnWriter() { - this.verifyRemoveAllOccurrencesOnWriter("Employee Fred", ' ', "EmployeeFred"); - this.verifyRemoveAllOccurrencesOnWriter(" Employee ", ' ', "Employee"); - this.verifyRemoveAllOccurrencesOnWriter("Employee Foo", ' ', "EmployeeFoo"); - this.verifyRemoveAllOccurrencesOnWriter(" Emp loyee Foo", ' ', "EmployeeFoo"); - } - - private void verifyRemoveAllOccurrencesOnWriter(String string, char charToRemove, String expectedString) { - Writer writer = new StringWriter(); - StringTools.removeAllOccurrencesOn(string, charToRemove, writer); - assertEquals(expectedString, writer.toString()); - } - - public void testRemoveAllOccurrencesOnStringBuffer() { - this.verifyRemoveAllOccurrencesOnStringBuffer("Employee Fred", ' ', "EmployeeFred"); - this.verifyRemoveAllOccurrencesOnStringBuffer(" Employee ", ' ', "Employee"); - this.verifyRemoveAllOccurrencesOnStringBuffer("Employee Foo", ' ', "EmployeeFoo"); - this.verifyRemoveAllOccurrencesOnStringBuffer(" Emp loyee Foo", ' ', "EmployeeFoo"); - } - - private void verifyRemoveAllOccurrencesOnStringBuffer(String string, char charToRemove, String expectedString) { - StringBuffer sb = new StringBuffer(); - StringTools.removeAllOccurrencesOn(string, charToRemove, sb); - assertEquals(expectedString, sb.toString()); - } - - public void testRemoveAllOccurrencesOnStringBuilder() { - this.verifyRemoveAllOccurrencesOnStringBuilder("Employee Fred", ' ', "EmployeeFred"); - this.verifyRemoveAllOccurrencesOnStringBuilder(" Employee ", ' ', "Employee"); - this.verifyRemoveAllOccurrencesOnStringBuilder("Employee Foo", ' ', "EmployeeFoo"); - this.verifyRemoveAllOccurrencesOnStringBuilder(" Emp loyee Foo", ' ', "EmployeeFoo"); - } - - private void verifyRemoveAllOccurrencesOnStringBuilder(String string, char charToRemove, String expectedString) { - StringBuilder sb = new StringBuilder(); - StringTools.removeAllOccurrencesOn(string, charToRemove, sb); - assertEquals(expectedString, sb.toString()); - } - - public void testRemoveAllWhitespace() { - this.verifyRemoveAllWhitespace("Employee Fred\t", "EmployeeFred"); - this.verifyRemoveAllWhitespace("\tEmployee\n", "Employee"); - this.verifyRemoveAllWhitespace("Employee \t Foo", "EmployeeFoo"); - this.verifyRemoveAllWhitespace(" Emp\tloyee \n Foo", "EmployeeFoo"); - } - - private void verifyRemoveAllWhitespace(String string, String expectedString) { - assertEquals(expectedString, StringTools.removeAllWhitespace(string)); - } - - public void testRemoveAllWhitespaceCharArray() { - this.verifyRemoveAllWhitespaceCharArray("Employee Fred\t", "EmployeeFred"); - this.verifyRemoveAllWhitespaceCharArray("\tEmployee\n", "Employee"); - this.verifyRemoveAllWhitespaceCharArray("Employee \t Foo", "EmployeeFoo"); - this.verifyRemoveAllWhitespaceCharArray(" Emp\tloyee \n Foo", "EmployeeFoo"); - } - - private void verifyRemoveAllWhitespaceCharArray(String string, String expectedString) { - assertEquals(expectedString, StringTools.removeAllWhitespace(string.toCharArray())); - } - - public void testRemoveAllWhitespaceOnWriter() { - this.verifyRemoveAllWhitespaceOnWriter("Employee Fred\t", "EmployeeFred"); - this.verifyRemoveAllWhitespaceOnWriter("\tEmployee\n", "Employee"); - this.verifyRemoveAllWhitespaceOnWriter("Employee \t Foo", "EmployeeFoo"); - this.verifyRemoveAllWhitespaceOnWriter(" Emp\tloyee \n Foo", "EmployeeFoo"); - } - - private void verifyRemoveAllWhitespaceOnWriter(String string, String expectedString) { - Writer writer = new StringWriter(); - StringTools.removeAllWhitespaceOn(string, writer); - assertEquals(expectedString, writer.toString()); - } - - public void testRemoveAllWhitespaceOnStringBuffer() { - this.verifyRemoveAllWhitespaceOnStringBuffer("Employee Fred\t", "EmployeeFred"); - this.verifyRemoveAllWhitespaceOnStringBuffer("\tEmployee\n", "Employee"); - this.verifyRemoveAllWhitespaceOnStringBuffer("Employee \t Foo", "EmployeeFoo"); - this.verifyRemoveAllWhitespaceOnStringBuffer(" Emp\tloyee \n Foo", "EmployeeFoo"); - } - - private void verifyRemoveAllWhitespaceOnStringBuffer(String string, String expectedString) { - StringBuffer sb = new StringBuffer(); - StringTools.removeAllWhitespaceOn(string, sb); - assertEquals(expectedString, sb.toString()); - } - - public void testRemoveAllWhitespaceOnStringBuilder() { - this.verifyRemoveAllWhitespaceOnStringBuilder("Employee Fred\t", "EmployeeFred"); - this.verifyRemoveAllWhitespaceOnStringBuilder("\tEmployee\n", "Employee"); - this.verifyRemoveAllWhitespaceOnStringBuilder("Employee \t Foo", "EmployeeFoo"); - this.verifyRemoveAllWhitespaceOnStringBuilder(" Emp\tloyee \n Foo", "EmployeeFoo"); - } - - private void verifyRemoveAllWhitespaceOnStringBuilder(String string, String expectedString) { - StringBuilder sb = new StringBuilder(); - StringTools.removeAllWhitespaceOn(string, sb); - assertEquals(expectedString, sb.toString()); - } -////////////////////////////// - public void testCompressWhitespace() { - this.verifyCompressWhitespace("Employee Fred\t", "Employee Fred "); - this.verifyCompressWhitespace("\tEmployee \n", " Employee "); - this.verifyCompressWhitespace("Employee \t Foo", "Employee Foo"); - this.verifyCompressWhitespace(" Emp\tloyee \n Foo ", " Emp loyee Foo "); - } - - private void verifyCompressWhitespace(String string, String expectedString) { - assertEquals(expectedString, StringTools.compressWhitespace(string)); - } - - public void testCompressWhitespaceCharArray() { - this.verifyCompressWhitespaceCharArray("Employee Fred\t", "Employee Fred "); - this.verifyCompressWhitespaceCharArray("\tEmployee \n", " Employee "); - this.verifyCompressWhitespaceCharArray("Employee \t Foo", "Employee Foo"); - this.verifyCompressWhitespaceCharArray(" Emp\tloyee \n Foo ", " Emp loyee Foo "); - } - - private void verifyCompressWhitespaceCharArray(String string, String expectedString) { - assertEquals(expectedString, StringTools.compressWhitespace(string.toCharArray())); - } - - public void testCompressWhitespaceOnWriter() { - this.verifyCompressWhitespaceOnWriter("Employee Fred\t", "Employee Fred "); - this.verifyCompressWhitespaceOnWriter("\tEmployee \n", " Employee "); - this.verifyCompressWhitespaceOnWriter("Employee \t Foo", "Employee Foo"); - this.verifyCompressWhitespaceOnWriter(" Emp\tloyee \n Foo ", " Emp loyee Foo "); - } - - private void verifyCompressWhitespaceOnWriter(String string, String expectedString) { - Writer writer = new StringWriter(); - StringTools.compressWhitespaceOn(string, writer); - assertEquals(expectedString, writer.toString()); - } - - public void testCompressWhitespaceOnStringBuffer() { - this.verifyCompressWhitespaceOnStringBuffer("Employee Fred\t", "Employee Fred "); - this.verifyCompressWhitespaceOnStringBuffer("\tEmployee \n", " Employee "); - this.verifyCompressWhitespaceOnStringBuffer("Employee \t Foo", "Employee Foo"); - this.verifyCompressWhitespaceOnStringBuffer(" Emp\tloyee \n Foo ", " Emp loyee Foo "); - } - - private void verifyCompressWhitespaceOnStringBuffer(String string, String expectedString) { - StringBuffer sb = new StringBuffer(); - StringTools.compressWhitespaceOn(string, sb); - assertEquals(expectedString, sb.toString()); - } - - public void testCompressWhitespaceOnStringBuilder() { - this.verifyCompressWhitespaceOnStringBuilder("Employee Fred\t", "Employee Fred "); - this.verifyCompressWhitespaceOnStringBuilder("\tEmployee \n", " Employee "); - this.verifyCompressWhitespaceOnStringBuilder("Employee \t Foo", "Employee Foo"); - this.verifyCompressWhitespaceOnStringBuilder(" Emp\tloyee \n Foo ", " Emp loyee Foo "); - } - - private void verifyCompressWhitespaceOnStringBuilder(String string, String expectedString) { - StringBuilder sb = new StringBuilder(); - StringTools.compressWhitespaceOn(string, sb); - assertEquals(expectedString, sb.toString()); - } - - // ********** common prefix ********** - - public void testCommonPrefixLength() { - assertEquals(3, StringTools.commonPrefixLength("fooZZZ", "fooBBB")); - assertEquals(3, StringTools.commonPrefixLength("foo", "fooBBB")); - assertEquals(3, StringTools.commonPrefixLength("fooZZZ", "foo")); - assertEquals(3, StringTools.commonPrefixLength("foo", "foo")); - } - - public void testCommonPrefixLengthMax() { - assertEquals(2, StringTools.commonPrefixLength("fooZZZ", "fooBBB", 2)); - assertEquals(2, StringTools.commonPrefixLength("foo", "fooBBB", 2)); - assertEquals(2, StringTools.commonPrefixLength("fooZZZ", "foo", 2)); - assertEquals(2, StringTools.commonPrefixLength("foo", "foo", 2)); - } - - // ********** capitalization ********** - - public void testCapitalizeCharArray() { - this.verifyCapitalizeCharArray("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' }); - this.verifyCapitalizeCharArray("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' }); - this.verifyCapitalizeCharArray(" ", new char[] { ' ', ' ', ' ' }); - this.verifyCapitalizeCharArray("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' }); - this.verifyCapitalizeCharArray("", new char[0]); - this.verifyCapitalizeCharArray("A", new char[] { 'a' }); - this.verifyCapitalizeCharArray("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' }); - } - - private void verifyCapitalizeCharArray(String expected, char[] string) { - assertEquals(expected, StringTools.capitalize(string)); - } - - public void testCapitalizeString() { - this.verifyCapitalizeString("Oracle", "Oracle"); - this.verifyCapitalizeString("Oracle", "oracle"); - this.verifyCapitalizeString(" ", " "); - this.verifyCapitalizeString("ORACLE", "ORACLE"); - this.verifyCapitalizeString("", ""); - this.verifyCapitalizeString("A", "a"); - this.verifyCapitalizeString("\u00C9cole", "\u00E9cole"); // �cole->�COLE - } - - private void verifyCapitalizeString(String expected, String string) { - assertEquals(expected, StringTools.capitalize(string)); - } - - public void testCapitalizeOnCharArrayStringBuffer() { - this.verifyCapitalizeOnCharArrayStringBuffer("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' }); - this.verifyCapitalizeOnCharArrayStringBuffer("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' }); - this.verifyCapitalizeOnCharArrayStringBuffer(" ", new char[] { ' ', ' ', ' ' }); - this.verifyCapitalizeOnCharArrayStringBuffer("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' }); - this.verifyCapitalizeOnCharArrayStringBuffer("", new char[0]); - this.verifyCapitalizeOnCharArrayStringBuffer("A", new char[] { 'a' }); - this.verifyCapitalizeOnCharArrayStringBuffer("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' }); - } - - private void verifyCapitalizeOnCharArrayStringBuffer(String expected, char[] string) { - StringBuffer sb = new StringBuffer(); - StringTools.capitalizeOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testCapitalizeOnCharArrayStringBuilder() { - this.verifyCapitalizeOnCharArrayStringBuilder("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' }); - this.verifyCapitalizeOnCharArrayStringBuilder("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' }); - this.verifyCapitalizeOnCharArrayStringBuilder(" ", new char[] { ' ', ' ', ' ' }); - this.verifyCapitalizeOnCharArrayStringBuilder("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' }); - this.verifyCapitalizeOnCharArrayStringBuilder("", new char[0]); - this.verifyCapitalizeOnCharArrayStringBuilder("A", new char[] { 'a' }); - this.verifyCapitalizeOnCharArrayStringBuilder("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' }); - } - - private void verifyCapitalizeOnCharArrayStringBuilder(String expected, char[] string) { - StringBuilder sb = new StringBuilder(); - StringTools.capitalizeOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testCapitalizeOnStringStringBuffer() { - this.verifyCapitalizeOnStringStringBuffer("Oracle", "Oracle"); - this.verifyCapitalizeOnStringStringBuffer("Oracle", "oracle"); - this.verifyCapitalizeOnStringStringBuffer(" ", " "); - this.verifyCapitalizeOnStringStringBuffer("ORACLE", "ORACLE"); - this.verifyCapitalizeOnStringStringBuffer("", ""); - this.verifyCapitalizeOnStringStringBuffer("A", "a"); - this.verifyCapitalizeOnStringStringBuffer("\u00C9cole", "\u00E9cole"); // �cole->�COLE - } - - private void verifyCapitalizeOnStringStringBuffer(String expected, String string) { - StringBuffer sb = new StringBuffer(); - StringTools.capitalizeOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testCapitalizeOnStringStringBuilder() { - this.verifyCapitalizeOnStringStringBuilder("Oracle", "Oracle"); - this.verifyCapitalizeOnStringStringBuilder("Oracle", "oracle"); - this.verifyCapitalizeOnStringStringBuilder(" ", " "); - this.verifyCapitalizeOnStringStringBuilder("ORACLE", "ORACLE"); - this.verifyCapitalizeOnStringStringBuilder("", ""); - this.verifyCapitalizeOnStringStringBuilder("A", "a"); - this.verifyCapitalizeOnStringStringBuilder("\u00C9cole", "\u00E9cole"); // �cole->�COLE - } - - private void verifyCapitalizeOnStringStringBuilder(String expected, String string) { - StringBuilder sb = new StringBuilder(); - StringTools.capitalizeOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testCapitalizeOnCharArrayWriter() { - this.verifyCapitalizeOnCharArrayWriter("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' }); - this.verifyCapitalizeOnCharArrayWriter("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' }); - this.verifyCapitalizeOnCharArrayWriter(" ", new char[] { ' ', ' ', ' ' }); - this.verifyCapitalizeOnCharArrayWriter("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' }); - this.verifyCapitalizeOnCharArrayWriter("", new char[0]); - this.verifyCapitalizeOnCharArrayWriter("A", new char[] { 'a' }); - this.verifyCapitalizeOnCharArrayWriter("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' }); - } - - private void verifyCapitalizeOnCharArrayWriter(String expected, char[] string) { - Writer writer = new StringWriter(); - StringTools.capitalizeOn(string, writer); - assertEquals(expected, writer.toString()); - } - - public void testCapitalizeOnStringWriter() { - this.verifyCapitalizeOnStringWriter("Oracle", "Oracle"); - this.verifyCapitalizeOnStringWriter("Oracle", "oracle"); - this.verifyCapitalizeOnStringWriter(" ", " "); - this.verifyCapitalizeOnStringWriter("ORACLE", "ORACLE"); - this.verifyCapitalizeOnStringWriter("", ""); - this.verifyCapitalizeOnStringWriter("A", "a"); - this.verifyCapitalizeOnStringWriter("\u00C9cole", "\u00E9cole"); // �cole->�COLE - } - - private void verifyCapitalizeOnStringWriter(String expected, String string) { - Writer writer = new StringWriter(); - StringTools.capitalizeOn(string, writer); - assertEquals(expected, writer.toString()); - } - - public void testUnapitalizeCharArray() { - this.verifyUncapitalizeCharArray("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' }); - this.verifyUncapitalizeCharArray("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' }); - this.verifyUncapitalizeCharArray(" ", new char[] { ' ', ' ', ' ' }); - this.verifyUncapitalizeCharArray("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' }); - this.verifyUncapitalizeCharArray("", new char[0]); - this.verifyUncapitalizeCharArray("a", new char[] { 'A' }); - this.verifyUncapitalizeCharArray("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' }); - } - - private void verifyUncapitalizeCharArray(String expected, char[] string) { - assertEquals(expected, StringTools.uncapitalize(string)); - } - - public void testUncapitalizeString() { - this.verifyUncapitalizeString("oracle", "Oracle"); - this.verifyUncapitalizeString("oracle", "oracle"); - this.verifyUncapitalizeString(" ", " "); - this.verifyUncapitalizeString("ORACLE", "ORACLE"); - this.verifyUncapitalizeString("", ""); - this.verifyUncapitalizeString("a", "A"); - this.verifyUncapitalizeString("\u00E9cole", "\u00C9cole"); // �cole->�COLE - } - - private void verifyUncapitalizeString(String expected, String string) { - assertEquals(expected, StringTools.uncapitalize(string)); - } - - public void testUncapitalizeOnCharArrayStringBuffer() { - this.verifyUncapitalizeOnCharArrayStringBuffer("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' }); - this.verifyUncapitalizeOnCharArrayStringBuffer("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' }); - this.verifyUncapitalizeOnCharArrayStringBuffer(" ", new char[] { ' ', ' ', ' ' }); - this.verifyUncapitalizeOnCharArrayStringBuffer("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' }); - this.verifyUncapitalizeOnCharArrayStringBuffer("", new char[0]); - this.verifyUncapitalizeOnCharArrayStringBuffer("a", new char[] { 'A' }); - this.verifyUncapitalizeOnCharArrayStringBuffer("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' }); - } - - private void verifyUncapitalizeOnCharArrayStringBuffer(String expected, char[] string) { - StringBuffer sb = new StringBuffer(); - StringTools.uncapitalizeOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testUncapitalizeOnCharArrayStringBuilder() { - this.verifyUncapitalizeOnCharArrayStringBuilder("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' }); - this.verifyUncapitalizeOnCharArrayStringBuilder("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' }); - this.verifyUncapitalizeOnCharArrayStringBuilder(" ", new char[] { ' ', ' ', ' ' }); - this.verifyUncapitalizeOnCharArrayStringBuilder("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' }); - this.verifyUncapitalizeOnCharArrayStringBuilder("", new char[0]); - this.verifyUncapitalizeOnCharArrayStringBuilder("a", new char[] { 'A' }); - this.verifyUncapitalizeOnCharArrayStringBuilder("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' }); - } - - private void verifyUncapitalizeOnCharArrayStringBuilder(String expected, char[] string) { - StringBuilder sb = new StringBuilder(); - StringTools.uncapitalizeOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testUncapitalizeOnStringStringBuffer() { - this.verifyUncapitalizeOnStringStringBuffer("oracle", "Oracle"); - this.verifyUncapitalizeOnStringStringBuffer("oracle", "oracle"); - this.verifyUncapitalizeOnStringStringBuffer(" ", " "); - this.verifyUncapitalizeOnStringStringBuffer("ORACLE", "ORACLE"); - this.verifyUncapitalizeOnStringStringBuffer("", ""); - this.verifyUncapitalizeOnStringStringBuffer("a", "A"); - this.verifyUncapitalizeOnStringStringBuffer("\u00E9cole", "\u00C9cole"); // �cole->�COLE - } - - private void verifyUncapitalizeOnStringStringBuffer(String expected, String string) { - StringBuffer sb = new StringBuffer(); - StringTools.uncapitalizeOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testUncapitalizeOnStringStringBuilder() { - this.verifyUncapitalizeOnStringStringBuilder("oracle", "Oracle"); - this.verifyUncapitalizeOnStringStringBuilder("oracle", "oracle"); - this.verifyUncapitalizeOnStringStringBuilder(" ", " "); - this.verifyUncapitalizeOnStringStringBuilder("ORACLE", "ORACLE"); - this.verifyUncapitalizeOnStringStringBuilder("", ""); - this.verifyUncapitalizeOnStringStringBuilder("a", "A"); - this.verifyUncapitalizeOnStringStringBuilder("\u00E9cole", "\u00C9cole"); // �cole->�COLE - } - - private void verifyUncapitalizeOnStringStringBuilder(String expected, String string) { - StringBuilder sb = new StringBuilder(); - StringTools.uncapitalizeOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testUncapitalizeOnCharArrayWriter() { - this.verifyUncapitalizeOnCharArrayWriter("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' }); - this.verifyUncapitalizeOnCharArrayWriter("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' }); - this.verifyUncapitalizeOnCharArrayWriter(" ", new char[] { ' ', ' ', ' ' }); - this.verifyUncapitalizeOnCharArrayWriter("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' }); - this.verifyUncapitalizeOnCharArrayWriter("", new char[0]); - this.verifyUncapitalizeOnCharArrayWriter("a", new char[] { 'A' }); - this.verifyUncapitalizeOnCharArrayWriter("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' }); - } - - private void verifyUncapitalizeOnCharArrayWriter(String expected, char[] string) { - Writer writer = new StringWriter(); - StringTools.uncapitalizeOn(string, writer); - assertEquals(expected, writer.toString()); - } - - public void testUncapitalizeOnStringWriter() { - this.verifyUncapitalizeOnStringWriter("oracle", "Oracle"); - this.verifyUncapitalizeOnStringWriter("oracle", "oracle"); - this.verifyUncapitalizeOnStringWriter(" ", " "); - this.verifyUncapitalizeOnStringWriter("ORACLE", "ORACLE"); - this.verifyUncapitalizeOnStringWriter("", ""); - this.verifyUncapitalizeOnStringWriter("a", "A"); - this.verifyUncapitalizeOnStringWriter("\u00E9cole", "\u00C9cole"); // �cole->�COLE - } - - private void verifyUncapitalizeOnStringWriter(String expected, String string) { - Writer writer = new StringWriter(); - StringTools.uncapitalizeOn(string, writer); - assertEquals(expected, writer.toString()); - } - - // ********** #toString() ********** - - public void testBuildToStringClassName_anonymous() { - Object o = new Object(){/*anonymous subclass of Object*/}; - assertEquals("Object", StringTools.buildToStringClassName(o.getClass())); - } - - // ********** queries ********** - - public void testStringIsEmptyString() { - assertTrue(StringTools.stringIsEmpty((String) null)); - assertTrue(StringTools.stringIsEmpty("")); - assertTrue(StringTools.stringIsEmpty(" ")); - assertTrue(StringTools.stringIsEmpty(" \t\t ")); - assertTrue(StringTools.stringIsEmpty(" \t\t " + StringTools.CR)); - } - - public void testStringIsEmptyCharArray() { - assertTrue(StringTools.stringIsEmpty((char[]) null)); - this.verifyStringIsEmptyCharArray(""); - this.verifyStringIsEmptyCharArray(" \t\t "); - this.verifyStringIsEmptyCharArray(" "); - this.verifyStringIsEmptyCharArray(" \t\t " + StringTools.CR); - } - - private void verifyStringIsEmptyCharArray(String string) { - assertTrue(StringTools.stringIsEmpty(string.toCharArray())); - } - - public void testStringsAreEqualStringString() { - assertTrue(StringTools.stringsAreEqual((String) null, (String) null)); - assertFalse(StringTools.stringsAreEqual(null, "asdf")); - assertFalse(StringTools.stringsAreEqual("asdf", null)); - assertTrue(StringTools.stringsAreEqual("asdf", "asdf")); - assertFalse(StringTools.stringsAreEqual("asdf", "ASDF")); - } - - public void testStringsAreEqualCharArrayCharArray() { - assertTrue(StringTools.stringsAreEqual((char[]) null, (char[]) null)); - assertFalse(StringTools.stringsAreEqual((char[]) null, "asdf".toCharArray())); - assertFalse(StringTools.stringsAreEqual("asdf".toCharArray(), (char[]) null)); - assertTrue(StringTools.stringsAreEqual("asdf".toCharArray(), "asdf".toCharArray())); - assertFalse(StringTools.stringsAreEqual("asdf".toCharArray(), "ASDF".toCharArray())); - } - - public void testStringsAreEqualIgnoreCaseStringString() { - assertTrue(StringTools.stringsAreEqualIgnoreCase((String) null, (String) null)); - assertFalse(StringTools.stringsAreEqualIgnoreCase(null, "asdf")); - assertFalse(StringTools.stringsAreEqualIgnoreCase("asdf", null)); - assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf", "asdf")); - assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf", "ASDF")); - } - - public void testStringsAreEqualIgnoreCaseCharArrayCharArray() { - assertTrue(StringTools.stringsAreEqualIgnoreCase((char[]) null, (char[]) null)); - assertFalse(StringTools.stringsAreEqualIgnoreCase((char[]) null, "asdf".toCharArray())); - assertFalse(StringTools.stringsAreEqualIgnoreCase("asdf".toCharArray(), (char[]) null)); - assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf".toCharArray(), "asdf".toCharArray())); - assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf".toCharArray(), "ASDF".toCharArray())); - } - - public void testStringStartsWithIgnoreCaseStringString() { - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "as")); - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "aS")); - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "")); - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "A")); - - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "bsdf")); - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "g")); - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "asdg")); - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "asdfg")); - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "asdfgggggg")); - } - - public void testStringStartsWithIgnoreCaseCharArrayCharArray() { - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "as".toCharArray())); - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "aS".toCharArray())); - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "".toCharArray())); - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "A".toCharArray())); - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "ASDF".toCharArray())); - assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdf".toCharArray())); - - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "bsdf".toCharArray())); - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "g".toCharArray())); - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdg".toCharArray())); - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdfg".toCharArray())); - assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdfgggggg".toCharArray())); - } - - public void testCharactersAreEqualIgnoreCase() { - assertTrue(StringTools.charactersAreEqualIgnoreCase('a', 'a')); - assertTrue(StringTools.charactersAreEqualIgnoreCase('a', 'A')); - assertTrue(StringTools.charactersAreEqualIgnoreCase('A', 'a')); - assertTrue(StringTools.charactersAreEqualIgnoreCase('A', 'A')); - - assertFalse(StringTools.charactersAreEqualIgnoreCase('a', 'b')); - assertFalse(StringTools.charactersAreEqualIgnoreCase('A', 'b')); - } - - public void testStringIsUppercase() { - this.verifyStringIsUppercase("FOO"); - this.verifyStringIsUppercase("FOO2"); - this.verifyStringIsUppercase("F O O"); - this.denyStringIsUppercase("Foo"); - this.denyStringIsUppercase(""); - } - - private void verifyStringIsUppercase(String s) { - assertTrue(StringTools.stringIsUppercase(s)); - assertTrue(StringTools.stringIsUppercase(s.toCharArray())); - } - - private void denyStringIsUppercase(String s) { - assertFalse(StringTools.stringIsUppercase(s)); - assertFalse(StringTools.stringIsUppercase(s.toCharArray())); - } - - public void testStringIsLowercase() { - this.verifyStringIsLowercase("foo"); - this.verifyStringIsLowercase("foo2"); - this.verifyStringIsLowercase("f o o"); - this.denyStringIsLowercase("Foo"); - this.denyStringIsLowercase(""); - } - - private void verifyStringIsLowercase(String s) { - assertTrue(StringTools.stringIsLowercase(s)); - assertTrue(StringTools.stringIsLowercase(s.toCharArray())); - } - - private void denyStringIsLowercase(String s) { - assertFalse(StringTools.stringIsLowercase(s)); - assertFalse(StringTools.stringIsLowercase(s.toCharArray())); - } - - // ********** convert camel-case to all-caps ********** - - public void testConvertCamelCaseToAllCaps() { - assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("test")); - assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("TEST")); - assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("testTest")); - assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTest")); - assertEquals("TEST_TEST_TEST", StringTools.convertCamelCaseToAllCaps("testTESTTest")); - assertEquals("TEST_TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTESTTest")); - assertEquals("TEST_TEST_TEST_T", StringTools.convertCamelCaseToAllCaps("TestTESTTestT")); - } - - public void testConvertCamelCaseToAllCapsOnWriter() { - this.verifyConvertCamelCaseToAllCapsOnWriter("TEST", "test"); - this.verifyConvertCamelCaseToAllCapsOnWriter("TEST", "TEST"); - this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST", "testTest"); - this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST", "TestTest"); - this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST_TEST", "testTESTTest"); - this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST_TEST", "TestTESTTest"); - this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST_TEST_T", "TestTESTTestT"); - } - - private void verifyConvertCamelCaseToAllCapsOnWriter(String expected, String string) { - Writer writer = new StringWriter(); - StringTools.convertCamelCaseToAllCapsOn(string, writer); - assertEquals(expected, writer.toString()); - } - - public void testConvertCamelCaseToAllCapsOnStringBuffer() { - this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST", "test"); - this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST", "TEST"); - this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST", "testTest"); - this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST", "TestTest"); - this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST_TEST", "testTESTTest"); - this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST_TEST", "TestTESTTest"); - this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST_TEST_T", "TestTESTTestT"); - } - - private void verifyConvertCamelCaseToAllCapsOnStringBuffer(String expected, String string) { - StringBuffer sb = new StringBuffer(); - StringTools.convertCamelCaseToAllCapsOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testConvertCamelCaseToAllCapsOnStringBuilder() { - this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST", "test"); - this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST", "TEST"); - this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST", "testTest"); - this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST", "TestTest"); - this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST_TEST", "testTESTTest"); - this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST_TEST", "TestTESTTest"); - this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST_TEST_T", "TestTESTTestT"); - } - - private void verifyConvertCamelCaseToAllCapsOnStringBuilder(String expected, String string) { - StringBuilder sb = new StringBuilder(); - StringTools.convertCamelCaseToAllCapsOn(string, sb); - assertEquals(expected, sb.toString()); - } - - public void testConvertCamelCaseToAllCapsMaxLength() { - assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("test", 44)); - assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("test", 4)); - assertEquals("TES", StringTools.convertCamelCaseToAllCaps("test", 3)); - assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("TEST", 5)); - assertEquals("TE", StringTools.convertCamelCaseToAllCaps("TEST", 2)); - assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("testTest", 9)); - assertEquals("TEST_TES", StringTools.convertCamelCaseToAllCaps("testTest", 8)); - assertEquals("TEST_T", StringTools.convertCamelCaseToAllCaps("testTest", 6)); - assertEquals("TEST_", StringTools.convertCamelCaseToAllCaps("testTest", 5)); - assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("testTest", 4)); - assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTest", 9)); - assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTest", 1100)); - assertEquals("TEST_TEST_", StringTools.convertCamelCaseToAllCaps("testTESTTest", 10)); - assertEquals("TEST_TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTESTTest", 14)); - assertEquals("TEST_TEST_TEST_T", StringTools.convertCamelCaseToAllCaps("TestTESTTestT", 16)); - assertEquals("TEST_TEST_TEST_", StringTools.convertCamelCaseToAllCaps("TestTESTTestT", 15)); - } - - public void testConvertCamelCaseToAllCapsMaxLengthOnWriter() { - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "test", 44); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "test", 4); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TES", "test", 3); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "TEST", 5); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TE", "TEST", 2); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST", "testTest", 9); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TES", "testTest", 8); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_T", "testTest", 6); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_", "testTest", 5); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "testTest", 4); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST", "TestTest", 9); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST", "TestTest", 1100); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_", "testTESTTest", 10); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_TEST", "TestTESTTest", 14); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_TEST_T", "TestTESTTestT", 16); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_TEST_", "TestTESTTestT", 15); - } - - private void verifyConvertCamelCaseToAllCapsMaxLengthOnWriter(String expected, String string, int max) { - Writer writer = new StringWriter(); - StringTools.convertCamelCaseToAllCapsOn(string, max, writer); - assertEquals(expected, writer.toString()); - } - - public void testConvertCamelCaseToAllCapsMaxLengthOnStringBuffer() { - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "test", 44); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "test", 4); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TES", "test", 3); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "TEST", 5); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TE", "TEST", 2); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST", "testTest", 9); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TES", "testTest", 8); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_T", "testTest", 6); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_", "testTest", 5); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "testTest", 4); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST", "TestTest", 9); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST", "TestTest", 1100); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_", "testTESTTest", 10); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_TEST", "TestTESTTest", 14); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_TEST_T", "TestTESTTestT", 16); - this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_TEST_", "TestTESTTestT", 15); - } - - private void verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer(String expected, String string, int max) { - StringBuffer sb = new StringBuffer(); - StringTools.convertCamelCaseToAllCapsOn(string, max, sb); - assertEquals(expected, sb.toString()); - } - - // ********** convert underscores to all-caps ********** - - public void testConvertUnderscoresToCamelCase() { - assertEquals("test", StringTools.convertUnderscoresToCamelCase("TEST", false)); - assertEquals("test", StringTools.convertUnderscoresToCamelCase("TEST_", false)); - assertEquals("test", StringTools.convertUnderscoresToCamelCase("TEST____", false)); - assertEquals("Test", StringTools.convertUnderscoresToCamelCase("TEST", true)); - assertEquals("test", StringTools.convertUnderscoresToCamelCase("TeST", false)); - assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST", false)); - assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("TEST___TEST", false)); - assertEquals("TestTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST", true)); - assertEquals("testTestTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST", false)); - assertEquals("TestTestTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST", true)); - assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST_T", false)); - assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("_TEST_TEST_TEST_T", false)); - assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("__TEST_TEST_TEST_T", false)); - assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST_T", true)); - assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("_TEST_TEST_TEST_T", true)); - assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("__TEST_TEST_TEST_T", true)); - } - - public void testConvertUnderscoresToCamelCaseLowercase() { - assertEquals("test", StringTools.convertUnderscoresToCamelCase("test", false)); - assertEquals("test", StringTools.convertUnderscoresToCamelCase("test_", false)); - assertEquals("test", StringTools.convertUnderscoresToCamelCase("test____", false)); - assertEquals("Test", StringTools.convertUnderscoresToCamelCase("test", true)); - assertEquals("test", StringTools.convertUnderscoresToCamelCase("test", false)); - assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("test_test", false)); - assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("test___test", false)); - assertEquals("TestTest", StringTools.convertUnderscoresToCamelCase("test_test", true)); - assertEquals("testTestTest", StringTools.convertUnderscoresToCamelCase("test_test_test", false)); - assertEquals("TestTestTest", StringTools.convertUnderscoresToCamelCase("test_test_test", true)); - assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("test_test_test_t", false)); - assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("_test_test_test_t", false)); - assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("__test_test_test_t", false)); - assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("test_test_test_t", true)); - assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("_test_test_test_t", true)); - assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("__test_test_test_t", true)); - } - - public void testConvertUnderscoresToCamelCaseOnWriter() { - this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TEST", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TEST_", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TEST____", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("Test", "TEST", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TeST", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "TEST_TEST", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "TEST___TEST", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTest", "TEST_TEST", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTest", "TEST_TEST_TEST", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTest", "TEST_TEST_TEST", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "TEST_TEST_TEST_T", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "_TEST_TEST_TEST_T", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "__TEST_TEST_TEST_T", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "TEST_TEST_TEST_T", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "_TEST_TEST_TEST_T", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "__TEST_TEST_TEST_T", true); - } - - public void testConvertUnderscoresToCamelCaseOnWriterLowercase() { - this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test_", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test____", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("Test", "test", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "test_test", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "test___test", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTest", "test_test", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTest", "test_test_test", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTest", "test_test_test", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "test_test_test_t", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "_test_test_test_t", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "__test_test_test_t", false); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "test_test_test_t", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "_test_test_test_t", true); - this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "__test_test_test_t", true); - } - - private void verifyConvertUnderscoresToCamelCaseOnWriter(String expected, String string, boolean capitalizeFirstLetter) { - Writer writer = new StringWriter(); - StringTools.convertUnderscoresToCamelCaseOn(string, capitalizeFirstLetter, writer); - assertEquals(expected, writer.toString()); - } - - public void testConvertUnderscoresToCamelCaseOnStringBuffer() { - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TEST", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TEST_", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TEST____", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("Test", "TEST", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TeST", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "TEST_TEST", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "TEST___TEST", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTest", "TEST_TEST", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTest", "TEST_TEST_TEST", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTest", "TEST_TEST_TEST", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "TEST_TEST_TEST_T", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "_TEST_TEST_TEST_T", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "__TEST_TEST_TEST_T", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "TEST_TEST_TEST_T", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "_TEST_TEST_TEST_T", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "__TEST_TEST_TEST_T", true); - } - - public void testConvertUnderscoresToCamelCaseOnStringBufferLowercase() { - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test_", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test____", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("Test", "test", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "test_test", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "test___test", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTest", "test_test", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTest", "test_test_test", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTest", "test_test_test", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "test_test_test_t", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "_test_test_test_t", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "__test_test_test_t", false); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "test_test_test_t", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "_test_test_test_t", true); - this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "__test_test_test_t", true); - } - - private void verifyConvertUnderscoresToCamelCaseOnStringBuffer(String expected, String string, boolean capitalizeFirstLetter) { - StringBuffer sb = new StringBuffer(); - StringTools.convertUnderscoresToCamelCaseOn(string, capitalizeFirstLetter, sb); - assertEquals(expected, sb.toString()); - } - - // ********** delimiting ********** - - public void testStringIsQuoted() { - this.denyStringIsQuoted("foo"); - this.verifyStringIsQuoted("\"foo\""); - - this.denyStringIsQuoted(""); - this.verifyStringIsQuoted("\"\""); - - this.denyStringIsQuoted("\""); - this.denyStringIsQuoted(" "); - this.denyStringIsQuoted("''"); - this.denyStringIsQuoted("'foo'"); - } - - private void verifyStringIsQuoted(String s) { - assertTrue(StringTools.stringIsQuoted(s)); - assertTrue(StringTools.stringIsQuoted(s.toCharArray())); - } - - private void denyStringIsQuoted(String s) { - assertFalse(StringTools.stringIsQuoted(s)); - assertFalse(StringTools.stringIsQuoted(s.toCharArray())); - } - - public void testStringIsParenthetical() { - this.denyStringIsParenthetical("foo"); - this.verifyStringIsParenthetical("(foo)"); - - this.denyStringIsParenthetical(""); - this.verifyStringIsParenthetical("()"); - - this.denyStringIsParenthetical("("); - this.denyStringIsParenthetical(" "); - this.denyStringIsParenthetical("''"); - this.denyStringIsParenthetical("'foo'"); - } - - private void verifyStringIsParenthetical(String s) { - assertTrue(StringTools.stringIsParenthetical(s)); - assertTrue(StringTools.stringIsParenthetical(s.toCharArray())); - } - - private void denyStringIsParenthetical(String s) { - assertFalse(StringTools.stringIsParenthetical(s)); - assertFalse(StringTools.stringIsParenthetical(s.toCharArray())); - } - - public void testStringIsBracketed() { - this.denyStringIsBracketed("foo"); - this.verifyStringIsBracketed("[foo]"); - - this.denyStringIsBracketed(""); - this.verifyStringIsBracketed("[]"); - - this.denyStringIsBracketed("["); - this.denyStringIsBracketed(" "); - this.denyStringIsBracketed("''"); - this.denyStringIsBracketed("'foo'"); - } - - private void verifyStringIsBracketed(String s) { - assertTrue(StringTools.stringIsBracketed(s)); - assertTrue(StringTools.stringIsBracketed(s.toCharArray())); - } - - private void denyStringIsBracketed(String s) { - assertFalse(StringTools.stringIsBracketed(s)); - assertFalse(StringTools.stringIsBracketed(s.toCharArray())); - } - - public void testStringIsBraced() { - this.denyStringIsBraced("foo"); - this.verifyStringIsBraced("{foo}"); - - this.denyStringIsBraced(""); - this.verifyStringIsBraced("{}"); - - this.denyStringIsBraced("{"); - this.denyStringIsBraced(" "); - this.denyStringIsBraced("''"); - this.denyStringIsBraced("'foo'"); - } - - private void verifyStringIsBraced(String s) { - assertTrue(StringTools.stringIsBraced(s)); - assertTrue(StringTools.stringIsBraced(s.toCharArray())); - } - - private void denyStringIsBraced(String s) { - assertFalse(StringTools.stringIsBraced(s)); - assertFalse(StringTools.stringIsBraced(s.toCharArray())); - } - - public void testStringIsChevroned() { - this.denyStringIsChevroned("foo"); - this.verifyStringIsChevroned(""); - - this.denyStringIsChevroned(""); - this.verifyStringIsChevroned("<>"); - - this.denyStringIsChevroned("{"); - this.denyStringIsChevroned(" "); - this.denyStringIsChevroned("''"); - this.denyStringIsChevroned("'foo'"); - } - - private void verifyStringIsChevroned(String s) { - assertTrue(StringTools.stringIsChevroned(s)); - assertTrue(StringTools.stringIsChevroned(s.toCharArray())); - } - - private void denyStringIsChevroned(String s) { - assertFalse(StringTools.stringIsChevroned(s)); - assertFalse(StringTools.stringIsChevroned(s.toCharArray())); - } - - public void testStringIsDelimited() { - this.denyStringIsDelimited("foo", '?'); - this.verifyStringIsDelimited("?foo?", '?'); - - this.denyStringIsDelimited("", '?'); - this.verifyStringIsDelimited("\"\"", '"'); - this.verifyStringIsDelimited("?xx?", '?'); - this.denyStringIsDelimited("?xx]", '?'); - - this.denyStringIsDelimited("\"", '"'); - this.denyStringIsDelimited(" ", ' '); - this.denyStringIsDelimited("''", '"'); - this.denyStringIsDelimited("'foo'", '?'); - } - - private void verifyStringIsDelimited(String s, char c) { - assertTrue(StringTools.stringIsDelimited(s, c)); - assertTrue(StringTools.stringIsDelimited(s.toCharArray(), c)); - } - - private void denyStringIsDelimited(String s, char c) { - assertFalse(StringTools.stringIsDelimited(s, c)); - assertFalse(StringTools.stringIsDelimited(s.toCharArray(), c)); - } - - public void testStringIsDelimited2() { - this.denyStringIsDelimited2("foo", '[', ']'); - this.verifyStringIsDelimited2("{foo}", '{', '}'); - - this.denyStringIsDelimited2("", '[', ']'); - this.verifyStringIsDelimited2("[]", '[', ']'); - this.verifyStringIsDelimited2("[xx]", '[', ']'); - this.denyStringIsDelimited2("?xx]", '[', ']'); - - this.denyStringIsDelimited2("\"", '[', ']'); - this.denyStringIsDelimited2(" ", '[', ']'); - this.denyStringIsDelimited2("''", '[', ']'); - this.denyStringIsDelimited2("'foo'", '[', ']'); - } - - private void verifyStringIsDelimited2(String s, char start, char end) { - assertTrue(StringTools.stringIsDelimited(s, start, end)); - assertTrue(StringTools.stringIsDelimited(s.toCharArray(), start, end)); - } - - private void denyStringIsDelimited2(String s, char start, char end) { - assertFalse(StringTools.stringIsDelimited(s, start, end)); - assertFalse(StringTools.stringIsDelimited(s.toCharArray(), start, end)); - } - - // ********** undelimiting ********** - - public void testUndelimit() { - this.verifyUndelimit("\"foo\"", "foo"); - this.verifyUndelimit("\"\"", ""); - this.verifyUndelimit("'foo'", "foo"); - this.verifyUndelimit("\"fo\"\"o\"", "fo\"o"); - this.verifyUndelimit("\"foo\"\"\"", "foo\""); - this.verifyUndelimit("\"\"\"foo\"", "\"foo"); - this.verifyUndelimit("[foo]", "foo"); - this.verifyUndelimit("\"\"\"", "\""); - this.verifyUndelimit("\"foo\"bar\"", "foo\""); - this.verifyUndelimit("\"foo\"\"", "foo\""); - } - - private void verifyUndelimit(String s, String expected) { - assertEquals(expected, StringTools.undelimit(s)); - assertEquals(expected, StringTools.undelimit(s.toCharArray())); - } - - public void testUndelimitInt() { - this.verifyUndelimitInt("\"foo\"", 2, "o"); - this.verifyUndelimitInt("\"\"foo\"\"", 2, "foo"); - this.verifyUndelimitInt("'foo'", 2, "o"); - } - - private void verifyUndelimitInt(String s, int count, String expected) { - assertEquals(expected, StringTools.undelimit(s, count)); - assertEquals(expected, StringTools.undelimit(s.toCharArray(), count)); - } - - public void testUndelimitIntException() { - this.denyUndelimitInt("\"\"", 2); - this.denyUndelimitInt("'o'", 2); - } - - private void denyUndelimitInt(String s, int count) { - boolean exCaught = false; - try { - String bogus = StringTools.undelimit(s, count); - fail("invalid string: " + bogus); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - exCaught = false; - try { - char[] bogus = StringTools.undelimit(s.toCharArray(), count); - fail("invalid string: " + new String(bogus)); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testUndelimitOnWriter() { - this.verifyUndelimitOnWriter("\"foo\"", "foo"); - this.verifyUndelimitOnWriter("\"\"", ""); - this.verifyUndelimitOnWriter("'foo'", "foo"); - this.verifyUndelimitOnWriter("\"fo\"\"o\"", "fo\"o"); - this.verifyUndelimitOnWriter("\"foo\"\"\"", "foo\""); - this.verifyUndelimitOnWriter("\"\"\"foo\"", "\"foo"); - this.verifyUndelimitOnWriter("[foo]", "foo"); - this.verifyUndelimitOnWriter("\"\"\"", "\""); - this.verifyUndelimitOnWriter("\"foo\"bar\"", "foo\""); - this.verifyUndelimitOnWriter("\"foo\"\"", "foo\""); - } - - private void verifyUndelimitOnWriter(String s, String expected) { - Writer writer = new StringWriter(); - StringTools.undelimitOn(s, writer); - assertEquals(expected, writer.toString()); - - writer = new StringWriter(); - StringTools.undelimitOn(s.toCharArray(), writer); - assertEquals(expected, writer.toString()); - } - - public void testUndelimitOnStringBuffer() { - this.verifyUndelimitOnStringBuffer("\"foo\"", "foo"); - this.verifyUndelimitOnStringBuffer("\"\"", ""); - this.verifyUndelimitOnStringBuffer("'foo'", "foo"); - this.verifyUndelimitOnStringBuffer("\"fo\"\"o\"", "fo\"o"); - this.verifyUndelimitOnStringBuffer("\"foo\"\"\"", "foo\""); - this.verifyUndelimitOnStringBuffer("\"\"\"foo\"", "\"foo"); - this.verifyUndelimitOnStringBuffer("[foo]", "foo"); - this.verifyUndelimitOnStringBuffer("\"\"\"", "\""); - this.verifyUndelimitOnStringBuffer("\"foo\"bar\"", "foo\""); - this.verifyUndelimitOnStringBuffer("\"foo\"\"", "foo\""); - } - - private void verifyUndelimitOnStringBuffer(String s, String expected) { - StringBuffer sb = new StringBuffer(); - StringTools.undelimitOn(s, sb); - assertEquals(expected, sb.toString()); - - sb = new StringBuffer(); - StringTools.undelimitOn(s.toCharArray(), sb); - assertEquals(expected, sb.toString()); - } - - public void testUndelimitOnStringBuilder() { - this.verifyUndelimitOnStringBuilder("\"foo\"", "foo"); - this.verifyUndelimitOnStringBuilder("\"\"", ""); - this.verifyUndelimitOnStringBuilder("'foo'", "foo"); - this.verifyUndelimitOnStringBuilder("\"fo\"\"o\"", "fo\"o"); - this.verifyUndelimitOnStringBuilder("\"foo\"\"\"", "foo\""); - this.verifyUndelimitOnStringBuilder("\"\"\"foo\"", "\"foo"); - this.verifyUndelimitOnStringBuilder("[foo]", "foo"); - this.verifyUndelimitOnStringBuilder("\"\"\"", "\""); - this.verifyUndelimitOnStringBuilder("\"foo\"bar\"", "foo\""); - this.verifyUndelimitOnStringBuilder("\"foo\"\"", "foo\""); - } - - private void verifyUndelimitOnStringBuilder(String s, String expected) { - StringBuilder sb = new StringBuilder(); - StringTools.undelimitOn(s, sb); - assertEquals(expected, sb.toString()); - - sb = new StringBuilder(); - StringTools.undelimitOn(s.toCharArray(), sb); - assertEquals(expected, sb.toString()); - } - - public void testUndelimitOnWriterCount() { - this.verifyUndelimitOnWriterCount("\"foo\"", 2, "o"); - this.verifyUndelimitOnWriterCount("\"\"\"\"", 2, ""); - this.verifyUndelimitOnWriterCount("XXfooXX", 2, "foo"); - } - - private void verifyUndelimitOnWriterCount(String s, int count, String expected) { - Writer writer = new StringWriter(); - StringTools.undelimitOn(s, count, writer); - assertEquals(expected, writer.toString()); - - writer = new StringWriter(); - StringTools.undelimitOn(s.toCharArray(), count, writer); - assertEquals(expected, writer.toString()); - } - - public void testUndelimitOnStringBufferCount() { - this.verifyUndelimitOnStringBufferCount("\"foo\"", 2, "o"); - this.verifyUndelimitOnStringBufferCount("\"\"\"\"", 2, ""); - this.verifyUndelimitOnStringBufferCount("XXfooXX", 2, "foo"); - } - - private void verifyUndelimitOnStringBufferCount(String s, int count, String expected) { - StringBuffer sb = new StringBuffer(); - StringTools.undelimitOn(s, count, sb); - assertEquals(expected, sb.toString()); - - sb = new StringBuffer(); - StringTools.undelimitOn(s.toCharArray(), count, sb); - assertEquals(expected, sb.toString()); - } - - public void testUndelimitOnStringBuilderCount() { - this.verifyUndelimitOnStringBuilderCount("\"foo\"", 2, "o"); - this.verifyUndelimitOnStringBuilderCount("\"\"\"\"", 2, ""); - this.verifyUndelimitOnStringBuilderCount("XXfooXX", 2, "foo"); - } - - private void verifyUndelimitOnStringBuilderCount(String s, int count, String expected) { - StringBuilder sb = new StringBuilder(); - StringTools.undelimitOn(s, count, sb); - assertEquals(expected, sb.toString()); - - sb = new StringBuilder(); - StringTools.undelimitOn(s.toCharArray(), count, sb); - assertEquals(expected, sb.toString()); - } - - // ********** converting to Java string literal ********** - - public void testConvertToJavaStringLiteral() { - this.verifyConvertToJavaStringLiteral("", "\"\""); - this.verifyConvertToJavaStringLiteral("\"\"", "\"\\\"\\\"\""); - this.verifyConvertToJavaStringLiteral("'foo'", "\"'foo'\""); - this.verifyConvertToJavaStringLiteral("foo\bbar", "\"foo\\bbar\""); - this.verifyConvertToJavaStringLiteral("foo\n\tbar", "\"foo\\n\\tbar\""); - this.verifyConvertToJavaStringLiteral("foo\"bar", "\"foo\\\"bar\""); - this.verifyConvertToJavaStringLiteral("foo\\bar", "\"foo\\\\bar\""); - } - - private void verifyConvertToJavaStringLiteral(String s, String expected) { - assertEquals(expected, StringTools.convertToJavaStringLiteral(s)); - assertEquals(expected, StringTools.convertToJavaStringLiteral(s.toCharArray())); - } - - public void testConvertToJavaStringLiteralOnStringBuffer() { - this.verifyConvertToJavaStringLiteralOnStringBuffer("", "\"\""); - this.verifyConvertToJavaStringLiteralOnStringBuffer("\"\"", "\"\\\"\\\"\""); - this.verifyConvertToJavaStringLiteralOnStringBuffer("'foo'", "\"'foo'\""); - this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\bbar", "\"foo\\bbar\""); - this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\n\tbar", "\"foo\\n\\tbar\""); - this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\"bar", "\"foo\\\"bar\""); - this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\\bar", "\"foo\\\\bar\""); - } - - private void verifyConvertToJavaStringLiteralOnStringBuffer(String s, String expected) { - StringBuffer sb = new StringBuffer(); - StringTools.convertToJavaStringLiteralOn(s, sb); - assertEquals(expected, sb.toString()); - - sb = new StringBuffer(); - StringTools.convertToJavaStringLiteralOn(s.toCharArray(), sb); - assertEquals(expected, sb.toString()); - } - - public void testConvertToJavaStringLiteralOnStringBuilder() { - this.verifyConvertToJavaStringLiteralOnStringBuilder("", "\"\""); - this.verifyConvertToJavaStringLiteralOnStringBuilder("\"\"", "\"\\\"\\\"\""); - this.verifyConvertToJavaStringLiteralOnStringBuilder("'foo'", "\"'foo'\""); - this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\bbar", "\"foo\\bbar\""); - this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\n\tbar", "\"foo\\n\\tbar\""); - this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\"bar", "\"foo\\\"bar\""); - this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\\bar", "\"foo\\\\bar\""); - } - - private void verifyConvertToJavaStringLiteralOnStringBuilder(String s, String expected) { - StringBuilder sb = new StringBuilder(); - StringTools.convertToJavaStringLiteralOn(s, sb); - assertEquals(expected, sb.toString()); - - sb = new StringBuilder(); - StringTools.convertToJavaStringLiteralOn(s.toCharArray(), sb); - assertEquals(expected, sb.toString()); - } - - public void testConvertToJavaStringLiteralOnWriter() { - this.verifyConvertToJavaStringLiteralOnWriter("", "\"\""); - this.verifyConvertToJavaStringLiteralOnWriter("\"\"", "\"\\\"\\\"\""); - this.verifyConvertToJavaStringLiteralOnWriter("'foo'", "\"'foo'\""); - this.verifyConvertToJavaStringLiteralOnWriter("foo\bbar", "\"foo\\bbar\""); - this.verifyConvertToJavaStringLiteralOnWriter("foo\n\tbar", "\"foo\\n\\tbar\""); - this.verifyConvertToJavaStringLiteralOnWriter("foo\"bar", "\"foo\\\"bar\""); - this.verifyConvertToJavaStringLiteralOnWriter("foo\\bar", "\"foo\\\\bar\""); - } - - private void verifyConvertToJavaStringLiteralOnWriter(String s, String expected) { - Writer writer = new StringWriter(); - StringTools.convertToJavaStringLiteralOn(s, writer); - assertEquals(expected, writer.toString()); - - writer = new StringWriter(); - StringTools.convertToJavaStringLiteralOn(s.toCharArray(), writer); - assertEquals(expected, writer.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedBooleanTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedBooleanTests.java deleted file mode 100644 index 9847bf536f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedBooleanTests.java +++ /dev/null @@ -1,236 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean; - -public class SynchronizedBooleanTests - extends MultiThreadedTestCase -{ - private volatile SynchronizedBoolean sb; - volatile boolean timeoutOccurred; - volatile long startTime; - volatile long endTime; - - - public SynchronizedBooleanTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.sb = new SynchronizedBoolean(); - this.timeoutOccurred = false; - this.startTime = 0; - this.endTime = 0; - } - - public void testGetValue() throws Exception { - assertFalse(this.sb.getValue()); - } - - public void testIs() throws Exception { - assertTrue(this.sb.is(false)); - } - - public void testIsNot() throws Exception { - assertTrue(this.sb.isNot(true)); - } - - public void testIsTrue() throws Exception { - assertFalse(this.sb.isTrue()); - } - - public void testIsFalse() throws Exception { - assertTrue(this.sb.isFalse()); - } - - public void testSetValueFalse() throws Exception { - this.sb.setValue(false); - assertFalse(this.sb.getValue()); - assertFalse(this.sb.isTrue()); - assertTrue(this.sb.isFalse()); - } - - public void testSetValueTrue() throws Exception { - this.sb.setValue(true); - assertTrue(this.sb.getValue()); - assertTrue(this.sb.isTrue()); - assertFalse(this.sb.isFalse()); - } - - public void testFlip() throws Exception { - assertTrue(this.sb.flip()); - assertFalse(this.sb.flip()); - } - - public void testSetNotTrue() throws Exception { - this.sb.setNot(true); - assertFalse(this.sb.getValue()); - assertFalse(this.sb.isTrue()); - assertTrue(this.sb.isFalse()); - } - - public void testSetNotFalse() throws Exception { - this.sb.setNot(false); - assertTrue(this.sb.getValue()); - assertTrue(this.sb.isTrue()); - assertFalse(this.sb.isFalse()); - } - - public void testSetFalse() throws Exception { - this.sb.setFalse(); - assertFalse(this.sb.getValue()); - assertFalse(this.sb.isTrue()); - assertTrue(this.sb.isFalse()); - } - - public void testSetTrue() throws Exception { - this.sb.setTrue(); - assertTrue(this.sb.getValue()); - assertTrue(this.sb.isTrue()); - assertFalse(this.sb.isFalse()); - } - - public void testGetMutexThis() throws Exception { - assertSame(this.sb, this.sb.getMutex()); - } - - public void testGetMutexObject() throws Exception { - Object mutex = new Object(); - SynchronizedBoolean syncBool = new SynchronizedBoolean(mutex); - assertSame(mutex, syncBool.getMutex()); - } - - /** - * t2 will wait indefinitely until t1 sets the value to true - */ - public void testWaitUntilTrue() throws Exception { - this.verifyWaitUntilTrue(0); // 0 = indefinite wait - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and the value should be set to true by t2 - assertTrue(this.sb.getValue()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() > TICK); - } - - /** - * t2 will time out waiting for t1 to set the value to true - */ - public void testWaitUntilTrueTimeout() throws Exception { - this.verifyWaitUntilTrue(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the value will eventually be set to true by t1 - assertTrue(this.sb.getValue()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() < THREE_TICKS); - } - - private void verifyWaitUntilTrue(long t2Timeout) throws Exception { - this.executeThreads(this.buildSetTrueCommand(), this.buildWaitUntilTrueCommand(t2Timeout)); - } - - /** - * t2 will wait indefinitely until t1 sets the value to false - */ - public void testWaitToSetFalse() throws Exception { - this.verifyWaitToSetFalse(0); // 0 = indefinite wait - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and the value should be set to false by t2 - assertFalse(this.sb.getValue()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() > TICK); - } - - /** - * t2 will time out waiting for t1 to set the value to false - */ - public void testWaitToSetFalseTimeout() throws Exception { - this.verifyWaitToSetFalse(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the value will eventually be set to true by t1 - assertTrue(this.sb.getValue()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() < THREE_TICKS); - } - - private void verifyWaitToSetFalse(long t2Timeout) throws Exception { - this.executeThreads(this.buildSetTrueCommand(), this.buildWaitToSetFalseCommand(t2Timeout)); - } - - private void executeThreads(Command t1Command, Command t2Command) throws Exception { - this.sb.setFalse(); - Runnable r1 = this.buildRunnable(t1Command, this.sb, TWO_TICKS); - Runnable r2 = this.buildRunnable(t2Command, this.sb, 0); - Thread t1 = this.buildThread(r1); - Thread t2 = this.buildThread(r2); - t1.start(); - t2.start(); - t1.join(); - t2.join(); - } - - private Command buildSetTrueCommand() { - return new Command() { - public void execute(SynchronizedBoolean syncBool) { - syncBool.setTrue(); - } - }; - } - - private Command buildWaitUntilTrueCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedBoolean syncBool) throws InterruptedException { - SynchronizedBooleanTests.this.startTime = System.currentTimeMillis(); - SynchronizedBooleanTests.this.timeoutOccurred = ! syncBool.waitUntilTrue(timeout); - SynchronizedBooleanTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Command buildWaitToSetFalseCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedBoolean syncBool) throws InterruptedException { - SynchronizedBooleanTests.this.startTime = System.currentTimeMillis(); - SynchronizedBooleanTests.this.timeoutOccurred = ! syncBool.waitToSetFalse(timeout); - SynchronizedBooleanTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Runnable buildRunnable(final Command command, final SynchronizedBoolean syncBool, final long delay) { - return new TestRunnable() { - @Override - public void run_() throws InterruptedException { - if (delay != 0) { - Thread.sleep(delay); - } - command.execute(syncBool); - } - }; - } - - long calculateElapsedTime() { - return this.endTime - this.startTime; - } - - - // ********** Command interface ********** - - private interface Command { - void execute(SynchronizedBoolean syncBool) throws InterruptedException; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedIntTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedIntTests.java deleted file mode 100644 index 18df9552c5..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedIntTests.java +++ /dev/null @@ -1,362 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import org.eclipse.jpt.common.utility.internal.SynchronizedInt; - -@SuppressWarnings("nls") -public class SynchronizedIntTests - extends MultiThreadedTestCase -{ - private volatile SynchronizedInt si; - volatile boolean timeoutOccurred; - volatile int value = 7; - volatile long startTime; - volatile long endTime; - volatile int sIntValue; - - - public SynchronizedIntTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.si = new SynchronizedInt(); - this.timeoutOccurred = false; - this.startTime = 0; - this.endTime = 0; - this.sIntValue = 0; - } - - public void testGetValue() throws Exception { - assertEquals(0, this.si.getValue()); - } - - public void testEqualsInt() throws Exception { - assertTrue(this.si.equals(0)); - this.si.setValue(this.value); - assertTrue(this.si.equals(7)); - } - - public void testNotEqualInt() throws Exception { - assertTrue(this.si.notEqual(7)); - this.si.setValue(this.value); - assertTrue(this.si.notEqual(0)); - } - - public void testIsZero() throws Exception { - assertTrue(this.si.isZero()); - this.si.setValue(this.value); - assertFalse(this.si.isZero()); - } - - public void testIsNotZero() throws Exception { - assertFalse(this.si.isNotZero()); - this.si.setValue(this.value); - assertTrue(this.si.isNotZero()); - } - - public void testIsGreaterThan() throws Exception { - assertTrue(this.si.isGreaterThan(-1)); - assertFalse(this.si.isGreaterThan(0)); - assertFalse(this.si.isGreaterThan(1)); - this.si.setValue(this.value); - assertTrue(this.si.isGreaterThan(-1)); - assertFalse(this.si.isGreaterThan(7)); - assertFalse(this.si.isGreaterThan(8)); - } - - public void testIsGreaterThanOrEqual() throws Exception { - assertTrue(this.si.isGreaterThanOrEqual(-1)); - assertTrue(this.si.isGreaterThanOrEqual(0)); - assertFalse(this.si.isGreaterThanOrEqual(1)); - this.si.setValue(this.value); - assertTrue(this.si.isGreaterThanOrEqual(-1)); - assertTrue(this.si.isGreaterThanOrEqual(7)); - assertFalse(this.si.isGreaterThanOrEqual(8)); - } - - public void testIsLessThan() throws Exception { - assertFalse(this.si.isLessThan(-1)); - assertFalse(this.si.isLessThan(0)); - assertTrue(this.si.isLessThan(1)); - this.si.setValue(this.value); - assertFalse(this.si.isLessThan(-1)); - assertFalse(this.si.isLessThan(7)); - assertTrue(this.si.isLessThan(8)); - } - - public void testIsLessThanOrEqual() throws Exception { - assertFalse(this.si.isLessThanOrEqual(-1)); - assertTrue(this.si.isLessThanOrEqual(0)); - assertTrue(this.si.isLessThanOrEqual(1)); - this.si.setValue(this.value); - assertFalse(this.si.isLessThanOrEqual(-1)); - assertTrue(this.si.isLessThanOrEqual(7)); - assertTrue(this.si.isLessThanOrEqual(8)); - } - - public void testIsPositive() throws Exception { - assertFalse(this.si.isPositive()); - this.si.setValue(this.value); - assertTrue(this.si.isPositive()); - this.si.setValue(-3); - assertFalse(this.si.isPositive()); - } - - public void testIsNotPositive() throws Exception { - assertTrue(this.si.isNotPositive()); - this.si.setValue(this.value); - assertFalse(this.si.isNotPositive()); - this.si.setValue(-3); - assertTrue(this.si.isNotPositive()); - } - - public void testIsNegative() throws Exception { - assertFalse(this.si.isNegative()); - this.si.setValue(this.value); - assertFalse(this.si.isNegative()); - this.si.setValue(-3); - assertTrue(this.si.isNegative()); - } - - public void testIsNotNegative() throws Exception { - assertTrue(this.si.isNotNegative()); - this.si.setValue(this.value); - assertTrue(this.si.isNotNegative()); - this.si.setValue(-3); - assertFalse(this.si.isNotNegative()); - } - - public void testSetValue() throws Exception { - this.si.setValue(0); - assertEquals(0, this.si.getValue()); - assertFalse(this.si.isNotZero()); - assertTrue(this.si.isZero()); - - this.si.setValue(this.value); - assertEquals(this.value, this.si.getValue()); - assertTrue(this.si.isNotZero()); - assertFalse(this.si.isZero()); - } - - public void testAbs() throws Exception { - assertEquals(0, this.si.abs()); - assertEquals(0, this.si.getValue()); - this.si.setValue(this.value); - assertEquals(this.value, this.si.abs()); - assertEquals(this.value, this.si.getValue()); - this.si.setValue(-this.value); - assertEquals(this.value, this.si.abs()); - } - - public void testNeg() throws Exception { - assertEquals(0, this.si.neg()); - assertEquals(0, this.si.getValue()); - this.si.setValue(this.value); - assertEquals(-this.value, this.si.neg()); - this.si.setValue(-this.value); - assertEquals(this.value, this.si.neg()); - } - - public void testSetZero() throws Exception { - this.si.setZero(); - assertEquals(0, this.si.getValue()); - assertFalse(this.si.isNotZero()); - assertTrue(this.si.isZero()); - } - - public void testGetMutexThis() throws Exception { - assertSame(this.si, this.si.getMutex()); - } - - /** - * t2 will wait indefinitely until t1 sets the value to 0 - */ - public void testWaitUntilZero() throws Exception { - this.verifyWaitUntilZero(0); // 0 = indefinite wait - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and the value should be set to 0 by t2 - assertEquals(0, this.si.getValue()); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit early (expected value should be > " + TICK + "): " + time, time > TICK); - } - - /** - * t2 will time out waiting for t1 to set the value to 0 - */ - public void testWaitUntilZeroTimeout() throws Exception { - this.verifyWaitUntilZero(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the value will eventually be set to 0 by t1 - assertEquals(0, this.si.getValue()); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit late (expected value should be < " + THREE_TICKS + "): " + time, time < THREE_TICKS); - } - - private void verifyWaitUntilZero(long t2Timeout) throws Exception { - this.executeThreads(this.buildSetZeroCommand(), this.buildWaitUntilZeroCommand(t2Timeout)); - } - - /** - * t2 will wait indefinitely until t1 sets the value to 0; - * then t2 will set the value to 7 - */ - public void testWaitToSetValue() throws Exception { - this.verifyWaitToSetValue(0); // 0 = indefinite wait - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and the value should be set to an object by t2 - assertTrue(this.si.isNotZero()); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit early (expected value should be > " + TICK + "): " + time, time > TICK); - } - - /** - * t2 will time out waiting for t1 to set the value to 0 - */ - public void testWaitToSetValueTimeout() throws Exception { - this.verifyWaitToSetValue(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the value will eventually be set to zero by t1 - assertTrue(this.si.isZero()); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit late (expected value should be < " + THREE_TICKS + "): " + time, time < THREE_TICKS); - } - - private void verifyWaitToSetValue(long t2Timeout) throws Exception { - this.executeThreads(this.buildSetZeroCommand(), this.buildWaitToSetValueCommand(t2Timeout)); - } - - /** - * t2 will wait until t1 is finished "initializing" the value; - * then t2 will get the newly-initialized value (42) - */ - public void testExecute() throws Exception { - this.si.setValue(0); - Runnable r1 = this.buildRunnable(this.buildInitializeValueCommand(), this.si, 0); - // give t1 a head start - Runnable r2 = this.buildRunnable(this.buildGetValueCommand(), this.si, TICK); - Thread t1 = this.buildThread(r1); - Thread t2 = this.buildThread(r2); - t1.start(); - t2.start(); - t1.join(); - t2.join(); - assertEquals(42, this.si.getValue()); - assertEquals(42, this.sIntValue); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit early (expected value should be > " + TWO_TICKS + "): " + time, time > TWO_TICKS); - } - - private void executeThreads(Command t1Command, Command t2Command) throws Exception { - this.si.setValue(this.value); - Runnable r1 = this.buildRunnable(t1Command, this.si, TWO_TICKS); - Runnable r2 = this.buildRunnable(t2Command, this.si, 0); - Thread t1 = this.buildThread(r1); - Thread t2 = this.buildThread(r2); - t1.start(); - t2.start(); - t1.join(); - t2.join(); - } - - private Command buildSetZeroCommand() { - return new Command() { - public void execute(SynchronizedInt sInt) { - sInt.setZero(); - } - }; - } - - private Command buildWaitUntilZeroCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedInt sInt) throws InterruptedException { - SynchronizedIntTests.this.startTime = System.currentTimeMillis(); - SynchronizedIntTests.this.timeoutOccurred = ! sInt.waitUntilZero(timeout); - SynchronizedIntTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Command buildWaitToSetValueCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedInt sInt) throws InterruptedException { - SynchronizedIntTests.this.startTime = System.currentTimeMillis(); - SynchronizedIntTests.this.timeoutOccurred = ! sInt.waitToSetValue(SynchronizedIntTests.this.value, timeout); - SynchronizedIntTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Command buildInitializeValueCommand() { - return new Command() { - public void execute(final SynchronizedInt sInt) throws InterruptedException { - sInt.execute( - new org.eclipse.jpt.common.utility.Command() { - public void execute() { - // pretend to perform some long initialization process - try { - Thread.sleep(5 * TICK); - } catch (InterruptedException ex) { - throw new RuntimeException(ex); - } - sInt.setValue(42); - } - } - ); - } - }; - } - - private Command buildGetValueCommand() { - return new Command() { - public void execute(SynchronizedInt sInt) throws InterruptedException { - SynchronizedIntTests.this.startTime = System.currentTimeMillis(); - SynchronizedIntTests.this.sIntValue = sInt.getValue(); - SynchronizedIntTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Runnable buildRunnable(final Command command, final SynchronizedInt sInt, final long sleep) { - return new TestRunnable() { - @Override - protected void run_() throws InterruptedException { - if (sleep != 0) { - Thread.sleep(sleep); - } - command.execute(sInt); - } - }; - } - - private long calculateElapsedTime() { - return this.endTime - this.startTime; - } - - - // ********** Command interface ********** - - private interface Command { - void execute(SynchronizedInt sInt) throws InterruptedException; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedObjectTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedObjectTests.java deleted file mode 100644 index cffe99690a..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedObjectTests.java +++ /dev/null @@ -1,239 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import org.eclipse.jpt.common.utility.internal.SynchronizedObject; - -@SuppressWarnings("nls") -public class SynchronizedObjectTests - extends MultiThreadedTestCase -{ - private volatile SynchronizedObject so; - volatile boolean timeoutOccurred; - volatile Object value = new Object(); - volatile long startTime; - volatile long endTime; - volatile Object soValue; - - - public SynchronizedObjectTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.so = new SynchronizedObject(); - this.timeoutOccurred = false; - this.startTime = 0; - this.endTime = 0; - this.soValue = null; - } - - public void testAccessors() throws Exception { - this.so.setValue(null); - assertNull(this.so.getValue()); - assertFalse(this.so.isNotNull()); - assertTrue(this.so.isNull()); - - this.so.setValue(this.value); - assertEquals(this.value, this.so.getValue()); - assertTrue(this.so.isNotNull()); - assertFalse(this.so.isNull()); - - this.so.setNull(); - assertNull(this.so.getValue()); - assertFalse(this.so.isNotNull()); - assertTrue(this.so.isNull()); - - assertSame(this.so, this.so.getMutex()); - } - - /** - * t2 will wait indefinitely until t1 sets the value to null - */ - public void testWaitUntilNull() throws Exception { - this.verifyWaitUntilNull(0); - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and the value should be set to null by t2 - assertNull(this.so.getValue()); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit early (expected value should be > " + TICK + "): " + time, time > TICK); - } - - /** - * t2 will time out waiting for t1 to set the value to null - */ - public void testWaitUntilNullTimeout() throws Exception { - this.verifyWaitUntilNull(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the value will eventually be set to null by t1 - assertNull(this.so.getValue()); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit late (expected value should be < " + THREE_TICKS + "): " + time, time < THREE_TICKS); - } - - private void verifyWaitUntilNull(long t2Timeout) throws Exception { - this.executeThreads(this.buildSetNullCommand(), this.buildWaitUntilNullCommand(t2Timeout)); - } - - /** - * t2 will wait indefinitely until t1 sets the value to null; - * then t2 will set the value to an object - */ - public void testWaitToSetValue() throws Exception { - this.verifyWaitToSetValue(0); - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and the value should be set to an object by t2 - assertTrue(this.so.isNotNull()); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit early (expected value should be > " + TICK + "): " + time, time > TICK); - } - - /** - * t2 will time out waiting for t1 to set the value to null - */ - public void testWaitToSetValueTimeout() throws Exception { - this.verifyWaitToSetValue(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the value will eventually be set to null by t1 - assertTrue(this.so.isNull()); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit late (expected value should be < " + THREE_TICKS + "): " + time, time < THREE_TICKS); - } - - private void verifyWaitToSetValue(long t2Timeout) throws Exception { - this.executeThreads(this.buildSetNullCommand(), this.buildWaitToSetValueCommand(t2Timeout)); - } - - /** - * t2 will wait until t1 is finished "initializing" the value; - * then t2 will get the newly-initialized value ("foo") - */ - public void testExecute() throws Exception { - this.so.setValue(null); - Runnable r1 = this.buildRunnable(this.buildInitializeValueCommand(), this.so, 0); - // give t1 a head start of 100 ms - Runnable r2 = this.buildRunnable(this.buildGetValueCommand(), this.so, TICK); - Thread t1 = this.buildThread(r1); - Thread t2 = this.buildThread(r2); - t1.start(); - t2.start(); - t1.join(); - t2.join(); - assertEquals("foo", this.so.getValue()); - assertEquals("foo", this.soValue); - // make a reasonable guess about how long t2 took - long time = this.calculateElapsedTime(); - assertTrue("t2 finished a bit early (expected value should be > " + TWO_TICKS + "): " + time, time > TWO_TICKS); - } - - private void executeThreads(Command t1Command, Command t2Command) throws Exception { - this.so.setValue(this.value); - Runnable r1 = this.buildRunnable(t1Command, this.so, TWO_TICKS); - Runnable r2 = this.buildRunnable(t2Command, this.so, 0); - Thread t1 = this.buildThread(r1); - Thread t2 = this.buildThread(r2); - t1.start(); - t2.start(); - t1.join(); - t2.join(); - } - - private Command buildSetNullCommand() { - return new Command() { - public void execute(SynchronizedObject sObject) { - sObject.setNull(); - } - }; - } - - private Command buildWaitUntilNullCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedObject sObject) throws InterruptedException { - SynchronizedObjectTests.this.startTime = System.currentTimeMillis(); - SynchronizedObjectTests.this.timeoutOccurred = ! sObject.waitUntilNull(timeout); - SynchronizedObjectTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Command buildWaitToSetValueCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedObject sObject) throws InterruptedException { - SynchronizedObjectTests.this.startTime = System.currentTimeMillis(); - SynchronizedObjectTests.this.timeoutOccurred = ! sObject.waitToSetValue(SynchronizedObjectTests.this.value, timeout); - SynchronizedObjectTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Command buildInitializeValueCommand() { - return new Command() { - public void execute(final SynchronizedObject sObject) throws InterruptedException { - sObject.execute( - new org.eclipse.jpt.common.utility.Command() { - public void execute() { - // pretend to perform some long initialization process - try { - Thread.sleep(5 * TICK); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - sObject.setValue("foo"); - } - } - ); - } - }; - } - - private Command buildGetValueCommand() { - return new Command() { - public void execute(SynchronizedObject sObject) throws InterruptedException { - SynchronizedObjectTests.this.startTime = System.currentTimeMillis(); - SynchronizedObjectTests.this.soValue = sObject.getValue(); - SynchronizedObjectTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Runnable buildRunnable(final Command command, final SynchronizedObject sObject, final long sleep) { - return new TestRunnable() { - @Override - protected void run_() throws InterruptedException { - if (sleep != 0) { - Thread.sleep(sleep); - } - command.execute(sObject); - } - }; - } - - private long calculateElapsedTime() { - return this.endTime - this.startTime; - } - - - // ********** Command interface ********** - - private interface Command { - void execute(SynchronizedObject so) throws InterruptedException; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedQueueTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedQueueTests.java deleted file mode 100644 index c2d7687e17..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedQueueTests.java +++ /dev/null @@ -1,256 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.Queue; -import org.eclipse.jpt.common.utility.internal.SimpleQueue; -import org.eclipse.jpt.common.utility.internal.SynchronizedQueue; - -@SuppressWarnings("nls") -public class SynchronizedQueueTests extends SimpleQueueTests { - private volatile SynchronizedQueue sq; - volatile boolean timeoutOccurred; - volatile long startTime; - volatile long endTime; - volatile Object dequeuedObject; - - static final String ITEM_1 = new String(); - static final String ITEM_2 = new String(); - - public SynchronizedQueueTests(String name) { - super(name); - } - - @Override - Queue buildQueue() { - return new SynchronizedQueue(); - } - - @Override - public void testClone() { - // synchronized queue is not cloneable - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.sq = new SynchronizedQueue(); - this.timeoutOccurred = false; - this.startTime = 0; - this.endTime = 0; - this.dequeuedObject = null; - } - - /** - * test first with an unsynchronized queue, - * then with a synchronized queue - */ - public void testConcurrentAccess() throws Exception { - this.verifyConcurrentAccess(new SlowSimpleQueue(), "first"); - this.verifyConcurrentAccess(new SlowSynchronizedQueue(), "second"); - } - - private void verifyConcurrentAccess(SlowQueue slowQueue, String expected) throws Exception { - slowQueue.enqueue("first"); - slowQueue.enqueue("second"); - - Thread thread = this.buildThread(this.buildRunnable(slowQueue)); - thread.start(); - Thread.sleep(TWO_TICKS); - - assertEquals(expected, slowQueue.dequeue()); - thread.join(); - assertTrue(slowQueue.isEmpty()); - } - - private Runnable buildRunnable(final SlowQueue slowQueue) { - return new Runnable() { - public void run() { - slowQueue.slowDequeue(); - } - }; - } - - - private interface SlowQueue extends Queue { - Object slowDequeue(); - } - - private class SlowSimpleQueue extends SimpleQueue implements SlowQueue { - SlowSimpleQueue() { - super(); - } - public Object slowDequeue() { - try { - Thread.sleep(5 * TICK); - } catch (InterruptedException ex) { - throw new RuntimeException(ex); - } - return this.dequeue(); - } - - } - - private class SlowSynchronizedQueue extends SynchronizedQueue implements SlowQueue { - SlowSynchronizedQueue() { - super(); - } - public synchronized Object slowDequeue() { - try { - Thread.sleep(5 * TICK); - } catch (InterruptedException ex) { - throw new RuntimeException(ex); - } - return this.dequeue(); - } - - } - - - // ********** waits ********** - - public void testWaitToDequeue() throws Exception { - this.verifyWaitToDequeue(0); - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and an item should have been dequeued by t2... - assertSame(ITEM_1, this.dequeuedObject); - // ...and the queue should be empty - assertTrue(this.sq.isEmpty()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() > TICK); - } - - public void testWaitToDequeueTimeout() throws Exception { - this.verifyWaitToDequeue(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the queue was never dequeued... - assertNull(this.dequeuedObject); - // ...and it still holds the item - assertSame(ITEM_1, this.sq.peek()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() < THREE_TICKS); - } - - private void verifyWaitToDequeue(long timeout) throws Exception { - Runnable r1 = this.buildRunnable(this.buildEnqueueCommand(), this.sq, TWO_TICKS); - Runnable r2 = this.buildRunnable(this.buildWaitToDequeueCommand(timeout), this.sq, 0); - Thread t1 = this.buildThread(r1); - Thread t2 = this.buildThread(r2); - t1.start(); - t2.start(); - t1.join(); - t2.join(); - } - - public void testWaitToEnqueue() throws Exception { - this.verifyWaitToEnqueue(0); - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and the queue gets dequeued by t1... - assertSame(ITEM_1, this.dequeuedObject); - // ...and an item is enqueued on to the queue by t2 - assertFalse(this.sq.isEmpty()); - assertSame(ITEM_2, this.sq.peek()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() > TICK); - } - - public void testWaitToEnqueueTimeout() throws Exception { - this.verifyWaitToEnqueue(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the queue is eventually dequeued by t1... - assertSame(ITEM_1, this.dequeuedObject); - // ...but nothing is enqueued on to the queue by t2 - assertTrue(this.sq.isEmpty()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() < THREE_TICKS); - } - - private void verifyWaitToEnqueue(long timeout) throws Exception { - this.sq.enqueue(ITEM_1); - Runnable r1 = this.buildRunnable(this.buildDequeueCommand(), this.sq, TWO_TICKS); - Runnable r2 = this.buildRunnable(this.buildWaitToEnqueueCommand(timeout), this.sq, 0); - Thread t1 = this.buildThread(r1); - Thread t2 = this.buildThread(r2); - t1.start(); - t2.start(); - t1.join(); - t2.join(); - } - - private Command buildEnqueueCommand() { - return new Command() { - public void execute(SynchronizedQueue synchronizedQueue) { - synchronizedQueue.enqueue(ITEM_1); - } - }; - } - - private Command buildWaitToDequeueCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedQueue synchronizedQueue) throws InterruptedException { - SynchronizedQueueTests.this.startTime = System.currentTimeMillis(); - try { - SynchronizedQueueTests.this.dequeuedObject = synchronizedQueue.waitToDequeue(timeout); - } catch (NoSuchElementException ex) { - SynchronizedQueueTests.this.timeoutOccurred = true; - } - SynchronizedQueueTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Command buildDequeueCommand() { - return new Command() { - public void execute(SynchronizedQueue synchronizedQueue) { - SynchronizedQueueTests.this.dequeuedObject = synchronizedQueue.dequeue(); - } - }; - } - - private Command buildWaitToEnqueueCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedQueue synchronizedQueue) throws InterruptedException { - SynchronizedQueueTests.this.startTime = System.currentTimeMillis(); - SynchronizedQueueTests.this.timeoutOccurred = ! synchronizedQueue.waitToEnqueue(ITEM_2, timeout); - SynchronizedQueueTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Runnable buildRunnable(final Command command, final SynchronizedQueue synchronizedQueue, final long sleep) { - return new TestRunnable() { - @Override - protected void run_() throws Throwable { - if (sleep != 0) { - Thread.sleep(sleep); - } - command.execute(synchronizedQueue); - } - }; - } - - long calculateElapsedTime() { - return this.endTime - this.startTime; - } - - - // ********** Command interface ********** - - private interface Command { - void execute(SynchronizedQueue synchronizedQueue) throws InterruptedException; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedStackTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedStackTests.java deleted file mode 100644 index 16cb62f345..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SynchronizedStackTests.java +++ /dev/null @@ -1,257 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.util.EmptyStackException; -import org.eclipse.jpt.common.utility.internal.SimpleStack; -import org.eclipse.jpt.common.utility.internal.Stack; -import org.eclipse.jpt.common.utility.internal.SynchronizedStack; - -@SuppressWarnings("nls") -public class SynchronizedStackTests - extends SimpleStackTests -{ - private volatile SynchronizedStack ss; - volatile boolean timeoutOccurred; - volatile long startTime; - volatile long endTime; - volatile Object poppedObject; - - static final String ITEM_1 = new String(); - static final String ITEM_2 = new String(); - - public SynchronizedStackTests(String name) { - super(name); - } - - @Override - Stack buildStack() { - return new SynchronizedStack(); - } - - @Override - public void testClone() { - // synchronized stack is not cloneable - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.ss = new SynchronizedStack(); - this.timeoutOccurred = false; - this.startTime = 0; - this.endTime = 0; - this.poppedObject = null; - } - - /** - * test first with an unsynchronized stack, - * then with a synchronized stack - */ - public void testConcurrentAccess() throws Exception { - this.verifyConcurrentAccess(new SlowSimpleStack(), "second"); - this.verifyConcurrentAccess(new SlowSynchronizedStack(), "first"); - } - - private void verifyConcurrentAccess(SlowStack slowStack, String expected) throws Exception { - slowStack.push("first"); - slowStack.push("second"); - - Thread thread = this.buildThread(this.buildRunnable(slowStack)); - thread.start(); - Thread.sleep(TWO_TICKS); - - assertEquals(expected, slowStack.pop()); - thread.join(); - assertTrue(slowStack.isEmpty()); - } - - private Runnable buildRunnable(final SlowStack slowStack) { - return new Runnable() { - public void run() { - slowStack.slowPop(); - } - }; - } - - - private interface SlowStack extends Stack { - Object slowPop(); - } - - private class SlowSimpleStack extends SimpleStack implements SlowStack { - SlowSimpleStack() { - super(); - } - public Object slowPop() { - try { - Thread.sleep(5 * TICK); - } catch (InterruptedException ex) { - throw new RuntimeException(ex); - } - return this.pop(); - } - - } - - private class SlowSynchronizedStack extends SynchronizedStack implements SlowStack { - SlowSynchronizedStack() { - super(); - } - public synchronized Object slowPop() { - try { - Thread.sleep(5 * TICK); - } catch (InterruptedException ex) { - throw new RuntimeException(ex); - } - return this.pop(); - } - - } - - - // ********** waits ********** - - public void testWaitToPop() throws Exception { - this.verifyWaitToPop(0); - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and an item should have been popped by t2... - assertSame(ITEM_1, this.poppedObject); - // ...and the stack should be empty - assertTrue(this.ss.isEmpty()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() > TICK); - } - - public void testWaitToPopTimeout() throws Exception { - this.verifyWaitToPop(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the stack was never popped... - assertNull(this.poppedObject); - // ...and it still holds the item - assertSame(ITEM_1, this.ss.peek()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() < THREE_TICKS); - } - - private void verifyWaitToPop(long timeout) throws Exception { - Runnable r1 = this.buildRunnable(this.buildPushCommand(), this.ss, TWO_TICKS); - Runnable r2 = this.buildRunnable(this.buildWaitToPopCommand(timeout), this.ss, 0); - Thread t1 = this.buildThread(r1); - Thread t2 = this.buildThread(r2); - t1.start(); - t2.start(); - t1.join(); - t2.join(); - } - - public void testWaitToPush() throws Exception { - this.verifyWaitToPush(0); - // no timeout occurs... - assertFalse(this.timeoutOccurred); - // ...and the stack gets popped by t1... - assertSame(ITEM_1, this.poppedObject); - // ...and an item is pushed on to the stack by t2 - assertFalse(this.ss.isEmpty()); - assertSame(ITEM_2, this.ss.peek()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() > TICK); - } - - public void testWaitToPushTimeout() throws Exception { - this.verifyWaitToPush(TICK); - // timeout occurs... - assertTrue(this.timeoutOccurred); - // ...and the stack is eventually popped by t1... - assertSame(ITEM_1, this.poppedObject); - // ...but nothing is pushed on to the stack by t2 - assertTrue(this.ss.isEmpty()); - // make a reasonable guess about how long t2 took - assertTrue(this.calculateElapsedTime() < THREE_TICKS); - } - - private void verifyWaitToPush(long timeout) throws Exception { - this.ss.push(ITEM_1); - Runnable r1 = this.buildRunnable(this.buildPopCommand(), this.ss, TWO_TICKS); - Runnable r2 = this.buildRunnable(this.buildWaitToPushCommand(timeout), this.ss, 0); - Thread t1 = this.buildThread(r1); - Thread t2 = this.buildThread(r2); - t1.start(); - t2.start(); - t1.join(); - t2.join(); - } - - private Command buildPushCommand() { - return new Command() { - public void execute(SynchronizedStack synchronizedStack) { - synchronizedStack.push(ITEM_1); - } - }; - } - - private Command buildWaitToPopCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedStack synchronizedStack) throws InterruptedException { - SynchronizedStackTests.this.startTime = System.currentTimeMillis(); - try { - SynchronizedStackTests.this.poppedObject = synchronizedStack.waitToPop(timeout); - } catch (EmptyStackException ex) { - SynchronizedStackTests.this.timeoutOccurred = true; - } - SynchronizedStackTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Command buildPopCommand() { - return new Command() { - public void execute(SynchronizedStack synchronizedStack) { - SynchronizedStackTests.this.poppedObject = synchronizedStack.pop(); - } - }; - } - - private Command buildWaitToPushCommand(final long timeout) { - return new Command() { - public void execute(SynchronizedStack synchronizedStack) throws InterruptedException { - SynchronizedStackTests.this.startTime = System.currentTimeMillis(); - SynchronizedStackTests.this.timeoutOccurred = ! synchronizedStack.waitToPush(ITEM_2, timeout); - SynchronizedStackTests.this.endTime = System.currentTimeMillis(); - } - }; - } - - private Runnable buildRunnable(final Command command, final SynchronizedStack synchronizedStack, final long sleep) { - return new TestRunnable() { - @Override - protected void run_() throws Throwable { - if (sleep != 0) { - Thread.sleep(sleep); - } - command.execute(synchronizedStack); - } - }; - } - - long calculateElapsedTime() { - return this.endTime - this.startTime; - } - - - // ********** Command interface ********** - - private interface Command { - void execute(SynchronizedStack synchronizedStack) throws InterruptedException; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java deleted file mode 100644 index f66f31c21f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java +++ /dev/null @@ -1,184 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.OutputStream; -import java.io.PrintStream; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.SortedSet; -import java.util.TreeSet; - -import junit.framework.TestCase; -import junit.framework.TestFailure; -import junit.framework.TestResult; - -/** - * various tools that can be used by test cases - */ -public final class TestTools { - - /** - * Convenience method that handles {@link InterruptedException}. - */ - public static void sleep(long millis) { - try { - Thread.sleep(millis); - } catch (InterruptedException ex) { - throw new RuntimeException(ex); - } - } - - /** - * test an object's implementation of Serializable by serializing the - * specified object to a byte array; then de-serializing the byte array and - * returning the resultant object - */ - public static T serialize(T o) throws IOException, ClassNotFoundException { - ByteArrayOutputStream baOutStream = new ByteArrayOutputStream(2000); - ObjectOutputStream outStream = new ObjectOutputStream(baOutStream); - outStream.writeObject(o); - outStream.close(); - - ByteArrayInputStream baInStream = new ByteArrayInputStream(baOutStream.toByteArray()); - ObjectInputStream inStream = new ObjectInputStream(baInStream); - T o2 = readObject(inStream); - inStream.close(); - - return o2; - } - - @SuppressWarnings("unchecked") - private static T readObject(ObjectInput objectInput) throws IOException, ClassNotFoundException { - return (T) objectInput.readObject(); - } - - /** - * redirect std out and std err to the specified stream - */ - public static void redirectSystemStreamsTo(OutputStream outputStream) { - redirectSystemStreamsTo(new PrintStream(outputStream)); - } - - /** - * redirect std out and std err to the specified stream - */ - public static void redirectSystemStreamsTo(PrintStream printStream) { - System.setOut(printStream); - System.setErr(printStream); - } - - /** - * Sort and print out all the current Java System properties on the - * console. - */ - public static void printSystemProperties() { - synchronized (System.out) { - printSystemPropertiesOn(System.out); - } - } - - /** - * Sort and print out all the current Java System properties on the - * specified print stream. - */ - public static void printSystemPropertiesOn(PrintStream stream) { - SortedSet sortedKeys = new TreeSet(String.CASE_INSENSITIVE_ORDER); - for (Object key : System.getProperties().keySet()) { - sortedKeys.add((String) key); - } - for (String key : sortedKeys) { - stream.print(key); - stream.print(" => "); //$NON-NLS-1$ - stream.print(System.getProperty(key)); - stream.println(); - } - } - - /** - * execute the specified test and return a text output of its results - */ - public static String execute(TestCase testCase) { - long start = System.currentTimeMillis(); - TestResult result = testCase.run(); - long end = System.currentTimeMillis(); - - StringWriter stringWriter = new StringWriter(); - PrintWriter writer = new PrintWriter(stringWriter); - writer.print(testCase.getName()); - writer.print(": "); //$NON-NLS-1$ - if (result.wasSuccessful()) { - writer.println("OK"); //$NON-NLS-1$ - } else { - TestFailure failure = null; - if (result.failures().hasMoreElements()) { - failure = result.failures().nextElement(); - } else { - failure = result.errors().nextElement(); - } - failure.thrownException().printStackTrace(writer); - } - writer.print("elapsed time: "); //$NON-NLS-1$ - long elapsed = end - start; - writer.print(elapsed / 1000L); - writer.println(" sec."); //$NON-NLS-1$ - return stringWriter.toString(); - } - - /** - * Clear out all the instance variable of the specified test case, allowing - * the various test fixtures to be garbage-collected. Typically this is - * called in the #tearDown() method. - */ - public static void clear(TestCase testCase) throws IllegalAccessException { - for (Class clazz = testCase.getClass(); clazz != TestCase_class; clazz = clazz.getSuperclass()) { - for (Field field : clazz.getDeclaredFields()) { - // leave primitives alone - they don't get garbage-collected, and we can't set them to null... - if (field.getType().isPrimitive()) { - continue; - } - // leave static fields alone (?) - if (Modifier.isStatic(field.getModifiers())) { - continue; - } - field.setAccessible(true); - field.set(testCase, null); - } - } - } - - private static final Class TestCase_class = TestCase.class; - - /** - * Workaround for a JUnit bug: JUnit does not configure the testing Thread - * with a context class loader. This should probably happen in - * TestRunner.doRunTest(Test), just before starting the thread. - */ - public static void setUpJUnitThreadContextClassLoader() { - Thread.currentThread().setContextClassLoader(TestTools.class.getClassLoader()); - } - - /** - * suppressed constructor - */ - private TestTools() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ToolsTests.java deleted file mode 100644 index bf7fcba128..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ToolsTests.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import org.eclipse.jpt.common.utility.internal.Tools; - -import junit.framework.TestCase; - -@SuppressWarnings("nls") -public class ToolsTests extends TestCase { - - public ToolsTests(String name) { - super(name); - } - - public void testValuesAreEqual1() { - assertTrue(Tools.valuesAreEqual(null, null)); - } - - public void testValuesAreEqual2() { - assertFalse(Tools.valuesAreEqual(null, "foo")); - } - - public void testValuesAreEqual3() { - assertFalse(Tools.valuesAreEqual("foo", null)); - } - - public void testValuesAreEqual4() { - assertTrue(Tools.valuesAreEqual("foo", "foo")); - } - - public void testValuesAreEqual5() { - assertFalse(Tools.valuesAreEqual("foo", "bar")); - } - - public void testValuesAreDifferent1() { - assertFalse(Tools.valuesAreDifferent(null, null)); - } - - public void testValuesAreDifferent2() { - assertTrue(Tools.valuesAreDifferent(null, "foo")); - } - - public void testValuesAreDifferent3() { - assertTrue(Tools.valuesAreDifferent("foo", null)); - } - - public void testValuesAreDifferent4() { - assertFalse(Tools.valuesAreDifferent("foo", "foo")); - } - - public void testValuesAreDifferent5() { - assertTrue(Tools.valuesAreDifferent("foo", "bar")); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/XMLStringEncoderTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/XMLStringEncoderTests.java deleted file mode 100644 index 461313cb72..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/XMLStringEncoderTests.java +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.FileTools; -import org.eclipse.jpt.common.utility.internal.XMLStringEncoder; - -@SuppressWarnings("nls") -public class XMLStringEncoderTests extends TestCase { - - public XMLStringEncoderTests(String name) { - super(name); - } - - public void testEncodeNoCharacterSequences() { - XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS); - - String s = "foo"; - assertEquals(s, encoder.encode(s)); - - s = "123foo123"; - assertEquals(s, encoder.encode(s)); - } - - public void testEncodeCharacterSequences() { - XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS); - - String s = "?foo?"; - String expected = "?foo?"; - assertEquals(expected, encoder.encode(s)); - - s = "?foo&123"; - expected = "?foo&123"; - assertEquals(expected, encoder.encode(s)); - } - - public void testDenormalizeValidFileName() { - XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS); - - String s = "foo"; - assertEquals(s, encoder.decode(s)); - - s = "123foo123"; - assertEquals(s, encoder.decode(s)); - } - - public void testDenormalizeInvalidFileName() { - XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS); - - String s = "?foo?"; - String expected = "?foo?"; - assertEquals(expected, encoder.decode(s)); - - s = "?foo&123"; - expected = "?foo&123"; - assertEquals(expected, encoder.decode(s)); - } - - public void testRoundTripNoCharacterSequences() { - this.verifyRoundTrip("foo"); - this.verifyRoundTrip("123foo456"); - } - - public void testRoundTripCharacterSequences() { - this.verifyRoundTrip("?foo?"); - this.verifyRoundTrip("?foo&123&&&&&&>>>>"); - } - - private void verifyRoundTrip(String s) { - XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS); - String actual = encoder.encode(s); - assertEquals(s, encoder.decode(actual)); - } - - public void testInvalidCharacterSequence1() { - this.verifyIllegalStateException("foo&"); - } - - public void testInvalidCharacterSequence2() { - this.verifyIllegalStateException("foo&#"); - } - - public void testInvalidCharacterSequence3() { - this.verifyIllegalStateException("foo&#x"); - } - - public void testInvalidCharacterSequence4() { - this.verifyIllegalStateException("foo"); - } - - public void testInvalidCharacterSequence5() { - this.verifyIllegalStateException("foo&#x;"); - } - - public void testInvalidCharacterSequence6() { - this.verifyIllegalStateException("foo&A"); - } - - public void testInvalidCharacterSequence7() { - this.verifyIllegalStateException("foo&#A"); - } - - private void verifyIllegalStateException(String s) { - XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS); - boolean exCaught = false; - try { - s = encoder.decode(s); - fail(s); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testInvalidCharacterSequence8() { - String s = "foo&#xZZZZ;"; - XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS); - boolean exCaught = false; - try { - s = encoder.decode(s); - fail(s); - } catch (NumberFormatException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/EmptyEnumerationTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/EmptyEnumerationTests.java deleted file mode 100644 index 1efc9c81bb..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/EmptyEnumerationTests.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.enumerations; - -import java.util.Enumeration; -import java.util.NoSuchElementException; -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.enumerations.EmptyEnumeration; - -@SuppressWarnings("nls") -public class EmptyEnumerationTests extends TestCase { - - public EmptyEnumerationTests(String name) { - super(name); - } - - public void testHasMoreElements() { - int i = 0; - for (Enumeration stream = EmptyEnumeration.instance(); stream.hasMoreElements();) { - stream.nextElement(); - i++; - } - assertEquals(0, i); - } - - public void testNextElement() { - for (Enumeration stream = EmptyEnumeration.instance(); stream.hasMoreElements();) { - fail("bogus element: " + stream.nextElement()); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Enumeration stream = EmptyEnumeration.instance(); - Object element = null; - while (stream.hasMoreElements()) { - element = stream.nextElement(); - } - try { - element = stream.nextElement(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + element, exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/IteratorEnumerationTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/IteratorEnumerationTests.java deleted file mode 100644 index cd6cbaa8af..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/IteratorEnumerationTests.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.enumerations; - -import java.util.Enumeration; -import java.util.Iterator; -import java.util.NoSuchElementException; -import java.util.Vector; -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.enumerations.IteratorEnumeration; - -@SuppressWarnings("nls") -public class IteratorEnumerationTests extends TestCase { - - public IteratorEnumerationTests(String name) { - super(name); - } - - public void testHasMoreElements() { - int i = 0; - for (Enumeration stream = this.buildEnumeration(); stream.hasMoreElements();) { - stream.nextElement(); - i++; - } - assertEquals(this.buildVector().size(), i); - } - - public void testHasMoreElementsUpcast() { - int i = 0; - for (Enumeration stream = this.buildEnumerationUpcast(); stream.hasMoreElements();) { - stream.nextElement(); - i++; - } - assertEquals(this.buildVector().size(), i); - } - - public void testNextElement() { - Iterator iterator = this.buildIterator(); - for (Enumeration stream = this.buildEnumeration(); stream.hasMoreElements();) { - assertEquals("bogus element", iterator.next(), stream.nextElement()); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Enumeration stream = this.buildEnumeration(); - String string = null; - while (stream.hasMoreElements()) { - string = stream.nextElement(); - } - try { - string = stream.nextElement(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - private Enumeration buildEnumeration() { - return this.buildEnumeration(this.buildIterator()); - } - - private Enumeration buildEnumerationUpcast() { - return this.buildEnumerationUpcast(this.buildIterator()); - } - - private Enumeration buildEnumeration(Iterator iterator) { - return new IteratorEnumeration(iterator); - } - - private Enumeration buildEnumerationUpcast(Iterator iterator) { - return new IteratorEnumeration(iterator); - } - - private Iterator buildIterator() { - return this.buildVector().iterator(); - } - - private Vector buildVector() { - Vector v = new Vector(); - v.addElement("one"); - v.addElement("two"); - v.addElement("three"); - v.addElement("four"); - v.addElement("five"); - v.addElement("six"); - v.addElement("seven"); - v.addElement("eight"); - return v; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/JptUtilityEnumerationsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/JptUtilityEnumerationsTests.java deleted file mode 100644 index d5dfb0f0a8..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/enumerations/JptUtilityEnumerationsTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.enumerations; - -import junit.framework.Test; -import junit.framework.TestSuite; - -/** - * decentralize test creation code - */ -public class JptUtilityEnumerationsTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityEnumerationsTests.class.getPackage().getName()); - - suite.addTestSuite(EmptyEnumerationTests.class); - suite.addTestSuite(IteratorEnumerationTests.class); - - return suite; - } - - private JptUtilityEnumerationsTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ArrayIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ArrayIterableTests.java deleted file mode 100644 index 0c6e2da5a2..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ArrayIterableTests.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; - -@SuppressWarnings("nls") -public class ArrayIterableTests extends TestCase { - - public ArrayIterableTests(String name) { - super(name); - } - - public void testIterator() { - int i = 1; - for (String string : this.buildIterable()) { - assertEquals(i++, Integer.parseInt(string)); - } - } - - public void testSubIterator() { - int i = 3; - for (String string : this.buildIterable(2)) { - assertEquals(i++, Integer.parseInt(string)); - } - } - - public void testIllegalArgumentException() { - this.triggerIllegalArgumentException(-1, 1); - this.triggerIllegalArgumentException(8, 1); - this.triggerIllegalArgumentException(0, -1); - this.triggerIllegalArgumentException(0, 9); - } - - private void triggerIllegalArgumentException(int start, int length) { - boolean exCaught = false; - try { - Iterable iterable = this.buildIterable(start, length); - fail("bogus iterable: " + iterable); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - private Iterable buildIterable() { - return this.buildIterable(0); - } - - private Iterable buildIterable(int start) { - return this.buildIterable(this.buildArray(), start); - } - - private Iterable buildIterable(String[] array, int start) { - return new ArrayIterable(array, start); - } - - private Iterable buildIterable(int start, int length) { - return this.buildIterable(this.buildArray(), start, length); - } - - private Iterable buildIterable(String[] array, int start, int length) { - return new ArrayIterable(array, start, length); - } - - private String[] buildArray() { - return new String[] { "1", "2", "3", "4", "5", "6", "7", "8" }; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ArrayListIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ArrayListIterableTests.java deleted file mode 100644 index f7cd40fcb8..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ArrayListIterableTests.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ListIterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; - -@SuppressWarnings("nls") -public class ArrayListIterableTests extends TestCase { - - public ArrayListIterableTests(String name) { - super(name); - } - - public void testIterator() { - int i = 1; - ListIterable iterable = this.buildIterable(); - for (String string : iterable) { - assertEquals(i++, Integer.parseInt(string)); - } - ListIterator stream = iterable.iterator(); - while (stream.hasNext()) { - stream.next(); - } - while (stream.hasPrevious()) { - assertEquals(--i, Integer.parseInt(stream.previous())); - } - } - - public void testSubIterator() { - int i = 3; - for (String string : this.buildIterable(2)) { - assertEquals(i++, Integer.parseInt(string)); - } - } - - public void testIllegalArgumentException() { - this.triggerIllegalArgumentException(-1, 1); - this.triggerIllegalArgumentException(8, 1); - this.triggerIllegalArgumentException(0, -1); - this.triggerIllegalArgumentException(0, 9); - } - - private void triggerIllegalArgumentException(int start, int length) { - boolean exCaught = false; - try { - Iterable iterable = this.buildIterable(start, length); - fail("bogus iterable: " + iterable); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - private ListIterable buildIterable() { - return this.buildIterable(0); - } - - private ListIterable buildIterable(int start) { - return this.buildIterable(this.buildArray(), start); - } - - private ListIterable buildIterable(String[] array, int start) { - return (start == 0) ? - new ArrayListIterable(array) : - new ArrayListIterable(array, start); - } - - private ListIterable buildIterable(int start, int length) { - return this.buildIterable(this.buildArray(), start, length); - } - - private ListIterable buildIterable(String[] array, int start, int length) { - return new ArrayListIterable(array, start, length); - } - - private String[] buildArray() { - return new String[] { "1", "2", "3", "4", "5", "6", "7", "8" }; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ChainIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ChainIterableTests.java deleted file mode 100644 index ae8423bfd5..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ChainIterableTests.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.AbstractCollection; -import java.util.AbstractList; -import java.util.Iterator; -import java.util.Vector; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.ChainIterable; -import org.eclipse.jpt.common.utility.internal.iterators.ChainIterator; - -@SuppressWarnings("nls") -public class ChainIterableTests extends TestCase { - private final static Class[] VECTOR_HIERARCHY = { Vector.class, AbstractList.class, AbstractCollection.class, Object.class }; - - public ChainIterableTests(String name) { - super(name); - } - - - public void testNextLink() { - int i = 0; - for (Class clazz : this.buildIterable()) { - assertEquals(VECTOR_HIERARCHY[i++], clazz); - } - } - - public void testLinker() { - int i = 0; - for (Class clazz : new ChainIterable>(Vector.class, this.buildLinker())) { - assertEquals(VECTOR_HIERARCHY[i++], clazz); - } - } - - public void testException() { - Iterable> iterable = new ChainIterable>(Vector.class); - Iterator> iterator = iterable.iterator(); - boolean exCaught = false; - try { - Class clazz = iterator.next(); - fail("bogus class: " + clazz); - } catch (RuntimeException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testToString() { - assertNotNull(this.buildIterable().toString()); - } - - private Iterable> buildIterable() { - return this.buildChainIterable(Vector.class); - } - - private Iterable> buildChainIterable(Class startLink) { - // chain up the class's hierarchy - return new ChainIterable>(startLink) { - @Override - protected Class nextLink(Class currentLink) { - return currentLink.getSuperclass(); - } - }; - } - - private ChainIterator.Linker> buildLinker() { - return new ChainIterator.Linker>() { - public Class nextLink(Class currentLink) { - return currentLink.getSuperclass(); - } - }; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CloneIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CloneIterableTests.java deleted file mode 100644 index 03292ec25d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CloneIterableTests.java +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; - -@SuppressWarnings("nls") -public abstract class CloneIterableTests extends TestCase { - Iterable iterable; - - public CloneIterableTests(String name) { - super(name); - } - - public void testIterator() { - List c = new ArrayList(); - c.add("0"); - c.add("1"); - c.add("2"); - c.add("3"); - assertEquals(4, c.size()); - this.iterable = this.buildIterable(c); - int i = 0; - for (String s : this.iterable) { - assertEquals(String.valueOf(i++), s); - c.remove("3"); - } - assertEquals(4, i); - assertEquals(3, c.size()); - } - - public void testRemove() { - final List collection = this.buildCollection(); - this.iterable = this.buildRemovingIterable(collection); - - Object removed = "three"; - assertTrue(CollectionTools.contains(this.iterable, removed)); - for (Iterator iterator = this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals(removed)) { - iterator.remove(); - } - } - assertFalse(collection.contains(removed)); - } - - public void testRemover() { - final List collection = this.buildCollection(); - this.iterable = this.buildIterableWithRemover(collection); - - Object removed = "three"; - assertTrue(CollectionTools.contains(this.iterable, removed)); - for (Iterator iterator = this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals(removed)) { - iterator.remove(); - } - } - assertFalse(collection.contains(removed)); - } - - public void testMissingRemover() { - final List collection = this.buildCollection(); - this.iterable = this.buildIterable(collection); - assertNotNull(this.iterable.toString()); - - Object removed = "three"; - assertTrue(CollectionTools.contains(this.iterable, removed)); - boolean exCaught = false; - for (Iterator iterator = this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals(removed)) { - try { - iterator.remove(); - fail(); - } catch (RuntimeException ex) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - public void testToString() { - final List collection = this.buildCollection(); - this.iterable = this.buildIterable(collection); - assertNotNull(iterable.toString()); - } - - abstract Iterable buildIterable(List c); - - abstract Iterable buildRemovingIterable(List c); - - abstract Iterable buildIterableWithRemover(List c); - - CloneIterator.Remover buildRemover(final Collection c) { - return new CloneIterator.Remover() { - public void remove(String current) { - c.remove(current); - } - }; - } - - CloneListIterator.Mutator buildMutator(final List list) { - return new CloneListIterator.Mutator() { - public void add(int index, String string) { - list.add(index, string); - } - public void set(int index, String string) { - list.set(index, string); - } - public void remove(int index) { - list.remove(index); - } - }; - } - - List buildCollection() { - List c = new ArrayList(); - c.add("one"); - c.add("two"); - c.add("three"); - c.add("four"); - c.add("five"); - c.add("six"); - c.add("seven"); - c.add("eight"); - return c; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CompositeIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CompositeIterableTests.java deleted file mode 100644 index bd5516f161..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CompositeIterableTests.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.Collection; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.CompositeIterable; - -@SuppressWarnings("nls") -public class CompositeIterableTests extends TestCase { - - public CompositeIterableTests(String name) { - super(name); - } - - public void testIterator() { - Collection c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - Collection c2 = new ArrayList(); - c2.add("4"); - c2.add("5"); - c2.add("6"); - c2.add("7"); - - @SuppressWarnings("unchecked") - Iterable composite = new CompositeIterable(c1, c2); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testExtraElement1() { - Collection c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - Iterable composite = new CompositeIterable(c1, "4"); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testExtraElement2() { - Collection c1 = new ArrayList(); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - Iterable composite = new CompositeIterable("0", c1); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testCollectionOfIterables() { - Collection c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - Collection c2 = new ArrayList(); - c2.add("4"); - c2.add("5"); - c2.add("6"); - c2.add("7"); - - Collection> collection = new ArrayList>(); - collection.add(c1); - collection.add(c2); - Iterable composite = new CompositeIterable(collection); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testToString() { - Collection c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - Collection c2 = new ArrayList(); - c2.add("4"); - c2.add("5"); - c2.add("6"); - c2.add("7"); - - @SuppressWarnings("unchecked") - Iterable composite = new CompositeIterable(c1, c2); - assertNotNull(composite.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CompositeListIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CompositeListIterableTests.java deleted file mode 100644 index baf06cf3fb..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/CompositeListIterableTests.java +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.CompositeListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListListIterable; - -@SuppressWarnings("nls") -public class CompositeListIterableTests extends TestCase { - - public CompositeListIterableTests(String name) { - super(name); - } - - public void testIterator() { - List c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - List c2 = new ArrayList(); - c2.add("4"); - c2.add("5"); - c2.add("6"); - c2.add("7"); - - @SuppressWarnings("unchecked") - Iterable composite = new CompositeListIterable(c1, c2); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testExtraElement1() { - List c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - Iterable composite = new CompositeListIterable(c1, "4"); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testExtraElement2() { - List c1 = new ArrayList(); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - Iterable composite = new CompositeListIterable("0", c1); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testCollectionOfIterables() { - List c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - List c2 = new ArrayList(); - c2.add("4"); - c2.add("5"); - c2.add("6"); - c2.add("7"); - - List> collection = new ArrayList>(); - collection.add(new ListListIterable(c1)); - collection.add(new ListListIterable(c2)); - Iterable composite = new CompositeListIterable(collection); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testToString() { - List c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - - List c2 = new ArrayList(); - c2.add("4"); - c2.add("5"); - c2.add("6"); - c2.add("7"); - - @SuppressWarnings("unchecked") - Iterable composite = new CompositeListIterable(c1, c2); - assertNotNull(composite.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/EmptyIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/EmptyIterableTests.java deleted file mode 100644 index 1afe2303eb..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/EmptyIterableTests.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class EmptyIterableTests extends TestCase { - - public EmptyIterableTests(String name) { - super(name); - } - - public void testIterator() { - for (String s : EmptyIterable.instance()) { - fail("bogus element: " + s); - } - } - - public void testToString() { - assertNotNull(EmptyIterable.instance().toString()); - } - - public void testSerialization() throws Exception { - Iterable iterable = EmptyIterable.instance(); - assertSame(iterable, TestTools.serialize(iterable)); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/EmptyListIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/EmptyListIterableTests.java deleted file mode 100644 index 761555cbbe..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/EmptyListIterableTests.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.EmptyListIterable; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class EmptyListIterableTests extends TestCase { - - public EmptyListIterableTests(String name) { - super(name); - } - - public void testIterator() { - for (String s : EmptyListIterable.instance()) { - fail("bogus element: " + s); - } - } - - public void testToString() { - assertNotNull(EmptyListIterable.instance().toString()); - } - - public void testSerialization() throws Exception { - Iterable iterable = EmptyListIterable.instance(); - assertSame(iterable, TestTools.serialize(iterable)); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/FilteringIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/FilteringIterableTests.java deleted file mode 100644 index fa1b5613f3..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/FilteringIterableTests.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; - -@SuppressWarnings("nls") -public class FilteringIterableTests extends TestCase { - private static final String PREFIX = "prefix"; - - public FilteringIterableTests(String name) { - super(name); - } - - public void testAccept() { - int i = 0; - for (String s : this.buildIterable()) { - assertTrue(s.contains(PREFIX)); - i++; - } - assertEquals(6, i); - } - - public void testFilter() { - Filter filter = this.buildFilter(); - int i = 0; - for (String s : new FilteringIterable(this.buildNestedIterable(), filter)) { - assertTrue(s.contains(PREFIX)); - i++; - } - assertEquals(6, i); - } - - public void testToString() { - assertNotNull(this.buildIterable().toString()); - } - - public void testMissingFilter() { - boolean exCaught = false; - Iterable iterable = new FilteringIterable(this.buildNestedIterable()); - try { - Iterator iterator = iterable.iterator(); - fail("bogus iterator: " + iterator); - } catch (RuntimeException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - private Iterable buildIterable() { - return this.buildFilteringIterable(this.buildNestedIterable()); - } - - private Iterable buildFilteringIterable(Iterable nestedIterable) { - return new FilteringIterable(nestedIterable) { - @Override - protected boolean accept(String s) { - return s.startsWith(PREFIX); - } - }; - } - - private Filter buildFilter() { - return new Filter() { - public boolean accept(String s) { - return s.startsWith(PREFIX); - } - }; - } - - private Iterable buildNestedIterable() { - Collection c = new ArrayList(); - c.add(PREFIX + "1"); - c.add(PREFIX + "2"); - c.add(PREFIX + "3"); - c.add("4"); - c.add(PREFIX + "5"); - c.add(PREFIX + "6"); - c.add(PREFIX + "7"); - c.add("8"); - return c; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/GraphIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/GraphIterableTests.java deleted file mode 100644 index bb39c41b85..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/GraphIterableTests.java +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.GraphIterable; -import org.eclipse.jpt.common.utility.internal.iterators.GraphIterator; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class GraphIterableTests extends TestCase { - /** this will be populated with all the nodes created for the test */ - Collection nodes = new ArrayList(); - - public GraphIterableTests(String name) { - super(name); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testNeighbors1() { - for (GraphNode gn : this.buildGraphIterable1()) { - assertTrue(this.nodes.contains(gn)); - } - } - - private Iterable buildGraphIterable1() { - return new GraphIterable(this.buildGraphRoot()) { - @Override - public Iterator neighbors(GraphNode next) { - return next.neighbors(); - } - }; - } - - public void testNeighbors2() { - for (GraphNode gn : this.buildGraphIterable2()) { - assertTrue(this.nodes.contains(gn)); - } - } - - private Iterable buildGraphIterable2() { - return new GraphIterable(this.buildGraphRoot(), this.buildMisterRogers()); - } - - public void testNeighbors3() { - for (GraphNode gn : this.buildGraphIterable3()) { - assertTrue(this.nodes.contains(gn)); - } - } - - private Iterable buildGraphIterable3() { - return new GraphIterable(new GraphNode[] { this.buildGraphRoot() }) { - @Override - public Iterator neighbors(GraphNode next) { - return next.neighbors(); - } - }; - } - - public void testNeighbors4() { - for (GraphNode gn : this.buildGraphIterable4()) { - assertTrue(this.nodes.contains(gn)); - } - } - - private Iterable buildGraphIterable4() { - return new GraphIterable(new GraphNode[] { this.buildGraphRoot() }, this.buildMisterRogers()); - } - - public void testToString() { - assertNotNull(this.buildGraphIterable1().toString()); - } - - public void testMissingMisterRogers() { - boolean exCaught = false; - try { - for (GraphNode gn : new GraphIterable(this.buildGraphRoot())) { - assertTrue(this.nodes.contains(gn)); - } - fail(); - } catch (RuntimeException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - private GraphIterator.MisterRogers buildMisterRogers() { - return new GraphIterator.MisterRogers() { - public Iterator neighbors(GraphNode next) { - return next.neighbors(); - } - }; - } - - private GraphNode buildGraphRoot() { - GraphNode ncNode = new GraphNode("North Carolina"); - GraphNode vaNode = new GraphNode("Virginia"); - GraphNode scNode = new GraphNode("South Carolina"); - GraphNode gaNode = new GraphNode("Georgia"); - GraphNode flNode = new GraphNode("Florida"); - GraphNode alNode = new GraphNode("Alabama"); - GraphNode msNode = new GraphNode("Mississippi"); - GraphNode tnNode = new GraphNode("Tennessee"); - - ncNode.setNeighbors(new GraphNode[] { vaNode, scNode, gaNode, tnNode }); - vaNode.setNeighbors(new GraphNode[] { ncNode, tnNode }); - scNode.setNeighbors(new GraphNode[] { ncNode, gaNode }); - gaNode.setNeighbors(new GraphNode[] { ncNode, scNode, flNode, alNode, tnNode }); - flNode.setNeighbors(new GraphNode[] { gaNode }); - alNode.setNeighbors(new GraphNode[] { gaNode, msNode, tnNode }); - msNode.setNeighbors(new GraphNode[] { alNode, tnNode }); - tnNode.setNeighbors(new GraphNode[] { vaNode, ncNode, gaNode, alNode, msNode }); - - return ncNode; - } - - public class GraphNode { - private String name; - - private Collection neighbors = new ArrayList(); - - public GraphNode(String name) { - super(); - GraphIterableTests.this.nodes.add(this); // log node - this.name = name; - } - - public String getName() { - return this.name; - } - - void setNeighbors(GraphNode[] neighbors) { - this.neighbors = CollectionTools.list(neighbors); - } - - public Iterator neighbors() { - return this.neighbors.iterator(); - } - - public int neighborsSize() { - return this.neighbors.size(); - } - - @Override - public String toString() { - return "GraphNode(" + this.name + ")"; - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/JptUtilityIterablesTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/JptUtilityIterablesTests.java deleted file mode 100644 index 6da560d319..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/JptUtilityIterablesTests.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import junit.framework.Test; -import junit.framework.TestSuite; - -/** - * decentralize test creation code - */ -public class JptUtilityIterablesTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityIterablesTests.class.getPackage().getName()); - - suite.addTestSuite(ArrayIterableTests.class); - suite.addTestSuite(ArrayListIterableTests.class); - suite.addTestSuite(ChainIterableTests.class); - suite.addTestSuite(CompositeIterableTests.class); - suite.addTestSuite(CompositeListIterableTests.class); - suite.addTestSuite(EmptyIterableTests.class); - suite.addTestSuite(EmptyListIterableTests.class); - suite.addTestSuite(FilteringIterableTests.class); - suite.addTestSuite(SuperIterableWrapperTests.class); - suite.addTestSuite(GraphIterableTests.class); - suite.addTestSuite(LiveCloneIterableTests.class); - suite.addTestSuite(LiveCloneListIterableTests.class); - suite.addTestSuite(PeekableIterableTests.class); - suite.addTestSuite(QueueIterableTests.class); - suite.addTestSuite(ReadOnlyCompositeListIterableTests.class); - suite.addTestSuite(ReadOnlyIterableTests.class); - suite.addTestSuite(ReadOnlyListIterableTests.class); - suite.addTestSuite(SingleElementIterableTests.class); - suite.addTestSuite(SingleElementListIterableTests.class); - suite.addTestSuite(SnapshotCloneIterableTests.class); - suite.addTestSuite(SnapshotCloneListIterableTests.class); - suite.addTestSuite(StackIterableTests.class); - suite.addTestSuite(TransformationIterableTests.class); - suite.addTestSuite(TransformationListIterableTests.class); - suite.addTestSuite(TreeIterableTests.class); - - return suite; - } - - private JptUtilityIterablesTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/LiveCloneIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/LiveCloneIterableTests.java deleted file mode 100644 index 96fde7ffde..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/LiveCloneIterableTests.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable; - -@SuppressWarnings("nls") -public class LiveCloneIterableTests extends CloneIterableTests { - - public LiveCloneIterableTests(String name) { - super(name); - } - - @Override - public void testIterator() { - super.testIterator(); - // iterable should now return only 3 strings (since it's "live") - int i = 0; - for (String s : this.iterable) { - assertEquals(String.valueOf(i++), s); - } - assertEquals(3, i); - } - - @Override - public void testRemove() { - super.testRemove(); - // "live" clone iterable will no longer contain the element removed from the - // original collection - assertFalse(CollectionTools.contains(this.iterable, "three")); - } - - @Override - public void testRemover() { - super.testRemover(); - // "live" clone iterable will no longer contain the element removed from the - // original collection - assertFalse(CollectionTools.contains(this.iterable, "three")); - } - - @Override - Iterable buildIterable(List c) { - return new LiveCloneIterable(c); - } - - @Override - Iterable buildRemovingIterable(final List c) { - return new LiveCloneIterable(c) { - @Override - protected void remove(String current) { - c.remove(current); - } - }; - } - - @Override - Iterable buildIterableWithRemover(List c) { - return new LiveCloneIterable(c, this.buildRemover(c)); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/LiveCloneListIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/LiveCloneListIterableTests.java deleted file mode 100644 index 0d70c000ea..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/LiveCloneListIterableTests.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneListIterable; - -@SuppressWarnings("nls") -public class LiveCloneListIterableTests extends LiveCloneIterableTests { - - public LiveCloneListIterableTests(String name) { - super(name); - } - - public void testAdd() { - final List collection = this.buildCollection(); - this.iterable = this.buildRemovingIterable(collection); - - String added = "xxxx"; - assertFalse(CollectionTools.contains(this.iterable, added)); - for (ListIterator iterator = (ListIterator) this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals("two")) { - iterator.add(added); - } - } - assertTrue(collection.contains(added)); - // "live" clone iterable will contain the element added to the - // original collection - assertTrue(CollectionTools.contains(this.iterable, added)); - } - - public void testMissingMutatorAdd() { - final List collection = this.buildCollection(); - this.iterable = this.buildIterable(collection); - assertNotNull(this.iterable.toString()); - - String added = "xxxx"; - assertFalse(CollectionTools.contains(this.iterable, added)); - boolean exCaught = false; - for (ListIterator iterator = (ListIterator) this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals("three")) { - try { - iterator.add(added); - fail(); - } catch (RuntimeException ex) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - public void testSet() { - final List collection = this.buildCollection(); - this.iterable = this.buildRemovingIterable(collection); - - String added = "xxxx"; - assertFalse(CollectionTools.contains(this.iterable, added)); - for (ListIterator iterator = (ListIterator) this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals("two")) { - iterator.set(added); - } - } - assertTrue(collection.contains(added)); - assertFalse(collection.contains("two")); - // "live" clone iterable will contain the element added to the - // original collection - assertTrue(CollectionTools.contains(this.iterable, added)); - assertFalse(CollectionTools.contains(this.iterable, "two")); - } - - public void testMissingMutatorSet() { - final List collection = this.buildCollection(); - this.iterable = this.buildIterable(collection); - assertNotNull(this.iterable.toString()); - - String added = "xxxx"; - assertFalse(CollectionTools.contains(this.iterable, added)); - boolean exCaught = false; - for (ListIterator iterator = (ListIterator) this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals("three")) { - try { - iterator.set(added); - fail(); - } catch (RuntimeException ex) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - @Override - Iterable buildIterable(List c) { - return new LiveCloneListIterable(c); - } - - @Override - Iterable buildRemovingIterable(final List c) { - return new LiveCloneListIterable(c) { - @Override - protected void add(int index, String element) { - c.add(index, element); - } - @Override - protected void remove(int index) { - c.remove(index); - } - @Override - protected void set(int index, String element) { - c.set(index, element); - } - }; - } - - @Override - Iterable buildIterableWithRemover(List c) { - return new LiveCloneListIterable(c, this.buildMutator(c)); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/PeekableIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/PeekableIterableTests.java deleted file mode 100644 index 634992e5db..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/PeekableIterableTests.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.internal.iterables.PeekableIterable; -import org.eclipse.jpt.common.utility.internal.iterators.PeekableIterator; - -@SuppressWarnings("nls") -public class PeekableIterableTests extends TestCase { - - public PeekableIterableTests(String name) { - super(name); - } - - public void testIterator() { - PeekableIterable iterable = this.buildIterable(); - PeekableIterator iterator = iterable.iterator(); - assertEquals("one", iterator.peek()); - } - - public void testToString() { - assertNotNull(this.buildIterable().toString()); - } - - private PeekableIterable buildIterable() { - return new PeekableIterable(this.buildNestedIterable()); - } - - private Iterable buildNestedIterable() { - return new ArrayIterable(this.buildArray()); - } - - private String[] buildArray() { - return new String[] {"one", "two", "three"}; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/QueueIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/QueueIterableTests.java deleted file mode 100644 index 649f336336..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/QueueIterableTests.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Queue; -import org.eclipse.jpt.common.utility.internal.SimpleQueue; -import org.eclipse.jpt.common.utility.internal.iterables.QueueIterable; - -@SuppressWarnings("nls") -public class QueueIterableTests extends TestCase { - - public QueueIterableTests(String name) { - super(name); - } - - public void testIterator() { - Iterable iterable = this.buildIterable(); - for (String s : iterable) { - assertNotNull(s); - } - } - - public void testToString() { - assertNotNull(this.buildIterable().toString()); - } - - private Iterable buildIterable() { - return new QueueIterable(this.buildQueue()); - } - - private Queue buildQueue() { - Queue q = new SimpleQueue(); - q.enqueue("foo"); - q.enqueue("bar"); - q.enqueue("baz"); - return q; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyCompositeListIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyCompositeListIterableTests.java deleted file mode 100644 index f217b39b2d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyCompositeListIterableTests.java +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ReadOnlyCompositeListIterable; - -@SuppressWarnings("nls") -public class ReadOnlyCompositeListIterableTests extends TestCase { - - public ReadOnlyCompositeListIterableTests(String name) { - super(name); - } - - public void testIterator() { - List c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - ListIterable li1 = new ListListIterable(c1); - - List c2 = new ArrayList(); - c2.add("4"); - c2.add("5"); - c2.add("6"); - c2.add("7"); - ListIterable li2 = new ListListIterable(c2); - - @SuppressWarnings("unchecked") - Iterable composite = new ReadOnlyCompositeListIterable(li1, li2); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testExtraElement1() { - List c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - ListIterable li1 = new ListListIterable(c1); - - Iterable composite = new ReadOnlyCompositeListIterable(li1, "4"); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testExtraElement2() { - List c1 = new ArrayList(); - c1.add("1"); - c1.add("2"); - c1.add("3"); - ListIterable li1 = new ListListIterable(c1); - - Iterable composite = new ReadOnlyCompositeListIterable("0", li1); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testCollectionOfIterables() { - List c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - ListIterable li1 = new ListListIterable(c1); - - List c2 = new ArrayList(); - c2.add("4"); - c2.add("5"); - c2.add("6"); - c2.add("7"); - ListIterable li2 = new ListListIterable(c2); - - List> collection = new ArrayList>(); - collection.add(li1); - collection.add(li2); - ListIterable> li = new ListListIterable>(collection); - - Iterable composite = new ReadOnlyCompositeListIterable(li); - int i = 0; - for (String s : composite) { - assertEquals(String.valueOf(i++), s); - } - } - - public void testToString() { - List c1 = new ArrayList(); - c1.add("0"); - c1.add("1"); - c1.add("2"); - c1.add("3"); - ListIterable li1 = new ListListIterable(c1); - - List c2 = new ArrayList(); - c2.add("4"); - c2.add("5"); - c2.add("6"); - c2.add("7"); - ListIterable li2 = new ListListIterable(c2); - - @SuppressWarnings("unchecked") - Iterable composite = new ReadOnlyCompositeListIterable(li1, li2); - assertNotNull(composite.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyIterableTests.java deleted file mode 100644 index 4399851f65..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyIterableTests.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.Iterator; -import java.util.Vector; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.ReadOnlyIterable; - -@SuppressWarnings("nls") -public class ReadOnlyIterableTests extends TestCase { - - public ReadOnlyIterableTests(String name) { - super(name); - } - - public void testIterator() { - Iterator nestedIterator = this.buildVector().iterator(); - for (String s : this.buildReadOnlyIterable()) { - assertEquals(nestedIterator.next(), s); - } - } - - public void testRemove() { - boolean exCaught = false; - for (Iterator stream = this.buildReadOnlyIterable().iterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - public void testToString() { - assertNotNull(this.buildReadOnlyIterable().toString()); - } - - private Iterable buildReadOnlyIterable() { - return new ReadOnlyIterable(this.buildVector()); - } - - private Vector buildVector() { - Vector v = new Vector(); - v.addElement("one"); - v.addElement("two"); - v.addElement("three"); - v.addElement("four"); - v.addElement("five"); - v.addElement("six"); - v.addElement("seven"); - v.addElement("eight"); - return v; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyListIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyListIterableTests.java deleted file mode 100644 index 8a923ff3e4..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/ReadOnlyListIterableTests.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.Iterator; -import java.util.Vector; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ReadOnlyListIterable; - -@SuppressWarnings("nls") -public class ReadOnlyListIterableTests extends TestCase { - - public ReadOnlyListIterableTests(String name) { - super(name); - } - - public void testIterator() { - Iterator nestedIterator = this.buildVector().iterator(); - for (String s : this.buildReadOnlyListIterable()) { - assertEquals(nestedIterator.next(), s); - } - } - - public void testRemove() { - boolean exCaught = false; - for (Iterator stream = this.buildReadOnlyListIterable().iterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - public void testToString() { - assertNotNull(this.buildReadOnlyListIterable().toString()); - } - - private Iterable buildReadOnlyListIterable() { - return new ReadOnlyListIterable(this.buildNestedListIterable()); - } - - private ListIterable buildNestedListIterable() { - return new ListListIterable(this.buildVector()); - } - - private Vector buildVector() { - Vector v = new Vector(); - v.addElement("one"); - v.addElement("two"); - v.addElement("three"); - v.addElement("four"); - v.addElement("five"); - v.addElement("six"); - v.addElement("seven"); - v.addElement("eight"); - return v; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SingleElementIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SingleElementIterableTests.java deleted file mode 100644 index 49061d3773..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SingleElementIterableTests.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.Iterator; -import java.util.NoSuchElementException; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.SingleElementIterable; - -@SuppressWarnings("nls") -public class SingleElementIterableTests extends TestCase { - - public SingleElementIterableTests(String name) { - super(name); - } - - public void testIterator() { - for (String s : this.buildSingleElementIterable()) { - assertEquals(this.singleElement(), s); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildSingleElementIterable().iterator(); - String string = stream.next(); - try { - string = stream.next(); - fail("bogus element: " + string); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRemove() { - boolean exCaught = false; - for (Iterator stream = this.buildSingleElementIterable().iterator(); stream.hasNext(); ) { - if (stream.next().equals(this.singleElement())) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - protected Iterable buildSingleElementIterable() { - return new SingleElementIterable(this.singleElement()); - } - - protected String singleElement() { - return "single element"; - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SingleElementListIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SingleElementListIterableTests.java deleted file mode 100644 index d11520f7de..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SingleElementListIterableTests.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.Iterator; -import java.util.NoSuchElementException; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.SingleElementListIterable; - -@SuppressWarnings("nls") -public class SingleElementListIterableTests extends TestCase { - - public SingleElementListIterableTests(String name) { - super(name); - } - - public void testIterator() { - for (String s : this.buildSingleElementListIterable()) { - assertEquals(this.singleElement(), s); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildSingleElementListIterable().iterator(); - String string = stream.next(); - try { - string = stream.next(); - fail("bogus element: " + string); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRemove() { - boolean exCaught = false; - for (Iterator stream = this.buildSingleElementListIterable().iterator(); stream.hasNext(); ) { - if (stream.next().equals(this.singleElement())) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testToString() { - assertNotNull(this.buildSingleElementListIterable().toString()); - } - - protected Iterable buildSingleElementListIterable() { - return new SingleElementListIterable(this.singleElement()); - } - - protected String singleElement() { - return "single element"; - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SnapshotCloneIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SnapshotCloneIterableTests.java deleted file mode 100644 index 384006c45e..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SnapshotCloneIterableTests.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.List; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneIterable; - -@SuppressWarnings("nls") -public class SnapshotCloneIterableTests extends CloneIterableTests { - - public SnapshotCloneIterableTests(String name) { - super(name); - } - - @Override - public void testIterator() { - super.testIterator(); - // "snapshot" iterable should still return 4 strings (since the original collection was cloned) - int i = 0; - for (String s : this.iterable) { - assertEquals(String.valueOf(i++), s); - } - assertEquals(4, i); - } - - @Override - public void testRemove() { - super.testRemove(); - // "snapshot" clone iterable will still contain the element removed from the - // original collection - assertTrue(CollectionTools.contains(this.iterable, "three")); - } - - @Override - public void testRemover() { - super.testRemover(); - // "snapshot" clone iterable will still contain the element removed from the - // original collection - assertTrue(CollectionTools.contains(this.iterable, "three")); - } - - @Override - Iterable buildIterable(List c) { - return new SnapshotCloneIterable(c); - } - - @Override - Iterable buildRemovingIterable(final List c) { - return new SnapshotCloneIterable(c) { - @Override - protected void remove(String current) { - c.remove(current); - } - }; - } - - @Override - Iterable buildIterableWithRemover(List c) { - return new SnapshotCloneIterable(c, this.buildRemover(c)); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SnapshotCloneListIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SnapshotCloneListIterableTests.java deleted file mode 100644 index a6c5c1376b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SnapshotCloneListIterableTests.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneListIterable; - -@SuppressWarnings("nls") -public class SnapshotCloneListIterableTests extends SnapshotCloneIterableTests { - - public SnapshotCloneListIterableTests(String name) { - super(name); - } - - public void testAdd() { - final List collection = this.buildCollection(); - this.iterable = this.buildRemovingIterable(collection); - - String added = "xxxx"; - assertFalse(CollectionTools.contains(this.iterable, added)); - for (ListIterator iterator = (ListIterator) this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals("two")) { - iterator.add(added); - } - } - assertTrue(collection.contains(added)); - // "snapshot" clone iterable not will contain the element added to the - // original collection - assertFalse(CollectionTools.contains(this.iterable, added)); - } - - public void testMissingMutatorAdd() { - final List collection = this.buildCollection(); - this.iterable = this.buildIterable(collection); - assertNotNull(this.iterable.toString()); - - String added = "xxxx"; - assertFalse(CollectionTools.contains(this.iterable, added)); - boolean exCaught = false; - for (ListIterator iterator = (ListIterator) this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals("three")) { - try { - iterator.add(added); - fail(); - } catch (RuntimeException ex) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - public void testSet() { - final List collection = this.buildCollection(); - this.iterable = this.buildRemovingIterable(collection); - - String added = "xxxx"; - assertFalse(CollectionTools.contains(this.iterable, added)); - assertTrue(CollectionTools.contains(this.iterable, "two")); - for (ListIterator iterator = (ListIterator) this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals("two")) { - iterator.set(added); - } - } - assertTrue(collection.contains(added)); - assertFalse(collection.contains("two")); - // "snapshot" clone iterable will not be changed - assertFalse(CollectionTools.contains(this.iterable, added)); - assertTrue(CollectionTools.contains(this.iterable, "two")); - } - - public void testMissingMutatorSet() { - final List collection = this.buildCollection(); - this.iterable = this.buildIterable(collection); - assertNotNull(this.iterable.toString()); - - String added = "xxxx"; - assertFalse(CollectionTools.contains(this.iterable, added)); - boolean exCaught = false; - for (ListIterator iterator = (ListIterator) this.iterable.iterator(); iterator.hasNext(); ) { - if (iterator.next().equals("three")) { - try { - iterator.set(added); - fail(); - } catch (RuntimeException ex) { - exCaught = true; - } - } - } - assertTrue(exCaught); - } - - @Override - Iterable buildIterable(List c) { - return new SnapshotCloneListIterable(c); - } - - @Override - Iterable buildRemovingIterable(final List c) { - return new SnapshotCloneListIterable(c) { - @Override - protected void add(int index, String element) { - c.add(index, element); - } - @Override - protected void remove(int index) { - c.remove(index); - } - @Override - protected void set(int index, String element) { - c.set(index, element); - } - }; - } - - @Override - Iterable buildIterableWithRemover(List c) { - return new SnapshotCloneListIterable(c, this.buildMutator(c)); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/StackIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/StackIterableTests.java deleted file mode 100644 index 70a95bcd8a..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/StackIterableTests.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.SimpleStack; -import org.eclipse.jpt.common.utility.internal.Stack; -import org.eclipse.jpt.common.utility.internal.iterables.StackIterable; - -@SuppressWarnings("nls") -public class StackIterableTests extends TestCase { - - public StackIterableTests(String name) { - super(name); - } - - public void testIterator() { - Iterator iterator = this.buildIterable().iterator(); - assertEquals("three", iterator.next()); - assertEquals("two", iterator.next()); - assertEquals("one", iterator.next()); - } - - public void testToString() { - assertNotNull(this.buildIterable().toString()); - } - - private Iterable buildIterable() { - return new StackIterable(this.buildStack()); - } - - private Stack buildStack() { - Stack stack = new SimpleStack(); - stack.push("one"); - stack.push("two"); - stack.push("three"); - return stack; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SuperIterableWrapperTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SuperIterableWrapperTests.java deleted file mode 100644 index c65608ef5d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/SuperIterableWrapperTests.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.Collections; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.SuperIterableWrapper; - -@SuppressWarnings("nls") -public class SuperIterableWrapperTests extends TestCase { - - public SuperIterableWrapperTests(String name) { - super(name); - } - - public void testIterator() { - ArrayList list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - String concat = ""; - for (String s : list) { - concat += s; - } - assertEquals("foobarbaz", concat); - - Iterable iterable = new SuperIterableWrapper(list); - concat = ""; - for (Object s : iterable) { - concat += s; - } - assertEquals("foobarbaz", concat); - } - - public void testToString() { - Iterable iterable = new SuperIterableWrapper(Collections.emptyList()); - assertNotNull(iterable.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TransformationIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TransformationIterableTests.java deleted file mode 100644 index 5a16de67c8..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TransformationIterableTests.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.Collection; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; - -@SuppressWarnings("nls") -public class TransformationIterableTests extends TestCase { - - public TransformationIterableTests(String name) { - super(name); - } - - public void testTransform1() { - int i = 1; - for (Integer integer : this.buildIterable1()) { - assertEquals(i++, integer.intValue()); - } - } - - private Iterable buildIterable1() { - return this.buildTransformationIterable1(this.buildNestedIterable()); - } - - private Iterable buildTransformationIterable1(Iterable nestedIterable) { - // transform each string into an integer with a value of the string's length - return new TransformationIterable(nestedIterable) { - @Override - protected Integer transform(String next) { - return new Integer(next.length()); - } - }; - } - - public void testTransform2() { - int i = 1; - for (Integer integer : this.buildIterable2()) { - assertEquals(i++, integer.intValue()); - } - } - - private Iterable buildIterable2() { - return this.buildTransformationIterable2(this.buildNestedIterable()); - } - - private Iterable buildTransformationIterable2(Iterable nestedIterable) { - // transform each string into an integer with a value of the string's length - return new TransformationIterable(nestedIterable, this.buildTransformer()); - } - - private Transformer buildTransformer() { - // transform each string into an integer with a value of the string's length - return new Transformer() { - public Integer transform(String next) { - return new Integer(next.length()); - } - }; - } - - private Iterable buildNestedIterable() { - Collection c = new ArrayList(); - c.add("1"); - c.add("22"); - c.add("333"); - c.add("4444"); - c.add("55555"); - c.add("666666"); - c.add("7777777"); - c.add("88888888"); - return c; - } - - public void testToString() { - assertNotNull(this.buildIterable1().toString()); - } - - public void testMissingTransformer() { - Iterable iterable = new TransformationIterable(this.buildNestedIterable()); - boolean exCaught = false; - try { - int i = 1; - for (Integer integer : iterable) { - assertEquals(i++, integer.intValue()); - } - } catch (RuntimeException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TransformationListIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TransformationListIterableTests.java deleted file mode 100644 index 6ac6a16d07..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TransformationListIterableTests.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationListIterable; - -@SuppressWarnings("nls") -public class TransformationListIterableTests extends TestCase { - - public TransformationListIterableTests(String name) { - super(name); - } - - public void testTransform1() { - int i = 1; - for (Integer integer : this.buildIterable1()) { - assertEquals(i++, integer.intValue()); - } - } - - private Iterable buildIterable1() { - return this.buildTransformationListIterable1(this.buildNestedList()); - } - - private Iterable buildTransformationListIterable1(List nestedList) { - // transform each string into an integer with a value of the string's length - return new TransformationListIterable(nestedList) { - @Override - protected Integer transform(String next) { - return new Integer(next.length()); - } - }; - } - - public void testTransform2() { - int i = 1; - for (Integer integer : this.buildIterable2()) { - assertEquals(i++, integer.intValue()); - } - } - - private Iterable buildIterable2() { - return this.buildTransformationListIterable2(this.buildNestedList()); - } - - private Iterable buildTransformationListIterable2(List nestedList) { - // transform each string into an integer with a value of the string's length - return new TransformationListIterable(nestedList, this.buildTransformer()); - } - - private Transformer buildTransformer() { - // transform each string into an integer with a value of the string's length - return new Transformer() { - public Integer transform(String next) { - return new Integer(next.length()); - } - }; - } - - private List buildNestedList() { - List c = new ArrayList(); - c.add("1"); - c.add("22"); - c.add("333"); - c.add("4444"); - c.add("55555"); - c.add("666666"); - c.add("7777777"); - c.add("88888888"); - return c; - } - - public void testToString() { - assertNotNull(this.buildIterable1().toString()); - } - - public void testMissingTransformer() { - Iterable iterable = new TransformationListIterable(this.buildNestedList()); - boolean exCaught = false; - try { - int i = 1; - for (Integer integer : iterable) { - assertEquals(i++, integer.intValue()); - } - } catch (RuntimeException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TreeIterableTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TreeIterableTests.java deleted file mode 100644 index dda3533e2b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterables/TreeIterableTests.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterables; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterables.TreeIterable; -import org.eclipse.jpt.common.utility.internal.iterators.TreeIterator; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class TreeIterableTests extends TestCase { - /** this will be populated with all the nodes created for the test */ - Collection nodes = new ArrayList(); - - public TreeIterableTests(String name) { - super(name); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator1() { - for (TreeNode tn : this.buildTreeIterable1()) { - assertTrue(this.nodes.contains(tn)); - } - } - - public void testIterator2() { - for (TreeNode tn : this.buildTreeIterable2()) { - assertTrue(this.nodes.contains(tn)); - } - } - - public void testMidwife1() { - for (TreeNode tn : new TreeIterable(this.buildTree(), this.buildMidwife())) { - assertTrue(this.nodes.contains(tn)); - } - } - - public void testMidwife2() { - for (TreeNode tn : new TreeIterable(new TreeNode[] { this.buildTree() }, this.buildMidwife())) { - assertTrue(this.nodes.contains(tn)); - } - } - - public void testToString() { - assertNotNull(this.buildTreeIterable1().toString()); - } - - public void testMissingMidwife() { - boolean exCaught = false; - try { - for (TreeNode tn : new TreeIterable(this.buildTree())) { - assertTrue(this.nodes.contains(tn)); - } - } catch (RuntimeException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - private Iterable buildTreeIterable1() { - return new TreeIterable(this.buildTree()) { - @Override - public Iterator children(TreeNode next) { - return next.children(); - } - }; - } - - private Iterable buildTreeIterable2() { - return new TreeIterable(new TreeNode[] { this.buildTree() }) { - @Override - public Iterator children(TreeNode next) { - return next.children(); - } - }; - } - - private TreeIterator.Midwife buildMidwife() { - return new TreeIterator.Midwife() { - public Iterator children(TreeNode next) { - return next.children(); - } - }; - } - - private TreeNode buildTree() { - TreeNode root = new TreeNode("root"); - TreeNode child1 = new TreeNode(root, "child 1"); - new TreeNode(child1, "grandchild 1A"); - TreeNode child2 = new TreeNode(root, "child 2"); - new TreeNode(child2, "grandchild 2A"); - TreeNode grandchild2B = new TreeNode(child2, "grandchild 2B"); - new TreeNode(grandchild2B, "great-grandchild 2B1"); - new TreeNode(grandchild2B, "great-grandchild 2B2"); - TreeNode grandchild2C = new TreeNode(child2, "grandchild 2C"); - new TreeNode(grandchild2C, "great-grandchild 2C1"); - new TreeNode(root, "child 3"); - return root; - } - - public class TreeNode { - private String name; - private Collection children = new ArrayList(); - - public TreeNode(String name) { - super(); - TreeIterableTests.this.nodes.add(this); // log node - this.name = name; - } - - public TreeNode(TreeNode parent, String name) { - this(name); - parent.addChild(this); - } - - public String getName() { - return this.name; - } - - private void addChild(TreeNode child) { - this.children.add(child); - } - - public Iterator children() { - return this.children.iterator(); - } - - public int childrenSize() { - return this.children.size(); - } - - @Override - public String toString() { - return "TreeNode(" + this.name + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ArrayIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ArrayIteratorTests.java deleted file mode 100644 index 8c8cda0ae7..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ArrayIteratorTests.java +++ /dev/null @@ -1,135 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator; - -@SuppressWarnings("nls") -public class ArrayIteratorTests extends TestCase { - - public ArrayIteratorTests(String name) { - super(name); - } - - public void testHasNext() { - int i = 0; - for (Iterator stream = this.buildIterator(); stream.hasNext(); ) { - stream.next(); - i++; - } - assertEquals(this.buildArray().length, i); - } - - public void testNext() { - int i = 1; - for (Iterator stream = this.buildIterator(); stream.hasNext(); ) { - assertEquals("bogus element", i++, Integer.parseInt(stream.next())); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildIterator(); - String string = null; - while (stream.hasNext()) { - string = stream.next(); - } - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testUnsupportedOperationException() { - boolean exCaught = false; - for (Iterator stream = this.buildIterator(); stream.hasNext(); ) { - if (stream.next().equals("3")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testIllegalArgumentException() { - this.triggerIllegalArgumentException(-1, 1); - this.triggerIllegalArgumentException(8, 1); - this.triggerIllegalArgumentException(0, -1); - this.triggerIllegalArgumentException(0, 9); - } - - public void testGenerics() { - Integer[] integers = new Integer[3]; - integers[0] = new Integer(0); - integers[1] = new Integer(1); - integers[2] = new Integer(2); - int i = 0; - for (Iterator stream = this.buildGenericIterator(integers); stream.hasNext();) { - assertEquals(i++, stream.next().intValue()); - } - assertEquals(integers.length, i); - } - - Iterator buildGenericIterator(Integer[] integers) { - return new ArrayIterator(integers); - } - - public void testVarargs() { - int i = 0; - for (Iterator stream = this.buildVarArgIterator(); stream.hasNext();) { - assertEquals(i++, stream.next().intValue()); - } - assertEquals(3, i); - } - - Iterator buildVarArgIterator() { - return new ArrayIterator(new Integer(0), new Integer(1), new Integer(2)); - } - - void triggerIllegalArgumentException(int start, int length) { - boolean exCaught = false; - Iterator stream = null; - try { - stream = this.buildIterator(start, length); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue("IllegalArgumentException not thrown: " + stream, exCaught); - } - - Iterator buildIterator() { - return this.buildIterator(this.buildArray()); - } - - Iterator buildIterator(String[] array) { - return new ArrayIterator(array); - } - - Iterator buildIterator(int start, int length) { - return this.buildIterator(this.buildArray(), start, length); - } - - Iterator buildIterator(String[] array, int start, int length) { - return new ArrayIterator(array, start, length); - } - - String[] buildArray() { - return new String[] { "1", "2", "3", "4", "5", "6", "7", "8" }; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ArrayListIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ArrayListIteratorTests.java deleted file mode 100644 index cae1762c27..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ArrayListIteratorTests.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.Iterator; -import java.util.ListIterator; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.iterators.ArrayListIterator; - -@SuppressWarnings("nls") -public class ArrayListIteratorTests extends ArrayIteratorTests { - - public ArrayListIteratorTests(String name) { - super(name); - } - - public void testHasPrevious() { - ListIterator stream = this.buildListIterator(); - while (stream.hasNext()) { - stream.next(); - } - int i = 0; - while (stream.hasPrevious()) { - stream.previous(); - i++; - } - assertEquals(this.buildArray().length, i); - } - - public void testPrevious() { - ListIterator stream = this.buildListIterator(); - while (stream.hasNext()) { - stream.next(); - } - int i = this.buildArray().length; - while (stream.hasPrevious()) { - assertEquals("bogus element", i--, Integer.parseInt(stream.previous())); - } - } - - public void testNextIndex() { - int i = 0; - ListIterator stream = this.buildListIterator(); - while (stream.hasNext()) { - assertEquals(i, stream.nextIndex()); - stream.next(); - i++; - } - assertEquals(i, stream.nextIndex()); - } - - public void testPreviousIndex() { - int i = 0; - ListIterator stream = this.buildListIterator(); - while (stream.hasNext()) { - assertEquals(i - 1, stream.previousIndex()); - stream.next(); - i++; - } - assertEquals(i - 1, stream.previousIndex()); - } - - @Override - public void testNoSuchElementException() { - boolean exCaught = false; - ListIterator stream = this.buildListIterator(); - String string = null; - try { - string = stream.previous(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testUnsupportedOperationExceptionAdd() { - boolean exCaught = false; - for (ListIterator stream = this.buildListIterator(); stream.hasNext();) { - if (stream.next().equals("3")) { - try { - stream.add("3.5"); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testUnsupportedOperationExceptionSet() { - boolean exCaught = false; - for (ListIterator stream = this.buildListIterator(); stream.hasNext();) { - if (stream.next().equals("3")) { - try { - stream.set("three"); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - @Override - Iterator buildGenericIterator(Integer[] integers) { - return new ArrayListIterator(integers); - } - - @Override - Iterator buildVarArgIterator() { - return new ArrayListIterator(new Integer(0), new Integer(1), new Integer(2)); - } - - private ListIterator buildListIterator() { - return this.buildListIterator(this.buildArray()); - } - - private ListIterator buildListIterator(String[] array) { - return new ArrayListIterator(array); - } - - @Override - Iterator buildIterator(String[] array) { - return new ArrayListIterator(array); - } - - @Override - Iterator buildIterator(String[] array, int start, int length) { - return new ArrayListIterator(array, start, length); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ChainIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ChainIteratorTests.java deleted file mode 100644 index b4cdcf1569..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ChainIteratorTests.java +++ /dev/null @@ -1,133 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.AbstractCollection; -import java.util.AbstractList; -import java.util.Iterator; -import java.util.NoSuchElementException; -import java.util.Vector; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.ChainIterator; - -@SuppressWarnings("nls") -public class ChainIteratorTests extends TestCase { - private final static Class[] VECTOR_HIERARCHY = { Vector.class, AbstractList.class, AbstractCollection.class, Object.class }; - - public ChainIteratorTests(String name) { - super(name); - } - - public void testHasNext() { - int i = 0; - for (Iterator> stream = this.buildIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(VECTOR_HIERARCHY.length, i); - } - - public void testInnerHasNext() { - int i = 0; - for (Iterator> stream = this.buildInnerIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(VECTOR_HIERARCHY.length, i); - } - - public void testNext() { - int i = 0; - for (Iterator> stream = this.buildIterator(); stream.hasNext(); i++) { - assertEquals("bogus link", VECTOR_HIERARCHY[i], stream.next()); - } - } - - public void testInnerNext() { - int i = 0; - for (Iterator> stream = this.buildInnerIterator(); stream.hasNext(); i++) { - assertEquals("bogus link", VECTOR_HIERARCHY[i], stream.next()); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator> stream = this.buildIterator(); - Class javaClass = null; - while (stream.hasNext()) { - javaClass = stream.next(); - } - try { - javaClass = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + javaClass, exCaught); - } - - public void testUnsupportedOperationException() { - boolean exCaught = false; - for (Iterator> stream = this.buildIterator(); stream.hasNext();) { - if (stream.next() == AbstractCollection.class) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - private Iterator> buildIterator() { - return this.buildChainIterator(Vector.class, this.buildLinker()); - } - - private Iterator> buildInnerIterator() { - return this.buildInnerChainIterator(Vector.class); - } - - private Iterator> buildChainIterator(Class startLink, ChainIterator.Linker> linker) { - return new ChainIterator>(startLink, linker); - } - - private ChainIterator.Linker> buildLinker() { - // chain up the class's hierarchy - return new ChainIterator.Linker>() { - public Class nextLink(Class currentLink) { - return currentLink.getSuperclass(); - } - }; - } - - private Iterator> buildInnerChainIterator(Class startLink) { - // chain up the class's hierarchy - return new ChainIterator>(startLink) { - @Override - protected Class nextLink(Class currentLink) { - return currentLink.getSuperclass(); - } - }; - } - - public void testInvalidChainIterator() { - // missing method override - Iterator> iterator = new ChainIterator>(Vector.class); - boolean exCaught = false; - try { - Class c = iterator.next(); - fail("invalid class: " + c.getName()); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown", exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CloneIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CloneIteratorTests.java deleted file mode 100644 index 19c45dfd35..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CloneIteratorTests.java +++ /dev/null @@ -1,237 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.common.utility.tests.internal.MultiThreadedTestCase; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CloneIteratorTests - extends MultiThreadedTestCase -{ - Collection originalCollection; - - private Collection concurrentCollection; - - public CloneIteratorTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.originalCollection = this.buildCollection(); - } - - public void testHasNext() { - int originalSize = this.originalCollection.size(); - int i = 0; - for (Iterator stream = this.buildCloneIterator(); stream.hasNext();) { - stream.next(); - // should allow concurrent modification - this.originalCollection.add("foo"); - i++; - } - assertTrue(originalSize != this.originalCollection.size()); - assertEquals(originalSize, i); - } - - public void testNext() { - Iterator nestedIterator = this.originalCollection.iterator(); - for (Iterator stream = this.buildCloneIterator(); stream.hasNext();) { - assertEquals("bogus element", nestedIterator.next(), stream.next()); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildCloneIterator(); - String string = null; - while (stream.hasNext()) { - string = stream.next(); - } - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testRemoveDefault() { - boolean exCaught = false; - for (Iterator stream = this.buildCloneIterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testRemoveEliminator() { - CloneIterator.Remover eliminator = new CloneIterator.Remover() { - public void remove(String element) { - CloneIteratorTests.this.originalCollection.remove(element); - } - }; - this.verifyRemove(new CloneIterator(this.originalCollection, eliminator)); - } - - public void testRemoveSubclass() { - this.verifyRemove(new CloneIterator(this.originalCollection) { - @Override - protected void remove(String current) { - CloneIteratorTests.this.originalCollection.remove(current); - } - }); - } - - /** - * Test concurrent access: First build a clone iterator in a separate thread - * that hangs momentarily during its construction; then modify the shared - * collection in this thread. This would cause a - * ConcurrentModificationException in the other thread if the clone iterator - * were not synchronized on the original collection. - */ - public void testConcurrentAccess() throws Exception { - SlowCollection slow = new SlowCollection(); - this.populateCollection(slow); - // using the unsynchronized collection will cause the test to fail - // this.originalCollection = slow; - this.originalCollection = Collections.synchronizedCollection(slow); - - this.concurrentCollection = new ArrayList(); - Thread thread = this.buildThread(this.buildRunnable()); - thread.start(); - while ( ! slow.hasStartedClone()) { - // wait for the other thread to start the clone... - Thread.yield(); - } - // ...then sneak in an extra element - this.originalCollection.add("seventeen"); - thread.join(); - Collection expected = new ArrayList(); - this.populateCollection(expected); - assertEquals(expected, this.concurrentCollection); - } - - private Runnable buildRunnable() { - return new TestRunnable() { - @Override - protected void run_() throws Throwable { - CloneIteratorTests.this.loopWithCloneIterator(); - } - }; - } - - /** - * use a clone iterator to loop over the "slow" collection and copy its - * contents to the concurrent collection - */ - void loopWithCloneIterator() { - for (Iterator stream = this.buildCloneIterator(); stream.hasNext();) { - this.concurrentCollection.add(stream.next()); - } - } - - private void verifyRemove(Iterator iterator) { - Object removed = "three"; - assertTrue(this.originalCollection.contains(removed)); - // try to remove before calling #next() - boolean exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue("IllegalStateException not thrown", exCaught); - while (iterator.hasNext()) { - if (iterator.next().equals(removed)) { - iterator.remove(); - // try to remove twice - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue("IllegalStateException not thrown", exCaught); - } - } - assertFalse(this.originalCollection.contains(removed)); - } - - private Iterator buildCloneIterator() { - return this.buildCloneIterator(this.originalCollection); - } - - private Iterator buildCloneIterator(Collection c) { - return new CloneIterator(c); - } - - private Collection buildCollection() { - Collection c = this.buildEmptyCollection(); - this.populateCollection(c); - return c; - } - - protected Collection buildEmptyCollection() { - return new ArrayList(); - } - - private void populateCollection(Collection c) { - c.add("one"); - c.add("two"); - c.add("three"); - c.add("four"); - c.add("five"); - c.add("six"); - c.add("seven"); - c.add("eight"); - } - - // ********** custom collection ********** - static class SlowCollection extends ArrayList { - private static final long serialVersionUID = 1L; - private boolean hasStartedClone = false; - - public SlowCollection() { - super(); - } - - @Override - public Object[] toArray() { - this.setHasStartedClone(true); - // take a little snooze before returning the array - TestTools.sleep(100); - return super.toArray(); - } - - synchronized void setHasStartedClone(boolean hasStartedClone) { - this.hasStartedClone = hasStartedClone; - } - - synchronized boolean hasStartedClone() { - return this.hasStartedClone; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CloneListIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CloneListIteratorTests.java deleted file mode 100644 index 0f3a841306..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CloneListIteratorTests.java +++ /dev/null @@ -1,397 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.ListIterator; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; -import org.eclipse.jpt.common.utility.tests.internal.MultiThreadedTestCase; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CloneListIteratorTests - extends MultiThreadedTestCase -{ - List originalList; - - private List concurrentList; - - public CloneListIteratorTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.originalList = this.buildList(); - } - - public void testHasNext() { - int originalSize = this.originalList.size(); - int i = 0; - for (ListIterator stream = this.buildCloneListIterator(); stream.hasNext();) { - stream.next(); - // should allow concurrent modification - this.originalList.add("foo"); - i++; - } - assertTrue(originalSize != this.originalList.size()); - assertEquals(originalSize, i); - } - - public void testNext() { - ListIterator nestedListIterator = this.buildNestedListIterator(); - for (ListIterator stream = this.buildCloneListIterator(); stream.hasNext();) { - assertEquals("bogus element", nestedListIterator.next(), stream.next()); - } - } - - public void testIndex() { - ListIterator cloneListIterator = this.buildCloneListIterator(); - ListIterator nestedListIterator = this.buildNestedListIterator(); - for (int i = 0; i < 7; i++) { - nestedListIterator.next(); - cloneListIterator.next(); - assertEquals("bogus index", nestedListIterator.nextIndex(), cloneListIterator.nextIndex()); - assertEquals("bogus index", nestedListIterator.previousIndex(), cloneListIterator.previousIndex()); - } - - for (int i = 0; i < 3; i++) { - nestedListIterator.previous(); - cloneListIterator.previous(); - assertEquals("bogus index", nestedListIterator.nextIndex(), cloneListIterator.nextIndex()); - assertEquals("bogus index", nestedListIterator.previousIndex(), cloneListIterator.previousIndex()); - } - - while (nestedListIterator.hasNext()) { - nestedListIterator.next(); - cloneListIterator.next(); - assertEquals("bogus index", nestedListIterator.nextIndex(), cloneListIterator.nextIndex()); - assertEquals("bogus index", nestedListIterator.previousIndex(), cloneListIterator.previousIndex()); - } - } - - public void testHasPrevious() { - int originalSize = this.originalList.size(); - int i = 0; - ListIterator stream = this.buildCloneListIterator(); - while (stream.hasNext()) { - stream.next(); - this.originalList.add("foo"); - i++; - } - assertTrue(originalSize != this.originalList.size()); - originalSize = this.originalList.size(); - while (stream.hasPrevious()) { - stream.previous(); - // should allow concurrent modification - this.originalList.add("bar"); - i--; - } - assertTrue(originalSize != this.originalList.size()); - assertEquals(0, i); - } - - public void testPrevious() { - ListIterator nestedListIterator = this.buildNestedListIterator(); - ListIterator stream = this.buildCloneListIterator(); - while (stream.hasNext()) { - nestedListIterator.next(); - stream.next(); - } - while (stream.hasPrevious()) { - assertEquals("bogus element", nestedListIterator.previous(), stream.previous()); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - ListIterator stream = this.buildCloneListIterator(); - String string = null; - while (stream.hasNext()) { - string = stream.next(); - } - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - - exCaught = false; - while (stream.hasPrevious()) { - string = stream.previous(); - } - try { - string = stream.previous(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testModifyDefault() { - boolean exCaught = false; - for (ListIterator stream = this.buildCloneListIterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - - exCaught = false; - for (ListIterator stream = this.buildCloneListIterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.add("three and a half"); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - - exCaught = false; - for (ListIterator stream = this.buildCloneListIterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.set("another three"); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testModifyMutatorNext() { - this.verifyModifyNext(new CloneListIterator(this.originalList, this.buildMutator())); - } - - public void testModifyMutatorPrevious() { - this.verifyModifyPrevious(new CloneListIterator(this.originalList, this.buildMutator())); - } - - private CloneListIterator.Mutator buildMutator() { - return new CloneListIterator.Mutator() { - public void add(int index, String o) { - CloneListIteratorTests.this.originalList.add(index, o); - } - - public void remove(int index) { - CloneListIteratorTests.this.originalList.remove(index); - } - - public void set(int index, String o) { - CloneListIteratorTests.this.originalList.set(index, o); - } - }; - } - - public void testModifySubclassNext() { - this.verifyModifyNext(this.buildSubclass()); - } - - public void testModifySubclassPrevious() { - this.verifyModifyPrevious(this.buildSubclass()); - } - - private ListIterator buildSubclass() { - return new CloneListIterator(this.originalList) { - @Override - protected void add(int currentIndex, String o) { - CloneListIteratorTests.this.originalList.add(currentIndex, o); - } - - @Override - protected void remove(int currentIndex) { - CloneListIteratorTests.this.originalList.remove(currentIndex); - } - - @Override - protected void set(int currentIndex, String o) { - CloneListIteratorTests.this.originalList.set(currentIndex, o); - } - }; - } - - private void verifyModifyNext(ListIterator iterator) { - String removed = "three"; - String addedAfter = "five"; - String added = "five and a half"; - String replaced = "seven"; - String replacement = "another seven"; - assertTrue(this.originalList.contains(removed)); - assertTrue(this.originalList.contains(addedAfter)); - assertTrue(this.originalList.contains(replaced)); - // try to remove before calling #next() - boolean exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - while (iterator.hasNext()) { - String next = iterator.next(); - if (next.equals(addedAfter)) { - iterator.add(added); - } - if (next.equals(removed)) { - iterator.remove(); - // try to remove twice - exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - if (next.equals(replaced)) { - iterator.set(replacement); - } - } - assertTrue(this.originalList.contains(added)); - assertFalse(this.originalList.contains(removed)); - assertFalse(this.originalList.contains(replaced)); - assertTrue(this.originalList.contains(replacement)); - } - - private void verifyModifyPrevious(ListIterator iterator) { - String removed = "three"; - String addedBefore = "five"; - String added = "four and a half"; - String replaced = "seven"; - String replacement = "another seven"; - assertTrue(this.originalList.contains(removed)); - assertTrue(this.originalList.contains(addedBefore)); - assertTrue(this.originalList.contains(replaced)); - while (iterator.hasNext()) { - iterator.next(); - } - while (iterator.hasPrevious()) { - Object previous = iterator.previous(); - if (previous.equals(addedBefore)) { - iterator.add(added); - } - if (previous.equals(removed)) { - iterator.remove(); - // try to remove twice - boolean exCaught = false; - try { - iterator.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue("IllegalStateException not thrown", exCaught); - } - if (previous.equals(replaced)) { - iterator.set(replacement); - } - } - assertTrue(this.originalList.contains(added)); - assertFalse(this.originalList.contains(removed)); - assertFalse(this.originalList.contains(replaced)); - assertTrue(this.originalList.contains(replacement)); - } - - private ListIterator buildCloneListIterator() { - return this.buildCloneListIterator(this.originalList); - } - - private ListIterator buildCloneListIterator(List list) { - return new CloneListIterator(list); - } - - private ListIterator buildNestedListIterator() { - return this.originalList.listIterator(); - } - - private List buildList() { - List list = this.buildEmptyList(); - this.populateList(list); - return list; - } - - private void populateList(List list) { - list.add("zero"); - list.add("one"); - list.add("two"); - list.add("three"); - list.add("four"); - list.add("five"); - list.add("six"); - list.add("seven"); - list.add("eight"); - list.add("nine"); - } - - protected List buildEmptyList() { - return new ArrayList(); - } - - /** - * Test concurrent access: First build a clone iterator in a separate thread - * that hangs momentarily during its construction; then modify the shared - * collection in this thread. This would cause a - * ConcurrentModificationException in the other thread if the clone iterator - * were not synchronized on the original collection. - */ - public void testConcurrentAccess() throws Exception { - CloneIteratorTests.SlowCollection slow = new CloneIteratorTests.SlowCollection(); - this.populateList(slow); - // using the unsynchronized list will cause the test to fail - // this.originalList = slow; - this.originalList = Collections.synchronizedList(slow); - - this.concurrentList = new ArrayList(); - Thread thread = this.buildThread(this.buildRunnable()); - thread.start(); - while ( ! slow.hasStartedClone()) { - // wait for the other thread to start the clone... - Thread.yield(); - } - // ...then sneak in an extra element - this.originalList.add("seventeen"); - thread.join(); - List expected = new ArrayList(); - this.populateList(expected); - assertEquals(expected, this.concurrentList); - } - - private Runnable buildRunnable() { - return new TestRunnable() { - @Override - protected void run_() throws Throwable { - CloneListIteratorTests.this.loopWithCloneListIterator(); - } - }; - } - - /** - * use a clone iterator to loop over the "slow" collection and copy its - * contents to the concurrent collection - */ - void loopWithCloneListIterator() { - for (ListIterator stream = this.buildCloneListIterator(); stream.hasNext();) { - this.concurrentList.add(stream.next()); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CompositeIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CompositeIteratorTests.java deleted file mode 100644 index 2a7dbd7c01..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CompositeIteratorTests.java +++ /dev/null @@ -1,351 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator; - -@SuppressWarnings("nls") -public class CompositeIteratorTests extends TestCase { - - public CompositeIteratorTests(String name) { - super(name); - } - - public void testHasAnother() { - this.verifyHasAnother(this.buildCompositeIterator()); - } - - public void testHasAnother2() { - this.verifyHasAnother(this.buildCompositeIterator2()); - } - - public void testHasAnother3() { - this.verifyHasAnother(this.buildCompositeIterator3()); - } - - void verifyHasAnother(Iterator stream) { - this.verifyHasAnother(8, stream); - } - - void verifyHasAnother(int expected, Iterator stream) { - int i = 0; - while (stream.hasNext()) { - stream.next(); - i++; - } - assertEquals(expected, i); - } - - public void testAnother() { - this.verifyAnother(this.buildCompositeIterator()); - } - - public void testAnother2() { - this.verifyAnother(this.buildCompositeIterator2()); - } - - public void testAnother3() { - this.verifyAnother(this.buildCompositeIterator3()); - } - - void verifyAnother(Iterator stream) { - this.verifyAnother(1, stream); - } - - void verifyAnother(int start, Iterator stream) { - int index = start; - while (stream.hasNext()) { - assertEquals("bogus element", String.valueOf(index++), stream.next().substring(0, 1)); - } - } - - public void testRemove() { - this.verifyRemove(); - } - - protected void verifyRemove() { - List list1 = this.buildList1(); - Object lastElement1 = list1.get(list1.size() - 1); - List list2 = this.buildList2(); - List list3 = this.buildList3(); - - List> list = new ArrayList>(); - list.add(list1.listIterator()); - list.add(list2.listIterator()); - list.add(list3.listIterator()); - - Iterator stream = this.buildCompositeIterator(list.listIterator()); - while (stream.hasNext()) { - Object next = stream.next(); - if (next.equals("333")) { - stream.remove(); - } - // test special case - where we are between iterators - if (next.equals(lastElement1)) { - // this will trigger the next iterator to be loaded - stream.hasNext(); - // now try to remove from the previous iterator - stream.remove(); - } - } - stream.remove(); - - assertEquals("nothing removed from collection 1", this.buildList1().size() - 2, list1.size()); - assertFalse("element still in collection 1", list1.contains("333")); - assertFalse("last element still in collection 1", list1.contains(lastElement1)); - assertTrue("wrong element removed from collection 1", list1.contains("22")); - - assertEquals("nothing removed from collection 3", this.buildList3().size() - 1, list3.size()); - assertFalse("element still in collection 3", list3.contains("88888888")); - assertTrue("wrong element removed from collection 3", list3.contains("666666")); - } - - public void testSingleElement() { - String item = "0"; - this.verifyHasAnother(9, this.buildCompositeIterator(item, this.buildCompositeIterator())); - this.verifyAnother(0, this.buildCompositeIterator(item, this.buildCompositeIterator())); - } - - public void testNoSuchElementException() { - this.verifyNoSuchElementException(this.buildCompositeIterator()); - } - - void verifyNoSuchElementException(Iterator stream) { - boolean exCaught = false; - String string = null; - while (stream.hasNext()) { - string = stream.next(); - } - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testUnsupportedOperationException() { - this.verifyUnsupportedOperationException(this.buildUnmodifiableCompositeIterator()); - } - - void verifyUnsupportedOperationException(Iterator stream) { - boolean exCaught = false; - while (stream.hasNext()) { - Object string = stream.next(); - if (string.equals("333")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testIllegalStateException() { - this.verifyIllegalStateException(); - } - - void verifyIllegalStateException() { - this.verifyIllegalStateException(this.buildCompositeIterator()); - } - - void verifyIllegalStateException(Iterator stream) { - boolean exCaught = false; - try { - stream.remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue("IllegalStateException not thrown", exCaught); - } - - public void testEmptyHasAnother1() { - this.verifyEmptyHasAnother(this.buildEmptyCompositeIterator1()); - } - - void verifyEmptyHasAnother(Iterator stream) { - int i = 0; - while (stream.hasNext()) { - stream.next(); - i++; - } - assertEquals(0, i); - } - - public void testEmptyNoSuchElementException1() { - this.verifyNoSuchElementException(this.buildEmptyCompositeIterator1()); - } - - public void testEmptyIllegalStateException1() { - this.verifyEmptyIllegalStateException1(); - } - - void verifyEmptyIllegalStateException1() { - this.verifyIllegalStateException(this.buildEmptyCompositeIterator1()); - } - - public void testEmptyHasAnother2() { - this.verifyEmptyHasAnother(this.buildEmptyCompositeIterator2()); - } - - public void testEmptyNoSuchElementException2() { - this.verifyNoSuchElementException(this.buildEmptyCompositeIterator2()); - } - - public void testEmptyIllegalStateException2() { - this.verifyEmptyIllegalStateException2(); - } - - void verifyEmptyIllegalStateException2() { - this.verifyIllegalStateException(this.buildEmptyCompositeIterator2()); - } - - Iterator buildCompositeIterator() { - return this.buildCompositeIterator(this.buildIterators()); - } - - Iterator buildEmptyCompositeIterator1() { - return this.buildCompositeIterator(this.buildEmptyIterators1()); - } - - Iterator buildEmptyCompositeIterator2() { - return this.buildCompositeIterator(this.buildEmptyIterators2()); - } - - Iterator buildUnmodifiableCompositeIterator() { - return this.buildCompositeIterator(this.buildUnmodifiableIterators()); - } - - // leave unchecked so we can override in subclass - @SuppressWarnings("unchecked") - Iterator buildCompositeIterator(Iterator iterators) { - return new CompositeIterator(iterators); - } - - // use vararg constructor - @SuppressWarnings("unchecked") - Iterator buildCompositeIterator2() { - return new CompositeIterator(this.buildIterator1(), this.buildIterator2(), this.buildIterator3()); - } - - // use vararg constructor - @SuppressWarnings("unchecked") - Iterator buildCompositeIterator3() { - return new CompositeIterator(new Iterator[] { this.buildIterator1(), this.buildIterator2(), this.buildIterator3() }); - } - - Iterator buildCompositeIterator(String string, Iterator iterator) { - return new CompositeIterator(string, iterator); - } - - ListIterator> buildIterators() { - List> list = new ArrayList>(); - list.add(this.buildIterator1()); - list.add(this.buildIterator2()); - list.add(this.buildIterator3()); - return list.listIterator(); - } - - ListIterator> buildEmptyIterators1() { - return this.buildEmptyIteratorIterator(); - } - - ListIterator> buildEmptyIterators2() { - List> list = new ArrayList>(); - list.add(this.buildEmptyStringIterator()); - list.add(this.buildEmptyStringIterator()); - list.add(this.buildEmptyStringIterator()); - return list.listIterator(); - } - - ListIterator> buildUnmodifiableIterators() { - List> list = new ArrayList>(); - list.add(this.buildUnmodifiableIterator1()); - list.add(this.buildUnmodifiableIterator2()); - list.add(this.buildUnmodifiableIterator3()); - return list.listIterator(); - } - - ListIterator buildIterator1() { - return this.buildList1().listIterator(); - } - - ListIterator buildIterator2() { - return this.buildList2().listIterator(); - } - - ListIterator buildIterator3() { - return this.buildList3().listIterator(); - } - - ListIterator buildUnmodifiableIterator1() { - return this.buildUnmodifiableList1().listIterator(); - } - - ListIterator buildUnmodifiableIterator2() { - return this.buildUnmodifiableList2().listIterator(); - } - - ListIterator buildUnmodifiableIterator3() { - return this.buildUnmodifiableList3().listIterator(); - } - - ListIterator> buildEmptyIteratorIterator() { - return (new ArrayList>()).listIterator(); - } - - ListIterator buildEmptyStringIterator() { - return (new ArrayList()).listIterator(); - } - - List buildList1() { - List list = new ArrayList(); - list.add("1"); - list.add("22"); - list.add("333"); - list.add("4444"); - return list; - } - - List buildList2() { - return new ArrayList(); - } - - List buildList3() { - List list = new ArrayList(); - list.add("55555"); - list.add("666666"); - list.add("7777777"); - list.add("88888888"); - return list; - } - - List buildUnmodifiableList1() { - return Collections.unmodifiableList(this.buildList1()); - } - - List buildUnmodifiableList2() { - return Collections.unmodifiableList(this.buildList2()); - } - - List buildUnmodifiableList3() { - return Collections.unmodifiableList(this.buildList3()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CompositeListIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CompositeListIteratorTests.java deleted file mode 100644 index 5544e86355..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/CompositeListIteratorTests.java +++ /dev/null @@ -1,331 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.CompositeListIterator; - -@SuppressWarnings("nls") -public class CompositeListIteratorTests extends ReadOnlyCompositeListIteratorTests { - - public CompositeListIteratorTests(String name) { - super(name); - } - - @Override - public void testRemove() { - super.testRemove(); - List list1 = this.buildList1(); - List list2 = this.buildList2(); - List list3 = this.buildList3(); - Object firstElement3 = list3.get(0); - - List> list = new ArrayList>(); - list.add(list1.listIterator()); - list.add(list2.listIterator()); - list.add(list3.listIterator()); - - ListIterator stream = (ListIterator) this.buildCompositeIterator(list.listIterator()); - // position to end of stream - while (stream.hasNext()) { - stream.next(); - } - while (stream.hasPrevious()) { - Object previous = stream.previous(); - if (previous.equals("333")) { - stream.remove(); - } - // test special case - where we are between iterators - if (previous.equals(firstElement3)) { - // this will trigger the next iterator to be loaded - stream.hasPrevious(); - // now try to remove from the previous iterator - stream.remove(); - } - } - stream.remove(); - - assertEquals("nothing removed from collection 1", this.buildList1().size() - 2, list1.size()); - assertFalse("element still in collection 1", list1.contains("1")); - assertFalse("element still in collection 1", list1.contains("333")); - - assertEquals("nothing removed from collection 3", this.buildList3().size() - 1, list3.size()); - assertFalse("first element still in collection 3", list3.contains(firstElement3)); - assertTrue("wrong element removed from collection 3", list3.contains("666666")); - } - - public void testAdd() { - List list1 = this.buildList1(); - Object lastElement1 = list1.get(list1.size() - 1); - List list2 = this.buildList2(); - List list3 = this.buildList3(); - Object firstElement3 = list3.get(0); - - List> list = new ArrayList>(); - list.add(list1.listIterator()); - list.add(list2.listIterator()); - list.add(list3.listIterator()); - - ListIterator stream = (ListIterator) this.buildCompositeIterator(list.listIterator()); - while (stream.hasNext()) { - Object next = stream.next(); - if (next.equals("333")) { - stream.add("3.5"); - } - // test special case - where we are between iterators - if (next.equals(lastElement1)) { - // this will trigger the next iterator to be loaded - stream.hasNext(); - // now try to add to the iterator - stream.add("something in 3"); - } - } - stream.add("finale"); - boolean checkForFinale = true; - while (stream.hasPrevious()) { - Object previous = stream.previous(); - if (checkForFinale) { - checkForFinale = false; - assertEquals("added element dropped", "finale", previous); - } - if (previous.equals("333")) { - stream.add("2.5"); - } - // test special case - where we are between iterators - if (previous.equals(firstElement3)) { - // this will trigger the next iterator to be loaded - stream.hasPrevious(); - // now try to remove from the previous iterator - stream.add("old start of 3"); - } - } - stream.add("prelude"); - assertEquals("added element dropped", "prelude", stream.previous()); - - assertEquals("elements not added to collection 1", this.buildList1().size() + 3, list1.size()); - assertEquals("element not added to collection 1", "prelude", list1.get(0)); - assertEquals("element not added to collection 1", "2.5", list1.get(3)); - assertEquals("element not added to collection 1", "3.5", list1.get(5)); - - assertEquals("elements not added to collection 3", this.buildList3().size() + 3, list3.size()); - assertEquals("element not added to collection 3", "something in 3", list3.get(0)); - assertEquals("element not added to collection 3", "old start of 3", list3.get(1)); - assertEquals("element not added to collection 3", "finale", list3.get(list3.size() - 1)); - - // add to the front - stream = (ListIterator) this.buildCompositeIterator(); - stream.add("blah"); - assertFalse("added element should be placed BEFORE the \"cursor\"", stream.next().equals("blah")); - - stream = (ListIterator) this.buildCompositeIterator(); - stream.add("blah"); - assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah")); - - stream = (ListIterator) this.buildCompositeIterator(); - while (stream.hasNext()) { - stream.next(); - } - while (stream.hasPrevious()) { - stream.previous(); - } - stream.add("blah"); - assertFalse("added element should be placed BEFORE the \"cursor\"", stream.next().equals("blah")); - - stream = (ListIterator) this.buildCompositeIterator(); - while (stream.hasNext()) { - stream.next(); - } - while (stream.hasPrevious()) { - stream.previous(); - } - stream.add("blah"); - assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah")); - - // add to the middle - stream = (ListIterator) this.buildCompositeIterator(); - stream.next(); - stream.add("blah"); - assertFalse("added element should be placed BEFORE the \"cursor\"", stream.next().equals("blah")); - - stream = (ListIterator) this.buildCompositeIterator(); - stream.next(); - stream.add("blah"); - assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah")); - - stream = (ListIterator) this.buildCompositeIterator(); - while (stream.hasNext()) { - stream.next(); - } - stream.previous(); - stream.add("blah"); - assertFalse("added element should be placed BEFORE the \"cursor\"", stream.next().equals("blah")); - - stream = (ListIterator) this.buildCompositeIterator(); - while (stream.hasNext()) { - stream.next(); - } - stream.previous(); - stream.add("blah"); - assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah")); - - // add to the end - stream = (ListIterator) this.buildCompositeIterator(); - while (stream.hasNext()) { - stream.next(); - } - stream.add("blah"); - assertFalse("added element should be placed BEFORE the \"cursor\"", stream.hasNext()); - - stream = (ListIterator) this.buildCompositeIterator(); - while (stream.hasNext()) { - stream.next(); - } - stream.add("blah"); - assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah")); - } - - public void testSet() { - List list1 = this.buildList1(); - Object lastElement1 = list1.get(list1.size() - 1); - List list2 = this.buildList2(); - List list3 = this.buildList3(); - Object firstElement3 = list3.get(0); - - List> list = new ArrayList>(); - list.add(list1.listIterator()); - list.add(list2.listIterator()); - list.add(list3.listIterator()); - - ListIterator stream = (ListIterator) this.buildCompositeIterator(list.listIterator()); - // position to end of stream - while (stream.hasNext()) { - Object next = stream.next(); - if (next.equals("333")) { - stream.set("333a"); - } - // test special case - where we are between iterators - if (next.equals(lastElement1)) { - // this will trigger the next iterator to be loaded - stream.hasNext(); - // now try to remove from the previous iterator - stream.set("end of 1"); - } - } - while (stream.hasPrevious()) { - Object previous = stream.previous(); - if (previous.equals("22")) { - stream.set("22a"); - } - // test special case - where we are between iterators - if (previous.equals(firstElement3)) { - // this will trigger the next iterator to be loaded - stream.hasPrevious(); - // now try to remove from the previous iterator - stream.set("start of 3"); - } - } - - assertEquals("element(s) added to collection 1", this.buildList1().size(), list1.size()); - assertEquals("element not set in collection 1", "22a", list1.get(1)); - assertFalse("element not set in collection 1", list1.contains("22")); - assertEquals("element not set in collection 1", "333a", list1.get(2)); - assertFalse("element not set in collection 1", list1.contains("333")); - assertEquals("element not set in collection 1", "end of 1", list1.get(list1.size() - 1)); - assertFalse("element not set in collection 1", list1.contains(lastElement1)); - - assertEquals("element(s) added to collection 3", this.buildList3().size(), list3.size()); - assertEquals("element not set in collection 3", "start of 3", list3.get(0)); - assertFalse("element not set in collection 3", list3.contains(firstElement3)); - } - - @Override - public void testNextIndexPreviousIndex() { - int i = 0; - ListIterator stream = (ListIterator) this.buildCompositeIterator(); - assertEquals(i, stream.nextIndex()); - assertEquals(i - 1, stream.previousIndex()); - while (stream.hasNext()) { - Object next = stream.next(); - i++; - if (next.equals("333")) { - stream.remove(); - i--; - } - if (next.equals("7777777")) { - stream.add("7.5"); - i++; - } - assertEquals(i, stream.nextIndex()); - assertEquals(i - 1, stream.previousIndex()); - } - assertEquals("index is corrupt", 8, i); - - assertEquals(i, stream.nextIndex()); - assertEquals(i - 1, stream.previousIndex()); - while (stream.hasPrevious()) { - Object previous = stream.previous(); - i--; - if (previous.equals("666666")) { - stream.remove(); - // removing a previous element, does not change the cursor - } - if (previous.equals("22")) { - stream.add("1.5"); - i++; - } - assertEquals(i, stream.nextIndex()); - assertEquals(i - 1, stream.previousIndex()); - } - assertEquals("index is corrupt", 0, i); - } - - @Override - public void testIllegalStateException() { - this.verifyIllegalStateException(); - } - - @Override - public void testEmptyIllegalStateException1() { - this.verifyEmptyIllegalStateException1(); - } - - @Override - public void testEmptyIllegalStateException2() { - this.verifyEmptyIllegalStateException2(); - } - - // unchecked so we can override the unchecked method in superclass - @Override - @SuppressWarnings("unchecked") - Iterator buildCompositeIterator(Iterator iterators) { - return new CompositeListIterator((ListIterator>) iterators); - } - - @Override - @SuppressWarnings("unchecked") - Iterator buildCompositeIterator2() { - return new CompositeListIterator(this.buildIterator1(), this.buildIterator2(), this.buildIterator3()); - } - - @Override - @SuppressWarnings("unchecked") - Iterator buildCompositeIterator3() { - return new CompositeListIterator(new ListIterator[] { this.buildIterator1(), this.buildIterator2(), this.buildIterator3() }); - } - - @Override - ListIterator buildCompositeListIterator(String string, ListIterator iterator) { - return new CompositeListIterator(string, iterator); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EmptyIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EmptyIteratorTests.java deleted file mode 100644 index 511e484849..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EmptyIteratorTests.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyIterator; - -@SuppressWarnings("nls") -public class EmptyIteratorTests extends TestCase { - - public EmptyIteratorTests(String name) { - super(name); - } - - public void testHasNext() { - int i = 0; - for (Iterator stream = EmptyIterator.instance(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(0, i); - } - - public void testNext() { - for (Iterator stream = EmptyIterator.instance(); stream.hasNext();) { - fail("bogus element: " + stream.next()); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = EmptyIterator.instance(); - Object element = null; - while (stream.hasNext()) { - element = stream.next(); - } - try { - element = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + element, exCaught); - } - - public void testUnsupportedOperationException() { - boolean exCaught = false; - try { - EmptyIterator.instance().remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EmptyListIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EmptyListIteratorTests.java deleted file mode 100644 index 1892415b13..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EmptyListIteratorTests.java +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ListIterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.EmptyListIterator; - -@SuppressWarnings("nls") -public class EmptyListIteratorTests extends TestCase { - - public EmptyListIteratorTests(String name) { - super(name); - } - - public void testHasNext() { - int i = 0; - for (ListIterator stream = EmptyListIterator.instance(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(0, i); - } - - public void testNext() { - for (ListIterator stream = EmptyListIterator.instance(); stream.hasNext();) { - fail("bogus element: " + stream.next()); - } - } - - public void testNextIndex() { - ListIterator stream = EmptyListIterator.instance(); - assertEquals(0, stream.nextIndex()); - } - - public void testHasPrevious() { - ListIterator stream = EmptyListIterator.instance(); - int i = 0; - while (stream.hasPrevious()) { - stream.previous(); - i++; - } - assertEquals(0, i); - - while (stream.hasNext()) { - stream.next(); - } - i = 0; - while (stream.hasPrevious()) { - stream.previous(); - i++; - } - assertEquals(0, i); - } - - public void testPrevious() { - ListIterator stream = EmptyListIterator.instance(); - while (stream.hasPrevious()) { - fail("bogus element: " + stream.previous()); - } - while (stream.hasNext()) { - stream.next(); - } - while (stream.hasPrevious()) { - fail("bogus element: " + stream.previous()); - } - } - - public void testPreviousIndex() { - ListIterator stream = EmptyListIterator.instance(); - assertEquals(-1, stream.previousIndex()); - } - - public void testNoSuchElementException() { - boolean exCaught = false; - ListIterator stream = EmptyListIterator.instance(); - Object element = null; - while (stream.hasNext()) { - element = stream.next(); - } - try { - element = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown (next): " + element, exCaught); - while (stream.hasPrevious()) { - element = stream.previous(); - } - try { - element = stream.previous(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown (previous): " + element, exCaught); - } - - public void testUnsupportedOperationException() { - boolean exCaught = false; - try { - EmptyListIterator.instance().remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("UnsupportedOperationException not thrown (remove)", exCaught); - try { - EmptyListIterator.instance().set(new Object()); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("UnsupportedOperationException not thrown (set)", exCaught); - try { - EmptyListIterator.instance().add(new Object()); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("UnsupportedOperationException not thrown (add)", exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EnumerationIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EnumerationIteratorTests.java deleted file mode 100644 index a7c7d289e6..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/EnumerationIteratorTests.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.Enumeration; -import java.util.Iterator; -import java.util.NoSuchElementException; -import java.util.Vector; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.EnumerationIterator; - -@SuppressWarnings("nls") -public class EnumerationIteratorTests extends TestCase { - - public EnumerationIteratorTests(String name) { - super(name); - } - - public void testHasNext() { - int i = 0; - for (Iterator stream = this.buildIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(this.buildVector().size(), i); - } - - public void testHasNextUpcast() { - int i = 0; - for (Iterator stream = this.buildIteratorUpcast(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(this.buildVector().size(), i); - } - - public void testNext() { - Enumeration enumeration = this.buildEnumeration(); - for (Iterator stream = this.buildIterator(); stream.hasNext();) { - assertEquals("bogus element", enumeration.nextElement(), stream.next()); - } - } - - public void testNextUpcast() { - Enumeration enumeration = this.buildEnumeration(); - for (Iterator stream = this.buildIteratorUpcast(); stream.hasNext();) { - assertEquals("bogus element", enumeration.nextElement(), stream.next()); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildIterator(); - String string = null; - while (stream.hasNext()) { - string = stream.next(); - } - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testUnsupportedOperationException() { - boolean exCaught = false; - for (Iterator stream = this.buildIterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - private Iterator buildIterator() { - return this.buildIterator(this.buildEnumeration()); - } - - private Iterator buildIterator(Enumeration enumeration) { - return new EnumerationIterator(enumeration); - } - - private Enumeration buildEnumeration() { - return this.buildVector().elements(); - } - - private Vector buildVector() { - Vector v = new Vector(); - v.addElement("one"); - v.addElement("two"); - v.addElement("three"); - v.addElement("four"); - v.addElement("five"); - v.addElement("six"); - v.addElement("seven"); - v.addElement("eight"); - return v; - } - - private Iterator buildIteratorUpcast() { - return this.buildIteratorUpcast(this.buildEnumeration()); - } - - private Iterator buildIteratorUpcast(Enumeration enumeration) { - return new EnumerationIterator(enumeration); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/FilteringIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/FilteringIteratorTests.java deleted file mode 100644 index 6fe920b713..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/FilteringIteratorTests.java +++ /dev/null @@ -1,266 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.NoSuchElementException; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.SimpleFilter; -import org.eclipse.jpt.common.utility.internal.iterators.FilteringIterator; - -@SuppressWarnings("nls") -public class FilteringIteratorTests extends TestCase { - - private static final String PREFIX = "prefix"; - - public FilteringIteratorTests(String name) { - super(name); - } - - public void testUnsupportedOperationException() { - boolean exCaught = false; - for (Iterator stream = this.buildAcceptIterator(); stream.hasNext();) { - String string = stream.next(); - if (string.equals(PREFIX + "3")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildAcceptIterator(); - String string = null; - while (stream.hasNext()) { - string = stream.next(); - } - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testAcceptHasNext() { - int i = 0; - for (Iterator stream = this.buildAcceptIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(6, i); - } - - public void testAcceptNext() { - for (Iterator stream = this.buildAcceptIterator(); stream.hasNext();) { - assertTrue("bogus accept", stream.next().startsWith(PREFIX)); - } - } - - public void testInnerHasNext() { - int i = 0; - for (Iterator stream = this.buildInnerIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(6, i); - } - - public void testInnerNext() { - for (Iterator stream = this.buildInnerIterator(); stream.hasNext();) { - assertTrue("bogus accept", stream.next().startsWith(PREFIX)); - } - } - - public void testRejectHasNext() { - int i = 0; - for (Iterator stream = this.buildRejectIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(2, i); - } - - public void testRejectNext() { - for (Iterator stream = this.buildRejectIterator(); stream.hasNext();) { - assertFalse("bogus reject", stream.next().startsWith(PREFIX)); - } - } - - public void testBothHasNext() { - // if both accept() and reject() are overridden, accept() is used - int i = 0; - for (Iterator stream = this.buildBothIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(6, i); - } - - public void testLoadNext() { - // loadNext() used to cause a NPE when executing during the - // constructor because the "outer" class is not bound until completion - // of the constructor - for (Iterator stream = this.buildInnerIterator2(); stream.hasNext();) { - assertTrue("bogus accept", stream.next().startsWith(PREFIX)); - } - } - - public void testFilterHasNext() { - int i = 0; - for (Iterator stream = this.buildFilterIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(6, i); - } - - public void testFilterNext() { - for (Iterator stream = this.buildFilterIterator(); stream.hasNext();) { - assertTrue("bogus accept", stream.next().startsWith(PREFIX)); - } - } - - private Iterator buildFilteredIterator(Iterator nestedIterator, Filter filter) { - return new FilteringIterator(nestedIterator, filter); - } - - private Iterator buildInnerFilteredIterator(Iterator nestedIterator) { - return new FilteringIterator(nestedIterator) { - @Override - protected boolean accept(String s) { - return s.startsWith(PREFIX); - } - }; - } - - String getPrefix() { - return PREFIX; - } - - // this inner iterator will call the "outer" object - private Iterator buildInnerFilteredIterator2(Iterator nestedIterator) { - return new FilteringIterator(nestedIterator) { - @Override - protected boolean accept(String s) { - return s.startsWith(FilteringIteratorTests.this.getPrefix()); - } - }; - } - - private Iterator buildNestedIterator() { - Collection c = new ArrayList(); - c.add(PREFIX + "1"); - c.add(PREFIX + "2"); - c.add(PREFIX + "3"); - c.add("4"); - c.add(PREFIX + "5"); - c.add(PREFIX + "6"); - c.add(PREFIX + "7"); - c.add("8"); - return c.iterator(); - } - - private Iterator buildAcceptIterator() { - return this.buildFilteredIterator(this.buildNestedIterator(), this.buildAcceptFilter(PREFIX)); - } - - private Iterator buildInnerIterator() { - return this.buildInnerFilteredIterator(this.buildNestedIterator()); - } - - // this inner iterator will call the "outer" object - private Iterator buildInnerIterator2() { - return this.buildInnerFilteredIterator2(this.buildNestedIterator()); - } - - private Iterator buildFilterIterator() { - return this.buildFilteredIterator(this.buildNestedIterator(), this.buildFilterFilter(PREFIX)); - } - - private Filter buildAcceptFilter(String prefix) { - return new SimpleFilter(prefix) { - private static final long serialVersionUID = 1L; - - @Override - public boolean accept(String s) { - return s.startsWith(this.criterion); - } - }; - } - - private Iterator buildRejectIterator() { - return this.buildFilteredIterator(this.buildNestedIterator(), this.buildRejectFilter(PREFIX)); - } - - private Filter buildRejectFilter(String prefix) { - return new SimpleFilter(prefix) { - private static final long serialVersionUID = 1L; - - @Override - public boolean reject(String s) { - return s.startsWith(this.criterion); - } - }; - } - - // use anonymous inner Filter - private Filter buildFilterFilter(final String prefix) { - return new Filter() { - public boolean accept(String s) { - return s.startsWith(prefix); - } - }; - } - - private Iterator buildBothIterator() { - return this.buildFilteredIterator(this.buildNestedIterator(), this.buildBothFilter(PREFIX)); - } - - private Filter buildBothFilter(String prefix) { - return new SimpleFilter(prefix) { - private static final long serialVersionUID = 1L; - - @Override - public boolean reject(String s) { - return s.startsWith(this.criterion); - } - - @Override - public boolean accept(String s) { - return s.startsWith(this.criterion); - } - }; - } - - public void testInvalidFilteringIterator() { - boolean exCaught = false; - try { - // missing method override - Iterator iterator = new FilteringIterator(this.buildNestedIterator()); - String s = iterator.next(); - fail("invalid string: " + s); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown", exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/GraphIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/GraphIteratorTests.java deleted file mode 100644 index e320f28988..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/GraphIteratorTests.java +++ /dev/null @@ -1,197 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.GraphIterator; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class GraphIteratorTests extends TestCase { - /** this will be populated with all the nodes created for the test */ - Collection nodes = new ArrayList(); - - public GraphIteratorTests(String name) { - super(name); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testHasNext1() { - this.verifyHasNext(this.buildGraphIterator1()); - } - - public void testHasNext2() { - this.verifyHasNext(this.buildGraphIterator2()); - } - - private void verifyHasNext(Iterator iterator) { - int i = 0; - while (iterator.hasNext()) { - iterator.next(); - i++; - } - assertEquals(this.nodes.size(), i); - } - - public void testNext1() { - this.verifyNext(this.buildGraphIterator1()); - } - - public void testNext2() { - this.verifyNext(this.buildGraphIterator2()); - } - - private void verifyNext(Iterator iterator) { - while (iterator.hasNext()) { - assertTrue("bogus element", this.nodes.contains(iterator.next())); - } - } - - public void testNoSuchElementException1() { - this.verifyNoSuchElementException(this.buildGraphIterator1()); - } - - public void testNoSuchElementException2() { - this.verifyNoSuchElementException(this.buildGraphIterator2()); - } - - private void verifyNoSuchElementException(Iterator iterator) { - boolean exCaught = false; - while (iterator.hasNext()) { - iterator.next(); - } - try { - iterator.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown", exCaught); - } - - public void testSize1() { - this.verifySize(this.buildGraphIterator1()); - } - - public void testSize2() { - this.verifySize(this.buildGraphIterator2()); - } - - private void verifySize(Iterator iterator) { - int iteratorSize = CollectionTools.size(iterator); - int actualSize = this.nodes.size(); - assertTrue("Too few items in iterator.", iteratorSize >= actualSize); - assertTrue("Too many items in iterator.", iteratorSize <= actualSize); - } - - public void testInvalidGraphIterator() { - boolean exCaught = false; - try { - // missing method override - Iterator iterator = new GraphIterator(this.buildGraphRoot()); - GraphNode gn = iterator.next(); - fail("invalid graph node: " + gn); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown", exCaught); - } - - /** - * build a graph iterator with an explicit misterRogers - */ - private Iterator buildGraphIterator1() { - return new GraphIterator(this.buildGraphRoot(), this.buildMisterRogers()); - } - - private GraphIterator.MisterRogers buildMisterRogers() { - return new GraphIterator.MisterRogers() { - public Iterator neighbors(GraphNode next) { - return next.neighbors(); - } - }; - } - - /** - * build a graph iterator with an override - */ - private Iterator buildGraphIterator2() { - return new GraphIterator(this.buildGraphRoot()) { - @Override - public Iterator neighbors(GraphNode next) { - return next.neighbors(); - } - }; - } - - private GraphNode buildGraphRoot() { - GraphNode ncNode = new GraphNode("North Carolina"); - GraphNode vaNode = new GraphNode("Virginia"); - GraphNode scNode = new GraphNode("South Carolina"); - GraphNode gaNode = new GraphNode("Georgia"); - GraphNode flNode = new GraphNode("Florida"); - GraphNode alNode = new GraphNode("Alabama"); - GraphNode msNode = new GraphNode("Mississippi"); - GraphNode tnNode = new GraphNode("Tennessee"); - - ncNode.setNeighbors(new GraphNode[] { vaNode, scNode, gaNode, tnNode }); - vaNode.setNeighbors(new GraphNode[] { ncNode, tnNode }); - scNode.setNeighbors(new GraphNode[] { ncNode, gaNode }); - gaNode.setNeighbors(new GraphNode[] { ncNode, scNode, flNode, alNode, tnNode }); - flNode.setNeighbors(new GraphNode[] { gaNode }); - alNode.setNeighbors(new GraphNode[] { gaNode, msNode, tnNode }); - msNode.setNeighbors(new GraphNode[] { alNode, tnNode }); - tnNode.setNeighbors(new GraphNode[] { vaNode, ncNode, gaNode, alNode, msNode }); - - return ncNode; - } - - public class GraphNode { - private String name; - - private Collection neighbors = new ArrayList(); - - public GraphNode(String name) { - super(); - GraphIteratorTests.this.nodes.add(this); // log node - this.name = name; - } - - public String getName() { - return this.name; - } - - void setNeighbors(GraphNode[] neighbors) { - this.neighbors = CollectionTools.list(neighbors); - } - - public Iterator neighbors() { - return this.neighbors.iterator(); - } - - public int neighborsSize() { - return this.neighbors.size(); - } - - @Override - public String toString() { - return "GraphNode(" + this.name + ")"; - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/JptUtilityIteratorsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/JptUtilityIteratorsTests.java deleted file mode 100644 index 54fb276ecb..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/JptUtilityIteratorsTests.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import junit.framework.Test; -import junit.framework.TestSuite; - -/** - * decentralize test creation code - */ -public class JptUtilityIteratorsTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityIteratorsTests.class.getPackage().getName()); - - suite.addTestSuite(ArrayIteratorTests.class); - suite.addTestSuite(ArrayListIteratorTests.class); - suite.addTestSuite(ChainIteratorTests.class); - suite.addTestSuite(CloneIteratorTests.class); - suite.addTestSuite(CloneListIteratorTests.class); - suite.addTestSuite(CompositeIteratorTests.class); - suite.addTestSuite(CompositeListIteratorTests.class); - suite.addTestSuite(EmptyIteratorTests.class); - suite.addTestSuite(EmptyListIteratorTests.class); - suite.addTestSuite(EnumerationIteratorTests.class); - suite.addTestSuite(FilteringIteratorTests.class); - suite.addTestSuite(SuperIteratorWrapperTests.class); - suite.addTestSuite(GraphIteratorTests.class); - suite.addTestSuite(PeekableIteratorTests.class); - suite.addTestSuite(ReadOnlyCompositeListIteratorTests.class); - suite.addTestSuite(ReadOnlyIteratorTests.class); - suite.addTestSuite(ReadOnlyListIteratorTests.class); - suite.addTestSuite(SingleElementIteratorTests.class); - suite.addTestSuite(SingleElementListIteratorTests.class); - suite.addTestSuite(SynchronizedIteratorTests.class); - suite.addTestSuite(SynchronizedListIteratorTests.class); - suite.addTestSuite(TransformationIteratorTests.class); - suite.addTestSuite(TransformationListIteratorTests.class); - suite.addTestSuite(TreeIteratorTests.class); - - return suite; - } - - private JptUtilityIteratorsTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/PeekableIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/PeekableIteratorTests.java deleted file mode 100644 index 00a056f9a2..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/PeekableIteratorTests.java +++ /dev/null @@ -1,141 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.PeekableIterator; - -@SuppressWarnings("nls") -public class PeekableIteratorTests extends TestCase { - - public PeekableIteratorTests(String name) { - super(name); - } - - public void testUnsupportedOperationException() { - boolean exCaught = false; - for (Iterator stream = this.buildPeekableIterator(); stream.hasNext();) { - String string = stream.next(); - if (string.equals("three")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildPeekableIterator(); - String string = null; - while (stream.hasNext()) { - string = stream.next(); - } - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testHasNext() { - int i = 0; - for (Iterator stream = this.buildPeekableIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(6, i); - } - - public void testHasNextUpcast() { - int i = 0; - for (Iterator stream = this.buildPeekableIteratorUpcast(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(6, i); - } - - public void testNext() { - Iterator stream = this.buildPeekableIterator(); - assertEquals("zero", stream.next()); - assertEquals("one", stream.next()); - assertEquals("two", stream.next()); - assertEquals("three", stream.next()); - assertEquals("four", stream.next()); - assertEquals("five", stream.next()); - } - - public void testNextUpcast() { - Iterator stream = this.buildPeekableIteratorUpcast(); - assertEquals("zero", stream.next()); - assertEquals("one", stream.next()); - assertEquals("two", stream.next()); - assertEquals("three", stream.next()); - assertEquals("four", stream.next()); - assertEquals("five", stream.next()); - } - - public void testPeek() { - Object next = null; - for (PeekableIterator stream = this.buildPeekableIterator(); stream.hasNext();) { - Object peek = stream.peek(); - assertTrue("peek and next are prematurely identical", peek != next); - next = stream.next(); - assertTrue("peek and next are not identical", peek == next); - } - } - - public void testPeekUpcast() { - Object next = null; - for (PeekableIterator stream = this.buildPeekableIteratorUpcast(); stream.hasNext();) { - Object peek = stream.peek(); - assertTrue("peek and next are prematurely identical", peek != next); - next = stream.next(); - assertTrue("peek and next are not identical", peek == next); - } - } - - private PeekableIterator buildPeekableIterator() { - return this.buildPeekableIterator(this.buildNestedIterator()); - } - - private PeekableIterator buildPeekableIteratorUpcast() { - return this.buildPeekableIteratorUpcast(this.buildNestedIterator()); - } - - private PeekableIterator buildPeekableIterator(Iterator nestedIterator) { - return new PeekableIterator(nestedIterator); - } - - private PeekableIterator buildPeekableIteratorUpcast(Iterator nestedIterator) { - return new PeekableIterator(nestedIterator); - } - - private Iterator buildNestedIterator() { - Collection c = new ArrayList(); - c.add("zero"); - c.add("one"); - c.add("two"); - c.add("three"); - c.add("four"); - c.add("five"); - return c.iterator(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyCompositeListIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyCompositeListIteratorTests.java deleted file mode 100644 index dd1eea6db4..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyCompositeListIteratorTests.java +++ /dev/null @@ -1,205 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.NoSuchElementException; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyCompositeListIterator; - -@SuppressWarnings("nls") -public class ReadOnlyCompositeListIteratorTests extends CompositeIteratorTests { - - public ReadOnlyCompositeListIteratorTests(String name) { - super(name); - } - - @Override - void verifyHasAnother(Iterator stream) { - super.verifyHasAnother(stream); - ListIterator stream2 = (ListIterator) stream; - int i = 0; - while (stream2.hasPrevious()) { - stream2.previous(); - i++; - } - assertEquals(8, i); - } - - @Override - void verifyAnother(Iterator stream) { - super.verifyAnother(stream); - int i = 8; - ListIterator stream2 = (ListIterator) stream; - while (stream2.hasPrevious()) { - assertEquals("bogus element", String.valueOf(i--), stream2.previous().substring(0, 1)); - } - } - - public void testNextIndexPreviousIndex() { - int i = 0; - ListIterator stream = (ListIterator) this.buildCompositeIterator(); - assertEquals(i, stream.nextIndex()); - assertEquals(i - 1, stream.previousIndex()); - while (stream.hasNext()) { - stream.next(); - i++; - assertEquals(i, stream.nextIndex()); - assertEquals(i - 1, stream.previousIndex()); - } - assertEquals("index is corrupt", 8, i); - - assertEquals(i, stream.nextIndex()); - assertEquals(i - 1, stream.previousIndex()); - while (stream.hasPrevious()) { - stream.previous(); - i--; - assertEquals(i, stream.nextIndex()); - assertEquals(i - 1, stream.previousIndex()); - } - assertEquals("index is corrupt", 0, i); - } - - public void testPreviousIndex() { - // TODO - } - - @Override - public void testRemove() { - // #remove() is not supported - } - - @Override - public void testIllegalStateException() { - // #remove() is not supported - } - - @Override - public void testEmptyIllegalStateException1() { - // #remove() is not supported - } - - @Override - public void testEmptyIllegalStateException2() { - // #remove() is not supported - } - - @Override - void verifyNoSuchElementException(Iterator stream) { - super.verifyNoSuchElementException(stream); - ListIterator stream2 = (ListIterator) stream; - boolean exCaught = false; - String string = null; - while (stream2.hasPrevious()) { - string = stream2.previous(); - } - try { - string = stream2.previous(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - @Override - void verifyUnsupportedOperationException(Iterator stream) { - super.verifyUnsupportedOperationException(stream); - boolean exCaught = false; - ListIterator stream2 = (ListIterator) stream; - while (stream2.hasPrevious()) { - Object string = stream2.previous(); - if (string.equals("333")) { - try { - stream2.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - @Override - void verifyIllegalStateException(Iterator stream) { - super.verifyIllegalStateException(stream); - ListIterator stream2 = (ListIterator) stream; - boolean exCaught = false; - try { - stream2.set("junk"); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue("IllegalStateException not thrown", exCaught); - } - - @Override - void verifyEmptyHasAnother(Iterator stream) { - super.verifyEmptyHasAnother(stream); - ListIterator stream2 = (ListIterator) stream; - int i = 0; - while (stream2.hasPrevious()) { - stream2.previous(); - i++; - } - assertEquals(0, i); - } - - // unchecked so we can override the unchecked method in superclass - @Override - @SuppressWarnings("unchecked") - Iterator buildCompositeIterator(Iterator iterators) { - return new ReadOnlyCompositeListIterator((ListIterator>) iterators); - } - - @Override - @SuppressWarnings("unchecked") - Iterator buildCompositeIterator2() { - return new ReadOnlyCompositeListIterator(this.buildIterator1(), this.buildIterator2(), this.buildIterator3()); - } - - @Override - @SuppressWarnings("unchecked") - Iterator buildCompositeIterator3() { - return new ReadOnlyCompositeListIterator(new ListIterator[] { this.buildIterator1(), this.buildIterator2(), this.buildIterator3() }); - } - - Iterator buildCompositeIterator(String string, ListIterator iterator) { - return this.buildCompositeListIterator(string, iterator); - } - - ListIterator buildCompositeListIterator(String string, ListIterator iterator) { - return new ReadOnlyCompositeListIterator(string, iterator); - } - - public void testVariedNestedIterators() { - List integerList = new ArrayList(); - integerList.add(new Integer(42)); - integerList.add(new Integer(42)); - integerList.add(new Integer(111)); - integerList.add(new Integer(77)); - - List floatList = new ArrayList(); - floatList.add(new Float(42.42f)); - floatList.add(new Float(22.22f)); - floatList.add(new Float(111.111f)); - floatList.add(new Float(77.77f)); - - List> list = new ArrayList>(); - list.add(integerList); - list.add(floatList); - ListIterator li = new ReadOnlyCompositeListIterator(list); - while (li.hasNext()) { - assertTrue(li.next().intValue() > 0); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyIteratorTests.java deleted file mode 100644 index f00417064d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyIteratorTests.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; -import java.util.Vector; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator; - -@SuppressWarnings("nls") -public class ReadOnlyIteratorTests extends TestCase { - - public ReadOnlyIteratorTests(String name) { - super(name); - } - - public void testHasNext() { - int i = 0; - for (Iterator stream = this.buildReadOnlyIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(this.buildVector().size(), i); - } - - public void testHasNextUpcast() { - int i = 0; - for (Iterator stream = this.buildReadOnlyIteratorUpcast(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(this.buildVector().size(), i); - } - - public void testNext() { - Iterator nestedIterator = this.buildNestedIterator(); - for (Iterator stream = this.buildReadOnlyIterator(); stream.hasNext();) { - assertEquals("bogus element", nestedIterator.next(), stream.next()); - } - } - - public void testNextUpcast() { - Iterator nestedIterator = this.buildNestedIterator(); - for (Iterator stream = this.buildReadOnlyIteratorUpcast(); stream.hasNext();) { - assertEquals("bogus element", nestedIterator.next(), stream.next()); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildReadOnlyIterator(); - String string = null; - while (stream.hasNext()) { - string = stream.next(); - } - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testRemove() { - boolean exCaught = false; - for (Iterator stream = this.buildReadOnlyIterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - private Iterator buildReadOnlyIterator() { - return this.buildReadOnlyIterator(this.buildNestedIterator()); - } - - private Iterator buildReadOnlyIteratorUpcast() { - return this.buildReadOnlyIteratorUpcast(this.buildNestedIterator()); - } - - private Iterator buildReadOnlyIterator(Iterator nestedIterator) { - return new ReadOnlyIterator(nestedIterator); - } - - private Iterator buildReadOnlyIteratorUpcast(Iterator nestedIterator) { - return new ReadOnlyIterator(nestedIterator); - } - - private Iterator buildNestedIterator() { - return this.buildVector().iterator(); - } - - private Vector buildVector() { - Vector v = new Vector(); - v.addElement("one"); - v.addElement("two"); - v.addElement("three"); - v.addElement("four"); - v.addElement("five"); - v.addElement("six"); - v.addElement("seven"); - v.addElement("eight"); - return v; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyListIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyListIteratorTests.java deleted file mode 100644 index 9d81a2ad37..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/ReadOnlyListIteratorTests.java +++ /dev/null @@ -1,204 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; - -@SuppressWarnings("nls") -public class ReadOnlyListIteratorTests extends TestCase { - - public ReadOnlyListIteratorTests(String name) { - super(name); - } - - public void testHasNextAndHasPrevious() { - int i = 0; - ListIterator stream = this.buildReadOnlyListIterator(); - while (stream.hasNext()) { - stream.next(); - i++; - } - assertEquals(this.buildList().size(), i); - - while (stream.hasPrevious()) { - stream.previous(); - i--; - } - assertEquals(0, i); - } - - public void testHasNextAndHasPreviousUpcast() { - int i = 0; - ListIterator stream = this.buildReadOnlyListIteratorUpcast(); - while (stream.hasNext()) { - stream.next(); - i++; - } - assertEquals(this.buildList().size(), i); - - while (stream.hasPrevious()) { - stream.previous(); - i--; - } - assertEquals(0, i); - } - - public void testNextAndPrevious() { - ListIterator nestedListIterator = this.buildNestedListIterator(); - ListIterator stream = this.buildReadOnlyListIterator(); - while (stream.hasNext()) { - assertEquals("bogus element", nestedListIterator.next(), stream.next()); - } - while (stream.hasPrevious()) { - assertEquals("bogus element", nestedListIterator.previous(), stream.previous()); - } - } - - public void testNextAndPreviousUpcast() { - ListIterator nestedListIterator = this.buildNestedListIterator(); - ListIterator stream = this.buildReadOnlyListIteratorUpcast(); - while (stream.hasNext()) { - assertEquals("bogus element", nestedListIterator.next(), stream.next()); - } - while (stream.hasPrevious()) { - assertEquals("bogus element", nestedListIterator.previous(), stream.previous()); - } - } - - public void testNextIndexAndPreviousIndex() { - ListIterator nestedListIterator = this.buildNestedListIterator(); - ListIterator stream = this.buildReadOnlyListIterator(); - while (stream.hasNext()) { - assertEquals("bogus index", nestedListIterator.nextIndex(), stream.nextIndex()); - nestedListIterator.next(); - stream.next(); - } - assertEquals("bogus index", this.buildList().size(), stream.nextIndex()); - while (stream.hasPrevious()) { - assertEquals("bogus element", nestedListIterator.previousIndex(), stream.previousIndex()); - nestedListIterator.previous(); - stream.previous(); - } - assertEquals("bogus index", -1, stream.previousIndex()); - } - - public void testNextIndexAndPreviousIndexUpcast() { - ListIterator nestedListIterator = this.buildNestedListIterator(); - ListIterator stream = this.buildReadOnlyListIteratorUpcast(); - while (stream.hasNext()) { - assertEquals("bogus index", nestedListIterator.nextIndex(), stream.nextIndex()); - nestedListIterator.next(); - stream.next(); - } - assertEquals("bogus index", this.buildList().size(), stream.nextIndex()); - while (stream.hasPrevious()) { - assertEquals("bogus element", nestedListIterator.previousIndex(), stream.previousIndex()); - nestedListIterator.previous(); - stream.previous(); - } - assertEquals("bogus index", -1, stream.previousIndex()); - } - - public void testNoSuchElementException() { - boolean exCaught = false; - ListIterator stream = this.buildReadOnlyListIterator(); - String string = null; - while (stream.hasNext()) { - string = stream.next(); - } - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testRemove() { - boolean exCaught = false; - for (ListIterator stream = this.buildReadOnlyListIterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testSet() { - boolean exCaught = false; - for (ListIterator stream = this.buildReadOnlyListIterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.set("bogus"); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testAdd() { - boolean exCaught = false; - for (ListIterator stream = this.buildReadOnlyListIterator(); stream.hasNext();) { - if (stream.next().equals("three")) { - try { - stream.add("bogus"); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - private ListIterator buildReadOnlyListIterator() { - return this.buildReadOnlyListIterator(this.buildNestedListIterator()); - } - - private ListIterator buildReadOnlyListIteratorUpcast() { - return this.buildReadOnlyListIteratorUpcast(this.buildNestedListIterator()); - } - - private ListIterator buildReadOnlyListIterator(ListIterator nestedListIterator) { - return new ReadOnlyListIterator(nestedListIterator); - } - - private ListIterator buildReadOnlyListIteratorUpcast(ListIterator nestedListIterator) { - return new ReadOnlyListIterator(nestedListIterator); - } - - private ListIterator buildNestedListIterator() { - return this.buildList().listIterator(); - } - - private List buildList() { - List l = new ArrayList(); - l.add("one"); - l.add("two"); - l.add("three"); - l.add("four"); - l.add("five"); - l.add("six"); - l.add("seven"); - l.add("eight"); - return l; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SingleElementIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SingleElementIteratorTests.java deleted file mode 100644 index 4fce5a6826..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SingleElementIteratorTests.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.Iterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator; - -@SuppressWarnings("nls") -public class SingleElementIteratorTests extends TestCase { - - public SingleElementIteratorTests(String name) { - super(name); - } - - public void testHasNext() { - int i = 0; - for (Iterator stream = this.buildSingleElementIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(1, i); - } - - public void testNext() { - for (Iterator stream = this.buildSingleElementIterator(); stream.hasNext();) { - assertEquals("bogus element", this.singleElement(), stream.next()); - } - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildSingleElementIterator(); - String string = stream.next(); - try { - string = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + string, exCaught); - } - - public void testRemove() { - boolean exCaught = false; - for (Iterator stream = this.buildSingleElementIterator(); stream.hasNext();) { - if (stream.next().equals(this.singleElement())) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - protected Iterator buildSingleElementIterator() { - return new SingleElementIterator(this.singleElement()); - } - - protected String singleElement() { - return "single element"; - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SingleElementListIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SingleElementListIteratorTests.java deleted file mode 100644 index d393a65201..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SingleElementListIteratorTests.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.Iterator; -import java.util.ListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementListIterator; - -@SuppressWarnings("nls") -public class SingleElementListIteratorTests extends SingleElementIteratorTests { - - public SingleElementListIteratorTests(String name) { - super(name); - } - - public void testNextIndex() { - ListIterator stream = this.buildSingleElementListIterator(); - while (stream.hasNext()) { - assertEquals("bogus index", 0, stream.nextIndex()); - stream.next(); - } - assertEquals("bogus index", 1, stream.nextIndex()); - } - - public void testHasPrevious() { - int i = 0; - ListIterator stream = this.buildSingleElementListIterator(); - while (stream.hasNext()) { - stream.next(); - i++; - } - assertEquals(1, i); - - while (stream.hasPrevious()) { - stream.previous(); - i++; - } - assertEquals(2, i); - } - - public void testPrevious() { - ListIterator stream = this.buildSingleElementListIterator(); - - while (stream.hasNext()) { - assertEquals("bogus element", this.singleElement(), stream.next()); - } - - while (stream.hasPrevious()) { - assertEquals("bogus element", this.singleElement(), stream.previous()); - } - } - - public void testPreviousIndex() { - ListIterator stream = this.buildSingleElementListIterator(); - - while (stream.hasNext()) { - assertEquals("bogus index", 0, stream.nextIndex()); - stream.next(); - } - - while (stream.hasPrevious()) { - assertEquals("bogus index", 0, stream.previousIndex()); - stream.previous(); - } - - assertEquals("bogus index", -1, stream.previousIndex()); - } - - public void testAdd() { - boolean exCaught = false; - ListIterator stream = this.buildSingleElementListIterator(); - - try { - stream.add("foo"); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testSet() { - boolean exCaught = false; - for (ListIterator stream = this.buildSingleElementListIterator(); stream.hasNext();) { - if (stream.next().equals(this.singleElement())) { - try { - stream.set("foo"); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - @Override - protected Iterator buildSingleElementIterator() { - return new SingleElementListIterator(this.singleElement()); - } - - protected ListIterator buildSingleElementListIterator() { - return (ListIterator) this.buildSingleElementIterator(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SuperIteratorWrapperTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SuperIteratorWrapperTests.java deleted file mode 100644 index 4bb6dc626d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SuperIteratorWrapperTests.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.iterators.SuperIteratorWrapper; - -@SuppressWarnings("nls") -public class SuperIteratorWrapperTests extends TestCase { - - public SuperIteratorWrapperTests(String name) { - super(name); - } - - public void testIterator() { - ArrayList list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - String concat = ""; - for (Iterator stream = list.iterator(); stream.hasNext(); ) { - concat += stream.next(); - } - assertEquals("foobarbaz", concat); - - Iterator iterator = new SuperIteratorWrapper(list); - concat = ""; - while (iterator.hasNext()) { - Object next = iterator.next(); - if (next.equals("bar")) { - iterator.remove(); - } else { - concat += next; - } - } - assertEquals("foobaz", concat); - assertEquals(2, list.size()); - assertFalse(list.contains("bar")); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SynchronizedIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SynchronizedIteratorTests.java deleted file mode 100644 index e30238fe74..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SynchronizedIteratorTests.java +++ /dev/null @@ -1,310 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.SynchronizedIterator; -import org.eclipse.jpt.common.utility.tests.internal.MultiThreadedTestCase; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SynchronizedIteratorTests - extends MultiThreadedTestCase -{ - public SynchronizedIteratorTests(String name) { - super(name); - } - - /** - * test that an unsynchronized iterator will produce corrupt output; - * thread 1 will read the first element from the iterator - * and then sleep for a bit, allowing thread 2 to sneak in and - * read the same element from the iterator - */ - public void testUnsynchronizedNext() throws Exception { - TestIterator iterator = this.buildTestIterator(TWO_TICKS); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - NextTestRunnable runnable2 = new NextTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - iterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // both threads should have read the same element from the iterator :-( - assertEquals("foo", runnable1.next); - assertEquals("foo", runnable2.next); - } - - /** - * test that a synchronized iterator will produce valid output; - * thread 1 will read the first element from the iterator - * and then sleep for a bit, but thread 2 will be locked out and - * wait to read the second element from the iterator - */ - public void testSynchronizedNext() throws Exception { - TestIterator nestedIterator = this.buildTestIterator(TWO_TICKS); - Iterator iterator = this.buildSynchronizedIterator(nestedIterator); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - NextTestRunnable runnable2 = new NextTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - nestedIterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // the threads should have read the correct elements from the iterator :-) - assertEquals("foo", runnable1.next); - assertEquals("bar", runnable2.next); - } - - public void testUnsynchronizedHasNext() throws Exception { - TestIterator iterator = this.buildTestIterator(TWO_TICKS); - iterator.next(); - iterator.next(); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - HasNextTestRunnable runnable2 = new HasNextTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - iterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // thread 1 will have the last element, - // but thread 2 will think there are more elements on the iterator :-( - assertEquals("baz", runnable1.next); - assertEquals(true, runnable2.hasNext); - } - - public void testSynchronizedHasNext() throws Exception { - TestIterator nestedIterator = this.buildTestIterator(TWO_TICKS); - Iterator iterator = this.buildSynchronizedIterator(nestedIterator); - iterator.next(); - iterator.next(); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - HasNextTestRunnable runnable2 = new HasNextTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - nestedIterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // thread 1 will have the last element, - // and thread 2 will think there are no more elements on the iterator :-) - assertEquals("baz", runnable1.next); - assertEquals(false, runnable2.hasNext); - } - - public void testUnsynchronizedRemove() throws Exception { - TestIterator iterator = this.buildTestIterator(TWO_TICKS); - iterator.next(); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - RemoveTestRunnable runnable2 = new RemoveTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - iterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // the wrong element was removed :-( - assertEquals("bar", runnable1.next); - assertFalse(iterator.list.contains("foo")); - assertTrue(iterator.list.contains("bar")); - assertTrue(iterator.list.contains("baz")); - } - - public void testSynchronizedRemove() throws Exception { - TestIterator nestedIterator = this.buildTestIterator(TWO_TICKS); - Iterator iterator = this.buildSynchronizedIterator(nestedIterator); - iterator.next(); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - RemoveTestRunnable runnable2 = new RemoveTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - nestedIterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // the correct element was removed :-) - assertEquals("bar", runnable1.next); - assertTrue(nestedIterator.list.contains("foo")); - assertFalse(nestedIterator.list.contains("bar")); - assertTrue(nestedIterator.list.contains("baz")); - } - - TestIterator buildTestIterator(long delay) { - return new TestIterator(delay, this.buildArray()); - } - - String[] buildArray() { - return new String[] {"foo", "bar", "baz"}; - } - - Iterator buildSynchronizedIterator(Iterator nestedIterator) { - return new SynchronizedIterator(nestedIterator); - } - - - /** - * next runnable - */ - class NextTestRunnable implements Runnable { - final Iterator iterator; - E next; - - NextTestRunnable(Iterator iterator) { - super(); - this.iterator = iterator; - } - - public void run() { - this.next = this.iterator.next(); - } - - } - - /** - * has next runnable - */ - class HasNextTestRunnable implements Runnable { - final Iterator iterator; - boolean hasNext; - - HasNextTestRunnable(Iterator iterator) { - super(); - this.iterator = iterator; - } - - public void run() { - this.hasNext = this.iterator.hasNext(); - } - - } - - /** - * remove runnable - */ - class RemoveTestRunnable implements Runnable { - final Iterator iterator; - - RemoveTestRunnable(Iterator iterator) { - super(); - this.iterator = iterator; - } - - public void run() { - this.iterator.remove(); - } - - } - - /** - * Test iterator: If {@link #next()} is called while executing on the - * {@link slowThread}, the iterator will delay for the configured time. - */ - static class TestIterator implements Iterator { - final long delay; - final ArrayList list = new ArrayList(); - int nextIndex = 0; - int lastIndex = -1; - Thread slowThread; - - TestIterator(long delay, E... array) { - super(); - this.delay = delay; - CollectionTools.addAll(this.list, array); - } - - public boolean hasNext() { - return this.nextIndex != this.list.size(); - } - - public E next() { - if (this.hasNext()) { - E next = this.list.get(this.nextIndex); - if (Thread.currentThread() == this.slowThread) { - TestTools.sleep(this.delay); - } - this.lastIndex = this.nextIndex++; - return next; - } - throw new NoSuchElementException(); - } - - public void remove() { - if (this.lastIndex == -1) { - throw new IllegalStateException(); - } - this.list.remove(this.lastIndex); - if (this.lastIndex < this.nextIndex) { // check necessary for ListIterator - this.nextIndex--; - } - this.lastIndex = -1; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SynchronizedListIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SynchronizedListIteratorTests.java deleted file mode 100644 index dbf0ac5b57..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/SynchronizedListIteratorTests.java +++ /dev/null @@ -1,524 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.Iterator; -import java.util.ListIterator; -import java.util.NoSuchElementException; - -import org.eclipse.jpt.common.utility.internal.iterators.SynchronizedListIterator; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SynchronizedListIteratorTests - extends SynchronizedIteratorTests -{ - public SynchronizedListIteratorTests(String name) { - super(name); - } - - public void testUnsynchronizedPrevious() throws Exception { - TestListIterator iterator = this.buildTestIterator(TWO_TICKS); - iterator.next(); - iterator.next(); - - PreviousTestRunnable runnable1 = new PreviousTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - PreviousTestRunnable runnable2 = new PreviousTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - iterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // both threads should have read the same element from the iterator :-( - assertEquals("bar", runnable1.previous); - assertEquals("bar", runnable2.previous); - } - - public void testSynchronizedPrevious() throws Exception { - TestListIterator nestedIterator = this.buildTestIterator(TWO_TICKS); - ListIterator iterator = this.buildSynchronizedIterator(nestedIterator); - iterator.next(); - iterator.next(); - - PreviousTestRunnable runnable1 = new PreviousTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - PreviousTestRunnable runnable2 = new PreviousTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - nestedIterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // the threads should have read the correct elements from the iterator :-) - assertEquals("bar", runnable1.previous); - assertEquals("foo", runnable2.previous); - } - - public void testUnsynchronizedHasPrevious() throws Exception { - TestListIterator iterator = this.buildTestIterator(TWO_TICKS); - iterator.next(); - - PreviousTestRunnable runnable1 = new PreviousTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - HasPreviousTestRunnable runnable2 = new HasPreviousTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - iterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // thread 1 will have the first element, - // but thread 2 will think there are more "previous" elements on the iterator :-( - assertEquals("foo", runnable1.previous); - assertEquals(true, runnable2.hasPrevious); - } - - public void testSynchronizedHasPrevious() throws Exception { - TestListIterator nestedIterator = this.buildTestIterator(TWO_TICKS); - ListIterator iterator = this.buildSynchronizedIterator(nestedIterator); - iterator.next(); - - PreviousTestRunnable runnable1 = new PreviousTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - HasPreviousTestRunnable runnable2 = new HasPreviousTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - nestedIterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // thread 1 will have the first element, - // and thread 2 will think there are no more "previous" elements on the iterator :-) - assertEquals("foo", runnable1.previous); - assertEquals(false, runnable2.hasPrevious); - } - - public void testUnsynchronizedNextIndex() throws Exception { - TestListIterator iterator = this.buildTestIterator(TWO_TICKS); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - NextIndexTestRunnable runnable2 = new NextIndexTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - iterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // thread 1 will have the first element, - // but thread 2 will think the next index is still 0 :-( - assertEquals("foo", runnable1.next); - assertEquals(0, runnable2.nextIndex); - } - - public void testSynchronizedNextIndex() throws Exception { - TestListIterator nestedIterator = this.buildTestIterator(TWO_TICKS); - ListIterator iterator = this.buildSynchronizedIterator(nestedIterator); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - NextIndexTestRunnable runnable2 = new NextIndexTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - nestedIterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // thread 1 will have the first element, - // and thread 2 will think the next index is 1 :-) - assertEquals("foo", runnable1.next); - assertEquals(1, runnable2.nextIndex); - } - - public void testUnsynchronizedPreviousIndex() throws Exception { - TestListIterator iterator = this.buildTestIterator(TWO_TICKS); - iterator.next(); - - PreviousTestRunnable runnable1 = new PreviousTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - PreviousIndexTestRunnable runnable2 = new PreviousIndexTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - iterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // thread 1 will have the first element, - // but thread 2 will think the next index is still 0 :-( - assertEquals("foo", runnable1.previous); - assertEquals(0, runnable2.previousIndex); - } - - public void testSynchronizedPreviousIndex() throws Exception { - TestListIterator nestedIterator = this.buildTestIterator(TWO_TICKS); - ListIterator iterator = this.buildSynchronizedIterator(nestedIterator); - iterator.next(); - - PreviousTestRunnable runnable1 = new PreviousTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - PreviousIndexTestRunnable runnable2 = new PreviousIndexTestRunnable(iterator); - Thread thread2 = this.buildThread(runnable2); - nestedIterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // thread 1 will have the first element, - // and thread 2 will think the next index is -1 :-) - assertEquals("foo", runnable1.previous); - assertEquals(-1, runnable2.previousIndex); - } - - public void testUnsynchronizedSet() throws Exception { - TestListIterator iterator = this.buildTestIterator(TWO_TICKS); - iterator.next(); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - SetTestRunnable runnable2 = new SetTestRunnable(iterator, "xxx"); - Thread thread2 = this.buildThread(runnable2); - iterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // the wrong element was set :-( - assertEquals("bar", runnable1.next); - assertFalse(iterator.list.contains("foo")); - assertTrue(iterator.list.contains("xxx")); - assertTrue(iterator.list.contains("bar")); - assertTrue(iterator.list.contains("baz")); - } - - public void testSynchronizedSet() throws Exception { - TestListIterator nestedIterator = this.buildTestIterator(TWO_TICKS); - ListIterator iterator = this.buildSynchronizedIterator(nestedIterator); - iterator.next(); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - SetTestRunnable runnable2 = new SetTestRunnable(iterator, "xxx"); - Thread thread2 = this.buildThread(runnable2); - nestedIterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // the right element was set :-) - assertEquals("bar", runnable1.next); - assertTrue(nestedIterator.list.contains("foo")); - assertFalse(nestedIterator.list.contains("bar")); - assertTrue(nestedIterator.list.contains("xxx")); - assertTrue(nestedIterator.list.contains("baz")); - } - - public void testUnsynchronizedAdd() throws Exception { - TestListIterator iterator = this.buildTestIterator(TWO_TICKS); - iterator.next(); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - AddTestRunnable runnable2 = new AddTestRunnable(iterator, "xxx"); - Thread thread2 = this.buildThread(runnable2); - iterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // the element was added at the wrong index :-( - assertEquals("bar", runnable1.next); - assertTrue(iterator.list.contains("foo")); - assertEquals(0, iterator.list.indexOf("xxx")); - assertTrue(iterator.list.contains("xxx")); - assertTrue(iterator.list.contains("bar")); - assertTrue(iterator.list.contains("baz")); - } - - public void testSynchronizedAdd() throws Exception { - TestListIterator nestedIterator = this.buildTestIterator(TWO_TICKS); - ListIterator iterator = this.buildSynchronizedIterator(nestedIterator); - iterator.next(); - - NextTestRunnable runnable1 = new NextTestRunnable(iterator); - Thread thread1 = this.buildThread(runnable1); - AddTestRunnable runnable2 = new AddTestRunnable(iterator, "xxx"); - Thread thread2 = this.buildThread(runnable2); - nestedIterator.slowThread = thread1; - - thread1.start(); - - // allow thread 1 to read the first element and get bogged down - this.sleep(TICK); - thread2.start(); - - // wait for the threads to finish - thread1.join(); - thread2.join(); - - // the element was added at the correct index :-) - assertEquals("bar", runnable1.next); - assertTrue(nestedIterator.list.contains("foo")); - assertEquals(1, nestedIterator.list.indexOf("xxx")); - assertTrue(nestedIterator.list.contains("xxx")); - assertTrue(nestedIterator.list.contains("bar")); - assertTrue(nestedIterator.list.contains("baz")); - } - - @Override - ListIterator buildSynchronizedIterator(Iterator nestedIterator) { - return new SynchronizedListIterator((ListIterator) nestedIterator); - } - - @Override - TestListIterator buildTestIterator(long delay) { - return new TestListIterator(delay, this.buildArray()); - } - - /** - * previous runnable - */ - class PreviousTestRunnable implements Runnable { - final ListIterator iterator; - E previous; - - PreviousTestRunnable(ListIterator iterator) { - super(); - this.iterator = iterator; - } - - public void run() { - this.previous = this.iterator.previous(); - } - - } - - /** - * has previous runnable - */ - class HasPreviousTestRunnable implements Runnable { - final ListIterator iterator; - boolean hasPrevious; - - HasPreviousTestRunnable(ListIterator iterator) { - super(); - this.iterator = iterator; - } - - public void run() { - this.hasPrevious = this.iterator.hasPrevious(); - } - - } - - /** - * next index runnable - */ - class NextIndexTestRunnable implements Runnable { - final ListIterator iterator; - int nextIndex; - - NextIndexTestRunnable(ListIterator iterator) { - super(); - this.iterator = iterator; - } - - public void run() { - this.nextIndex = this.iterator.nextIndex(); - } - - } - - /** - * previous index runnable - */ - class PreviousIndexTestRunnable implements Runnable { - final ListIterator iterator; - int previousIndex; - - PreviousIndexTestRunnable(ListIterator iterator) { - super(); - this.iterator = iterator; - } - - public void run() { - this.previousIndex = this.iterator.previousIndex(); - } - - } - - /** - * set runnable - */ - class SetTestRunnable implements Runnable { - final ListIterator iterator; - final E element; - - SetTestRunnable(ListIterator iterator, E element) { - super(); - this.iterator = iterator; - this.element = element; - } - - public void run() { - this.iterator.set(this.element); - } - - } - - /** - * add runnable - */ - class AddTestRunnable implements Runnable { - final ListIterator iterator; - final E element; - - AddTestRunnable(ListIterator iterator, E element) { - super(); - this.iterator = iterator; - this.element = element; - } - - public void run() { - this.iterator.add(this.element); - } - - } - - /** - * Test iterator: If {@link #next()} or {@link #previous()} is called - * while executing on the {@link slowThread}, the iterator will delay - * for the configured time. - */ - static class TestListIterator extends TestIterator implements ListIterator { - - TestListIterator(long delay, E... array) { - super(delay, array); - } - - public int nextIndex() { - return this.nextIndex; - } - - public boolean hasPrevious() { - return this.nextIndex != 0; - } - - public E previous() { - if (this.hasPrevious()) { - E previous = this.list.get(this.previousIndex()); - if (Thread.currentThread() == this.slowThread) { - TestTools.sleep(this.delay); - } - this.nextIndex--; - this.lastIndex = this.nextIndex; - return previous; - } - throw new NoSuchElementException(); - } - - public int previousIndex() { - return this.nextIndex - 1; - } - - public void set(E e) { - if (this.lastIndex == -1) { - throw new IllegalStateException(); - } - this.list.set(this.lastIndex, e); - } - - public void add(E e) { - this.list.add(this.lastIndex, e); - this.lastIndex++; - this.lastIndex = -1; - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TransformationIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TransformationIteratorTests.java deleted file mode 100644 index af7185a792..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TransformationIteratorTests.java +++ /dev/null @@ -1,230 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; - -@SuppressWarnings("nls") -public class TransformationIteratorTests extends TestCase { - - public TransformationIteratorTests(String name) { - super(name); - } - - public void testHasNext() { - int i = 0; - for (Iterator stream = this.buildIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(8, i); - } - - public void testHasNextUpcast() { - int i = 0; - for (Iterator stream = this.buildIteratorUpcast(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(8, i); - } - - public void testInnerHasNext() { - int i = 0; - for (Iterator stream = this.buildInnerIterator(); stream.hasNext();) { - stream.next(); - i++; - } - assertEquals(8, i); - } - - public void testNext() { - int i = 0; - for (Iterator stream = this.buildIterator(); stream.hasNext();) { - assertEquals("bogus transformation", ++i, stream.next().intValue()); - } - } - - public void testNextUpcast() { - int i = 0; - for (Iterator stream = this.buildIteratorUpcast(); stream.hasNext();) { - assertEquals("bogus transformation", ++i, ((Integer) stream.next()).intValue()); - } - } - - public void testInnerNext() { - int i = 0; - for (Iterator stream = this.buildInnerIterator(); stream.hasNext();) { - assertEquals("bogus transformation", ++i, stream.next().intValue()); - } - } - - public void testRemove() { - Collection c = this.buildCollection(); - for (Iterator stream = this.buildInnerTransformationIterator(c.iterator()); stream.hasNext();) { - if (stream.next().intValue() == 3) { - stream.remove(); - } - } - assertEquals("nothing removed", this.buildCollection().size() - 1, c.size()); - assertFalse("element still in collection", c.contains("333")); - assertTrue("wrong element removed", c.contains("22")); - } - - public void testInnerRemove() { - Collection c = this.buildCollection(); - for (Iterator stream = this.buildTransformationIterator(c.iterator(), this.buildTransformer()); stream.hasNext();) { - if (stream.next().intValue() == 3) { - stream.remove(); - } - } - assertEquals("nothing removed", this.buildCollection().size() - 1, c.size()); - assertFalse("element still in collection", c.contains("333")); - assertTrue("wrong element removed", c.contains("22")); - } - - public void testNoSuchElementException() { - boolean exCaught = false; - Iterator stream = this.buildIterator(); - Integer integer = null; - while (stream.hasNext()) { - integer = stream.next(); - } - try { - integer = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + integer, exCaught); - } - - public void testUnsupportedOperationException() { - boolean exCaught = false; - for (Iterator stream = this.buildUnmodifiableIterator(); stream.hasNext();) { - int i = stream.next().intValue(); - if (i == 3) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testIllegalStateException() { - boolean exCaught = false; - try { - this.buildIterator().remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue("IllegalStateException not thrown", exCaught); - } - - private Iterator buildIterator() { - return this.buildTransformationIterator(this.buildNestedIterator(), this.buildTransformer()); - } - - private Iterator buildIteratorUpcast() { - return this.buildTransformationIteratorUpcast(this.buildNestedIterator(), this.buildTransformerUpcast()); - } - - private Iterator buildInnerIterator() { - return this.buildInnerTransformationIterator(this.buildNestedIterator()); - } - - private Iterator buildUnmodifiableIterator() { - return this.buildTransformationIterator(this.buildUnmodifiableNestedIterator(), this.buildTransformer()); - } - - private Iterator buildTransformationIterator(Iterator nestedIterator, Transformer transformer) { - return new TransformationIterator(nestedIterator, transformer); - } - - private Iterator buildTransformationIteratorUpcast(Iterator nestedIterator, Transformer transformer) { - return new TransformationIterator(nestedIterator, transformer); - } - - private Transformer buildTransformer() { - // transform each string into an integer with a value of the string's length - return new Transformer() { - public Integer transform(String next) { - return new Integer(next.length()); - } - }; - } - - private Transformer buildTransformerUpcast() { - // transform each string into an integer with a value of the string's length - return new Transformer() { - public Integer transform(Object next) { - return new Integer(((String) next).length()); - } - }; - } - - private Iterator buildInnerTransformationIterator(Iterator nestedIterator) { - // transform each string into an integer with a value of the string's length - return new TransformationIterator(nestedIterator) { - @Override - protected Integer transform(String next) { - return new Integer(next.length()); - } - }; - } - - private Iterator buildNestedIterator() { - return this.buildCollection().iterator(); - } - - private Iterator buildUnmodifiableNestedIterator() { - return this.buildUnmodifiableCollection().iterator(); - } - - private Collection buildCollection() { - Collection c = new ArrayList(); - c.add("1"); - c.add("22"); - c.add("333"); - c.add("4444"); - c.add("55555"); - c.add("666666"); - c.add("7777777"); - c.add("88888888"); - return c; - } - - private Collection buildUnmodifiableCollection() { - return Collections.unmodifiableCollection(this.buildCollection()); - } - - public void testInvalidTransformationIterator() { - // missing method override - Iterator iterator = new TransformationIterator(this.buildCollection().iterator()); - boolean exCaught = false; - try { - Integer integer = iterator.next(); - fail("invalid integer: " + integer); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown", exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TransformationListIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TransformationListIteratorTests.java deleted file mode 100644 index 9a438096ba..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TransformationListIteratorTests.java +++ /dev/null @@ -1,322 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationListIterator; - -@SuppressWarnings("nls") -public class TransformationListIteratorTests extends TestCase { - - public TransformationListIteratorTests(String name) { - super(name); - } - - public void testHasNextAndHasPrevious() { - int i = 0; - ListIterator stream = this.buildIterator(); - - while (stream.hasNext()) { - stream.next(); - i++; - } - assertEquals(8, i); - - while (stream.hasPrevious()) { - stream.previous(); - i--; - } - assertEquals(0, i); - } - - public void testHasNextAndHasPreviousUpcast() { - int i = 0; - ListIterator stream = this.buildIteratorUpcast(); - - while (stream.hasNext()) { - stream.next(); - i++; - } - assertEquals(8, i); - - while (stream.hasPrevious()) { - stream.previous(); - i--; - } - assertEquals(0, i); - } - - public void testInnerHasNextAndHasPrevious() { - int i = 0; - ListIterator stream = this.buildInnerIterator(); - - while (stream.hasNext()) { - stream.next(); - i++; - } - assertEquals(8, i); - - while (stream.hasPrevious()) { - stream.previous(); - i--; - } - assertEquals(0, i); - } - - public void testNextAndPrevious() { - int i = 0; - ListIterator stream = this.buildIterator(); - - while (stream.hasNext()) { - assertEquals(++i, stream.next().intValue()); - } - - ++i; - - while (stream.hasPrevious()) { - assertEquals(--i, stream.previous().intValue()); - } - } - - public void testInnerNextAndPrevious() { - int i = 0; - ListIterator stream = this.buildInnerIterator(); - - while (stream.hasNext()) { - assertEquals(++i, stream.next().intValue()); - } - - ++i; - - while (stream.hasPrevious()) { - assertEquals(--i, stream.previous().intValue()); - } - } - - public void testNextIndexAndPreviousIndex() { - int i = -1; - ListIterator stream = this.buildIterator(); - - while (stream.hasNext()) { - assertEquals(++i, stream.nextIndex()); - stream.next(); - } - - ++i; - - while (stream.hasPrevious()) { - assertEquals(--i, stream.previousIndex()); - stream.previous(); - } - } - - public void testInnerNextIndexAndPreviousIndex() { - int i = -1; - ListIterator stream = this.buildInnerIterator(); - - while (stream.hasNext()) { - assertEquals(++i, stream.nextIndex()); - stream.next(); - } - - ++i; - - while (stream.hasPrevious()) { - assertEquals(--i, stream.previousIndex()); - stream.previous(); - } - } - - public void testRemove() { - List l = this.buildList(); - for (ListIterator stream = this.buildInnerTransformationListIterator(l.listIterator()); stream.hasNext();) { - if (stream.next().intValue() == 3) { - stream.remove(); - } - } - assertEquals("nothing removed", this.buildList().size() - 1, l.size()); - assertFalse("element still in list", l.contains("333")); - assertTrue("wrong element removed", l.contains("22")); - } - - public void testInnerRemove() { - List l = this.buildList(); - for (ListIterator stream = this.buildTransformationListIterator(l.listIterator(), this.buildTransformer()); stream.hasNext();) { - if (stream.next().intValue() == 3) { - stream.remove(); - } - } - assertEquals("nothing removed", this.buildList().size() - 1, l.size()); - assertFalse("element still in list", l.contains("333")); - assertTrue("wrong element removed", l.contains("22")); - } - - public void testUnsupportedOperationExceptionOnAdd() { - ListIterator stream = this.buildIterator(); - boolean exCaught = false; - try { - stream.add(new Integer(0)); - fail("exception not thrown"); - } catch (UnsupportedOperationException e) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testUnsupportedOperationExceptionOnSet() { - ListIterator stream = this.buildIterator(); - boolean exCaught = false; - try { - stream.set(new Integer(0)); - fail("exception not thrown"); - } catch (UnsupportedOperationException e) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testNoSuchElementException() { - boolean exCaught = false; - ListIterator stream = this.buildIterator(); - Integer integer = null; - while (stream.hasNext()) { - integer = stream.next(); - } - try { - integer = stream.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown: " + integer, exCaught); - } - - public void testUnsupportedOperationException() { - boolean exCaught = false; - for (Iterator stream = this.buildUnmodifiableIterator(); stream.hasNext();) { - int i = stream.next().intValue(); - if (i == 3) { - try { - stream.remove(); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - } - } - assertTrue("UnsupportedOperationException not thrown", exCaught); - } - - public void testIllegalStateException() { - boolean exCaught = false; - try { - this.buildIterator().remove(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue("IllegalStateException not thrown", exCaught); - } - - private ListIterator buildIterator() { - return this.buildTransformationListIterator(this.buildNestedIterator(), this.buildTransformer()); - } - - private ListIterator buildIteratorUpcast() { - return this.buildTransformationListIteratorUpcast(this.buildNestedIterator(), this.buildTransformerUpcast()); - } - - private ListIterator buildInnerIterator() { - return this.buildInnerTransformationListIterator(this.buildNestedIterator()); - } - - private ListIterator buildUnmodifiableIterator() { - return this.buildTransformationListIterator(this.buildUnmodifiableNestedIterator(), this.buildTransformer()); - } - - private ListIterator buildTransformationListIterator(ListIterator nestedIterator, Transformer transformer) { - return new TransformationListIterator(nestedIterator, transformer); - } - - private ListIterator buildTransformationListIteratorUpcast(ListIterator nestedIterator, Transformer transformer) { - return new TransformationListIterator(nestedIterator, transformer); - } - - private Transformer buildTransformer() { - // transform each string into an integer with a value of the string's length - return new Transformer() { - public Integer transform(String next) { - return new Integer(next.length()); - } - }; - } - - private Transformer buildTransformerUpcast() { - // transform each string into an integer with a value of the string's length - return new Transformer() { - public Integer transform(Object next) { - return new Integer(((String) next).length()); - } - }; - } - - private ListIterator buildInnerTransformationListIterator(ListIterator nestedIterator) { - // transform each string into an integer with a value of the string's length - return new TransformationListIterator(nestedIterator) { - @Override - protected Integer transform(String next) { - return new Integer(next.length()); - } - }; - } - - private ListIterator buildNestedIterator() { - return this.buildList().listIterator(); - } - - private ListIterator buildUnmodifiableNestedIterator() { - return this.buildUnmodifiableList().listIterator(); - } - - private List buildList() { - List l = new ArrayList(); - l.add("1"); - l.add("22"); - l.add("333"); - l.add("4444"); - l.add("55555"); - l.add("666666"); - l.add("7777777"); - l.add("88888888"); - return l; - } - - private List buildUnmodifiableList() { - return Collections.unmodifiableList(this.buildList()); - } - - public void testInvalidTransformationListIterator() { - // missing method override - Iterator iterator = new TransformationListIterator(this.buildList().listIterator()); - boolean exCaught = false; - try { - Integer integer = iterator.next(); - fail("invalid integer: " + integer); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown", exCaught); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TreeIteratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TreeIteratorTests.java deleted file mode 100644 index f800e12bde..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/iterators/TreeIteratorTests.java +++ /dev/null @@ -1,211 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.iterators; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.NoSuchElementException; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.TreeIterator; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class TreeIteratorTests extends TestCase { - /** this will be populated with all the nodes created for the test */ - Collection nodes = new ArrayList(); - - public TreeIteratorTests(String name) { - super(name); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testHasNext1() { - this.verifyHasNext(this.buildTreeIterator1()); - } - - public void testHasNext2() { - this.verifyHasNext(this.buildTreeIterator2()); - } - - private void verifyHasNext(Iterator iterator) { - int i = 0; - while (iterator.hasNext()) { - iterator.next(); - i++; - } - assertEquals(this.nodes.size(), i); - } - - public void testNext1() { - this.verifyNext(this.buildTreeIterator1()); - } - - public void testNext2() { - this.verifyNext(this.buildTreeIterator2()); - } - - private void verifyNext(Iterator iterator) { - while (iterator.hasNext()) { - assertTrue("bogus element", this.nodes.contains(iterator.next())); - } - } - - public void testNoSuchElementException1() { - this.verifyNoSuchElementException(this.buildTreeIterator1()); - } - - public void testNoSuchElementException2() { - this.verifyNoSuchElementException(this.buildTreeIterator2()); - } - - private void verifyNoSuchElementException(Iterator iterator) { - boolean exCaught = false; - while (iterator.hasNext()) { - iterator.next(); - } - try { - iterator.next(); - } catch (NoSuchElementException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown", exCaught); - } - - public void testRemove1() { - this.verifyRemove(this.buildTreeIterator1()); - } - - public void testRemove2() { - this.verifyRemove(this.buildTreeIterator2()); - } - - private void verifyRemove(Iterator iterator) { - String parentName = "child 2"; - String childName = "grandchild 2A"; - int startSize = this.childrenSize(parentName); - while (iterator.hasNext()) { - TreeNode node = iterator.next(); - if (node.getName().equals(childName)) { - iterator.remove(); - } - } - int endSize = this.childrenSize(parentName); - assertEquals(startSize - 1, endSize); - } - - private int childrenSize(String nodeName) { - for (Iterator stream = this.nodes.iterator(); stream.hasNext();) { - TreeNode node = stream.next(); - if (node.getName().equals(nodeName)) { - return node.childrenSize(); - } - } - throw new IllegalArgumentException(nodeName); - } - - /** - * build a tree iterator with an explicit midwife - */ - private Iterator buildTreeIterator1() { - return new TreeIterator(this.buildTree(), this.buildMidwife()); - } - - private TreeIterator.Midwife buildMidwife() { - return new TreeIterator.Midwife() { - public Iterator children(TreeNode next) { - return next.children(); - } - }; - } - - /** - * build a tree iterator with an override - */ - private Iterator buildTreeIterator2() { - return new TreeIterator(this.buildTree()) { - @Override - public Iterator children(TreeNode next) { - return next.children(); - } - }; - } - - public void testInvalidTreeIterator() { - // missing method override - Iterator iterator = new TreeIterator(this.buildTree()); - boolean exCaught = false; - try { - TreeNode tn = iterator.next(); - fail("invalid tree node: " + tn); - } catch (UnsupportedOperationException ex) { - exCaught = true; - } - assertTrue("NoSuchElementException not thrown", exCaught); - } - - private TreeNode buildTree() { - TreeNode root = new TreeNode("root"); - TreeNode child1 = new TreeNode(root, "child 1"); - new TreeNode(child1, "grandchild 1A"); - TreeNode child2 = new TreeNode(root, "child 2"); - new TreeNode(child2, "grandchild 2A"); - TreeNode grandchild2B = new TreeNode(child2, "grandchild 2B"); - new TreeNode(grandchild2B, "great-grandchild 2B1"); - new TreeNode(grandchild2B, "great-grandchild 2B2"); - TreeNode grandchild2C = new TreeNode(child2, "grandchild 2C"); - new TreeNode(grandchild2C, "great-grandchild 2C1"); - new TreeNode(root, "child 3"); - return root; - } - - private class TreeNode { - private String name; - private Collection children = new ArrayList(); - - public TreeNode(String name) { - super(); - TreeIteratorTests.this.nodes.add(this); // log node - this.name = name; - } - - public TreeNode(TreeNode parent, String name) { - this(name); - parent.addChild(this); - } - - public String getName() { - return this.name; - } - - private void addChild(TreeNode child) { - this.children.add(child); - } - - public Iterator children() { - return this.children.iterator(); - } - - public int childrenSize() { - return this.children.size(); - } - - @Override - public String toString() { - return "TreeNode(" + this.name + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/ChangeSupportTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/ChangeSupportTests.java deleted file mode 100644 index 2166827530..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/ChangeSupportTests.java +++ /dev/null @@ -1,4575 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model; - -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.EventListener; -import java.util.HashSet; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.Tools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ListChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.StateChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeAdapter; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ChangeSupportTests - extends TestCase -{ - TestModel testModel; - static final String TEST_TO_STRING = "this is a test"; - - ChangeListener changeListener = new Adapter(); - - StateChangeEvent stateChangeEvent; - boolean stateChangedCalled = false; - - PropertyChangeEvent propertyChangeEvent; - boolean propertyChangeCalled = false; - static final String PROPERTY_NAME = "propertyName"; - static final Object OLD_OBJECT_VALUE = new Object(); - static final Object NEW_OBJECT_VALUE = new Object(); - static final Integer OLD_INT_VALUE = new Integer(27); - static final Boolean OLD_BOOLEAN_VALUE = Boolean.TRUE; - static final Integer NEW_INT_VALUE = new Integer(42); - static final Boolean NEW_BOOLEAN_VALUE = Boolean.FALSE; - - CollectionEvent collectionEvent; - boolean itemsAddedCollectionCalled = false; - boolean itemsRemovedCollectionCalled = false; - boolean collectionChangedCalled = false; - boolean collectionClearedCalled = false; - static final String COLLECTION_NAME = "collectionName"; - static final Object ADDED_OBJECT_VALUE = new Object(); - static final Object ADDED_OBJECT_VALUE_2 = new Object(); - static final Object REMOVED_OBJECT_VALUE = new Object(); - static final int TARGET_INDEX = 7; - static final int SOURCE_INDEX = 22; - - ListEvent listEvent; - boolean itemsAddedListCalled = false; - boolean itemsRemovedListCalled = false; - boolean itemsReplacedListCalled = false; - boolean itemsMovedListCalled = false; - boolean listChangedCalled = false; - boolean listClearedCalled = false; - static final String LIST_NAME = "listName"; - static final int ADD_INDEX = 3; - static final int REMOVE_INDEX = 5; - static final int REPLACE_INDEX = 2; - - TreeEvent treeEvent; - boolean nodeAddedCalled = false; - boolean nodeRemovedCalled = false; - boolean treeChangedCalled = false; - boolean treeClearedCalled = false; - static final String TREE_NAME = "treeName"; - static final List OBJECT_PATH = Arrays.asList(new Object[] {new Object(), new Object(), new String()}); - - - public ChangeSupportTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.testModel = new TestModel(); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - - // ********** general tests ********** - - public void testNullSource() { - boolean exCaught = false; - try { - ChangeSupport cs = new ChangeSupport(null); - fail("bogus change support: " + cs); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - // ********** state change tests ********** - - public void testFireStateChange() { - this.stateChangeEvent = null; - this.stateChangedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireStateChange(); - assertNotNull(this.stateChangeEvent); - assertEquals(this.testModel, this.stateChangeEvent.getSource()); - assertTrue(this.stateChangedCalled); - } - - public void testHasAnyStateChangeListeners() { - assertTrue(this.testModel.hasNoStateChangeListeners()); - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.hasAnyStateChangeListeners()); - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.hasNoStateChangeListeners()); - } - - public void testHasAnyStateChangeListenersDuplicate() { - assertTrue(this.testModel.hasNoStateChangeListeners()); - this.testModel.addChangeListener(this.changeListener); - boolean exCaught = false; - try { - this.testModel.addChangeListener(this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - assertTrue(this.testModel.hasAnyStateChangeListeners()); - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.hasNoStateChangeListeners()); - - exCaught = false; - try { - this.testModel.removeChangeListener(this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(this.testModel.hasNoStateChangeListeners()); - } - - public void testAddNullStateListener() { - boolean exCaught = false; - try { - this.testModel.addStateChangeListener(null); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRemoveBogusStateListener() { - boolean exCaught = false; - try { - this.testModel.removeChangeListener(this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addPropertyChangeListener("foo", this.changeListener); - exCaught = false; - try { - this.testModel.removeChangeListener(this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addChangeListener(this.changeListener); - exCaught = false; - try { - this.testModel.removeStateChangeListener(new Adapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - exCaught = false; - try { - this.testModel.removeStateChangeListener(new StateChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - // ********** property change tests ********** - - public void testFirePropertyChangedEvent() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedEvent(); - this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedEvent(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedEvent(); - this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedEvent(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testFirePropertyChangedEventNoChange() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedEventNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedEventNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedEventNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedEventNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testFirePropertyChangedObjectObject() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedObjectObject(); - this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedObjectObject(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedObjectObject(); - this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedObjectObject(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testFirePropertyChangedObjectObjectNoChange() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedObjectObjectNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedObjectObjectNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedObjectObjectNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedObjectObjectNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testFirePropertyChangedObject() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedObject(); - this.verifyPropertyChangeEvent(null, NEW_OBJECT_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedObject(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedObject(); - this.verifyPropertyChangeEvent(null, NEW_OBJECT_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedObject(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testFirePropertyChangedObjectNoChange() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedObjectNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedObjectNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedObjectNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedObjectNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testFirePropertyChangedIntInt() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedIntInt(); - this.verifyPropertyChangeEvent(OLD_INT_VALUE, NEW_INT_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedIntInt(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedIntInt(); - this.verifyPropertyChangeEvent(OLD_INT_VALUE, NEW_INT_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedIntInt(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testFirePropertyChangedIntIntNoChange() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedIntIntNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedIntIntNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedIntIntNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedIntIntNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testFirePropertyChangedBooleanBoolean() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedBooleanBoolean(); - this.verifyPropertyChangeEvent(OLD_BOOLEAN_VALUE, NEW_BOOLEAN_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedBooleanBoolean(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedBooleanBoolean(); - this.verifyPropertyChangeEvent(OLD_BOOLEAN_VALUE, NEW_BOOLEAN_VALUE); - assertTrue(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedBooleanBoolean(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testFirePropertyChangedBooleanBooleanNoChange() { - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedBooleanBooleanNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFirePropertyChangedBooleanBooleanNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedBooleanBooleanNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - this.testModel.testFirePropertyChangedBooleanBooleanNoChange(); - assertNull(this.propertyChangeEvent); - assertFalse(this.propertyChangeCalled); - } - - public void testHasAnyPropertyChangeListeners() { - assertTrue(this.testModel.hasNoPropertyChangeListeners(PROPERTY_NAME)); - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME)); - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.hasNoPropertyChangeListeners(PROPERTY_NAME)); - - assertTrue(this.testModel.hasNoPropertyChangeListeners(PROPERTY_NAME)); - this.testModel.addPropertyChangeListener(PROPERTY_NAME, this.changeListener); - assertTrue(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME)); - this.testModel.removePropertyChangeListener(PROPERTY_NAME, this.changeListener); - assertTrue(this.testModel.hasNoPropertyChangeListeners(PROPERTY_NAME)); - } - - public void testAddNullPropertyListener() { - boolean exCaught = false; - try { - this.testModel.addChangeListener(null); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddNullPropertyListenerName() { - boolean exCaught = false; - try { - this.testModel.addPropertyChangeListener("foo", null); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRemoveBogusPropertyListener() { - boolean exCaught = false; - try { - this.testModel.removePropertyChangeListener("foo", new PropertyChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addCollectionChangeListener("foo", this.changeListener); - exCaught = false; - try { - this.testModel.removePropertyChangeListener("foo", this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addPropertyChangeListener("foo", this.changeListener); - exCaught = false; - try { - this.testModel.removePropertyChangeListener("foo", new PropertyChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - exCaught = false; - try { - this.testModel.removePropertyChangeListener("foo", new PropertyChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - private void verifyPropertyChangeEvent(Object oldValue, Object newValue) { - this.verifyPropertyChangeEvent(this.testModel, oldValue, newValue); - } - - private void verifyPropertyChangeEvent(Object source, Object oldValue, Object newValue) { - assertNotNull(this.propertyChangeEvent); - assertEquals(source, this.propertyChangeEvent.getSource()); - assertEquals(PROPERTY_NAME, this.propertyChangeEvent.getPropertyName()); - assertEquals(oldValue, this.propertyChangeEvent.getOldValue()); - assertEquals(newValue, this.propertyChangeEvent.getNewValue()); - } - - - // ********** collection change tests ********** - - public void testFireItemsAddedCollectionEvent() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsAddedCollectionEvent(); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsAddedCollectionEvent(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsAddedCollectionEvent(); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsAddedCollectionEvent(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testFireItemsAddedCollectionEventNoChange() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsAddedCollectionEventNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsAddedCollectionEventNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsAddedCollectionEventNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsAddedCollectionEventNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testFireItemsAddedCollection() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsAddedCollection(); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsAddedCollection(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsAddedCollection(); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsAddedCollection(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testFireItemsAddedCollectionNoChange() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsAddedCollectionNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsAddedCollectionNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsAddedCollectionNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsAddedCollectionNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testFireItemAddedCollection() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemAddedCollection(); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemAddedCollection(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemAddedCollection(); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemAddedCollection(); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testFireItemsRemovedCollectionEvent() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedCollectionEvent(); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedCollectionEvent(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsRemovedCollectionEvent(); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsRemovedCollectionEvent(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testFireItemsRemovedCollectionEventNoChange() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedCollectionEventNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedCollectionEventNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsRemovedCollectionEventNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsRemovedCollectionEventNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testFireItemsRemovedCollection() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedCollection(); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedCollection(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsRemovedCollection(); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsRemovedCollection(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testFireItemsRemovedCollectionNoChange() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedCollectionNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedCollectionNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsRemovedCollectionNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemsRemovedCollectionNoChange(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testFireItemRemovedCollection() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemRemovedCollection(); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemRemovedCollection(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemRemovedCollection(); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireItemRemovedCollection(); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testFireCollectionCleared() { - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireCollectionCleared(); - this.verifyCollectionEvent(null); - assertTrue(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireCollectionCleared(); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireCollectionCleared(); - this.verifyCollectionEvent(null); - assertTrue(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireCollectionCleared(); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - } - - public void testFireCollectionChangedEvent() { - this.collectionEvent = null; - this.collectionChangedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireCollectionChangedEvent(); - this.verifyCollectionEvent(null); - assertTrue(this.collectionChangedCalled); - - this.collectionEvent = null; - this.collectionChangedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireCollectionChangedEvent(); - assertNull(this.collectionEvent); - assertFalse(this.collectionChangedCalled); - - this.collectionEvent = null; - this.collectionChangedCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireCollectionChangedEvent(); - this.verifyCollectionEvent(null); - assertTrue(this.collectionChangedCalled); - - this.collectionEvent = null; - this.collectionChangedCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireCollectionChangedEvent(); - assertNull(this.collectionEvent); - assertFalse(this.collectionChangedCalled); - } - - public void testFireCollectionChanged() { - this.collectionEvent = null; - this.collectionChangedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireCollectionChanged(); - this.verifyCollectionEvent(null); - assertTrue(this.collectionChangedCalled); - - this.collectionEvent = null; - this.collectionChangedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireCollectionChanged(); - assertNull(this.collectionEvent); - assertFalse(this.collectionChangedCalled); - - this.collectionEvent = null; - this.collectionChangedCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireCollectionChanged(); - this.verifyCollectionEvent(null); - assertTrue(this.collectionChangedCalled); - - this.collectionEvent = null; - this.collectionChangedCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - this.testModel.testFireCollectionChanged(); - assertNull(this.collectionEvent); - assertFalse(this.collectionChangedCalled); - } - - public void testAddItemToCollection() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.testAddItemToCollection()); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.testAddItemToCollection()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testAddItemToCollection()); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testAddItemToCollection()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testAddItemToCollectionNoChange() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertFalse(this.testModel.testAddItemToCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertFalse(this.testModel.testAddItemToCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testAddItemToCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testAddItemToCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testAddItemsToCollection() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.testAddItemsToCollection()); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.testAddItemsToCollection()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testAddItemsToCollection()); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testAddItemsToCollection()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testAddItemsToCollectionNoChange() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertFalse(this.testModel.testAddItemsToCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertFalse(this.testModel.testAddItemsToCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testAddItemsToCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testAddItemsToCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testAddItemsToCollectionMixed() { - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.testAddItemsToCollectionMixed()); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE_2); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.testAddItemsToCollectionMixed()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testAddItemsToCollectionMixed()); - this.verifyCollectionEvent(ADDED_OBJECT_VALUE_2); - assertTrue(this.itemsAddedCollectionCalled); - - this.collectionEvent = null; - this.itemsAddedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testAddItemsToCollectionMixed()); - assertNull(this.collectionEvent); - assertFalse(this.itemsAddedCollectionCalled); - } - - public void testRemoveItemFromCollection() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.testRemoveItemFromCollection()); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.testRemoveItemFromCollection()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testRemoveItemFromCollection()); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testRemoveItemFromCollection()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testRemoveItemFromCollectionNoChange() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertFalse(this.testModel.testRemoveItemFromCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertFalse(this.testModel.testRemoveItemFromCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRemoveItemFromCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRemoveItemFromCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testRemoveItemsFromCollection() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.testRemoveItemsFromCollection()); - this.verifyCollectionChangeEvent2(REMOVED_OBJECT_VALUE, "foo", "bar"); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.testRemoveItemsFromCollection()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testRemoveItemsFromCollection()); - this.verifyCollectionChangeEvent2(REMOVED_OBJECT_VALUE, "foo", "bar"); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testRemoveItemsFromCollection()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testRemoveItemsFromCollectionNoChange1() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testRemoveItemsFromCollectionNoChange2() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange2()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange2()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange2()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange2()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testRemoveItemsFromCollectionNoChange3() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange3()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange3()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange3()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange3()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testRetainItemsInCollection1() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.testRetainItemsInCollection1()); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.testRetainItemsInCollection1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testRetainItemsInCollection1()); - this.verifyCollectionEvent(REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testRetainItemsInCollection1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - // collection cleared... - public void testRetainItemsInCollection2() { - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.testRetainItemsInCollection2()); - this.verifyCollectionEvent(null); - assertTrue(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.testRetainItemsInCollection2()); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testRetainItemsInCollection2()); - this.verifyCollectionEvent(null); - assertTrue(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testRetainItemsInCollection2()); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - } - - public void testRetainItemsInCollectionNoChange1() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertFalse(this.testModel.testRetainItemsInCollectionNoChange1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertFalse(this.testModel.testRetainItemsInCollectionNoChange1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRetainItemsInCollectionNoChange1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRetainItemsInCollectionNoChange1()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testRetainItemsInCollectionNoChange2() { - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertFalse(this.testModel.testRetainItemsInCollectionNoChange2()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertFalse(this.testModel.testRetainItemsInCollectionNoChange2()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRetainItemsInCollectionNoChange2()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - - this.collectionEvent = null; - this.itemsRemovedCollectionCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testRetainItemsInCollectionNoChange2()); - assertNull(this.collectionEvent); - assertFalse(this.itemsRemovedCollectionCalled); - } - - public void testClearCollection() { - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.testClearCollection()); - this.verifyCollectionEvent(null); - assertTrue(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.testClearCollection()); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testClearCollection()); - this.verifyCollectionEvent(null); - assertTrue(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.testClearCollection()); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - } - - public void testClearCollectionNoChange() { - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.addChangeListener(this.changeListener); - assertFalse(this.testModel.testClearCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - assertFalse(this.testModel.testClearCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testClearCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - - this.collectionEvent = null; - this.collectionClearedCalled = false; - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertFalse(this.testModel.testClearCollectionNoChange()); - assertNull(this.collectionEvent); - assertFalse(this.collectionClearedCalled); - } - - public void testSynchronizeCollection1() { - CollectionSynchListener csl = new CollectionSynchListener(); - this.testModel.addChangeListener(csl); - assertTrue(this.testModel.testSynchronizeCollection1()); - assertTrue(csl.itemsAdded); - assertTrue(csl.itemsRemoved); - assertFalse(csl.collectionChanged); - assertFalse(csl.collectionCleared); - assertEquals(2, csl.addedItems.size()); - assertTrue(CollectionTools.containsAll(csl.addedItems, new Object[] {"joo", "jar"})); - assertEquals(2, csl.removedItems.size()); - assertTrue(CollectionTools.containsAll(csl.removedItems, new Object[] {"foo", "bar"})); - } - - public void testSynchronizeCollection2() { - CollectionSynchListener csl = new CollectionSynchListener(); - this.testModel.addChangeListener(csl); - assertTrue(this.testModel.testSynchronizeCollection2()); - assertFalse(csl.itemsAdded); - assertFalse(csl.itemsRemoved); - assertFalse(csl.collectionChanged); - assertTrue(csl.collectionCleared); - assertTrue(csl.addedItems.isEmpty()); - assertTrue(csl.removedItems.isEmpty()); - } - - public void testSynchronizeCollection3() { - CollectionSynchListener csl = new CollectionSynchListener(); - this.testModel.addChangeListener(csl); - assertTrue(this.testModel.testSynchronizeCollection3()); - assertTrue(csl.itemsAdded); - assertFalse(csl.itemsRemoved); - assertFalse(csl.collectionChanged); - assertFalse(csl.collectionCleared); - assertEquals(3, csl.addedItems.size()); - assertTrue(CollectionTools.containsAll(csl.addedItems, new Object[] {"joo", "jar", "baz"})); - assertTrue(csl.removedItems.isEmpty()); - } - - class CollectionSynchListener extends ChangeAdapter { - boolean itemsAdded = false; - boolean itemsRemoved = false; - boolean collectionChanged = false; - boolean collectionCleared = false; - Collection addedItems = new ArrayList(); - Collection removedItems = new ArrayList(); - @Override - public void collectionChanged(CollectionChangeEvent event) { - this.collectionChanged = true; - } - @Override - public void collectionCleared(CollectionClearEvent event) { - this.collectionCleared = true; - } - @Override - public void itemsAdded(CollectionAddEvent event) { - this.itemsAdded = true; - CollectionTools.addAll(this.addedItems, event.getItems()); - } - @Override - public void itemsRemoved(CollectionRemoveEvent event) { - this.itemsRemoved = true; - CollectionTools.addAll(this.removedItems, event.getItems()); - } - } - - public void testHasAnyCollectionChangeListeners() { - assertTrue(this.testModel.hasNoCollectionChangeListeners(COLLECTION_NAME)); - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.hasAnyCollectionChangeListeners(COLLECTION_NAME)); - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.hasNoCollectionChangeListeners(COLLECTION_NAME)); - - assertTrue(this.testModel.hasNoCollectionChangeListeners(COLLECTION_NAME)); - this.testModel.addCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.hasAnyCollectionChangeListeners(COLLECTION_NAME)); - this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this.changeListener); - assertTrue(this.testModel.hasNoCollectionChangeListeners(COLLECTION_NAME)); - } - - public void testAddNullCollectionListener() { - boolean exCaught = false; - try { - this.testModel.addCollectionChangeListener("foo", null); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRemoveBogusCollectionListener() { - boolean exCaught = false; - try { - this.testModel.removeCollectionChangeListener("foo", this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addPropertyChangeListener("foo", this.changeListener); - exCaught = false; - try { - this.testModel.removeCollectionChangeListener("foo", this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addCollectionChangeListener("foo", this.changeListener); - exCaught = false; - try { - this.testModel.removeCollectionChangeListener("foo", new CollectionChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - exCaught = false; - try { - this.testModel.removeCollectionChangeListener("foo", new CollectionChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - private void verifyCollectionEvent(Object item) { - assertNotNull(this.collectionEvent); - assertEquals(this.testModel, this.collectionEvent.getSource()); - assertEquals(COLLECTION_NAME, this.collectionEvent.getCollectionName()); - if (item != null) { - assertEquals(item, this.getCollectionEventItems().iterator().next()); - } - } - - private Iterable getCollectionEventItems() { - if (this.collectionEvent instanceof CollectionAddEvent) { - return ((CollectionAddEvent) this.collectionEvent).getItems(); - } else if (this.collectionEvent instanceof CollectionRemoveEvent) { - return ((CollectionRemoveEvent) this.collectionEvent).getItems(); - } - throw new IllegalStateException(); - } - - private void verifyCollectionChangeEvent2(Object... items) { - assertNotNull(this.collectionEvent); - assertEquals(this.testModel, this.collectionEvent.getSource()); - assertEquals(COLLECTION_NAME, this.collectionEvent.getCollectionName()); - assertEquals(items.length, this.getCollectionEventItemsSize()); - for (Object item : items) { - assertTrue(CollectionTools.contains(this.getCollectionEventItems(), item)); - } - } - - private int getCollectionEventItemsSize() { - if (this.collectionEvent instanceof CollectionAddEvent) { - return ((CollectionAddEvent) this.collectionEvent).getItemsSize(); - } else if (this.collectionEvent instanceof CollectionRemoveEvent) { - return ((CollectionRemoveEvent) this.collectionEvent).getItemsSize(); - } - throw new IllegalStateException(); - } - - - // ********** list change tests ********** - - public void testFireItemsAddedListEvent() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsAddedListEvent(); - this.verifyListAddEvent(ADD_INDEX, ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsAddedListEvent(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsAddedListEvent(); - this.verifyListAddEvent(ADD_INDEX, ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsAddedListEvent(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testFireItemsAddedListEventNoChange() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsAddedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsAddedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsAddedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsAddedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testFireItemsAddedList() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsAddedList(); - this.verifyListAddEvent(ADD_INDEX, ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsAddedList(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsAddedList(); - this.verifyListAddEvent(ADD_INDEX, ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsAddedList(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testFireItemsAddedListNoChange() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsAddedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsAddedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsAddedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsAddedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testFireItemAddedList() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemAddedList(); - this.verifyListAddEvent(ADD_INDEX, ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemAddedList(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemAddedList(); - this.verifyListAddEvent(ADD_INDEX, ADDED_OBJECT_VALUE); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemAddedList(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testFireItemsRemovedListEvent() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedListEvent(); - this.verifyListRemoveEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedListEvent(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsRemovedListEvent(); - this.verifyListRemoveEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsRemovedListEvent(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testFireItemsRemovedListEventNoChange() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsRemovedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsRemovedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testFireItemsRemovedList() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedList(); - this.verifyListRemoveEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsRemovedList(); - this.verifyListRemoveEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsRemovedList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testFireItemsRemovedListNoChange() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsRemovedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsRemovedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsRemovedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testFireItemRemovedList() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemRemovedList(); - this.verifyListRemoveEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemRemovedList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemRemovedList(); - this.verifyListRemoveEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemRemovedList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testFireItemsReplacedListEvent() { - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsReplacedListEvent(); - this.verifyListReplaceEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsReplacedListEvent(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsReplacedListEvent(); - this.verifyListReplaceEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsReplacedListEvent(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - } - - public void testFireItemsReplacedListEventNoChange() { - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsReplacedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsReplacedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsReplacedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsReplacedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - } - - public void testFireItemsReplacedList() { - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsReplacedList(); - this.verifyListReplaceEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsReplacedList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsReplacedList(); - this.verifyListReplaceEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsReplacedList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - } - - public void testFireItemsReplacedListNoChange() { - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsReplacedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsReplacedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsReplacedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsReplacedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - } - - public void testFireItemReplacedList() { - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemReplacedList(); - this.verifyListReplaceEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemReplacedList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemReplacedList(); - this.verifyListReplaceEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemReplacedList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - } - - public void testFireItemsMovedListEvent() { - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsMovedListEvent(); - this.verifyListMoveEvent(TARGET_INDEX, SOURCE_INDEX); - assertTrue(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsMovedListEvent(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsMovedListEvent(); - this.verifyListMoveEvent(TARGET_INDEX, SOURCE_INDEX); - assertTrue(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsMovedListEvent(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - } - - public void testFireItemsMovedListEventNoChange() { - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsMovedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsMovedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsMovedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsMovedListEventNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - } - - public void testFireItemsMovedList() { - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsMovedList(); - this.verifyListMoveEvent(TARGET_INDEX, SOURCE_INDEX); - assertTrue(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsMovedList(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsMovedList(); - this.verifyListMoveEvent(TARGET_INDEX, SOURCE_INDEX); - assertTrue(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsMovedList(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - } - - public void testFireItemsMovedListNoChange() { - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemsMovedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemsMovedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsMovedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemsMovedListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - } - - public void testFireItemMovedList() { - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireItemMovedList(); - this.verifyListMoveEvent(TARGET_INDEX, SOURCE_INDEX); - assertTrue(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireItemMovedList(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemMovedList(); - this.verifyListMoveEvent(TARGET_INDEX, SOURCE_INDEX); - assertTrue(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireItemMovedList(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - } - - public void testFireListClearedEvent() { - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireListClearedEvent(); - this.verifyListClearEvent(); - assertTrue(this.listClearedCalled); - - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireListClearedEvent(); - assertNull(this.listEvent); - assertFalse(this.listClearedCalled); - - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireListClearedEvent(); - this.verifyListClearEvent(); - assertTrue(this.listClearedCalled); - - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireListClearedEvent(); - assertNull(this.listEvent); - assertFalse(this.listClearedCalled); - } - - public void testFireListCleared() { - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireListCleared(); - this.verifyListClearEvent(); - assertTrue(this.listClearedCalled); - - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireListCleared(); - assertNull(this.listEvent); - assertFalse(this.listClearedCalled); - - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireListCleared(); - this.verifyListClearEvent(); - assertTrue(this.listClearedCalled); - - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireListCleared(); - assertNull(this.listEvent); - assertFalse(this.listClearedCalled); - } - - public void testFireListChangedEvent() { - this.listEvent = null; - this.listChangedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireListChangedEvent(); - this.verifyListChangeEvent(); - assertTrue(this.listChangedCalled); - - this.listEvent = null; - this.listChangedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireListChangedEvent(); - assertNull(this.listEvent); - assertFalse(this.listChangedCalled); - - this.listEvent = null; - this.listChangedCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireListChangedEvent(); - this.verifyListChangeEvent(); - assertTrue(this.listChangedCalled); - - this.listEvent = null; - this.listChangedCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireListChangedEvent(); - assertNull(this.listEvent); - assertFalse(this.listChangedCalled); - } - - public void testFireListChanged() { - this.listEvent = null; - this.listChangedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireListChanged(); - this.verifyListChangeEvent(); - assertTrue(this.listChangedCalled); - - this.listEvent = null; - this.listChangedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireListChanged(); - assertNull(this.listEvent); - assertFalse(this.listChangedCalled); - - this.listEvent = null; - this.listChangedCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireListChanged(); - this.verifyListChangeEvent(); - assertTrue(this.listChangedCalled); - - this.listEvent = null; - this.listChangedCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testFireListChanged(); - assertNull(this.listEvent); - assertFalse(this.listChangedCalled); - } - - public void testAddItemToListIndex() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testAddItemToListIndex(); - this.verifyListAddEvent(2, "joo"); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testAddItemToListIndex(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemToListIndex(); - this.verifyListAddEvent(2, "joo"); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemToListIndex(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testAddItemToList() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testAddItemToList(); - this.verifyListAddEvent(3, "joo"); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testAddItemToList(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemToList(); - this.verifyListAddEvent(3, "joo"); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemToList(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testAddItemsToListIndex() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testAddItemsToListIndex(); - this.verifyListAddEvent(2, "joo"); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testAddItemsToListIndex(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemsToListIndex(); - this.verifyListAddEvent(2, "joo"); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemsToListIndex(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testAddItemsToListIndexNoChange() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testAddItemsToListIndexNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testAddItemsToListIndexNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemsToListIndexNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemsToListIndexNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testAddItemsToList() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testAddItemsToList(); - this.verifyListAddEvent(3, "joo"); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testAddItemsToList(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemsToList(); - this.verifyListAddEvent(3, "joo"); - assertTrue(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemsToList(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testAddItemsToListNoChange() { - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testAddItemsToListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testAddItemsToListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemsToListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - - this.listEvent = null; - this.itemsAddedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testAddItemsToListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsAddedListCalled); - } - - public void testRemoveItemFromListIndex() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testRemoveItemFromListIndex(); - this.verifyListRemoveEvent(1, "bar"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testRemoveItemFromListIndex(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemFromListIndex(); - this.verifyListRemoveEvent(1, "bar"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemFromListIndex(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testRemoveItemFromList() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testRemoveItemFromList(); - this.verifyListRemoveEvent(1, "bar"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testRemoveItemFromList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemFromList(); - this.verifyListRemoveEvent(1, "bar"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemFromList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testRemoveItemsFromListIndex() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testRemoveItemsFromListIndex(); - this.verifyListRemoveEvent(1, "bar"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testRemoveItemsFromListIndex(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemsFromListIndex(); - this.verifyListRemoveEvent(1, "bar"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemsFromListIndex(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testRemoveItemsFromListIndexNoChange() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testRemoveItemsFromListIndexNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testRemoveItemsFromListIndexNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemsFromListIndexNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemsFromListIndexNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testRemoveItemsFromList() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testRemoveItemsFromList(); - this.verifyListRemoveEvent(1, "bar"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testRemoveItemsFromList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemsFromList(); - this.verifyListRemoveEvent(1, "bar"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemsFromList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testRemoveItemsFromListNoChange() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testRemoveItemsFromListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testRemoveItemsFromListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemsFromListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRemoveItemsFromListNoChange(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testRetainItemsInList() { - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testRetainItemsInList(); - this.verifyListRemoveEvent(0, "foo"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testRetainItemsInList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRetainItemsInList(); - this.verifyListRemoveEvent(0, "foo"); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testRetainItemsInList(); - assertNull(this.listEvent); - assertFalse(this.itemsRemovedListCalled); - } - - public void testReplaceItemInList() { - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testReplaceItemInList(); - this.verifyListReplaceEvent(1, "xxx", "bar"); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testReplaceItemInList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testReplaceItemInList(); - this.verifyListReplaceEvent(1, "xxx", "bar"); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testReplaceItemInList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - } - - public void testSetItemsInList() { - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testSetItemsInList(); - this.verifyListReplaceEvent(1, "xxx", "bar"); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testSetItemsInList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testSetItemsInList(); - this.verifyListReplaceEvent(1, "xxx", "bar"); - assertTrue(this.itemsReplacedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testSetItemsInList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - } - - public void testMoveItemsInList() { - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testMoveItemsInList(); - this.verifyListMoveEvent(2, 4, 2); - assertTrue(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testMoveItemsInList(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testMoveItemsInList(); - this.verifyListMoveEvent(2, 4, 2); - assertTrue(this.itemsMovedListCalled); - - this.listEvent = null; - this.itemsMovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testMoveItemsInList(); - assertNull(this.listEvent); - assertFalse(this.itemsMovedListCalled); - } - - public void testClearList() { - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testClearList(); - this.verifyListClearEvent(); - assertTrue(this.listClearedCalled); - - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testClearList(); - assertNull(this.listEvent); - assertFalse(this.listClearedCalled); - - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testClearList(); - this.verifyListClearEvent(); - assertTrue(this.listClearedCalled); - - this.listEvent = null; - this.listClearedCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testClearList(); - assertNull(this.listEvent); - assertFalse(this.listClearedCalled); - } - - public void testSynchronizeList() { - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.itemsRemovedListCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testSynchronizeList(); - assertNotNull(this.listEvent); - assertTrue(this.itemsReplacedListCalled); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.itemsRemovedListCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testSynchronizeList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - assertFalse(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.itemsRemovedListCalled = false; - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testSynchronizeList(); - assertNotNull(this.listEvent); - assertTrue(this.itemsReplacedListCalled); - assertTrue(this.itemsRemovedListCalled); - - this.listEvent = null; - this.itemsReplacedListCalled = false; - this.itemsRemovedListCalled = false; - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - this.testModel.testSynchronizeList(); - assertNull(this.listEvent); - assertFalse(this.itemsReplacedListCalled); - assertFalse(this.itemsRemovedListCalled); - } - - public void testHasAnyListChangeListeners() { - assertTrue(this.testModel.hasNoListChangeListeners(LIST_NAME)); - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.hasAnyListChangeListeners(LIST_NAME)); - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.hasNoListChangeListeners(LIST_NAME)); - - assertTrue(this.testModel.hasNoListChangeListeners(LIST_NAME)); - this.testModel.addListChangeListener(LIST_NAME, this.changeListener); - assertTrue(this.testModel.hasAnyListChangeListeners(LIST_NAME)); - this.testModel.removeListChangeListener(LIST_NAME, this.changeListener); - assertTrue(this.testModel.hasNoListChangeListeners(LIST_NAME)); - } - - public void testAddNullListListener() { - boolean exCaught = false; - try { - this.testModel.addListChangeListener("foo", null); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRemoveBogusListListener() { - boolean exCaught = false; - try { - this.testModel.removeListChangeListener("foo", this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addPropertyChangeListener("foo", this.changeListener); - exCaught = false; - try { - this.testModel.removeListChangeListener("foo", this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addListChangeListener("foo", this.changeListener); - exCaught = false; - try { - this.testModel.removeListChangeListener("foo", new ListChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - exCaught = false; - try { - this.testModel.removeListChangeListener("foo", new ListChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - private void verifyListAddEvent(int index, Object item) { - assertNotNull(this.listEvent); - assertEquals(this.testModel, this.listEvent.getSource()); - assertEquals(LIST_NAME, this.listEvent.getListName()); - assertEquals(index, ((ListAddEvent) this.listEvent).getIndex()); - assertEquals(item, ((ListAddEvent) this.listEvent).getItems().iterator().next()); - } - - private void verifyListRemoveEvent(int index, Object item) { - assertNotNull(this.listEvent); - assertEquals(this.testModel, this.listEvent.getSource()); - assertEquals(LIST_NAME, this.listEvent.getListName()); - assertEquals(index, ((ListRemoveEvent) this.listEvent).getIndex()); - assertEquals(item, ((ListRemoveEvent) this.listEvent).getItems().iterator().next()); - } - - private void verifyListReplaceEvent(int index, Object newItem, Object oldItem) { - assertNotNull(this.listEvent); - assertEquals(this.testModel, this.listEvent.getSource()); - assertEquals(LIST_NAME, this.listEvent.getListName()); - assertEquals(index, ((ListReplaceEvent) this.listEvent).getIndex()); - assertEquals(newItem, ((ListReplaceEvent) this.listEvent).getNewItems().iterator().next()); - assertEquals(oldItem, ((ListReplaceEvent) this.listEvent).getOldItems().iterator().next()); - } - - private void verifyListMoveEvent(int targetIndex, int sourceIndex) { - this.verifyListMoveEvent(targetIndex, sourceIndex, 1); - } - - private void verifyListMoveEvent(int targetIndex, int sourceIndex, int length) { - assertNotNull(this.listEvent); - assertEquals(this.testModel, this.listEvent.getSource()); - assertEquals(LIST_NAME, this.listEvent.getListName()); - assertEquals(targetIndex, ((ListMoveEvent) this.listEvent).getTargetIndex()); - assertEquals(sourceIndex, ((ListMoveEvent) this.listEvent).getSourceIndex()); - assertEquals(length, ((ListMoveEvent) this.listEvent).getLength()); - } - - private void verifyListClearEvent() { - assertNotNull(this.listEvent); - assertEquals(this.testModel, this.listEvent.getSource()); - assertEquals(LIST_NAME, this.listEvent.getListName()); - assertEquals(ListClearEvent.class, this.listEvent.getClass()); - } - - private void verifyListChangeEvent() { - assertNotNull(this.listEvent); - assertEquals(this.testModel, this.listEvent.getSource()); - assertEquals(LIST_NAME, this.listEvent.getListName()); - assertEquals(ListChangeEvent.class, this.listEvent.getClass()); - } - - - // ********** tree change tests ********** - - public void testFireNodeAddedTree() { - this.treeEvent = null; - this.nodeAddedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireNodeAddedTree(); - this.verifyTreeEvent(OBJECT_PATH); - assertTrue(this.nodeAddedCalled); - - this.treeEvent = null; - this.nodeAddedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireNodeAddedTree(); - assertNull(this.treeEvent); - assertFalse(this.nodeAddedCalled); - - this.treeEvent = null; - this.nodeAddedCalled = false; - this.testModel.addTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireNodeAddedTree(); - this.verifyTreeEvent(OBJECT_PATH); - assertTrue(this.nodeAddedCalled); - - this.treeEvent = null; - this.nodeAddedCalled = false; - this.testModel.removeTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireNodeAddedTree(); - assertNull(this.treeEvent); - assertFalse(this.nodeAddedCalled); - } - - public void testFireNodeAddedTreeEvent() { - this.treeEvent = null; - this.nodeAddedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireNodeAddedTreeEvent(); - this.verifyTreeEvent(OBJECT_PATH); - assertTrue(this.nodeAddedCalled); - - this.treeEvent = null; - this.nodeAddedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireNodeAddedTreeEvent(); - assertNull(this.treeEvent); - assertFalse(this.nodeAddedCalled); - - this.treeEvent = null; - this.nodeAddedCalled = false; - this.testModel.addTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireNodeAddedTreeEvent(); - this.verifyTreeEvent(OBJECT_PATH); - assertTrue(this.nodeAddedCalled); - - this.treeEvent = null; - this.nodeAddedCalled = false; - this.testModel.removeTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireNodeAddedTreeEvent(); - assertNull(this.treeEvent); - assertFalse(this.nodeAddedCalled); - } - - public void testFireNodeRemovedTreeEvent() { - this.treeEvent = null; - this.nodeRemovedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireNodeRemovedTreeEvent(); - this.verifyTreeEvent(OBJECT_PATH); - assertTrue(this.nodeRemovedCalled); - - this.treeEvent = null; - this.nodeRemovedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireNodeRemovedTreeEvent(); - assertNull(this.treeEvent); - assertFalse(this.nodeRemovedCalled); - - this.treeEvent = null; - this.nodeRemovedCalled = false; - this.testModel.addTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireNodeRemovedTreeEvent(); - this.verifyTreeEvent(OBJECT_PATH); - assertTrue(this.nodeRemovedCalled); - - this.treeEvent = null; - this.nodeRemovedCalled = false; - this.testModel.removeTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireNodeRemovedTreeEvent(); - assertNull(this.treeEvent); - assertFalse(this.nodeRemovedCalled); - } - - public void testFireNodeRemovedTree() { - this.treeEvent = null; - this.nodeRemovedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireNodeRemovedTree(); - this.verifyTreeEvent(OBJECT_PATH); - assertTrue(this.nodeRemovedCalled); - - this.treeEvent = null; - this.nodeRemovedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireNodeRemovedTree(); - assertNull(this.treeEvent); - assertFalse(this.nodeRemovedCalled); - - this.treeEvent = null; - this.nodeRemovedCalled = false; - this.testModel.addTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireNodeRemovedTree(); - this.verifyTreeEvent(OBJECT_PATH); - assertTrue(this.nodeRemovedCalled); - - this.treeEvent = null; - this.nodeRemovedCalled = false; - this.testModel.removeTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireNodeRemovedTree(); - assertNull(this.treeEvent); - assertFalse(this.nodeRemovedCalled); - } - - public void testFireTreeClearedEvent() { - this.treeEvent = null; - this.treeClearedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireTreeClearedEvent(); - this.verifyTreeEvent(null); - assertTrue(this.treeClearedCalled); - - this.treeEvent = null; - this.treeClearedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireTreeClearedEvent(); - assertNull(this.treeEvent); - assertFalse(this.treeClearedCalled); - - this.treeEvent = null; - this.treeClearedCalled = false; - this.testModel.addTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireTreeClearedEvent(); - this.verifyTreeEvent(null); - assertTrue(this.treeClearedCalled); - - this.treeEvent = null; - this.treeClearedCalled = false; - this.testModel.removeTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireTreeClearedEvent(); - assertNull(this.treeEvent); - assertFalse(this.treeClearedCalled); - } - - public void testFireTreeCleared() { - this.treeEvent = null; - this.treeClearedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireTreeCleared(); - this.verifyTreeEvent(null); - assertTrue(this.treeClearedCalled); - - this.treeEvent = null; - this.treeClearedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireTreeCleared(); - assertNull(this.treeEvent); - assertFalse(this.treeClearedCalled); - - this.treeEvent = null; - this.treeClearedCalled = false; - this.testModel.addTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireTreeCleared(); - this.verifyTreeEvent(null); - assertTrue(this.treeClearedCalled); - - this.treeEvent = null; - this.treeClearedCalled = false; - this.testModel.removeTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireTreeCleared(); - assertNull(this.treeEvent); - assertFalse(this.treeClearedCalled); - } - - public void testFireTreeChangedEvent() { - this.treeEvent = null; - this.treeChangedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireTreeChangedEvent(); - this.verifyTreeEvent(null); - assertTrue(this.treeChangedCalled); - - this.treeEvent = null; - this.treeChangedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireTreeChangedEvent(); - assertNull(this.treeEvent); - assertFalse(this.treeChangedCalled); - - this.treeEvent = null; - this.treeChangedCalled = false; - this.testModel.addTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireTreeChangedEvent(); - this.verifyTreeEvent(null); - assertTrue(this.treeChangedCalled); - - this.treeEvent = null; - this.treeChangedCalled = false; - this.testModel.removeTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireTreeChangedEvent(); - assertNull(this.treeEvent); - assertFalse(this.treeChangedCalled); - } - - public void testFireTreeChanged() { - this.treeEvent = null; - this.treeChangedCalled = false; - this.testModel.addChangeListener(this.changeListener); - this.testModel.testFireTreeChanged(); - this.verifyTreeEvent(null); - assertTrue(this.treeChangedCalled); - - this.treeEvent = null; - this.treeChangedCalled = false; - this.testModel.removeChangeListener(this.changeListener); - this.testModel.testFireTreeChanged(); - assertNull(this.treeEvent); - assertFalse(this.treeChangedCalled); - - this.treeEvent = null; - this.treeChangedCalled = false; - this.testModel.addTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireTreeChanged(); - this.verifyTreeEvent(null); - assertTrue(this.treeChangedCalled); - - this.treeEvent = null; - this.treeChangedCalled = false; - this.testModel.removeTreeChangeListener(TREE_NAME, this.changeListener); - this.testModel.testFireTreeChanged(); - assertNull(this.treeEvent); - assertFalse(this.treeChangedCalled); - } - - public void testHasAnyTreeChangeListeners() { - assertTrue(this.testModel.hasNoTreeChangeListeners(TREE_NAME)); - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.hasAnyTreeChangeListeners(TREE_NAME)); - this.testModel.removeChangeListener(this.changeListener); - assertTrue(this.testModel.hasNoTreeChangeListeners(TREE_NAME)); - - assertTrue(this.testModel.hasNoTreeChangeListeners(TREE_NAME)); - this.testModel.addTreeChangeListener(TREE_NAME, this.changeListener); - assertTrue(this.testModel.hasAnyTreeChangeListeners(TREE_NAME)); - this.testModel.removeTreeChangeListener(TREE_NAME, this.changeListener); - assertTrue(this.testModel.hasNoTreeChangeListeners(TREE_NAME)); - } - - public void testAddNullTreeListener() { - boolean exCaught = false; - try { - this.testModel.addTreeChangeListener("foo", null); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testRemoveBogusTreeListener() { - boolean exCaught = false; - try { - this.testModel.removeTreeChangeListener("foo", this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addPropertyChangeListener("foo", this.changeListener); - exCaught = false; - try { - this.testModel.removeTreeChangeListener("foo", this.changeListener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - this.testModel.addTreeChangeListener("foo", this.changeListener); - exCaught = false; - try { - this.testModel.removeTreeChangeListener("foo", new TreeChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - - exCaught = false; - try { - this.testModel.removeTreeChangeListener("foo", new TreeChangeAdapter()); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - private void verifyTreeEvent(List path) { - assertNotNull(this.treeEvent); - assertEquals(this.testModel, this.treeEvent.getSource()); - assertEquals(TREE_NAME, this.treeEvent.getTreeName()); - assertEquals(path, this.getListPath()); - } - - private List getListPath() { - Iterable iterable = this.getPath(); - return (iterable == null) ? null : CollectionTools.list(iterable); - } - - private Iterable getPath() { - if (this.treeEvent instanceof TreeAddEvent) { - return ((TreeAddEvent) this.treeEvent).getPath(); - } - if (this.treeEvent instanceof TreeRemoveEvent) { - return ((TreeRemoveEvent) this.treeEvent).getPath(); - } - return null; - } - - - - // ********** convenience method tests ********** - - public void testElementsAreEqual() { - Collection c1 = new ArrayList(); - c1.add("foo"); - c1.add("bar"); - c1.add("baz"); - Collection c2 = new ArrayList(); - c2.add("foo"); - c2.add("bar"); - c2.add("baz"); - assertTrue(this.testModel.testElementsAreEqual(c1, c2)); - } - - public void testElementsAreDifferent() { - Collection c1 = new ArrayList(); - c1.add("foo"); - c1.add("bar"); - c1.add("baz"); - Collection c2 = new ArrayList(); - c2.add("baz"); - c2.add("bar"); - c2.add("foo"); - assertTrue(this.testModel.testElementsAreDifferent(c1, c2)); - } - - - // ********** AbstractModel tests ********** - - public void testAbstractModelValuesAreEqual1() { - assertTrue(this.testModel.testValuesAreEqual(null, null)); - } - - public void testAbstractModelValuesAreEqual2() { - assertTrue(this.testModel.testValuesAreEqual("foo", "foo")); - } - - public void testAbstractModelValuesAreEqual3() { - assertFalse(this.testModel.testValuesAreEqual("foo", null)); - } - - public void testAbstractModelValuesAreEqual4() { - assertFalse(this.testModel.testValuesAreEqual(null, "foo")); - } - - public void testAbstractModelValuesAreEqual5() { - assertFalse(this.testModel.testValuesAreEqual("bar", "foo")); - } - - public void testAbstractModelValuesAreDifferent1() { - assertFalse(this.testModel.testValuesAreDifferent(null, null)); - } - - public void testAbstractModelValuesAreDifferent2() { - assertFalse(this.testModel.testValuesAreDifferent("foo", "foo")); - } - - public void testAbstractModelValuesAreDifferent3() { - assertTrue(this.testModel.testValuesAreDifferent("foo", null)); - } - - public void testAbstractModelValuesAreDifferent4() { - assertTrue(this.testModel.testValuesAreDifferent(null, "foo")); - } - - public void testAbstractModelValuesAreDifferent5() { - assertTrue(this.testModel.testValuesAreDifferent("bar", "foo")); - } - - public void testAbstractModelAttributeValueHasChanged1() { - assertFalse(this.testModel.testAttributeValueHasChanged(null, null)); - } - - public void testAbstractModelAttributeValueHasChanged2() { - assertFalse(this.testModel.testAttributeValueHasChanged("foo", "foo")); - } - - public void testAbstractModelAttributeValueHasChanged3() { - assertTrue(this.testModel.testAttributeValueHasChanged("foo", null)); - } - - public void testAbstractModelAttributeValueHasChanged4() { - assertTrue(this.testModel.testAttributeValueHasChanged(null, "foo")); - } - - public void testAbstractModelAttributeValueHasChanged5() { - assertTrue(this.testModel.testAttributeValueHasChanged("bar", "foo")); - } - - public void testAbstractModelAttributeValueHasNotChanged1() { - assertTrue(this.testModel.testAttributeValueHasNotChanged(null, null)); - } - - public void testAbstractModelAttributeValueHasNotChanged2() { - assertTrue(this.testModel.testAttributeValueHasNotChanged("foo", "foo")); - } - - public void testAbstractModelAttributeValueHasNotChanged3() { - assertFalse(this.testModel.testAttributeValueHasNotChanged("foo", null)); - } - - public void testAbstractModelAttributeValueHasNotChanged4() { - assertFalse(this.testModel.testAttributeValueHasNotChanged(null, "foo")); - } - - public void testAbstractModelAttributeValueHasNotChanged5() { - assertFalse(this.testModel.testAttributeValueHasNotChanged("bar", "foo")); - } - - public void testAbstractModelClone() { - assertFalse(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME)); - this.testModel.addChangeListener(this.changeListener); - assertTrue(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME)); - - // verify that the clone does not have any listeners - TestModel clone = this.testModel.clone(); - assertFalse(clone.hasAnyPropertyChangeListeners(PROPERTY_NAME)); - clone.addChangeListener(this.changeListener); - assertTrue(clone.hasAnyPropertyChangeListeners(PROPERTY_NAME)); - // check original - assertTrue(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME)); - - // now test events fired by original - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - this.testModel.testFirePropertyChangedObjectObject(); - this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE); - assertTrue(this.propertyChangeCalled); - - // now test events fired by clone - this.propertyChangeEvent = null; - this.propertyChangeCalled = false; - clone.testFirePropertyChangedObjectObject(); - this.verifyPropertyChangeEvent(clone, OLD_OBJECT_VALUE, NEW_OBJECT_VALUE); - assertTrue(this.propertyChangeCalled); - } - - public void testAbstractModelToString() { - assertTrue(this.testModel.toString().contains('(' + TEST_TO_STRING + ')')); - } - - - // ********** listener implementations ********** - - class Adapter implements ChangeListener { - public void stateChanged(StateChangeEvent e) { - ChangeSupportTests.this.stateChangedCalled = true; - ChangeSupportTests.this.stateChangeEvent = e; - } - - public void propertyChanged(PropertyChangeEvent e) { - ChangeSupportTests.this.propertyChangeCalled = true; - ChangeSupportTests.this.propertyChangeEvent = e; - } - - - public void itemsAdded(CollectionAddEvent e) { - ChangeSupportTests.this.itemsAddedCollectionCalled = true; - ChangeSupportTests.this.collectionEvent = e; - } - public void itemsRemoved(CollectionRemoveEvent e) { - ChangeSupportTests.this.itemsRemovedCollectionCalled = true; - ChangeSupportTests.this.collectionEvent = e; - } - public void collectionCleared(CollectionClearEvent e) { - ChangeSupportTests.this.collectionClearedCalled = true; - ChangeSupportTests.this.collectionEvent = e; - } - public void collectionChanged(CollectionChangeEvent e) { - ChangeSupportTests.this.collectionChangedCalled = true; - ChangeSupportTests.this.collectionEvent = e; - } - - public void itemsAdded(ListAddEvent e) { - ChangeSupportTests.this.itemsAddedListCalled = true; - ChangeSupportTests.this.listEvent = e; - } - public void itemsRemoved(ListRemoveEvent e) { - ChangeSupportTests.this.itemsRemovedListCalled = true; - ChangeSupportTests.this.listEvent = e; - } - public void itemsReplaced(ListReplaceEvent e) { - ChangeSupportTests.this.itemsReplacedListCalled = true; - ChangeSupportTests.this.listEvent = e; - } - public void itemsMoved(ListMoveEvent e) { - ChangeSupportTests.this.itemsMovedListCalled = true; - ChangeSupportTests.this.listEvent = e; - } - public void listCleared(ListClearEvent e) { - ChangeSupportTests.this.listClearedCalled = true; - ChangeSupportTests.this.listEvent = e; - } - public void listChanged(ListChangeEvent e) { - ChangeSupportTests.this.listChangedCalled = true; - ChangeSupportTests.this.listEvent = e; - } - - public void nodeAdded(TreeAddEvent e) { - ChangeSupportTests.this.nodeAddedCalled = true; - ChangeSupportTests.this.treeEvent = e; - } - public void nodeRemoved(TreeRemoveEvent e) { - ChangeSupportTests.this.nodeRemovedCalled = true; - ChangeSupportTests.this.treeEvent = e; - } - public void treeCleared(TreeClearEvent e) { - ChangeSupportTests.this.treeClearedCalled = true; - ChangeSupportTests.this.treeEvent = e; - } - public void treeChanged(TreeChangeEvent e) { - ChangeSupportTests.this.treeChangedCalled = true; - ChangeSupportTests.this.treeEvent = e; - } - } - - - // ********** inner class ********** - - private static class TestModel extends AbstractModel implements Cloneable { - TestModel() { - super(); - } - - // ***** state - public void testFireStateChange() { - this.fireStateChanged(); - } - - // ***** property - public void testFirePropertyChangedEvent() { - this.firePropertyChanged(new PropertyChangeEvent(this, PROPERTY_NAME, OLD_OBJECT_VALUE, NEW_OBJECT_VALUE)); - } - - public void testFirePropertyChangedEventNoChange() { - this.firePropertyChanged(new PropertyChangeEvent(this, PROPERTY_NAME, OLD_OBJECT_VALUE, OLD_OBJECT_VALUE)); - } - - public void testFirePropertyChangedObjectObject() { - this.firePropertyChanged(PROPERTY_NAME, OLD_OBJECT_VALUE, NEW_OBJECT_VALUE); - } - - public void testFirePropertyChangedObjectObjectNoChange() { - this.firePropertyChanged(PROPERTY_NAME, OLD_OBJECT_VALUE, OLD_OBJECT_VALUE); - } - - public void testFirePropertyChangedObject() { - this.firePropertyChanged(PROPERTY_NAME, NEW_OBJECT_VALUE); - } - - public void testFirePropertyChangedObjectNoChange() { - this.firePropertyChanged(PROPERTY_NAME, null); - } - - public void testFirePropertyChangedIntInt() { - this.firePropertyChanged(PROPERTY_NAME, OLD_INT_VALUE.intValue(), NEW_INT_VALUE.intValue()); - } - - public void testFirePropertyChangedIntIntNoChange() { - this.firePropertyChanged(PROPERTY_NAME, OLD_INT_VALUE.intValue(), OLD_INT_VALUE.intValue()); - } - - public void testFirePropertyChangedBooleanBoolean() { - this.firePropertyChanged(PROPERTY_NAME, OLD_BOOLEAN_VALUE.booleanValue(), NEW_BOOLEAN_VALUE.booleanValue()); - } - - public void testFirePropertyChangedBooleanBooleanNoChange() { - this.firePropertyChanged(PROPERTY_NAME, OLD_BOOLEAN_VALUE.booleanValue(), OLD_BOOLEAN_VALUE.booleanValue()); - } - - // ***** collection - public void testFireItemsAddedCollectionEvent() { - this.fireItemsAdded(new CollectionAddEvent(this, COLLECTION_NAME, ADDED_OBJECT_VALUE)); - } - - public void testFireItemsAddedCollectionEventNoChange() { - this.fireItemsAdded(new CollectionAddEvent(this, COLLECTION_NAME, Collections.emptySet())); - } - - public void testFireItemsAddedCollection() { - this.fireItemsAdded(COLLECTION_NAME, Collections.singleton(ADDED_OBJECT_VALUE)); - } - - public void testFireItemsAddedCollectionNoChange() { - this.fireItemsAdded(COLLECTION_NAME, Collections.emptySet()); - } - - public void testFireItemAddedCollection() { - this.fireItemAdded(COLLECTION_NAME, ADDED_OBJECT_VALUE); - } - - public void testFireItemsRemovedCollectionEvent() { - this.fireItemsRemoved(new CollectionRemoveEvent(this, COLLECTION_NAME, REMOVED_OBJECT_VALUE)); - } - - public void testFireItemsRemovedCollectionEventNoChange() { - this.fireItemsRemoved(new CollectionRemoveEvent(this, COLLECTION_NAME, Collections.emptySet())); - } - - public void testFireItemsRemovedCollection() { - this.fireItemsRemoved(COLLECTION_NAME, Collections.singleton(REMOVED_OBJECT_VALUE)); - } - - public void testFireItemsRemovedCollectionNoChange() { - this.fireItemsRemoved(COLLECTION_NAME, Collections.emptySet()); - } - - public void testFireItemRemovedCollection() { - this.fireItemRemoved(COLLECTION_NAME, REMOVED_OBJECT_VALUE); - } - - public void testFireCollectionCleared() { - this.fireCollectionCleared(COLLECTION_NAME); - } - - public void testFireCollectionChangedEvent() { - this.fireCollectionChanged(new CollectionChangeEvent(this, COLLECTION_NAME, Collections.emptySet())); - } - - public void testFireCollectionChanged() { - this.fireCollectionChanged(COLLECTION_NAME, Collections.emptySet()); - } - - public boolean testAddItemToCollection() { - return this.addItemToCollection(ADDED_OBJECT_VALUE, new ArrayList(), COLLECTION_NAME); - } - - public boolean testAddItemToCollectionNoChange() { - Collection collection = new HashSet(); - collection.add(ADDED_OBJECT_VALUE); - return this.addItemToCollection(ADDED_OBJECT_VALUE, collection, COLLECTION_NAME); - } - - public boolean testAddItemsToCollection() { - return this.addItemsToCollection(Collections.singleton(ADDED_OBJECT_VALUE), new ArrayList(), COLLECTION_NAME); - } - - public boolean testAddItemsToCollectionNoChange() { - Collection collection = new HashSet(); - collection.add(ADDED_OBJECT_VALUE); - return this.addItemsToCollection(Collections.singleton(ADDED_OBJECT_VALUE), collection, COLLECTION_NAME); - } - - public boolean testAddItemsToCollectionMixed() { - Collection collection = new HashSet(); - collection.add(ADDED_OBJECT_VALUE); - return this.addItemsToCollection(new Object[] {ADDED_OBJECT_VALUE, ADDED_OBJECT_VALUE_2}, collection, COLLECTION_NAME); - } - - public boolean testRemoveItemFromCollection() { - Collection collection = new HashSet(); - collection.add(REMOVED_OBJECT_VALUE); - return this.removeItemFromCollection(REMOVED_OBJECT_VALUE, collection, COLLECTION_NAME); - } - - public boolean testRemoveItemFromCollectionNoChange() { - Collection collection = new HashSet(); - collection.add(REMOVED_OBJECT_VALUE); - return this.removeItemFromCollection("foo", collection, COLLECTION_NAME); - } - - public boolean testRemoveItemsFromCollection() { - Collection collection = new HashSet(); - collection.add(REMOVED_OBJECT_VALUE); - collection.add("foo"); - collection.add("bar"); - return this.removeItemsFromCollection(new Object[] {"foo", "bar", REMOVED_OBJECT_VALUE}, collection, COLLECTION_NAME); - } - - public boolean testRemoveItemsFromCollectionNoChange1() { - Collection collection = new HashSet(); - collection.add(REMOVED_OBJECT_VALUE); - return this.removeItemsFromCollection(Collections.emptySet(), collection, COLLECTION_NAME); - } - - public boolean testRemoveItemsFromCollectionNoChange2() { - Collection collection = new HashSet(); - return this.removeItemsFromCollection(Collections.singleton("foo"), collection, COLLECTION_NAME); - } - - public boolean testRemoveItemsFromCollectionNoChange3() { - Collection collection = new HashSet(); - collection.add(REMOVED_OBJECT_VALUE); - return this.removeItemsFromCollection(Collections.singleton("foo"), collection, COLLECTION_NAME); - } - - public boolean testRetainItemsInCollection1() { - Collection collection = new HashSet(); - collection.add(REMOVED_OBJECT_VALUE); - collection.add("foo"); - collection.add("bar"); - return this.retainItemsInCollection(new Object[] {"foo", "bar"}, collection, COLLECTION_NAME); - } - - public boolean testRetainItemsInCollection2() { - Collection collection = new HashSet(); - collection.add(REMOVED_OBJECT_VALUE); - collection.add("foo"); - collection.add("bar"); - return this.retainItemsInCollection(Collections.emptySet(), collection, COLLECTION_NAME); - } - - public boolean testRetainItemsInCollectionNoChange1() { - Collection collection = new HashSet(); - return this.retainItemsInCollection(new Object[] {"foo", "bar"}, collection, COLLECTION_NAME); - } - - public boolean testRetainItemsInCollectionNoChange2() { - Collection collection = new HashSet(); - collection.add(REMOVED_OBJECT_VALUE); - collection.add("foo"); - collection.add("bar"); - return this.retainItemsInCollection(new Object[] {"foo", "bar", REMOVED_OBJECT_VALUE}, collection, COLLECTION_NAME); - } - - public boolean testClearCollection() { - Collection collection = new HashSet(); - collection.add(REMOVED_OBJECT_VALUE); - collection.add("foo"); - collection.add("bar"); - return this.clearCollection(collection, COLLECTION_NAME); - } - - public boolean testClearCollectionNoChange() { - Collection collection = new HashSet(); - return this.clearCollection(collection, COLLECTION_NAME); - } - - public boolean testSynchronizeCollection1() { - Collection collection = new HashSet(); - collection.add("foo"); - collection.add("bar"); - collection.add("baz"); - Collection newCollection = new HashSet(); - newCollection.add("joo"); - newCollection.add("jar"); - newCollection.add("baz"); - boolean result = this.synchronizeCollection(newCollection, collection, COLLECTION_NAME); - assertEquals(newCollection, collection); - return result; - } - - public boolean testSynchronizeCollection2() { - Collection collection = new HashSet(); - collection.add("foo"); - collection.add("bar"); - collection.add("baz"); - Collection newCollection = new HashSet(); - boolean result = this.synchronizeCollection(newCollection, collection, COLLECTION_NAME); - assertEquals(newCollection, collection); - return result; - } - - public boolean testSynchronizeCollection3() { - Collection collection = new HashSet(); - Collection newCollection = new HashSet(); - newCollection.add("joo"); - newCollection.add("jar"); - newCollection.add("baz"); - boolean result = this.synchronizeCollection(newCollection, collection, COLLECTION_NAME); - assertEquals(newCollection, collection); - return result; - } - - // ***** list - public void testFireItemsAddedListEvent() { - this.fireItemsAdded(new ListAddEvent(this, LIST_NAME, ADD_INDEX, ADDED_OBJECT_VALUE)); - } - - public void testFireItemsAddedListEventNoChange() { - this.fireItemsAdded(new ListAddEvent(this, LIST_NAME, ADD_INDEX, Collections.emptyList())); - } - - public void testFireItemsAddedList() { - this.fireItemsAdded(LIST_NAME, ADD_INDEX, Collections.singletonList(ADDED_OBJECT_VALUE)); - } - - public void testFireItemsAddedListNoChange() { - this.fireItemsAdded(LIST_NAME, ADD_INDEX, Collections.emptyList()); - } - - public void testFireItemAddedList() { - this.fireItemAdded(LIST_NAME, ADD_INDEX, ADDED_OBJECT_VALUE); - } - - public void testFireItemsRemovedListEvent() { - this.fireItemsRemoved(new ListRemoveEvent(this, LIST_NAME, REMOVE_INDEX, REMOVED_OBJECT_VALUE)); - } - - public void testFireItemsRemovedListEventNoChange() { - this.fireItemsRemoved(new ListRemoveEvent(this, LIST_NAME, REMOVE_INDEX, Collections.emptyList())); - } - - public void testFireItemsRemovedList() { - this.fireItemsRemoved(LIST_NAME, REMOVE_INDEX, Collections.singletonList(REMOVED_OBJECT_VALUE)); - } - - public void testFireItemsRemovedListNoChange() { - this.fireItemsRemoved(LIST_NAME, REMOVE_INDEX, Collections.emptyList()); - } - - public void testFireItemRemovedList() { - this.fireItemRemoved(LIST_NAME, REMOVE_INDEX, REMOVED_OBJECT_VALUE); - } - - public void testFireItemsReplacedListEvent() { - this.fireItemsReplaced(new ListReplaceEvent(this, LIST_NAME, REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE)); - } - - public void testFireItemsReplacedListEventNoChange() { - this.fireItemsReplaced(new ListReplaceEvent(this, LIST_NAME, REPLACE_INDEX, Collections.emptyList(), Collections.emptyList())); - } - - public void testFireItemsReplacedList() { - this.fireItemsReplaced(LIST_NAME, REPLACE_INDEX, Collections.singletonList(ADDED_OBJECT_VALUE), Collections.singletonList(REMOVED_OBJECT_VALUE)); - } - - public void testFireItemsReplacedListNoChange() { - this.fireItemsReplaced(LIST_NAME, REPLACE_INDEX, Collections.emptyList(), Collections.emptyList()); - } - - public void testFireItemReplacedList() { - this.fireItemReplaced(LIST_NAME, REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE); - } - - public void testFireItemsMovedListEvent() { - this.fireItemsMoved(new ListMoveEvent(this, LIST_NAME, TARGET_INDEX, SOURCE_INDEX, 1)); - } - - public void testFireItemsMovedListEventNoChange() { - this.fireItemsMoved(new ListMoveEvent(this, LIST_NAME, SOURCE_INDEX, SOURCE_INDEX, 1)); - } - - public void testFireItemsMovedList() { - this.fireItemsMoved(LIST_NAME, TARGET_INDEX, SOURCE_INDEX, 1); - } - - public void testFireItemsMovedListNoChange() { - this.fireItemsMoved(LIST_NAME, SOURCE_INDEX, SOURCE_INDEX, 1); - } - - public void testFireItemMovedList() { - this.fireItemMoved(LIST_NAME, TARGET_INDEX, SOURCE_INDEX); - } - - public void testFireListClearedEvent() { - this.fireListCleared(new ListClearEvent(this, LIST_NAME)); - } - - public void testFireListCleared() { - this.fireListCleared(LIST_NAME); - } - - public void testFireListChangedEvent() { - this.fireListChanged(new ListChangeEvent(this, LIST_NAME, Collections.emptyList())); - } - - public void testFireListChanged() { - this.fireListChanged(LIST_NAME, Collections.emptyList()); - } - - public void testAddItemToListIndex() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.addItemToList(2, "joo", list, LIST_NAME); - } - - public void testAddItemToList() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.addItemToList("joo", list, LIST_NAME); - } - - public void testAddItemsToListIndex() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.addItemsToList(2, Collections.singletonList("joo"), list, LIST_NAME); - } - - public void testAddItemsToListIndexNoChange() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.addItemsToList(2, Collections.emptyList(), list, LIST_NAME); - } - - public void testAddItemsToList() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.addItemsToList(Collections.singletonList("joo"), list, LIST_NAME); - } - - public void testAddItemsToListNoChange() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.addItemsToList(Collections.emptyList(), list, LIST_NAME); - } - - public void testRemoveItemFromListIndex() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.removeItemFromList(1, list, LIST_NAME); - } - - public void testRemoveItemFromList() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.removeItemFromList("bar", list, LIST_NAME); - } - - public void testRemoveItemsFromListIndex() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.removeItemsFromList(1, 1, list, LIST_NAME); - } - - public void testRemoveItemsFromListIndexNoChange() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.removeItemsFromList(2, 0, list, LIST_NAME); - } - - public void testRemoveItemsFromList() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.removeItemsFromList(Collections.singletonList("bar"), list, LIST_NAME); - } - - public void testRemoveItemsFromListNoChange() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.addItemsToList(Collections.emptyList(), list, LIST_NAME); - } - - public void testRetainItemsInList() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.retainItemsInList(new String[] {"bar", "baz"}, list, LIST_NAME); - } - - public void testReplaceItemInList() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.replaceItemInList("bar", "xxx", list, LIST_NAME); - } - - public void testSetItemsInList() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.setItemsInList(1, new String[] {"xxx"}, list, LIST_NAME); - } - - public void testMoveItemsInList() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - list.add("xxx"); - list.add("yyy"); - list.add("zzz"); - this.moveItemsInList(2, 4, 2, list, LIST_NAME); - } - - public void testClearList() { - List list = new ArrayList(); - list.add("foo"); - list.add("bar"); - list.add("baz"); - this.clearList(list, LIST_NAME); - } - - public void testSynchronizeList() { - List oldList = new ArrayList(); - oldList.add("foo"); - oldList.add("bar"); - oldList.add("baz"); - oldList.add("xxx"); - oldList.add("yyy"); - oldList.add("zzz"); - List newList = new ArrayList(); - newList.add("foo"); - newList.add("ppp"); - newList.add("baz"); - newList.add("xxx"); - newList.add("qqq"); - this.synchronizeList(newList, oldList, LIST_NAME); - assertEquals(newList, oldList); - } - - // ***** tree - public void testFireNodeAddedTreeEvent() { - this.fireNodeAdded(new TreeAddEvent(this, TREE_NAME, OBJECT_PATH)); - } - - public void testFireNodeAddedTree() { - this.fireNodeAdded(TREE_NAME, OBJECT_PATH); - } - - public void testFireNodeRemovedTreeEvent() { - this.fireNodeRemoved(new TreeRemoveEvent(this, TREE_NAME, OBJECT_PATH)); - } - - public void testFireNodeRemovedTree() { - this.fireNodeRemoved(TREE_NAME, OBJECT_PATH); - } - - public void testFireTreeClearedEvent() { - this.fireTreeCleared(new TreeClearEvent(this, TREE_NAME)); - } - - public void testFireTreeCleared() { - this.fireTreeCleared(TREE_NAME); - } - - public void testFireTreeChangedEvent() { - this.fireTreeChanged(new TreeChangeEvent(this, TREE_NAME, OBJECT_PATH)); - } - - public void testFireTreeChanged() { - this.fireTreeChanged(TREE_NAME, OBJECT_PATH); - } - - public boolean testAttributeValueHasChanged(Object value1, Object value2) { - return this.attributeValueHasChanged(value1, value2); - } - - public boolean testAttributeValueHasNotChanged(Object value1, Object value2) { - return this.attributeValueHasNotChanged(value1, value2); - } - - // ***** misc - @Override - public TestModel clone() { - try { - return (TestModel) super.clone(); - } catch (CloneNotSupportedException ex) { - throw new InternalError(); - } - } - - public boolean testValuesAreDifferent(Object value1, Object value2) { - return this.valuesAreDifferent(value1, value2); - } - - public boolean testValuesAreEqual(Object value1, Object value2) { - return this.valuesAreEqual(value1, value2); - } - - public boolean testElementsAreDifferent(Iterable iterable1, Iterable iterable2) { - return this.getChangeSupport().elementsAreDifferent(iterable1, iterable2); - } - - public boolean testElementsAreEqual(Iterable iterable1, Iterable iterable2) { - return this.getChangeSupport().elementsAreEqual(iterable1, iterable2); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(TEST_TO_STRING); - } - - } - - - // ********** serialization test ********** - public void testSerialization() throws java.io.IOException, ClassNotFoundException { - if (Tools.jvmIsSun()) { - // This test doesn't pass in the Eclipse build environment (Linux/IBM JVM) for some reason - this.verifySerialization(); - } - } - - private void verifySerialization() throws java.io.IOException, ClassNotFoundException { - LocalModel model1 = new LocalModel(); - Foo foo1 = new Foo(); - Bar bar1 = new Bar(); - Joo joo1 = new Joo(); - Jar jar1 = new Jar(); - model1.addStateChangeListener(foo1); - model1.addStateChangeListener(bar1); - model1.addListChangeListener("foo", joo1); - model1.addListChangeListener("foo", jar1); - - Iterable listeners1 = this.getListeners(model1, StateChangeListener.class, null); - Object[] listenersArray1 = ArrayTools.array(listeners1); - assertEquals(2, listenersArray1.length); - // the order of these could change... - assertEquals(Foo.class, listenersArray1[0].getClass()); - assertEquals(Bar.class, listenersArray1[1].getClass()); - - listeners1 = this.getListeners(model1, ListChangeListener.class, "foo"); - listenersArray1 = ArrayTools.array(listeners1); - assertEquals(2, listenersArray1.length); - // the order of these could change... - assertEquals(Joo.class, listenersArray1[0].getClass()); - assertEquals(Jar.class, listenersArray1[1].getClass()); - - LocalModel model2 = TestTools.serialize(model1); - - Iterable listeners2 = this.getListeners(model2, StateChangeListener.class, null); - Object[] listenersArray2 = ArrayTools.array(listeners2); - assertEquals(1, listenersArray2.length); - assertEquals(Foo.class, listenersArray2[0].getClass()); - - listeners2 = this.getListeners(model2, ListChangeListener.class, "foo"); - listenersArray2 = ArrayTools.array(listeners2); - assertEquals(1, listenersArray2.length); - assertEquals(Joo.class, listenersArray2[0].getClass()); - } - - private Iterable getListeners(LocalModel model, Class listenerClass, String aspectName) { - return this.getListenerList(model, listenerClass, aspectName).getListeners(); - } - - @SuppressWarnings("unchecked") - private ListenerList getListenerList(LocalModel model, Class listenerClass, String aspectName) { - ChangeSupport changeSupport = (ChangeSupport) ReflectionTools.getFieldValue(model, "changeSupport"); - return (ListenerList) ReflectionTools.executeMethod(changeSupport, "getListenerList_", new Class[] {Class.class, String.class}, new Object[] {listenerClass, aspectName}); - } - - // we have to manually handle 'changeSupport' since AbstractModel is not Serializable - private static class LocalModel extends AbstractModel implements Serializable { - LocalModel() { - super(); - } - private synchronized void writeObject(ObjectOutputStream s) throws IOException { - s.defaultWriteObject(); - s.writeObject(this.changeSupport); - } - private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException { - s.defaultReadObject(); - this.changeSupport = (ChangeSupport) s.readObject(); - } - } - - private static class Foo implements Serializable, StateChangeListener { - Foo() { - super(); - } - public void stateChanged(StateChangeEvent event) { - // do nothing - } - } - - private static class Bar implements StateChangeListener { - Bar() { - super(); - } - public void stateChanged(StateChangeEvent event) { - // do nothing - } - } - - private static class Joo extends ListChangeAdapter implements Serializable { - Joo() { - super(); - } - } - - private static class Jar extends ListChangeAdapter { - Jar() { - super(); - } - } - - - // ********** bug(?) test ********** - - private static final String ISE_MESSAGE = "this object is no longer listening to localA"; - - /** - * Test the following situation: - * - both B and C are listening to A - * - C is also listening to B - * - when B receives an event from A, it will fire an event to C - * - when C receives an event from B, it will STOP listening to A - * - the event from B to C may be preceded or followed (depending on - * the hash positions of listeners) by an event from A to C: - * - if the A to C event comes first, no problem - * - but if the A to B event comes first, the A to C event should NOT happen - */ - public void testIndirectRemoveStateListener() { - this.verifyIndirectRemoveListener( - new NotifyCommand() { - public void notifyListeners(LocalA localA) { - localA.notifyStateListeners(); - } - } - ); - } - - public void testIndirectRemovePropertyListener() { - this.verifyIndirectRemoveListener( - new NotifyCommand() { - public void notifyListeners(LocalA localA) { - localA.notifyPropertyListeners(); - } - } - ); - } - - public void testIndirectRemoveCollectionListener() { - this.verifyIndirectRemoveListener( - new NotifyCommand() { - public void notifyListeners(LocalA localA) { - localA.notifyCollectionListeners(); - } - } - ); - } - - public void testIndirectRemoveListListener() { - this.verifyIndirectRemoveListener( - new NotifyCommand() { - public void notifyListeners(LocalA localA) { - localA.notifyListListeners(); - } - } - ); - } - - public void testIndirectRemoveTreeListener() { - this.verifyIndirectRemoveListener( - new NotifyCommand() { - public void notifyListeners(LocalA localA) { - localA.notifyTreeListeners(); - } - } - ); - } - - public void verifyIndirectRemoveListener(NotifyCommand command) { - LocalA localA = new LocalA(); - LocalB localB = new LocalB(localA); - - // build a bunch of LocalCs so at least one of them is notified AFTER the LocalB; - // using 1000 seemed to fail very consistently before ChangeSupport was fixed - LocalC[] localCs = new LocalC[1000]; - for (int i = localCs.length; i-- > 0; ) { - localCs[i] = new LocalC(localA, localB); - } - - boolean exCaught = false; - try { - command.notifyListeners(localA); - } catch (IllegalStateException ex) { - if (ex.getMessage() == ISE_MESSAGE) { - exCaught = true; - } else { - throw ex; - } - } - assertFalse(exCaught); - - for (int i = localCs.length; i-- > 0; ) { - assertFalse(localCs[i].isListeningToLocalA()); - } - } - - private interface NotifyCommand { - void notifyListeners(LocalA localA); - } - - /** - * This object simply fires a state change event. Both LocalB and LocalC - * will be listeners. - */ - private static class LocalA extends AbstractModel { - LocalA() { - super(); - } - void notifyStateListeners() { - this.fireStateChanged(); - } - void notifyPropertyListeners() { - this.firePropertyChanged("foo", 1, 2); - } - void notifyCollectionListeners() { - this.fireCollectionChanged("foo", Collections.emptySet()); - } - void notifyListListeners() { - this.fireListChanged("foo", Collections.emptyList()); - } - void notifyTreeListeners() { - this.fireTreeChanged("foo", Collections.emptySet()); - } - } - - /** - * This object will fire state change events whenever it receives - * a state change event from localA. - */ - private static class LocalB - extends AbstractModel - implements ChangeListener - { - LocalB(LocalA localA) { - super(); - localA.addChangeListener(this); - } - - public void stateChanged(StateChangeEvent e) { - this.fireStateChanged(); - } - - public void propertyChanged(PropertyChangeEvent evt) { - this.firePropertyChanged("bar", 1, 2); - } - - public void collectionChanged(CollectionChangeEvent e) { - this.fireCollectionChanged("bar", Collections.emptySet()); - } - public void collectionCleared(CollectionClearEvent e) {/*ignore*/} - public void itemsAdded(CollectionAddEvent e) {/*ignore*/} - public void itemsRemoved(CollectionRemoveEvent e) {/*ignore*/} - - public void listChanged(ListChangeEvent e) { - this.fireListChanged("bar", Collections.emptyList()); - } - public void listCleared(ListClearEvent e) {/*ignore*/} - public void itemsAdded(ListAddEvent e) {/*ignore*/} - public void itemsRemoved(ListRemoveEvent e) {/*ignore*/} - public void itemsReplaced(ListReplaceEvent e) {/*ignore*/} - public void itemsMoved(ListMoveEvent e) {/*ignore*/} - - public void treeChanged(TreeChangeEvent e) { - this.fireTreeChanged("bar", Collections.emptySet()); - } - public void treeCleared(TreeClearEvent e) {/*ignore*/} - public void nodeAdded(TreeAddEvent e) {/*ignore*/} - public void nodeRemoved(TreeRemoveEvent e) {/*ignore*/} - - } - - /** - * This object will listen to two other objects, localA and localB. - * If this object receives notification from localB, it will stop listening to - * localA. If this object receives notification from localA, it will check to - * see whether it still listening to localA. If this object is no longer - * listening to localA, it will complain about receiving the event and - * throw an exception. - */ - private static class LocalC - extends AbstractModel - implements ChangeListener - { - private LocalA localA; - private LocalB localB; - private boolean listeningToLocalA; - - LocalC(LocalA localA, LocalB localB) { - super(); - this.localA = localA; - this.localB = localB; - - localA.addChangeListener(this); - this.listeningToLocalA = true; - - localB.addChangeListener(this); - } - boolean isListeningToLocalA() { - return this.listeningToLocalA; - } - - public void stateChanged(StateChangeEvent e) { - Object source = e.getSource(); - if (source == this.localA) { - if ( ! this.listeningToLocalA) { - throw new IllegalStateException(ISE_MESSAGE); - } - } else if (source == this.localB) { - this.localA.removeChangeListener(this); - this.listeningToLocalA = false; - } else { - throw new IllegalStateException("bogus event source: " + source); - } - } - - public void propertyChanged(PropertyChangeEvent e) { - Object source = e.getSource(); - if (source == this.localA) { - if ( ! this.listeningToLocalA) { - throw new IllegalStateException(ISE_MESSAGE); - } - } else if (source == this.localB) { - this.localA.removeChangeListener(this); - this.listeningToLocalA = false; - } else { - throw new IllegalStateException("bogus event source: " + source); - } - } - - public void collectionChanged(CollectionChangeEvent e) { - Object source = e.getSource(); - if (source == this.localA) { - if ( ! this.listeningToLocalA) { - throw new IllegalStateException(ISE_MESSAGE); - } - } else if (source == this.localB) { - this.localA.removeChangeListener(this); - this.listeningToLocalA = false; - } else { - throw new IllegalStateException("bogus event source: " + source); - } - } - public void collectionCleared(CollectionClearEvent e) {/*ignore*/} - public void itemsAdded(CollectionAddEvent e) {/*ignore*/} - public void itemsRemoved(CollectionRemoveEvent e) {/*ignore*/} - - public void listChanged(ListChangeEvent e) { - Object source = e.getSource(); - if (source == this.localA) { - if ( ! this.listeningToLocalA) { - throw new IllegalStateException(ISE_MESSAGE); - } - } else if (source == this.localB) { - this.localA.removeChangeListener(this); - this.listeningToLocalA = false; - } else { - throw new IllegalStateException("bogus event source: " + source); - } - } - public void listCleared(ListClearEvent e) {/*ignore*/} - public void itemsAdded(ListAddEvent e) {/*ignore*/} - public void itemsRemoved(ListRemoveEvent e) {/*ignore*/} - public void itemsReplaced(ListReplaceEvent e) {/*ignore*/} - public void itemsMoved(ListMoveEvent e) {/*ignore*/} - - public void treeChanged(TreeChangeEvent e) { - Object source = e.getSource(); - if (source == this.localA) { - if ( ! this.listeningToLocalA) { - throw new IllegalStateException(ISE_MESSAGE); - } - } else if (source == this.localB) { - this.localA.removeChangeListener(this); - this.listeningToLocalA = false; - } else { - throw new IllegalStateException("bogus event source: " + source); - } - } - public void treeCleared(TreeClearEvent e) {/*ignore*/} - public void nodeAdded(TreeAddEvent e) {/*ignore*/} - public void nodeRemoved(TreeRemoveEvent e) {/*ignore*/} - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/JptUtilityModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/JptUtilityModelTests.java deleted file mode 100644 index f4f64ef801..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/JptUtilityModelTests.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.jpt.common.utility.tests.internal.model.listener.JptUtilityModelListenerTests; -import org.eclipse.jpt.common.utility.tests.internal.model.value.JptUtilityModelValueTests; - -public class JptUtilityModelTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityModelTests.class.getPackage().getName()); - - suite.addTest(JptUtilityModelListenerTests.suite()); - suite.addTest(JptUtilityModelValueTests.suite()); - - suite.addTestSuite(ChangeSupportTests.class); - suite.addTestSuite(NewEventTests.class); - suite.addTestSuite(SingleAspectChangeSupportTests.class); - - return suite; - } - - private JptUtilityModelTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/NewEventTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/NewEventTests.java deleted file mode 100644 index 2ce4ac0c49..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/NewEventTests.java +++ /dev/null @@ -1,181 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model; - -import java.util.EventListener; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.ListenerList; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.ChangeEvent; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -/** - * test what it takes to add a new type of event to - * model and change support - */ -public class NewEventTests extends TestCase { - private Foo foo; - - public NewEventTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.foo = new Foo(); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testHasNoFooChangeListeners() { - assertTrue(this.foo.hasNoFooChangeListeners()); - LocalListener listener = new LocalListener(); - this.foo.addFooChangeListener(listener); - assertFalse(this.foo.hasNoFooChangeListeners()); - this.foo.removeFooChangeListener(listener); - assertTrue(this.foo.hasNoFooChangeListeners()); - } - - public void testHasAnyFooChangeListeners() { - assertFalse(this.foo.hasAnyFooChangeListeners()); - LocalListener listener = new LocalListener(); - this.foo.addFooChangeListener(listener); - assertTrue(this.foo.hasAnyFooChangeListeners()); - this.foo.removeFooChangeListener(listener); - assertFalse(this.foo.hasAnyFooChangeListeners()); - } - - public void testFireFooChangeEvent() { - LocalListener listener = new LocalListener(); - assertFalse(listener.receivedFooEvent); - this.foo.addFooChangeListener(listener); - this.foo.foo(); - assertTrue(listener.receivedFooEvent); - } - - - // ********** harness classes ********** - - class Foo extends AbstractFooModel { - Foo() { - super(); - } - void foo() { - this.fireFooChangeEvent(); - } - } - - class LocalListener implements FooChangeListener { - boolean receivedFooEvent = false; - LocalListener() { - super(); - } - public void fooChanged(FooChangeEvent event) { - this.receivedFooEvent = true; - } - } - - interface FooModel extends Model { - void addFooChangeListener(FooChangeListener listener); - void removeFooChangeListener(FooChangeListener listener); - } - - interface FooChangeListener extends EventListener { - void fooChanged(FooChangeEvent event); - } - - static class FooChangeEvent extends ChangeEvent { - private static final long serialVersionUID = 1L; - public FooChangeEvent(FooModel source) { - super(source); - } - public FooChangeEvent clone(Model newSource) { - return new FooChangeEvent((FooModel) newSource); - } - } - - static class AbstractFooModel extends AbstractModel implements FooModel { - @Override - protected synchronized FooChangeSupport getChangeSupport() { - return (FooChangeSupport) super.getChangeSupport(); - } - @Override - protected ChangeSupport buildChangeSupport() { - return new FooChangeSupport(this); - } - public void addFooChangeListener(FooChangeListener listener) { - this.getChangeSupport().addFooChangeListener(listener); - } - public void removeFooChangeListener(FooChangeListener listener) { - this.getChangeSupport().removeFooChangeListener(listener); - } - protected void fireFooChangeEvent() { - this.getChangeSupport().fireFooChanged(); - } - public boolean hasAnyFooChangeListeners() { - return this.getChangeSupport().hasAnyFooChangeListeners(); - } - public boolean hasNoFooChangeListeners() { - return ! this.hasAnyFooChangeListeners(); - } - } - - static class FooChangeSupport extends ChangeSupport { - FooChangeSupport(FooModel source) { - super(source); - } - protected static final Class FOO_CHANGE_LISTENER_CLASS = FooChangeListener.class; - void addFooChangeListener(FooChangeListener listener) { - this.addListener(FOO_CHANGE_LISTENER_CLASS, listener); - } - void removeFooChangeListener(FooChangeListener listener) { - this.removeListener(FOO_CHANGE_LISTENER_CLASS, listener); - } - public boolean hasAnyFooChangeListeners() { - return this.hasAnyListeners(FOO_CHANGE_LISTENER_CLASS); - } - private ListenerList getFooChangeListenerList() { - return this.getListenerList(FOO_CHANGE_LISTENER_CLASS); - } - private Iterable getFooChangeListeners() { - ListenerList listenerList = this.getFooChangeListenerList(); - return (listenerList == null) ? null : listenerList.getListeners(); - } - private boolean hasFooChangeListener(FooChangeListener listener) { - return CollectionTools.contains(this.getFooChangeListeners(), listener); - } - public void fireFooChanged() { - Iterable listeners = this.getFooChangeListeners(); - if (listeners != null) { - FooChangeEvent event = null; - for (FooChangeListener listener : listeners) { - if (this.hasFooChangeListener(listener)) { - if (event == null) { - // here's the reason for the duplicate code... - event = new FooChangeEvent((FooModel) this.source); - } - listener.fooChanged(event); - } - } - } - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/SingleAspectChangeSupportTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/SingleAspectChangeSupportTests.java deleted file mode 100644 index a0dae05267..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/SingleAspectChangeSupportTests.java +++ /dev/null @@ -1,192 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.SingleAspectChangeSupport; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; - -@SuppressWarnings("nls") -public class SingleAspectChangeSupportTests extends TestCase { - - public SingleAspectChangeSupportTests(String name) { - super(name); - } - - public void testAddPropertyChangeListenerInvalidClass() { - Model model = new StateTestModel(); - boolean exCaught = false; - PropertyChangeListener listener = new PropertyChangeAdapter(); - try { - model.addPropertyChangeListener("foo", listener); - fail("bogus listener: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddPropertyChangeListenerInvalidAspect() { - Model model = new PropertyTestModel(); - boolean exCaught = false; - PropertyChangeListener listener = new PropertyChangeAdapter(); - try { - model.addPropertyChangeListener("bar", listener); - fail("bogus listener: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddCollectionChangeListenerInvalidClass() { - Model model = new StateTestModel(); - boolean exCaught = false; - CollectionChangeListener listener = new CollectionChangeAdapter(); - try { - model.addCollectionChangeListener("foo", listener); - fail("bogus listener: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddCollectionChangeListenerInvalidAspect() { - Model model = new CollectionTestModel(); - boolean exCaught = false; - CollectionChangeListener listener = new CollectionChangeAdapter(); - try { - model.addCollectionChangeListener("bar", listener); - fail("bogus listener: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddListChangeListenerInvalidClass() { - Model model = new StateTestModel(); - boolean exCaught = false; - ListChangeListener listener = new ListChangeAdapter(); - try { - model.addListChangeListener("foo", listener); - fail("bogus listener: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddListChangeListenerInvalidAspect() { - Model model = new ListTestModel(); - boolean exCaught = false; - ListChangeListener listener = new ListChangeAdapter(); - try { - model.addListChangeListener("bar", listener); - fail("bogus listener: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddTreeChangeListenerInvalidClass() { - Model model = new StateTestModel(); - boolean exCaught = false; - TreeChangeListener listener = new TreeChangeAdapter(); - try { - model.addTreeChangeListener("foo", listener); - fail("bogus listener: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testAddTreeChangeListenerInvalidAspect() { - Model model = new TreeTestModel(); - boolean exCaught = false; - TreeChangeListener listener = new TreeChangeAdapter(); - try { - model.addTreeChangeListener("bar", listener); - fail("bogus listener: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - // ********** test models ********** - - static class StateTestModel extends AbstractModel { - StateTestModel() { - super(); - } - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, StateChangeListener.class, null); - } - } - - static class PropertyTestModel extends AbstractModel { - PropertyTestModel() { - super(); - } - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, PropertyChangeListener.class, "foo"); - } - } - - static class CollectionTestModel extends AbstractModel { - CollectionTestModel() { - super(); - } - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, CollectionChangeListener.class, "foo"); - } - } - - static class ListTestModel extends AbstractModel { - ListTestModel() { - super(); - } - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, ListChangeListener.class, "foo"); - } - } - - static class TreeTestModel extends AbstractModel { - TreeTestModel() { - super(); - } - @Override - protected ChangeSupport buildChangeSupport() { - return new SingleAspectChangeSupport(this, TreeChangeListener.class, "foo"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/JptUtilityModelListenerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/JptUtilityModelListenerTests.java deleted file mode 100644 index 1de3f75c49..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/JptUtilityModelListenerTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.listener; - -import junit.framework.Test; -import junit.framework.TestSuite; - -public class JptUtilityModelListenerTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityModelListenerTests.class.getPackage().getName()); - - suite.addTestSuite(ReflectiveCollectionChangeListenerTests.class); - suite.addTestSuite(ReflectiveListChangeListenerTests.class); - suite.addTestSuite(ReflectivePropertyChangeListenerTests.class); - suite.addTestSuite(ReflectiveStateChangeListenerTests.class); - suite.addTestSuite(ReflectiveTreeChangeListenerTests.class); - - return suite; - } - - private JptUtilityModelListenerTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java deleted file mode 100644 index 96ae5c351a..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java +++ /dev/null @@ -1,331 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.listener; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ReflectiveChangeListener; - -@SuppressWarnings("nls") -public class ReflectiveCollectionChangeListenerTests extends TestCase { - - public ReflectiveCollectionChangeListenerTests(String name) { - super(name); - } - - private CollectionChangeListener buildZeroArgumentListener(Object target) { - return ReflectiveChangeListener.buildCollectionChangeListener(target, "itemAddedZeroArgument", "itemRemovedZeroArgument", "collectionClearedZeroArgument", "collectionChangedZeroArgument"); - } - - private CollectionChangeListener buildSingleArgumentListener(Object target) { - return ReflectiveChangeListener.buildCollectionChangeListener(target, "itemAddedSingleArgument", "itemRemovedSingleArgument", "collectionClearedSingleArgument", "collectionChangedSingleArgument"); - } - - public void testItemAddedZeroArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target)); - testModel.addString(string); - assertTrue(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testItemAddedSingleArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target)); - testModel.addString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertTrue(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testItemRemovedZeroArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target)); - testModel.removeString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertTrue(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testItemRemovedSingleArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target)); - testModel.removeString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertTrue(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testCollectionClearedZeroArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target)); - testModel.clearStrings(); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertTrue(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testCollectionClearedSingleArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target)); - testModel.clearStrings(); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertTrue(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testCollectionChangedZeroArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target)); - testModel.replaceStrings(new String[] {"bar", "baz"}); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertTrue(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testCollectionChangedSingleArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target)); - testModel.replaceStrings(new String[] {"bar", "baz"}); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertTrue(target.collectionChangedSingleArgumentFlag); - } - - public void testBogusDoubleArgument1() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - boolean exCaught = false; - try { - CollectionChangeListener listener = ReflectiveChangeListener.buildCollectionChangeListener(target, "collectionChangedDoubleArgument"); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getCause().getClass() == NoSuchMethodException.class) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument2() throws Exception { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - Method method = ReflectionTools.getMethod(target, "collectionChangedDoubleArgument", new Class[] {CollectionChangeEvent.class, Object.class}); - boolean exCaught = false; - try { - CollectionChangeListener listener = ReflectiveChangeListener.buildCollectionChangeListener(target, method); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getMessage().equals(method.toString())) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - // build a COLLECTION change listener and hack it so we - // can add it as a LIST change listener - Object listener = ReflectiveChangeListener.buildCollectionChangeListener(target, "collectionEventSingleArgument"); - testModel.addListChangeListener("bogus list", (ListChangeListener) listener); - - boolean exCaught = false; - try { - testModel.changeList(); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - private Collection strings = new ArrayList(); - public static final String STRINGS_COLLECTION = "strings"; - TestModel() { - super(); - } - Iterator strings() { - return new CloneIterator(this.strings) { - @Override - protected void remove(String s) { - TestModel.this.removeString(s); - } - }; - } - void addString(String string) { - this.addItemToCollection(string, this.strings, STRINGS_COLLECTION); - } - void removeString(String string) { - this.removeItemFromCollection(string, this.strings, STRINGS_COLLECTION); - } - void clearStrings() { - this.clearCollection(this.strings, STRINGS_COLLECTION); - } - void replaceStrings(String[] newStrings) { - this.strings.clear(); - CollectionTools.addAll(this.strings, newStrings); - this.fireCollectionChanged(STRINGS_COLLECTION, this.strings); - } - void changeList() { - this.fireListChanged("bogus list", Collections.emptyList()); - } - } - - class Target { - TestModel testModel; - String collectionName; - String string; - boolean itemAddedZeroArgumentFlag = false; - boolean itemAddedSingleArgumentFlag = false; - boolean itemRemovedZeroArgumentFlag = false; - boolean itemRemovedSingleArgumentFlag = false; - boolean collectionClearedZeroArgumentFlag = false; - boolean collectionClearedSingleArgumentFlag = false; - boolean collectionChangedZeroArgumentFlag = false; - boolean collectionChangedSingleArgumentFlag = false; - boolean collectionEventSingleArgumentFlag = false; - Target(TestModel testModel, String collectionName, String string) { - super(); - this.testModel = testModel; - this.collectionName = collectionName; - this.string = string; - } - void itemAddedZeroArgument() { - this.itemAddedZeroArgumentFlag = true; - } - void itemAddedSingleArgument(CollectionAddEvent e) { - this.itemAddedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - assertEquals(this.string, e.getItems().iterator().next()); - } - void itemRemovedZeroArgument() { - this.itemRemovedZeroArgumentFlag = true; - } - void itemRemovedSingleArgument(CollectionRemoveEvent e) { - this.itemRemovedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - assertEquals(this.string, e.getItems().iterator().next()); - } - void collectionClearedZeroArgument() { - this.collectionClearedZeroArgumentFlag = true; - } - void collectionClearedSingleArgument(CollectionClearEvent e) { - this.collectionClearedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - } - void collectionChangedZeroArgument() { - this.collectionChangedZeroArgumentFlag = true; - } - void collectionChangedSingleArgument(CollectionChangeEvent e) { - this.collectionChangedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - } - void collectionEventSingleArgument(CollectionEvent e) { - this.collectionEventSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - } - void collectionChangedDoubleArgument(CollectionChangeEvent e, Object o) { - fail("bogus event: " + e + " object: " + o); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java deleted file mode 100644 index 34f6c9b49f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java +++ /dev/null @@ -1,498 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.listener; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.ListIterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ReflectiveChangeListener; - -@SuppressWarnings("nls") -public class ReflectiveListChangeListenerTests extends TestCase { - - public ReflectiveListChangeListenerTests(String name) { - super(name); - } - - private ListChangeListener buildZeroArgumentListener(Object target) { - return ReflectiveChangeListener.buildListChangeListener(target, "itemAddedZeroArgument", "itemRemovedZeroArgument", "itemReplacedZeroArgument", "itemMovedZeroArgument", "listClearedZeroArgument", "listChangedZeroArgument"); - } - - private ListChangeListener buildSingleArgumentListener(Object target) { - return ReflectiveChangeListener.buildListChangeListener(target, "itemAddedSingleArgument", "itemRemovedSingleArgument", "itemReplacedSingleArgument", "itemMovedSingleArgument", "listClearedSingleArgument", "listChangedSingleArgument"); - } - - public void testItemAddedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.addString(string); - assertTrue(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemAddedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.addString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertTrue(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemRemovedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.removeString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertTrue(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemRemovedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.removeString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertTrue(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemReplacedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String oldString = "foo"; - String newString = "bar"; - testModel.addString(oldString); - Target target = new Target(testModel, TestModel.STRINGS_LIST, newString, 0, oldString); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.replaceString(oldString, newString); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertTrue(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemReplacedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String oldString = "foo"; - String newString = "bar"; - testModel.addString(oldString); - Target target = new Target(testModel, TestModel.STRINGS_LIST, newString, 0, oldString); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.replaceString(oldString, newString); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertTrue(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemMovedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - testModel.addString("zero"); - testModel.addString("one"); - testModel.addString("two"); - testModel.addString("three"); - Target target = new Target(testModel, TestModel.STRINGS_LIST, 0, 2); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.moveString(0, 2); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertTrue(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemMovedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - testModel.addString("zero"); - testModel.addString("one"); - testModel.addString("two"); - testModel.addString("three"); - Target target = new Target(testModel, TestModel.STRINGS_LIST, 0, 2); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.moveString(0, 2); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertTrue(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testListClearedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.clearStrings(); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertTrue(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testListClearedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.clearStrings(); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertTrue(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testListChangedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.replaceAllStrings(new String[] {"bar", "baz"}); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertTrue(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testListChangedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.replaceAllStrings(new String[] {"bar", "baz"}); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertTrue(target.listChangedSingleArgumentFlag); - } - - public void testBogusDoubleArgument1() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - boolean exCaught = false; - try { - ListChangeListener listener = ReflectiveChangeListener.buildListChangeListener(target, "listChangedDoubleArgument"); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getCause().getClass() == NoSuchMethodException.class) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument2() throws Exception { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - Method method = ReflectionTools.getMethod(target, "listChangedDoubleArgument", new Class[] {ListChangeEvent.class, Object.class}); - boolean exCaught = false; - try { - ListChangeListener listener = ReflectiveChangeListener.buildListChangeListener(target, method); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getMessage().equals(method.toString())) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - // build a LIST change listener and hack it so we - // can add it as a COLLECTION change listener - Object listener = ReflectiveChangeListener.buildListChangeListener(target, "listEventSingleArgument"); - testModel.addCollectionChangeListener("bogus collection", (CollectionChangeListener) listener); - - boolean exCaught = false; - try { - testModel.changeCollection(); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - private List strings = new ArrayList(); - public static final String STRINGS_LIST = "strings"; - TestModel() { - super(); - } - ListIterator strings() { - return new CloneListIterator(this.strings); - } - void addString(String string) { - this.addItemToList(string, this.strings, STRINGS_LIST); - } - void removeString(String string) { - this.removeItemFromList(this.strings.indexOf(string), this.strings, STRINGS_LIST); - } - void replaceString(String oldString, String newString) { - this.setItemInList(this.strings.indexOf(oldString), newString, this.strings, STRINGS_LIST); - } - void moveString(int targetIndex, int sourceIndex) { - this.moveItemInList(targetIndex, sourceIndex, this.strings, STRINGS_LIST); - } - void clearStrings() { - this.clearList(this.strings, STRINGS_LIST); - } - void replaceAllStrings(String[] newStrings) { - this.strings.clear(); - CollectionTools.addAll(this.strings, newStrings); - this.fireListChanged(STRINGS_LIST, this.strings); - } - void changeCollection() { - this.fireCollectionChanged("bogus collection", Collections.emptySet()); - } - } - - class Target { - TestModel testModel; - String listName; - String string; - int index; - String replacedString; - int sourceIndex; - boolean itemAddedZeroArgumentFlag = false; - boolean itemAddedSingleArgumentFlag = false; - boolean itemRemovedZeroArgumentFlag = false; - boolean itemRemovedSingleArgumentFlag = false; - boolean itemReplacedZeroArgumentFlag = false; - boolean itemReplacedSingleArgumentFlag = false; - boolean itemMovedZeroArgumentFlag = false; - boolean itemMovedSingleArgumentFlag = false; - boolean listClearedZeroArgumentFlag = false; - boolean listClearedSingleArgumentFlag = false; - boolean listChangedZeroArgumentFlag = false; - boolean listChangedSingleArgumentFlag = false; - boolean listEventSingleArgumentFlag = false; - Target(TestModel testModel, String listName, String string, int index) { - super(); - this.testModel = testModel; - this.listName = listName; - this.string = string; - this.index = index; - } - Target(TestModel testModel, String listName, String string, int index, String replacedString) { - this(testModel, listName, string, index); - this.replacedString = replacedString; - } - Target(TestModel testModel, String listName, int targetIndex, int sourceIndex) { - super(); - this.testModel = testModel; - this.listName = listName; - this.index = targetIndex; - this.sourceIndex = sourceIndex; - } - void itemAddedZeroArgument() { - this.itemAddedZeroArgumentFlag = true; - } - void itemAddedSingleArgument(ListAddEvent e) { - this.itemAddedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - assertEquals(this.string, e.getItems().iterator().next()); - assertEquals(this.index, e.getIndex()); - } - void itemRemovedZeroArgument() { - this.itemRemovedZeroArgumentFlag = true; - } - void itemRemovedSingleArgument(ListRemoveEvent e) { - this.itemRemovedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - assertEquals(this.string, e.getItems().iterator().next()); - assertEquals(this.index, e.getIndex()); - } - void itemReplacedZeroArgument() { - this.itemReplacedZeroArgumentFlag = true; - } - void itemReplacedSingleArgument(ListReplaceEvent e) { - this.itemReplacedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - assertEquals(this.string, e.getNewItems().iterator().next()); - assertEquals(this.replacedString, e.getOldItems().iterator().next()); - assertEquals(this.index, e.getIndex()); - } - void itemMovedZeroArgument() { - this.itemMovedZeroArgumentFlag = true; - } - void itemMovedSingleArgument(ListMoveEvent e) { - this.itemMovedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - assertEquals(this.index, e.getTargetIndex()); - assertEquals(this.sourceIndex, e.getSourceIndex()); - } - void listChangedZeroArgument() { - this.listChangedZeroArgumentFlag = true; - } - void listClearedSingleArgument(ListClearEvent e) { - this.listClearedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - } - void listClearedZeroArgument() { - this.listClearedZeroArgumentFlag = true; - } - void listChangedSingleArgument(ListChangeEvent e) { - this.listChangedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - } - void listChangedDoubleArgument(ListChangeEvent e, Object o) { - fail("bogus event: " + e + " - object: " + o); - } - void listEventSingleArgument(ListEvent e) { - this.listEventSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java deleted file mode 100644 index 9b27d57fcb..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java +++ /dev/null @@ -1,176 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.listener; - -import java.lang.reflect.Method; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ReflectiveChangeListener; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; - -@SuppressWarnings("nls") -public class ReflectivePropertyChangeListenerTests extends TestCase { - - public ReflectivePropertyChangeListenerTests(String name) { - super(name); - } - - public void testZeroArgumentNamedProperty() { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedZeroArgument")); - testModel.setValue(99); - assertTrue(target.zeroArgumentFlag); - assertFalse(target.singleArgumentFlag); - } - - /** - * test method that has more general method parameter type - */ - public void testSingleArgument2() throws Exception { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - Method method = ReflectionTools.getMethod(target, "propertyChangedSingleArgument2", new Class[] {Object.class}); - testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, method)); - testModel.setValue(99); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - public void testSingleArgumentNamedProperty() { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedSingleArgument")); - testModel.setValue(99); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - /** - * test method that has more general method parameter type - */ - public void testSingleArgumentNamedProperty2() throws Exception { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - Method method = ReflectionTools.getMethod(target, "propertyChangedSingleArgument2", new Class[] {Object.class}); - testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, method)); - testModel.setValue(99); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - // build a PROPERTY change listener and hack it so we - // can add it as a STATE change listener - Object listener = ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedSingleArgument"); - testModel.addStateChangeListener((StateChangeListener) listener); - - boolean exCaught = false; - try { - testModel.setValue(99); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument1() { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - boolean exCaught = false; - try { - PropertyChangeListener listener = ReflectiveChangeListener.buildPropertyChangeListener(target, "stateChangedDoubleArgument"); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getCause().getClass() == NoSuchMethodException.class) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument2() throws Exception { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - Method method = ReflectionTools.getMethod(target, "propertyChangedDoubleArgument", new Class[] {PropertyChangeEvent.class, Object.class}); - boolean exCaught = false; - try { - PropertyChangeListener listener = ReflectiveChangeListener.buildPropertyChangeListener(target, method); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getMessage().equals(method.toString())) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - private int value = 0; - public static final String VALUE_PROPERTY = "value"; - TestModel(int value) { - super(); - this.value = value; - } - void setValue(int value) { - int old = this.value; - this.value = value; - this.firePropertyChanged(VALUE_PROPERTY, old, value); - if (old != value) { - this.fireStateChanged(); - } - } - } - - class Target { - TestModel testModel; - String propertyName; - Object oldValue; - Object newValue; - boolean zeroArgumentFlag = false; - boolean singleArgumentFlag = false; - Target(TestModel testModel, String propertyName, int oldValue, int newValue) { - super(); - this.testModel = testModel; - this.propertyName = propertyName; - this.oldValue = new Integer(oldValue); - this.newValue = new Integer(newValue); - } - void propertyChangedZeroArgument() { - this.zeroArgumentFlag = true; - } - void propertyChangedSingleArgument(PropertyChangeEvent e) { - this.singleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.propertyName, e.getPropertyName()); - assertEquals(this.oldValue, e.getOldValue()); - assertEquals(this.newValue, e.getNewValue()); - } - void propertyChangedSingleArgument2(Object o) { - PropertyChangeEvent e = (PropertyChangeEvent) o; - this.singleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.propertyName, e.getPropertyName()); - assertEquals(this.oldValue, e.getOldValue()); - assertEquals(this.newValue, e.getNewValue()); - } - void propertyChangedDoubleArgument(PropertyChangeEvent e, Object o) { - fail("bogus event: " + e + " - object: " + o); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java deleted file mode 100644 index 9a799e37db..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java +++ /dev/null @@ -1,145 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.listener; - -import java.lang.reflect.Method; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ReflectiveChangeListener; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; - -@SuppressWarnings("nls") -public class ReflectiveStateChangeListenerTests extends TestCase { - - public ReflectiveStateChangeListenerTests(String name) { - super(name); - } - - public void testZeroArgument() { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - testModel.addStateChangeListener(ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedZeroArgument")); - testModel.changeState(); - assertTrue(target.zeroArgumentFlag); - assertFalse(target.singleArgumentFlag); - } - - public void testSingleArgument() { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - testModel.addStateChangeListener(ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedSingleArgument")); - testModel.changeState(); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - /** - * test method that has more general method parameter type - */ - public void testSingleArgument2() throws Exception { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - Method method = ReflectionTools.getMethod(target, "stateChangedSingleArgument2", new Class[] {Object.class}); - testModel.addStateChangeListener(ReflectiveChangeListener.buildStateChangeListener(target, method)); - testModel.changeState(); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - // build a STATE change listener and hack it so we - // can add it as a PROPERTY change listener - Object listener = ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedSingleArgument"); - testModel.addPropertyChangeListener("value", (PropertyChangeListener) listener); - - boolean exCaught = false; - try { - testModel.changeProperty(); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument1() { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - boolean exCaught = false; - try { - StateChangeListener listener = ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedDoubleArgument"); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getCause().getClass() == NoSuchMethodException.class) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument2() throws Exception { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - Method method = ReflectionTools.getMethod(target, "stateChangedDoubleArgument", new Class[] {StateChangeEvent.class, Object.class}); - boolean exCaught = false; - try { - StateChangeListener listener = ReflectiveChangeListener.buildStateChangeListener(target, method); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getMessage().equals(method.toString())) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - TestModel() { - super(); - } - void changeState() { - this.fireStateChanged(); - } - void changeProperty() { - this.firePropertyChanged("value", 55, 42); - } - } - - class Target { - TestModel testModel; - boolean zeroArgumentFlag = false; - boolean singleArgumentFlag = false; - Target(TestModel testModel) { - super(); - this.testModel = testModel; - } - void stateChangedZeroArgument() { - this.zeroArgumentFlag = true; - } - void stateChangedSingleArgument(StateChangeEvent e) { - this.singleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - } - void stateChangedSingleArgument2(Object e) { - this.singleArgumentFlag = true; - assertSame(this.testModel, ((StateChangeEvent) e).getSource()); - } - void stateChangedDoubleArgument(StateChangeEvent e, Object o) { - fail("bogus event: " + e + " - object: " + o); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java deleted file mode 100644 index e6dbfe7253..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java +++ /dev/null @@ -1,362 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.listener; - -import java.util.ArrayList; -import java.util.Arrays; -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 junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ReflectiveChangeListener; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; - -@SuppressWarnings("nls") -public class ReflectiveTreeChangeListenerTests extends TestCase { - - public ReflectiveTreeChangeListenerTests(String name) { - super(name); - } - - private TreeChangeListener buildZeroArgumentListener(Object target) { - return ReflectiveChangeListener.buildTreeChangeListener(target, "nodeAddedZeroArgument", "nodeRemovedZeroArgument", "treeClearedZeroArgument", "treeChangedZeroArgument"); - } - - private TreeChangeListener buildSingleArgumentListener(Object target) { - return ReflectiveChangeListener.buildTreeChangeListener(target, "nodeAddedSingleArgument", "nodeRemovedSingleArgument", "treeClearedSingleArgument", "treeChangedSingleArgument"); - } - - public void testNodeAddedZeroArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target)); - testModel.addNode("root", "child"); - assertTrue(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testNodeAddedSingleArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target)); - testModel.addNode("root", "child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertTrue(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testNodeRemovedZeroArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target)); - testModel.removeNode("child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertTrue(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testNodeRemovedSingleArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target)); - testModel.removeNode("child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertTrue(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testTreeClearedZeroArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - testModel.addNode("child", "grandchild"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[0]); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target)); - testModel.clearTree(); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertTrue(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testTreeClearedSingleArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - testModel.addNode("child", "grandchild"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[0]); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target)); - testModel.clearTree(); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertTrue(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testTreeChangedZeroArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "another child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target)); - testModel.replaceNode("child", "another child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertTrue(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testTreeChangedSingleArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "another child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target)); - testModel.replaceNode("child", "another child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertTrue(target.treeChangedSingleArgumentFlag); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - // build a TREE change listener and hack it so we - // can add it as a COLLECTION change listener - Object listener = ReflectiveChangeListener.buildTreeChangeListener(target, "treeEventSingleArgument"); - testModel.addCollectionChangeListener("bogus collection", (CollectionChangeListener) listener); - - boolean exCaught = false; - try { - testModel.changeCollection(); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - private final String root; - private Map> childrenLists = new HashMap>(); - private Map parents = new HashMap(); - public static final String STRINGS_TREE = "strings"; - TestModel(String root) { - super(); - if (root == null) { - throw new NullPointerException(); - } - this.root = root; - this.childrenLists.put(root, new ArrayList()); - this.parents.put(root, null); - } - String getRoot() { - return this.root; - } - private List path(String node) { - String temp = node; - List reversePath = new ArrayList(); - do { - reversePath.add(temp); - temp = this.parents.get(temp); - } while (temp != null); - return CollectionTools.reverse(reversePath); - } - Iterator strings() { - return new CloneIterator(this.childrenLists.keySet()) { - @Override - protected void remove(String s) { - TestModel.this.removeNode(s); - } - }; - } - void addNode(String parent, String child) { - if ((parent == null) || (child == null)) { - throw new NullPointerException(); - } - - Collection children = this.childrenLists.get(parent); - if (children == null) { - throw new IllegalStateException("cannot add a child to a non-existent parent"); - } - - if (this.childrenLists.get(child) != null) { - throw new IllegalStateException("cannot add a child that is already in the tree"); - } - - children.add(child); - this.childrenLists.put(child, new ArrayList()); - this.parents.put(child, parent); - this.fireNodeAdded(STRINGS_TREE, this.path(child)); - } - void removeNode(String node) { - if (node == null) { - throw new NullPointerException(); - } - - Collection children = this.childrenLists.get(node); - if (children == null) { - throw new IllegalStateException("node is not in tree"); - } - List path = this.path(node); - for (String s : children) { - this.removeNode(s); - } - this.childrenLists.remove(node); - this.parents.remove(node); - this.fireNodeRemoved(STRINGS_TREE, path); - } - void replaceNode(String oldNode, String newNode) { - if ((oldNode == null) || (newNode == null)) { - throw new NullPointerException(); - } - - Collection children = this.childrenLists.remove(oldNode); - if (children == null) { - throw new IllegalStateException("old node is not in tree"); - } - this.childrenLists.put(newNode, children); - for (String child : children) { - this.parents.put(child, newNode); - } - - String parent = this.parents.remove(oldNode); - this.parents.put(newNode, parent); - - this.fireTreeChanged(STRINGS_TREE, this.path(newNode)); - } - void clearTree() { - this.childrenLists.clear(); - this.childrenLists.put(root, new ArrayList()); - this.parents.clear(); - this.parents.put(root, null); - this.fireTreeCleared(STRINGS_TREE); - } - void changeCollection() { - this.fireCollectionChanged("bogus collection", Collections.emptySet()); - } - } - - class Target { - TestModel testModel; - String treeName; - List path; - boolean nodeAddedZeroArgumentFlag = false; - boolean nodeAddedSingleArgumentFlag = false; - boolean nodeRemovedZeroArgumentFlag = false; - boolean nodeRemovedSingleArgumentFlag = false; - boolean treeClearedZeroArgumentFlag = false; - boolean treeClearedSingleArgumentFlag = false; - boolean treeChangedZeroArgumentFlag = false; - boolean treeChangedSingleArgumentFlag = false; - boolean treeEventSingleArgumentFlag = false; - Target(TestModel testModel, String treeName, String[] path) { - super(); - this.testModel = testModel; - this.treeName = treeName; - this.path = Arrays.asList(path); - } - void nodeAddedZeroArgument() { - this.nodeAddedZeroArgumentFlag = true; - } - void nodeAddedSingleArgument(TreeAddEvent e) { - this.nodeAddedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - assertEquals(this.path, CollectionTools.list(e.getPath())); - } - void nodeRemovedZeroArgument() { - this.nodeRemovedZeroArgumentFlag = true; - } - void nodeRemovedSingleArgument(TreeRemoveEvent e) { - this.nodeRemovedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - assertEquals(this.path, CollectionTools.list(e.getPath())); - } - void treeClearedZeroArgument() { - this.treeClearedZeroArgumentFlag = true; - } - void treeClearedSingleArgument(TreeClearEvent e) { - this.treeClearedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - } - void treeChangedZeroArgument() { - this.treeChangedZeroArgumentFlag = true; - } - void treeChangedSingleArgument(TreeChangeEvent e) { - this.treeChangedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - } - void treeEventSingleArgument(TreeEvent e) { - this.treeChangedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - } - void collectionChangedDoubleArgument(TreeChangeEvent e, Object o) { - fail("bogus event: " + e + " - object: " + o); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/BufferedWritablePropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/BufferedWritablePropertyValueModelTests.java deleted file mode 100644 index 6bee40b1f2..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/BufferedWritablePropertyValueModelTests.java +++ /dev/null @@ -1,504 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Date; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.BufferedWritablePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class BufferedWritablePropertyValueModelTests extends TestCase { - private Employee employee; - private WritablePropertyValueModel employeeHolder; - PropertyChangeEvent employeeEvent; - - private WritablePropertyValueModel idAdapter; - private WritablePropertyValueModel nameAdapter; - private WritablePropertyValueModel hireDateAdapter; - PropertyChangeEvent adapterEvent; - - private BufferedWritablePropertyValueModel.Trigger trigger; - private BufferedWritablePropertyValueModel bufferedIDHolder; - private BufferedWritablePropertyValueModel bufferedNameHolder; - private BufferedWritablePropertyValueModel bufferedHireDateHolder; - PropertyChangeEvent bufferedEvent; - - public BufferedWritablePropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - - this.employee = new Employee(17, "Freddy", new Date()); - this.employeeHolder = new SimplePropertyValueModel(this.employee); - - this.trigger = new BufferedWritablePropertyValueModel.Trigger(); - - this.idAdapter = this.buildIDAdapter(this.employeeHolder); - this.bufferedIDHolder = new BufferedWritablePropertyValueModel(this.idAdapter, this.trigger); - - this.nameAdapter = this.buildNameAdapter(this.employeeHolder); - this.bufferedNameHolder = new BufferedWritablePropertyValueModel(this.nameAdapter, this.trigger); - - this.hireDateAdapter = this.buildHireDateAdapter(this.employeeHolder); - this.bufferedHireDateHolder = new BufferedWritablePropertyValueModel(this.hireDateAdapter, this.trigger); - } - - private WritablePropertyValueModel buildIDAdapter(PropertyValueModel eHolder) { - return new PropertyAspectAdapter(eHolder, Employee.ID_PROPERTY) { - @Override - protected Integer buildValue_() { - return new Integer(this.subject.getID()); - } - @Override - protected void setValue_(Integer value) { - this.subject.setID(value.intValue()); - } - }; - } - - private WritablePropertyValueModel buildNameAdapter(PropertyValueModel eHolder) { - return new PropertyAspectAdapter(eHolder, Employee.NAME_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.getName(); - } - @Override - protected void setValue_(String value) { - this.subject.setName(value); - } - }; - } - - private WritablePropertyValueModel buildHireDateAdapter(PropertyValueModel eHolder) { - return new PropertyAspectAdapter(eHolder, Employee.HIRE_DATE_PROPERTY) { - @Override - protected Date buildValue_() { - return this.subject.getHireDate(); - } - @Override - protected void setValue_(Date value) { - this.subject.setHireDate(value); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testGetValue() { - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedIDHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedHireDateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - assertEquals(new Integer(17), this.idAdapter.getValue()); - assertEquals(new Integer(17), this.bufferedIDHolder.getValue()); - - assertEquals("Freddy", this.employee.getName()); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Freddy", this.bufferedNameHolder.getValue()); - - Date temp = this.employee.getHireDate(); - assertEquals(temp, this.employee.getHireDate()); - assertEquals(temp, this.hireDateAdapter.getValue()); - assertEquals(temp, this.bufferedHireDateHolder.getValue()); - - this.bufferedIDHolder.setValue(new Integer(323)); - assertEquals(17, this.employee.getID()); - assertEquals(new Integer(17), this.idAdapter.getValue()); - assertEquals(new Integer(323), this.bufferedIDHolder.getValue()); - - this.bufferedNameHolder.setValue("Ripley"); - assertEquals("Freddy", this.employee.getName()); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - - this.bufferedHireDateHolder.setValue(null); - assertEquals(temp, this.employee.getHireDate()); - assertEquals(temp, this.hireDateAdapter.getValue()); - assertEquals(null, this.bufferedHireDateHolder.getValue()); - } - - public void testTriggerAccept() { - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedIDHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedHireDateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - this.bufferedIDHolder.setValue(new Integer(323)); - assertEquals(17, this.employee.getID()); - assertEquals(new Integer(17), this.idAdapter.getValue()); - assertEquals(new Integer(323), this.bufferedIDHolder.getValue()); - - this.bufferedNameHolder.setValue("Ripley"); - assertEquals("Freddy", this.employee.getName()); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - - Date temp = this.employee.getHireDate(); - this.bufferedHireDateHolder.setValue(null); - assertEquals(temp, this.employee.getHireDate()); - assertEquals(temp, this.hireDateAdapter.getValue()); - assertEquals(null, this.bufferedHireDateHolder.getValue()); - - this.trigger.accept(); - - assertEquals(323, this.employee.getID()); - assertEquals(new Integer(323), this.idAdapter.getValue()); - assertEquals(new Integer(323), this.bufferedIDHolder.getValue()); - - assertEquals("Ripley", this.employee.getName()); - assertEquals("Ripley", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - - assertEquals(null, this.employee.getHireDate()); - assertEquals(null, this.hireDateAdapter.getValue()); - assertEquals(null, this.bufferedHireDateHolder.getValue()); - } - - public void testTriggerReset() { - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedIDHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedHireDateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - this.bufferedIDHolder.setValue(new Integer(323)); - assertEquals(17, this.employee.getID()); - assertEquals(new Integer(17), this.idAdapter.getValue()); - assertEquals(new Integer(323), this.bufferedIDHolder.getValue()); - - this.bufferedNameHolder.setValue("Ripley"); - assertEquals("Freddy", this.employee.getName()); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - - Date temp = this.employee.getHireDate(); - this.bufferedHireDateHolder.setValue(null); - assertEquals(temp, this.employee.getHireDate()); - assertEquals(temp, this.hireDateAdapter.getValue()); - assertEquals(null, this.bufferedHireDateHolder.getValue()); - - this.trigger.reset(); - - assertEquals(17, this.employee.getID()); - assertEquals(new Integer(17), this.idAdapter.getValue()); - assertEquals(new Integer(17), this.bufferedIDHolder.getValue()); - - assertEquals("Freddy", this.employee.getName()); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Freddy", this.bufferedNameHolder.getValue()); - - assertEquals(temp, this.employee.getHireDate()); - assertEquals(temp, this.hireDateAdapter.getValue()); - assertEquals(temp, this.bufferedHireDateHolder.getValue()); - } - - public void testLazyListening() { - assertTrue(((AbstractModel) this.bufferedIDHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.bufferedNameHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.bufferedHireDateHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - - assertTrue(((AbstractModel) this.idAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.nameAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.hireDateAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - - assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.ID_PROPERTY)); - assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.NAME_PROPERTY)); - assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.HIRE_DATE_PROPERTY)); - - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedIDHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedHireDateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - assertTrue(((AbstractModel) this.bufferedIDHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.bufferedNameHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.bufferedHireDateHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - assertTrue(((AbstractModel) this.idAdapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.nameAdapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.hireDateAdapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - assertTrue(this.employee.hasAnyPropertyChangeListeners(Employee.ID_PROPERTY)); - assertTrue(this.employee.hasAnyPropertyChangeListeners(Employee.NAME_PROPERTY)); - assertTrue(this.employee.hasAnyPropertyChangeListeners(Employee.HIRE_DATE_PROPERTY)); - - this.bufferedIDHolder.removePropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedNameHolder.removePropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - this.bufferedHireDateHolder.removePropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - assertTrue(((AbstractModel) this.bufferedIDHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.bufferedNameHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.bufferedHireDateHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - - assertTrue(((AbstractModel) this.idAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.nameAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.hireDateAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - - assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.ID_PROPERTY)); - assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.NAME_PROPERTY)); - assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.HIRE_DATE_PROPERTY)); - } - - public void testPropertyChange1() { - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - PropertyChangeListener adapterListener = this.buildAdapterListener(); - this.nameAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, adapterListener); - - PropertyChangeListener employeeListener = this.buildEmployeeListener(); - this.employee.addPropertyChangeListener(Employee.NAME_PROPERTY, employeeListener); - - this.verifyPropertyChanges(); - } - - public void testPropertyChange2() { - ChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedNameHolder.addChangeListener(bufferedListener); - - ChangeListener adapterListener = this.buildAdapterListener(); - this.nameAdapter.addChangeListener(adapterListener); - - ChangeListener employeeListener = this.buildEmployeeListener(); - this.employee.addChangeListener(employeeListener); - - this.verifyPropertyChanges(); - } - - private void verifyPropertyChanges() { - this.bufferedEvent = null; - this.adapterEvent = null; - this.employeeEvent = null; - this.bufferedNameHolder.setValue("Ripley"); - this.verifyEvent(this.bufferedEvent, this.bufferedNameHolder, PropertyValueModel.VALUE, "Freddy", "Ripley"); - assertNull(this.adapterEvent); - assertNull(this.employeeEvent); - - this.bufferedEvent = null; - this.adapterEvent = null; - this.employeeEvent = null; - this.bufferedNameHolder.setValue("Charlie"); - this.verifyEvent(this.bufferedEvent, this.bufferedNameHolder, PropertyValueModel.VALUE, "Ripley", "Charlie"); - assertNull(this.adapterEvent); - assertNull(this.employeeEvent); - - this.bufferedEvent = null; - this.adapterEvent = null; - this.employeeEvent = null; - this.trigger.accept(); - assertNull(this.bufferedEvent); - this.verifyEvent(this.adapterEvent, this.nameAdapter, PropertyValueModel.VALUE, "Freddy", "Charlie"); - this.verifyEvent(this.employeeEvent, this.employee, Employee.NAME_PROPERTY, "Freddy", "Charlie"); - - this.bufferedEvent = null; - this.adapterEvent = null; - this.employeeEvent = null; - this.bufferedNameHolder.setValue("Jason"); - this.verifyEvent(this.bufferedEvent, this.bufferedNameHolder, PropertyValueModel.VALUE, "Charlie", "Jason"); - assertNull(this.adapterEvent); - assertNull(this.employeeEvent); - - this.bufferedEvent = null; - this.adapterEvent = null; - this.employeeEvent = null; - this.trigger.reset(); - this.verifyEvent(this.bufferedEvent, this.bufferedNameHolder, PropertyValueModel.VALUE, "Jason", "Charlie"); - assertNull(this.adapterEvent); - assertNull(this.employeeEvent); - } - - /** - * changing the value should trigger buffering - */ - public void testBuffering1() { - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - this.bufferedNameHolder.setValue("Ripley"); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - assertTrue(this.bufferedNameHolder.isBuffering()); - } - - /** - * setting to the same value should not trigger buffering (?) - */ - public void testBuffering2() { - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - this.bufferedNameHolder.setValue("Freddy"); - assertEquals("Freddy", this.bufferedNameHolder.getValue()); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertFalse(this.bufferedNameHolder.isBuffering()); - } - - /** - * setting to the original value should not trigger buffering (?) - */ - public void testBuffering3() { - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - this.bufferedNameHolder.setValue("Ripley"); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - assertTrue(this.bufferedNameHolder.isBuffering()); - - this.bufferedNameHolder.setValue("Freddy"); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Freddy", this.bufferedNameHolder.getValue()); - assertFalse(this.bufferedNameHolder.isBuffering()); - } - - /** - * back-door changes are ignored - "Last One In Wins" - */ - public void testChangeConflict1() { - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - this.bufferedNameHolder.setValue("Ripley"); - assertEquals("Freddy", this.employee.getName()); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - - this.nameAdapter.setValue("Jason"); - assertEquals("Jason", this.employee.getName()); - assertEquals("Jason", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - - this.trigger.accept(); - // "Jason" is dropped on the floor... - assertEquals("Ripley", this.employee.getName()); - assertEquals("Ripley", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - } - - /** - * back-door changes can de-activate buffering (?) - */ - public void testChangeConflict2() { - PropertyChangeListener bufferedListener = this.buildBufferedListener(); - this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener); - - this.bufferedNameHolder.setValue("Ripley"); - assertEquals("Freddy", this.employee.getName()); - assertEquals("Freddy", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - assertTrue(this.bufferedNameHolder.isBuffering()); - - this.nameAdapter.setValue("Ripley"); - assertEquals("Ripley", this.employee.getName()); - assertEquals("Ripley", this.nameAdapter.getValue()); - assertEquals("Ripley", this.bufferedNameHolder.getValue()); - assertFalse(this.bufferedNameHolder.isBuffering()); - } - - private ChangeListener buildBufferedListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - BufferedWritablePropertyValueModelTests.this.bufferedEvent = e; - } - }; - } - - private ChangeListener buildAdapterListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - BufferedWritablePropertyValueModelTests.this.adapterEvent = e; - } - }; - } - - private ChangeListener buildEmployeeListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - BufferedWritablePropertyValueModelTests.this.employeeEvent = e; - } - }; - } - - private void verifyEvent(PropertyChangeEvent event, Object source, String propertyName, Object oldValue, Object newValue) { - assertEquals(source, event.getSource()); - assertEquals(propertyName, event.getPropertyName()); - assertEquals(oldValue, event.getOldValue()); - assertEquals(newValue, event.getNewValue()); - } - - - // ********** inner class ********** - - class Employee extends AbstractModel { - private int id; - public static final String ID_PROPERTY = "id"; - private String name; - public static final String NAME_PROPERTY = "name"; - private Date hireDate; - public static final String HIRE_DATE_PROPERTY = "hireDate"; - - Employee(int id, String name, Date hireDate) { - super(); - this.id = id; - this.name = name; - this.hireDate = hireDate; - } - int getID() { - return this.id; - } - void setID(int id) { - int old = this.id; - this.id = id; - this.firePropertyChanged(ID_PROPERTY, old, id); - } - String getName() { - return this.name; - } - void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - Date getHireDate() { - return this.hireDate; - } - void setHireDate(Date hireDate) { - Object old = this.hireDate; - this.hireDate = hireDate; - this.firePropertyChanged(HIRE_DATE_PROPERTY, old, hireDate); - } - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CachingTransformationPropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CachingTransformationPropertyValueModelTests.java deleted file mode 100644 index f17f265cf1..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CachingTransformationPropertyValueModelTests.java +++ /dev/null @@ -1,241 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.BidiTransformer; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CachingTransformationPropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CachingTransformationPropertyValueModelTests extends TestCase { - private WritablePropertyValueModel objectHolder; - PropertyChangeEvent event; - - private PropertyValueModel transformationObjectHolder; - PropertyChangeEvent transformationEvent; - - public CachingTransformationPropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.objectHolder = new SimplePropertyValueModel(new Person("Karen", "Peggy", null)); - this.transformationObjectHolder = new CachingTransformationPropertyValueModel(this.objectHolder, this.buildTransformer()); - } - - private BidiTransformer buildTransformer() { - return new BidiTransformer() { - public Person transform(Person p) { - return (p == null) ? null : p.getParent(); - } - public Person reverseTransform(Person p) { - return (p == null) ? null : p.getChild(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testValue() { - ChangeListener listener = this.buildTransformationChangeListener(); - this.transformationObjectHolder.addChangeListener(listener); - - Person person = this.objectHolder.getValue(); - assertEquals("Karen", person.getName()); - Person parent = this.transformationObjectHolder.getValue(); - assertEquals(person.getParent().getName(), parent.getName()); - assertNotSame(person.getParent(), this.transformationObjectHolder.getValue()); - assertEquals(parent, this.transformationObjectHolder.getValue()); - - Person person1 = new Person("Matt", "Mitch", null); - this.objectHolder.setValue(person1); - Person parent2 = this.transformationObjectHolder.getValue(); - assertEquals(person1.getParent().getName(), parent2.getName()); - assertNotSame(person1.getParent(), this.transformationObjectHolder.getValue()); - assertEquals(parent2, this.transformationObjectHolder.getValue()); - - - this.objectHolder.setValue(null); - assertNull(this.objectHolder.getValue()); - assertNull(this.transformationObjectHolder.getValue()); - - Person person3 = new Person("Karen", "Peggy", null); - this.objectHolder.setValue(person3); - assertEquals("Karen", person3.getName()); - Person parent3 = this.transformationObjectHolder.getValue(); - assertEquals(person3.getParent().getName(), parent3.getName()); - assertNotSame(person3.getParent(), this.transformationObjectHolder.getValue()); - assertEquals(parent3, this.transformationObjectHolder.getValue()); - } - - public void testLazyListening() { - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - ChangeListener listener = this.buildTransformationChangeListener(); - this.transformationObjectHolder.addChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.transformationObjectHolder.removeChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.transformationObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testPropertyChange1() { - this.objectHolder.addChangeListener(this.buildChangeListener()); - this.transformationObjectHolder.addChangeListener(this.buildTransformationChangeListener()); - this.verifyPropertyChanges(); - } - - public void testPropertyChange2() { - this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildTransformationListener()); - this.verifyPropertyChanges(); - } - - private void verifyPropertyChanges() { - this.event = null; - this.transformationEvent = null; - Person karen = this.objectHolder.getValue(); - Person peggyParent = this.transformationObjectHolder.getValue(); - Person peggy = new Person("Peggy", "Marian", null); - this.objectHolder.setValue(peggy); - Person marianParent = this.transformationObjectHolder.getValue(); - this.verifyEvent(this.event, this.objectHolder, karen, peggy); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, peggyParent, marianParent); - - this.event = null; - this.transformationEvent = null; - Person matt = new Person("Matt", "Mitch", null); - this.objectHolder.setValue(matt); - Person mitchParent = this.transformationObjectHolder.getValue(); - this.verifyEvent(this.event, this.objectHolder, peggy, matt); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, marianParent, mitchParent); - - this.event = null; - this.transformationEvent = null; - this.objectHolder.setValue(null); - this.verifyEvent(this.event, this.objectHolder, matt, null); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, mitchParent, null); - - this.event = null; - this.transformationEvent = null; - this.objectHolder.setValue(matt); - mitchParent = this.transformationObjectHolder.getValue(); - this.verifyEvent(this.event, this.objectHolder, null, matt); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, null, mitchParent); - } - - private PropertyChangeListener buildListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - CachingTransformationPropertyValueModelTests.this.event = e; - } - }; - } - - private PropertyChangeListener buildTransformationListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - CachingTransformationPropertyValueModelTests.this.transformationEvent = e; - } - }; - } - - private ChangeListener buildChangeListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - CachingTransformationPropertyValueModelTests.this.event = e; - } - }; - } - - private ChangeListener buildTransformationChangeListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - CachingTransformationPropertyValueModelTests.this.transformationEvent = e; - } - }; - } - - private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) { - assertEquals(source, e.getSource()); - assertEquals(PropertyValueModel.VALUE, e.getPropertyName()); - assertEquals(oldValue, e.getOldValue()); - assertEquals(newValue, e.getNewValue()); - } - - - class Person extends AbstractModel { - - private String name; - public static final String NAME_PROPERTY = "name"; - - private String parentName; - public static final String PARENT_NAME_PROPERTY = "parentName"; - - private Person child; - - public Person(String name, String parentName, Person child) { - this.name = name; - this.parentName = parentName; - this.child = child; - } - - public String getName() { - return this.name; - } - - public void setName(String newName) { - String oldName = this.name; - this.name = newName; - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public Person getParent() { - return new Person(this.parentName, null, this); - } - - public String getParentName() { - return this.parentName; - } - - public void setParentName(String newParentName) { - String oldParentName = this.parentName; - this.parentName = newParentName; - firePropertyChanged(PARENT_NAME_PROPERTY, oldParentName, newParentName); - } - - public Person getChild() { - return this.child; - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CachingTransformationWritablePropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CachingTransformationWritablePropertyValueModelTests.java deleted file mode 100644 index 3560f4a814..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CachingTransformationWritablePropertyValueModelTests.java +++ /dev/null @@ -1,253 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.BidiTransformer; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CachingTransformationWritablePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CachingTransformationWritablePropertyValueModelTests extends TestCase { - private WritablePropertyValueModel objectHolder; - PropertyChangeEvent event; - - private WritablePropertyValueModel transformationObjectHolder; - PropertyChangeEvent transformationEvent; - - public CachingTransformationWritablePropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.objectHolder = new SimplePropertyValueModel(new Person("Karen", "Peggy", null)); - this.transformationObjectHolder = new CachingTransformationWritablePropertyValueModel(this.objectHolder, this.buildTransformer()); - } - - private BidiTransformer buildTransformer() { - return new BidiTransformer() { - public Person transform(Person p) { - return (p == null) ? null : p.getParent(); - } - public Person reverseTransform(Person p) { - return (p == null) ? null : p.getChild(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testValue() { - ChangeListener listener = this.buildTransformationListener(); - this.transformationObjectHolder.addChangeListener(listener); - - - Person person = this.objectHolder.getValue(); - assertEquals("Karen", person.getName()); - Person parent = this.transformationObjectHolder.getValue(); - assertEquals(person.getParent().getName(), parent.getName()); - assertNotSame(person.getParent(), this.transformationObjectHolder.getValue()); - assertEquals(parent, this.transformationObjectHolder.getValue()); - - Person person1 = new Person("Matt", "Mitch", null); - this.objectHolder.setValue(person1); - Person parent2 = this.transformationObjectHolder.getValue(); - assertEquals(person1.getParent().getName(), parent2.getName()); - assertNotSame(person1.getParent(), this.transformationObjectHolder.getValue()); - assertEquals(parent2, this.transformationObjectHolder.getValue()); - - - this.objectHolder.setValue(null); - assertNull(this.objectHolder.getValue()); - assertNull(this.transformationObjectHolder.getValue()); - - Person person3 = new Person("Karen", "Peggy", null); - this.objectHolder.setValue(person3); - assertEquals("Karen", person3.getName()); - Person parent3 = this.transformationObjectHolder.getValue(); - assertEquals(person3.getParent().getName(), parent3.getName()); - assertNotSame(person3.getParent(), this.transformationObjectHolder.getValue()); - assertEquals(parent3, this.transformationObjectHolder.getValue()); - } - - public void testSetValue() { - ChangeListener listener = this.buildTransformationListener(); - this.transformationObjectHolder.addChangeListener(listener); - - Person person = new Person("Chris", "Noel", null); - this.transformationObjectHolder.setValue(person.getParent()); - assertEquals(person, this.objectHolder.getValue()); - assertEquals(person.getParent().getName(), this.transformationObjectHolder.getValue().getName()); - assertNotSame(person.getParent(), this.transformationObjectHolder.getValue()); - - Person person2 = new Person("Jon", "Elizabeth", null); - this.transformationObjectHolder.setValue(person2.getParent()); - assertEquals(person2, this.objectHolder.getValue()); - assertEquals(person2.getParent().getName(), this.transformationObjectHolder.getValue().getName()); - assertNotSame(person2.getParent(), this.transformationObjectHolder.getValue()); - - this.transformationObjectHolder.setValue(null); - assertNull(this.objectHolder.getValue()); - assertNull(this.transformationObjectHolder.getValue()); - - this.transformationObjectHolder.setValue(person.getParent()); - assertEquals(person, this.objectHolder.getValue()); - assertEquals(person.getParent().getName(), this.transformationObjectHolder.getValue().getName()); - assertNotSame(person.getParent(), this.transformationObjectHolder.getValue()); - } - - public void testLazyListening() { - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - ChangeListener listener = this.buildTransformationListener(); - this.transformationObjectHolder.addChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.transformationObjectHolder.removeChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.transformationObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testPropertyChange1() { - this.objectHolder.addChangeListener(this.buildListener()); - this.transformationObjectHolder.addChangeListener(this.buildTransformationListener()); - this.verifyPropertyChanges(); - } - - public void testPropertyChange2() { - this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildTransformationListener()); - this.verifyPropertyChanges(); - } - - private void verifyPropertyChanges() { - this.event = null; - this.transformationEvent = null; - Person oldPerson = this.objectHolder.getValue(); - Person oldParent = this.transformationObjectHolder.getValue(); - Person newPerson = new Person("Karen" , "Peggy", null); - this.objectHolder.setValue(newPerson); - Person newParent = this.transformationObjectHolder.getValue(); - this.verifyEvent(this.event, this.objectHolder, oldPerson, newPerson); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, oldParent, newParent); - -// -// this.event = null; -// this.transformationEvent = null; -// this.objectHolder.setValue("Foo"); -// this.verifyEvent(this.event, this.objectHolder, "baz", "Foo"); -// this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "BAZ", "FOO"); -// -// this.event = null; -// this.transformationEvent = null; -// this.objectHolder.setValue("FOO"); -// this.verifyEvent(this.event, this.objectHolder, "Foo", "FOO"); -// assertNull(this.transformationEvent); -// -// this.event = null; -// this.transformationEvent = null; -// this.objectHolder.setValue(null); -// this.verifyEvent(this.event, this.objectHolder, "FOO", null); -// this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "FOO", null); -// -// this.event = null; -// this.transformationEvent = null; -// this.objectHolder.setValue("bar"); -// this.verifyEvent(this.event, this.objectHolder, null, "bar"); -// this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, null, "BAR"); - } - - private ChangeListener buildListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - CachingTransformationWritablePropertyValueModelTests.this.event = e; - } - }; - } - - private ChangeListener buildTransformationListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - CachingTransformationWritablePropertyValueModelTests.this.transformationEvent = e; - } - }; - } - - private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) { - assertEquals(source, e.getSource()); - assertEquals(PropertyValueModel.VALUE, e.getPropertyName()); - assertEquals(oldValue, e.getOldValue()); - assertEquals(newValue, e.getNewValue()); - } - - - class Person extends AbstractModel { - - private String name; - public static final String NAME_PROPERTY = "name"; - - private String parentName; - public static final String PARENT_NAME_PROPERTY = "parentName"; - - private Person child; - - public Person(String name, String parentName, Person child) { - this.name = name; - this.parentName = parentName; - this.child = child; - } - - public String getName() { - return this.name; - } - - public void setName(String newName) { - String oldName = this.name; - this.name = newName; - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public Person getParent() { - return new Person(this.parentName, null, this); - } - - public String getParentName() { - return this.parentName; - } - - public void setParentName(String newParentName) { - String oldParentName = this.parentName; - this.parentName = newParentName; - firePropertyChanged(PARENT_NAME_PROPERTY, oldParentName, newParentName); - } - - public Person getChild() { - return this.child; - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionAspectAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionAspectAdapterTests.java deleted file mode 100644 index b9542f9d21..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionAspectAdapterTests.java +++ /dev/null @@ -1,372 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CollectionAspectAdapterTests extends TestCase { - private TestSubject subject1; - private WritablePropertyValueModel subjectHolder1; - private LocalCollectionAspectAdapter aa1; - private CollectionEvent event1; - private CollectionChangeListener listener1; - private String event1Type; - - private static final String ADD = "add"; - private static final String REMOVE = "remove"; - private static final String CHANGE = "change"; - private static final String CLEAR = "clear"; - - private TestSubject subject2; - - public CollectionAspectAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.subject1 = new TestSubject(); - this.subject1.addNames(this.subject1Names()); - this.subject1.addDescriptions(this.subject1Descriptions()); - this.subjectHolder1 = new SimplePropertyValueModel(this.subject1); - this.aa1 = this.buildAspectAdapter(this.subjectHolder1); - this.listener1 = this.buildValueChangeListener1(); - this.aa1.addCollectionChangeListener(CollectionValueModel.VALUES, this.listener1); - this.event1 = null; - this.event1Type = null; - - this.subject2 = new TestSubject(); - this.subject2.addNames(this.subject2Names()); - this.subject2.addDescriptions(this.subject2Descriptions()); - } - - private Collection subject1Names() { - Collection result = new HashBag(); - result.add("foo"); - result.add("bar"); - return result; - } - - private Collection subject1Descriptions() { - Collection result = new HashBag(); - result.add("this.subject1 description1"); - result.add("this.subject1 description2"); - return result; - } - - private Collection subject2Names() { - Collection result = new HashBag(); - result.add("baz"); - result.add("bam"); - return result; - } - - private Collection subject2Descriptions() { - Collection result = new HashBag(); - result.add("this.subject2 description1"); - result.add("this.subject2 description2"); - return result; - } - - private LocalCollectionAspectAdapter buildAspectAdapter(PropertyValueModel subjectHolder) { - return new LocalCollectionAspectAdapter(subjectHolder); - } - - private CollectionChangeListener buildValueChangeListener1() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent e) { - CollectionAspectAdapterTests.this.value1Changed(e, ADD); - } - public void itemsRemoved(CollectionRemoveEvent e) { - CollectionAspectAdapterTests.this.value1Changed(e, REMOVE); - } - public void collectionCleared(CollectionClearEvent e) { - CollectionAspectAdapterTests.this.value1Changed(e, CLEAR); - } - public void collectionChanged(CollectionChangeEvent e) { - CollectionAspectAdapterTests.this.value1Changed(e, CHANGE); - } - }; - } - - void value1Changed(CollectionEvent e, String eventType) { - this.event1 = e; - this.event1Type = eventType; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSubjectHolder() { - assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator())); - assertNull(this.event1); - - this.subjectHolder1.setValue(this.subject2); - assertNotNull(this.event1); - assertEquals(this.event1Type, CHANGE); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName()); - assertEquals(this.subject2Names(), CollectionTools.bag(this.aa1.iterator())); - - this.event1 = null; - this.event1Type = null; - this.subjectHolder1.setValue(null); - assertNotNull(this.event1); - assertEquals(this.event1Type, CHANGE); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName()); - assertFalse(this.aa1.iterator().hasNext()); - - this.event1 = null; - this.event1Type = null; - this.subjectHolder1.setValue(this.subject1); - assertNotNull(this.event1); - assertEquals(this.event1Type, CHANGE); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName()); - assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator())); - } - - public void testAdd() { - assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator())); - assertNull(this.event1); - - this.subject1.addName("jam"); - assertNotNull(this.event1); - assertEquals(this.event1Type, ADD); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName()); - assertEquals("jam", ((CollectionAddEvent) this.event1).getItems().iterator().next()); - Collection namesPlus = this.subject1Names(); - namesPlus.add("jam"); - assertEquals(namesPlus, CollectionTools.bag(this.aa1.iterator())); - - this.event1 = null; - this.event1Type = null; - this.aa1.addAll(Collections.singleton("jaz")); - assertNotNull(this.event1); - assertEquals(this.event1Type, ADD); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName()); - assertEquals("jaz", ((CollectionAddEvent) this.event1).getItems().iterator().next()); - namesPlus.add("jaz"); - assertEquals(namesPlus, CollectionTools.bag(this.aa1.iterator())); - } - - public void testRemove() { - assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator())); - assertNull(this.event1); - - this.subject1.removeName("foo"); - assertNotNull(this.event1); - assertEquals(this.event1Type, REMOVE); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName()); - assertEquals("foo", ((CollectionRemoveEvent) this.event1).getItems().iterator().next()); - Collection namesMinus = this.subject1Names(); - namesMinus.remove("foo"); - assertEquals(namesMinus, CollectionTools.bag(this.aa1.iterator())); - - this.event1 = null; - this.event1Type = null; - this.aa1.removeAll(Collections.singleton("bar")); - assertNotNull(this.event1); - assertEquals(this.event1Type, REMOVE); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName()); - assertEquals("bar", ((CollectionRemoveEvent) this.event1).getItems().iterator().next()); - namesMinus.remove("bar"); - assertEquals(namesMinus, CollectionTools.bag(this.aa1.iterator())); - } - - public void testCollectionChange() { - assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator())); - assertNull(this.event1); - - this.subject1.addTwoNames("jam", "jaz"); - assertNotNull(this.event1); - assertEquals(this.event1Type, CHANGE); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName()); - Collection namesPlus2 = this.subject1Names(); - namesPlus2.add("jam"); - namesPlus2.add("jaz"); - assertEquals(namesPlus2, CollectionTools.bag(this.aa1.iterator())); - } - - public void testIterator() { - assertEquals(this.subject1Names(), CollectionTools.bag(this.subject1.names())); - assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator())); - } - - public void testSize() { - assertEquals(this.subject1Names().size(), CollectionTools.size(this.subject1.names())); - assertEquals(this.subject1Names().size(), CollectionTools.size(this.aa1.iterator())); - } - - public void testHasListeners() { - assertTrue(this.aa1.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - assertTrue(this.subject1.hasAnyCollectionChangeListeners(TestSubject.NAMES_COLLECTION)); - this.aa1.removeCollectionChangeListener(CollectionValueModel.VALUES, this.listener1); - assertFalse(this.subject1.hasAnyCollectionChangeListeners(TestSubject.NAMES_COLLECTION)); - assertFalse(this.aa1.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - - ChangeListener listener2 = new ChangeAdapter(); - this.aa1.addChangeListener(listener2); - assertTrue(this.aa1.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - assertTrue(this.subject1.hasAnyCollectionChangeListeners(TestSubject.NAMES_COLLECTION)); - this.aa1.removeChangeListener(listener2); - assertFalse(this.subject1.hasAnyCollectionChangeListeners(TestSubject.NAMES_COLLECTION)); - assertFalse(this.aa1.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - } - - - // ********** inner class ********** - - private class TestSubject extends AbstractModel { - private Collection names; - public static final String NAMES_COLLECTION = "names"; - private Collection descriptions; - public static final String DESCRIPTIONS_COLLECTION = "descriptions"; - - public TestSubject() { - this.names = new HashBag(); - this.descriptions = new HashBag(); - } - public Iterator names() { - return new ReadOnlyIterator(this.names); - } - public void addName(String name) { - if (this.names.add(name)) { - this.fireItemAdded(NAMES_COLLECTION, name); - } - } - public void addNames(Iterator newNames) { - while (newNames.hasNext()) { - this.addName(newNames.next()); - } - } - public void addNames(Collection newNames) { - this.addNames(newNames.iterator()); - } - public void addTwoNames(String name1, String name2) { - if (this.names.add(name1) | this.names.add(name2)) { - this.fireCollectionChanged(NAMES_COLLECTION, this.names); - } - } - public void removeName(String name) { - if (this.names.remove(name)) { - this.fireItemRemoved(NAMES_COLLECTION, name); - } - } - public Iterator descriptions() { - return new ReadOnlyIterator(this.descriptions); - } - public void addDescription(String description) { - if (this.descriptions.add(description)) { - this.fireItemAdded(DESCRIPTIONS_COLLECTION, description); - } - } - public void addDescriptions(Iterator newDescriptions) { - while (newDescriptions.hasNext()) { - this.addDescription(newDescriptions.next()); - } - } - public void addDescriptions(Collection newDescriptions) { - this.addDescriptions(newDescriptions.iterator()); - } - public void removeDescription(String description) { - if (this.descriptions.remove(description)) { - this.fireItemRemoved(DESCRIPTIONS_COLLECTION, description); - } - } - } - - // this is not a typical aspect adapter - the value is determined by the aspect name - private class LocalCollectionAspectAdapter extends CollectionAspectAdapter { - - LocalCollectionAspectAdapter(PropertyValueModel subjectHolder) { - super(subjectHolder, TestSubject.NAMES_COLLECTION); - } - - @Override - protected Iterator iterator_() { - if (this.collectionNames[0] == TestSubject.NAMES_COLLECTION) { - return this.subject.names(); - } - if (this.collectionNames[0] == TestSubject.DESCRIPTIONS_COLLECTION) { - return this.subject.descriptions(); - } - throw new IllegalStateException("invalid aspect name: " + this.collectionNames[0]); - } - - public void add(String item) { - if (this.collectionNames[0] == TestSubject.NAMES_COLLECTION) { - this.subject.addName(item); - } else if (this.collectionNames[0] == TestSubject.DESCRIPTIONS_COLLECTION) { - this.subject.addDescription(item); - } else { - throw new IllegalStateException("invalid aspect name: " + this.collectionNames[0]); - } - } - - public void addAll(Collection items) { - for (Iterator stream = items.iterator(); stream.hasNext(); ) { - this.add(stream.next()); - } - } - - public void remove(Object item) { - if (this.collectionNames[0] == TestSubject.NAMES_COLLECTION) { - this.subject.removeName((String) item); - } else if (this.collectionNames[0] == TestSubject.DESCRIPTIONS_COLLECTION) { - this.subject.removeDescription((String) item); - } else { - throw new IllegalStateException("invalid aspect name: " + this.collectionNames[0]); - } - } - - public void removeAll(Collection items) { - for (Iterator stream = items.iterator(); stream.hasNext(); ) { - this.remove(stream.next()); - } - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionListValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionListValueModelAdapterTests.java deleted file mode 100644 index 7c0a154f5b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionListValueModelAdapterTests.java +++ /dev/null @@ -1,247 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Collection; -import java.util.List; - -import javax.swing.JList; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListModelAdapter; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CollectionListValueModelAdapterTests extends TestCase { - private ListValueModel adapter; - private SimpleCollectionValueModel wrappedCollectionHolder; - private Collection wrappedCollection; - - public CollectionListValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.wrappedCollection = new HashBag(); - this.wrappedCollectionHolder = new SimpleCollectionValueModel(this.wrappedCollection); - this.adapter = new CollectionListValueModelAdapter(this.wrappedCollectionHolder); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - }); - this.wrappedCollectionHolder.add("foo"); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - Collection adapterCollection = this.adapterCollection(); - assertEquals(3, adapterCollection.size()); - assertEquals(this.wrappedCollection, adapterCollection); - } - - private Collection adapterCollection() { - return CollectionTools.collection(this.adapter.iterator()); - } - - public void testStaleValue() { - ListChangeListener listener = new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - }; - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, listener); - this.wrappedCollectionHolder.add("foo"); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - Collection adapterCollection = this.adapterCollection(); - assertEquals(3, adapterCollection.size()); - assertEquals(this.wrappedCollection, adapterCollection); - - this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, listener); - adapterCollection = this.adapterCollection(); - assertEquals(0, adapterCollection.size()); - assertEquals(new HashBag(), adapterCollection); - - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, listener); - adapterCollection = this.adapterCollection(); - assertEquals(3, adapterCollection.size()); - assertEquals(this.wrappedCollection, adapterCollection); - } - - public void testAdd() { - List synchList = new CoordinatedList(this.adapter); - Bag synchCollection = new CoordinatedBag(this.wrappedCollectionHolder); - this.wrappedCollectionHolder.add("foo"); - assertTrue(this.wrappedCollection.contains("foo")); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - this.wrappedCollectionHolder.add("joo"); - this.wrappedCollectionHolder.add("jar"); - this.wrappedCollectionHolder.add("jaz"); - assertEquals(6, this.wrappedCollection.size()); - - Collection adapterCollection = this.adapterCollection(); - assertEquals(this.wrappedCollection, adapterCollection); - assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator())); - assertEquals(this.wrappedCollection, synchCollection); - } - - public void testRemove() { - List synchList = new CoordinatedList(this.adapter); - Bag synchCollection = new CoordinatedBag(this.wrappedCollectionHolder); - this.wrappedCollectionHolder.add("foo"); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - this.wrappedCollectionHolder.add("joo"); - this.wrappedCollectionHolder.add("jar"); - this.wrappedCollectionHolder.add("jaz"); - assertTrue(this.wrappedCollection.contains("jaz")); - this.wrappedCollectionHolder.remove("jaz"); - assertFalse(this.wrappedCollection.contains("jaz")); - this.wrappedCollectionHolder.remove("foo"); - assertFalse(this.wrappedCollection.contains("foo")); - assertEquals(4, this.wrappedCollection.size()); - - Collection adapterCollection = this.adapterCollection(); - assertEquals(this.wrappedCollection, adapterCollection); - assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator())); - assertEquals(this.wrappedCollection, synchCollection); - } - - public void testListSynch() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - @Override - public void itemsRemoved(ListRemoveEvent e) {/* OK */} - }); - this.wrappedCollectionHolder.add("foo"); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - this.wrappedCollectionHolder.add("joo"); - this.wrappedCollectionHolder.add("jar"); - this.wrappedCollectionHolder.add("jaz"); - this.wrappedCollectionHolder.remove("jaz"); - assertFalse(this.wrappedCollection.contains("jaz")); - this.wrappedCollectionHolder.remove("foo"); - assertFalse(this.wrappedCollection.contains("foo")); - assertEquals(4, this.wrappedCollection.size()); - - Collection adapterCollection = this.adapterCollection(); - assertEquals(this.wrappedCollection, adapterCollection); - } - - public void testHasListeners() { - assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - CoordinatedList synchList = new CoordinatedList(this.adapter); - assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, synchList); - assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - ChangeListener cl = new ChangeAdapter(); - this.adapter.addChangeListener(cl); - assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.adapter.removeChangeListener(cl); - assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - public void testCollectionChangedToEmpty() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void listCleared(ListClearEvent e) {/* OK */} - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - }); - this.wrappedCollectionHolder.add("foo"); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - JList jList = new JList(new ListModelAdapter(this.adapter)); - this.wrappedCollectionHolder.setValues(new HashBag()); - assertEquals(0, jList.getModel().getSize()); - } - - public void testCollectionChangedFromEmpty() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - @Override - public void itemsRemoved(ListRemoveEvent e) {/* OK */} - }); - JList jList = new JList(new ListModelAdapter(this.adapter)); - - HashBag bag = new HashBag(); - bag.add("foo"); - bag.add("bar"); - this.wrappedCollectionHolder.setValues(bag); - assertEquals(2, jList.getModel().getSize()); - } - - public void testCollectionChangedFromEmptyToEmpty() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - @Override - public void itemsRemoved(ListRemoveEvent e) {/* OK */} - }); - JList jList = new JList(new ListModelAdapter(this.adapter)); - - HashBag bag = new HashBag(); - this.wrappedCollectionHolder.setValues(bag); - assertEquals(0, jList.getModel().getSize()); - } - - - class TestListChangeListener implements ListChangeListener { - public void itemsAdded(ListAddEvent e) { - fail("unexpected event"); - } - public void itemsRemoved(ListRemoveEvent e) { - fail("unexpected event"); - } - public void itemsReplaced(ListReplaceEvent e) { - fail("unexpected event"); - } - public void itemsMoved(ListMoveEvent e) { - fail("unexpected event"); - } - public void listCleared(ListClearEvent e) { - fail("unexpected event"); - } - public void listChanged(ListChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionPropertyValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionPropertyValueModelAdapterTests.java deleted file mode 100644 index 559c12635d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CollectionPropertyValueModelAdapterTests.java +++ /dev/null @@ -1,240 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Collection; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionPropertyValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CollectionPropertyValueModelAdapterTests extends TestCase { - private WritablePropertyValueModel adapter; - private SimpleCollectionValueModel wrappedCollectionHolder; - PropertyChangeEvent event; - - public CollectionPropertyValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.wrappedCollectionHolder = new SimpleCollectionValueModel(); - this.adapter = new LocalAdapter(this.wrappedCollectionHolder, "666"); - this.event = null; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - private boolean booleanValue() { - return this.adapter.getValue().booleanValue(); - } - - private Collection wrappedCollection() { - return CollectionTools.collection(this.wrappedCollectionHolder.iterator()); - } - - public void testValue() { - this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) {/* OK */} - }); - assertFalse(this.booleanValue()); - assertFalse(this.wrappedCollection().contains("666")); - - this.wrappedCollectionHolder.add("111"); - assertFalse(this.booleanValue()); - - this.wrappedCollectionHolder.add("222"); - assertFalse(this.booleanValue()); - - this.wrappedCollectionHolder.add("666"); - assertTrue(this.booleanValue()); - assertTrue(this.wrappedCollection().contains("666")); - - this.wrappedCollectionHolder.remove("666"); - assertFalse(this.booleanValue()); - assertFalse(this.wrappedCollection().contains("666")); - - this.wrappedCollectionHolder.add("666"); - assertTrue(this.booleanValue()); - assertTrue(this.wrappedCollection().contains("666")); - - this.wrappedCollectionHolder.clear(); - assertFalse(this.booleanValue()); - assertFalse(this.wrappedCollection().contains("666")); - } - - public void testSetValue() { - this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) {/* OK */} - }); - assertFalse(this.booleanValue()); - assertFalse(this.wrappedCollection().contains("666")); - - this.adapter.setValue(Boolean.TRUE); - assertTrue(this.booleanValue()); - assertTrue(this.wrappedCollection().contains("666")); - - this.adapter.setValue(Boolean.FALSE); - assertFalse(this.booleanValue()); - assertFalse(this.wrappedCollection().contains("666")); - } - - public void testEventFiring() { - this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - CollectionPropertyValueModelAdapterTests.this.event = e; - } - }); - assertNull(this.event); - - this.wrappedCollectionHolder.add("111"); - assertNull(this.event); - - this.wrappedCollectionHolder.add("222"); - assertNull(this.event); - - this.wrappedCollectionHolder.add("666"); - this.verifyEvent(false, true); - - this.wrappedCollectionHolder.remove("666"); - this.verifyEvent(true, false); - - this.wrappedCollectionHolder.add("666"); - this.verifyEvent(false, true); - - this.wrappedCollectionHolder.clear(); - this.verifyEvent(true, false); - } - - private void verifyEvent(boolean oldValue, boolean newValue) { - assertEquals(this.adapter, this.event.getSource()); - assertEquals(Boolean.valueOf(oldValue), this.event.getOldValue()); - assertEquals(Boolean.valueOf(newValue), this.event.getNewValue()); - this.event = null; - } - - public void testStaleValue() { - PropertyChangeListener listener = new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) {/* OK */} - }; - this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - this.wrappedCollectionHolder.add("666"); - assertTrue(this.booleanValue()); - assertTrue(this.wrappedCollection().contains("666")); - - this.adapter.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertFalse(this.booleanValue()); - assertTrue(this.wrappedCollection().contains("666")); - - this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(this.booleanValue()); - assertTrue(this.wrappedCollection().contains("666")); - } - - public void testHasListeners() { - assertFalse(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - - ChangeListener listener = new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) {/* OK */} - }; - this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - - this.adapter.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertFalse(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - - this.adapter.addChangeListener(listener); - assertTrue(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - - this.adapter.removeChangeListener(listener); - assertFalse(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - } - - - // ********** member class ********** - - /** - * the value is true if the wrapped collection contains the specified item, - * otherwise the value is false - */ - static class LocalAdapter - extends CollectionPropertyValueModelAdapter - implements WritablePropertyValueModel - { - private String item; - - LocalAdapter(CollectionValueModel collectionHolder, String item) { - super(collectionHolder); - this.item = item; - } - - // ********** CollectionPropertyValueModelAdapter implementation ********** - /** - * always return a Boolean - */ - @Override - public Boolean getValue() { - Boolean result = super.getValue(); - return (result == null) ? Boolean.FALSE : result; - } - @SuppressWarnings("unchecked") - public void setValue(Boolean value) { - if (this.booleanValue()) { - if ( ! this.booleanValueOf(value)) { - // the value is changing from true to false - ((SimpleCollectionValueModel) this.collectionModel).remove(this.item); - } - } else { - if (this.booleanValueOf(value)) { - // the value is changing from false to true - ((SimpleCollectionValueModel) this.collectionModel).add(this.item); - } - } - } - @Override - protected Boolean buildValue() { - return Boolean.valueOf(CollectionTools.contains(this.collectionModel.iterator(), this.item)); - } - - // ********** internal methods ********** - private boolean booleanValue() { - return this.booleanValueOf(this.value); - } - private boolean booleanValueOf(Object b) { - return (b == null) ? false : ((Boolean) b).booleanValue(); - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeBooleanPropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeBooleanPropertyValueModelTests.java deleted file mode 100644 index 1cd4bb25cb..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeBooleanPropertyValueModelTests.java +++ /dev/null @@ -1,201 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.value.CompositeBooleanPropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -public class CompositeBooleanPropertyValueModelTests extends TestCase { - private SimplePropertyValueModel pvm1; - private WritablePropertyValueModel pvm2; - private WritablePropertyValueModel pvm3; - private WritablePropertyValueModel pvm4; - private Collection> collection; - private SimpleCollectionValueModel> cvm; - private PropertyValueModel compositePVM; - PropertyChangeEvent event; - - - public CompositeBooleanPropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.pvm1 = new SimplePropertyValueModel(Boolean.TRUE); - this.pvm2 = new SimplePropertyValueModel(Boolean.TRUE); - this.pvm3 = new SimplePropertyValueModel(Boolean.TRUE); - this.pvm4 = new SimplePropertyValueModel(Boolean.TRUE); - this.collection = new ArrayList>(); - this.collection.add(this.pvm1); - this.collection.add(this.pvm2); - this.collection.add(this.pvm3); - this.collection.add(this.pvm4); - this.cvm = new SimpleCollectionValueModel>(this.collection); - - this.compositePVM = this.buildCompositePVM(cvm); - } - - private PropertyValueModel buildCompositePVM(CollectionValueModel> pvms) { - return CompositeBooleanPropertyValueModel.and(pvms); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testGetValue() { - assertNull(this.compositePVM.getValue()); - ChangeListener listener = this.buildListener(); - this.compositePVM.addChangeListener(listener); - assertTrue(this.compositePVM.getValue().booleanValue()); - } - - public void testValueAndListeners1() { - assertNull(this.compositePVM.getValue()); - ChangeListener listener = this.buildListener(); - this.compositePVM.addChangeListener(listener); - assertTrue(this.compositePVM.getValue().booleanValue()); - this.compositePVM.removeChangeListener(listener); - assertNull(this.compositePVM.getValue()); - } - - public void testValueAndListeners2() { - assertNull(this.compositePVM.getValue()); - ChangeListener listener = this.buildListener(); - this.compositePVM.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(this.compositePVM.getValue().booleanValue()); - this.compositePVM.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertNull(this.compositePVM.getValue()); - } - - public void testPropertyChange1() { - this.compositePVM.addChangeListener(this.buildListener()); - this.verifyPropertyChange(); - } - - public void testPropertyChange2() { - this.compositePVM.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.verifyPropertyChange(); - } - - private void verifyPropertyChange() { - this.event = null; - this.pvm1.setValue(Boolean.FALSE); - this.verifyEvent(true, false); - - this.event = null; - this.pvm2.setValue(Boolean.FALSE); - assertNull(this.event); // no change - - this.event = null; - this.pvm2.setValue(Boolean.TRUE); - assertNull(this.event); // no change - - this.event = null; - this.pvm1.setValue(Boolean.TRUE); - this.verifyEvent(false, true); - - this.event = null; - this.pvm4.setValue(Boolean.FALSE); - this.verifyEvent(true, false); - } - - public void testCollectionChange1() { - this.compositePVM.addChangeListener(this.buildListener()); - this.verifyCollectionChange(); - } - - public void testCollectionChange2() { - this.compositePVM.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.verifyCollectionChange(); - } - - private void verifyCollectionChange() { - this.event = null; - WritablePropertyValueModel pvm = new SimplePropertyValueModel(Boolean.FALSE); - this.cvm.add(pvm); - this.verifyEvent(true, false); - - this.event = null; - this.cvm.remove(pvm); - this.verifyEvent(false, true); - - this.event = null; - this.cvm.clear(); - this.verifyEvent(Boolean.TRUE, null); - - Collection> c2 = new ArrayList>(); - c2.add(this.pvm1); - c2.add(this.pvm2); - this.event = null; - this.cvm.setValues(c2); - this.verifyEvent(null, Boolean.TRUE); - } - - public void testLazyListening1() { - assertFalse(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - ChangeListener listener = this.buildListener(); - - this.compositePVM.addChangeListener(listener); - assertTrue(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.compositePVM.removeChangeListener(listener); - assertFalse(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testLazyListening2() { - assertFalse(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - ChangeListener listener = this.buildListener(); - - this.compositePVM.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.compositePVM.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertFalse(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - private ChangeListener buildListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - CompositeBooleanPropertyValueModelTests.this.event = e; - } - }; - } - - private void verifyEvent(boolean oldValue, boolean newValue) { - this.verifyEvent(Boolean.valueOf(oldValue), Boolean.valueOf(newValue)); - } - - private void verifyEvent(Boolean oldValue, Boolean newValue) { - assertEquals(this.compositePVM, this.event.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event.getPropertyName()); - assertEquals(oldValue, this.event.getOldValue()); - assertEquals(newValue, this.event.getNewValue()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeCollectionValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeCollectionValueModelTests.java deleted file mode 100644 index 1f0c74218c..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeCollectionValueModelTests.java +++ /dev/null @@ -1,415 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.iterators.CompositeIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.CompositeCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CompositeCollectionValueModelTests extends TestCase { - private Neighborhood neighborhood; - private WritablePropertyValueModel neighborhoodHolder; - - public CompositeCollectionValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.neighborhood = new Neighborhood("Hanna-Barbera"); - this.neighborhoodHolder = new SimplePropertyValueModel(this.neighborhood); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSynch1() { - this.verifySynch(this.buildAllMembersComposite(this.neighborhoodHolder)); - } - - public void testSynch2() { - this.verifySynch(this.buildAllMembersComposite2(this.neighborhoodHolder)); - } - - private void verifySynch(CollectionValueModel compositeCVM) { - assertEquals(0, CollectionTools.size(compositeCVM.iterator())); - Bag familiesSynch = new CoordinatedBag(this.buildFamiliesAspectAdapter(this.neighborhoodHolder)); - Bag membersSynch = new CoordinatedBag(compositeCVM); - this.populateNeighborhood(this.neighborhood); - - Family jetsons = this.neighborhood.familyNamed("Jetson"); - - assertEquals(3, familiesSynch.size()); - assertEquals(12, CollectionTools.size(this.neighborhood.allMembers())); - assertEquals(12, membersSynch.size()); - assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch); - assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator())); - - jetsons.removeMember(jetsons.memberNamed("Astro")); - assertEquals(3, familiesSynch.size()); - assertEquals(11, CollectionTools.size(this.neighborhood.allMembers())); - assertEquals(11, membersSynch.size()); - assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch); - assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator())); - - jetsons.removeMember(jetsons.memberNamed("Judy")); - assertEquals(3, familiesSynch.size()); - assertEquals(10, CollectionTools.size(this.neighborhood.allMembers())); - assertEquals(10, membersSynch.size()); - assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch); - assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator())); - - jetsons.addMember("Fido"); - assertEquals(3, familiesSynch.size()); - assertEquals(11, CollectionTools.size(this.neighborhood.allMembers())); - assertEquals(11, membersSynch.size()); - assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch); - assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator())); - - this.neighborhood.removeFamily(jetsons); - assertEquals(2, familiesSynch.size()); - assertEquals(7, CollectionTools.size(this.neighborhood.allMembers())); - assertEquals(7, membersSynch.size()); - assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch); - assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator())); - - Family bears = this.neighborhood.addFamily("Bear"); - bears.addMember("Yogi"); - assertEquals(3, familiesSynch.size()); - assertEquals(8, CollectionTools.size(this.neighborhood.allMembers())); - assertEquals(8, membersSynch.size()); - assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch); - assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator())); - - bears.addMember("Boo-Boo"); - assertEquals(3, familiesSynch.size()); - assertEquals(9, CollectionTools.size(this.neighborhood.allMembers())); - assertEquals(9, membersSynch.size()); - assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch); - assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator())); - - Neighborhood n2 = new Neighborhood("Hanna-Barbera 2"); - this.neighborhoodHolder.setValue(n2); - this.populateNeighborhood(n2); - assertEquals(3, familiesSynch.size()); - assertEquals(12, CollectionTools.size(n2.allMembers())); - assertEquals(12, membersSynch.size()); - assertEquals(CollectionTools.bag(n2.allMembers()), membersSynch); - assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator())); - } - - public void testNoTransformer() { - SimpleCollectionValueModel subCVM1 = new SimpleCollectionValueModel(); - SimpleCollectionValueModel subCVM2 = new SimpleCollectionValueModel(); - Collection> collection = new ArrayList>(); - collection.add(subCVM1); - collection.add(subCVM2); - Bag synchBag = new CoordinatedBag(new CompositeCollectionValueModel, String>(collection)); - - assertEquals(0, synchBag.size()); - - subCVM1.add("foo"); - subCVM1.add("bar"); - subCVM1.add("baz"); - assertEquals(3, synchBag.size()); - assertTrue(synchBag.contains("foo")); - - subCVM2.add("joo"); - subCVM2.add("jar"); - subCVM2.add("jaz"); - assertEquals(6, synchBag.size()); - assertTrue(synchBag.contains("foo")); - assertTrue(synchBag.contains("jaz")); - - subCVM1.remove("baz"); - assertEquals(5, synchBag.size()); - assertFalse(synchBag.contains("baz")); - } - - public void testDuplicateItem() { - Bag synchBag = new CoordinatedBag(this.buildAllMembersComposite(this.neighborhoodHolder)); - this.populateNeighborhood(this.neighborhood); - boolean exCaught = false; - try { - this.neighborhood.addFamily(this.neighborhood.familyNamed("Jetson")); - } catch (IllegalStateException ex) { - if (ex.getMessage().indexOf("duplicate component") != -1) { - exCaught = true; - } - } - assertTrue(exCaught); - assertEquals(12, synchBag.size()); - } - - public void testHasListeners() { - CompositeCollectionValueModel compositeCVM = this.buildAllMembersComposite(this.neighborhoodHolder); - CoordinatedBag synchBag = new CoordinatedBag(compositeCVM); - this.populateNeighborhood(this.neighborhood); - Family jetsons = this.neighborhood.familyNamed("Jetson"); - - assertTrue(compositeCVM.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - assertTrue(jetsons.hasAnyCollectionChangeListeners(Family.MEMBERS_COLLECTION)); - - compositeCVM.removeCollectionChangeListener(CollectionValueModel.VALUES, synchBag); - assertFalse(compositeCVM.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - assertFalse(jetsons.hasAnyCollectionChangeListeners(Family.MEMBERS_COLLECTION)); - - compositeCVM.addCollectionChangeListener(CollectionValueModel.VALUES, synchBag); - assertTrue(compositeCVM.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - assertTrue(jetsons.hasAnyCollectionChangeListeners(Family.MEMBERS_COLLECTION)); - } - - private void populateNeighborhood(Neighborhood n) { - Family family1 = n.addFamily("Flintstone"); - family1.addMember("Fred"); - family1.addMember("Wilma"); - family1.addMember("Pebbles"); - family1.addMember("Dino"); - Family family2 = n.addFamily("Rubble"); - family2.addMember("Barney"); - family2.addMember("Betty"); - family2.addMember("Bamm-Bamm"); - Family family3 = n.addFamily("Jetson"); - family3.addMember("George"); - family3.addMember("Jane"); - family3.addMember("Judy"); - family3.addMember("Elroy"); - family3.addMember("Astro"); - } - - private CollectionValueModel buildFamiliesAspectAdapter(PropertyValueModel communeHolder) { - return new CollectionAspectAdapter(communeHolder, Neighborhood.FAMILIES_COLLECTION) { - @Override - protected Iterator iterator_() { - return this.subject.families(); - } - }; - } - - CollectionValueModel buildMembersAdapter(Family family) { - return new CollectionAspectAdapter(Family.MEMBERS_COLLECTION, family) { - @Override - protected Iterator iterator_() { - return this.subject.members(); - } - }; - } - - private CompositeCollectionValueModel buildAllMembersComposite(PropertyValueModel communeHolder) { - // override #transform(Object) - return new CompositeCollectionValueModel(this.buildFamiliesAspectAdapter(communeHolder)) { - @Override - protected CollectionValueModel transform(Family family) { - return CompositeCollectionValueModelTests.this.buildMembersAdapter(family); - } - }; - } - - private CollectionValueModel buildAllMembersComposite2(PropertyValueModel communeHolder) { - // build a custom Transformer - return new CompositeCollectionValueModel(this.buildFamiliesAspectAdapter(communeHolder), this.buildTransformer()); - } - - private Transformer> buildTransformer() { - return new Transformer>() { - public CollectionValueModel transform(Family family) { - return CompositeCollectionValueModelTests.this.buildMembersAdapter(family); - } - @Override - public String toString() { - return "Local Transformer"; - } - }; - } - - -// ********** inner classes ********** - - /** - * inner class - */ - public class Neighborhood extends AbstractModel { - private String name; - public static final String NAME_PROPERTY = "name"; - private Collection families = new ArrayList(); - public static final String FAMILIES_COLLECTION = "families"; - - public Neighborhood(String name) { - super(); - this.name = name; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - - public Iterator families() { - return this.families.iterator(); - } - - public Family addFamily(String familyName) { - return this.addFamily(new Family(familyName)); - } - - // backdoor to allow duplicates - public Family addFamily(Family family) { - this.addItemToCollection(family, this.families, FAMILIES_COLLECTION); - return family; - } - - public void removeFamily(Family family) { - this.removeItemFromCollection(family, this.families, FAMILIES_COLLECTION); - } - - public Family familyNamed(String familyName) { - for (Family family : this.families) { - if (family.getName().equals(familyName)) { - return family; - } - } - throw new IllegalArgumentException(familyName); - } - - public Iterator allMembers() { - return new CompositeIterator(this.membersIterators()); - } - - private Iterator> membersIterators() { - return new TransformationIterator>(this.families()) { - @Override - protected Iterator transform(Family family) { - return family.members(); - } - }; - } - - public Member memberNamed(String familyName, String memberName) { - return this.familyNamed(familyName).memberNamed(memberName); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - } - - - /** - * inner class - */ - public class Family extends AbstractModel { - private String name; - public static final String NAME_PROPERTY = "name"; - private Collection members = new ArrayList(); - public static final String MEMBERS_COLLECTION = "members"; - - public Family(String name) { - super(); - this.name = name; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - - public Iterator members() { - return this.members.iterator(); - } - - public Member addMember(String memberName) { - Member member = new Member(memberName); - this.addItemToCollection(member, this.members, MEMBERS_COLLECTION); - return member; - } - - public void removeMember(Member member) { - this.removeItemFromCollection(member, this.members, MEMBERS_COLLECTION); - } - - public Member memberNamed(String memberName) { - for (Member member : this.members) { - if (member.getName().equals(memberName)) { - return member; - } - } - throw new IllegalArgumentException(memberName); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - } - - - /** - * inner class - */ - public class Member extends AbstractModel { - private String name; - public static final String NAME_PROPERTY = "name"; - - public Member(String name) { - super(); - this.name = name; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeListValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeListValueModelTests.java deleted file mode 100644 index 82cf531454..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositeListValueModelTests.java +++ /dev/null @@ -1,1248 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.CompositeListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CompositeListValueModelTests extends TestCase { - private LocalListValueModel lvm0; - private LocalListValueModel lvm1; - private LocalListValueModel lvm2; - private LocalListValueModel lvm3; - private LocalListValueModel> uberLVM; - private CompositeListValueModel, String> compositeLVM; - - public CompositeListValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - - this.lvm0 = new LocalListValueModel(); - this.lvm0.add("aaa"); - this.lvm0.add("bbb"); - this.lvm0.add("ccc"); - - this.lvm1 = new LocalListValueModel(); - this.lvm1.add("ddd"); - this.lvm1.add("eee"); - - this.lvm2 = new LocalListValueModel(); - this.lvm2.add("fff"); - - this.lvm3 = new LocalListValueModel(); - this.lvm3.add("ggg"); - this.lvm3.add("hhh"); - this.lvm3.add("iii"); - this.lvm3.add("jjj"); - this.lvm3.add("kkk"); - - this.uberLVM = new LocalListValueModel>(); - this.uberLVM.add(this.lvm0); - this.uberLVM.add(this.lvm1); - this.uberLVM.add(this.lvm2); - this.uberLVM.add(this.lvm3); - - this.compositeLVM = new CompositeListValueModel, String>((ListValueModel>) this.uberLVM); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testGetInt() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - assertEquals("aaa", this.compositeLVM.get(0)); - assertEquals("aaa", coordList.get(0)); - assertEquals("bbb", this.compositeLVM.get(1)); - assertEquals("bbb", coordList.get(1)); - assertEquals("ccc", this.compositeLVM.get(2)); - assertEquals("ccc", coordList.get(2)); - - assertEquals("ddd", this.compositeLVM.get(3)); - assertEquals("ddd", coordList.get(3)); - assertEquals("eee", this.compositeLVM.get(4)); - assertEquals("eee", coordList.get(4)); - - assertEquals("fff", this.compositeLVM.get(5)); - assertEquals("fff", coordList.get(5)); - - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testIterator() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - assertEquals("aaa", this.compositeLVM.iterator().next()); - assertEquals("aaa", coordList.iterator().next()); - Iterator stream1 = coordList.iterator(); - for (Iterator stream2 = this.compositeLVM.iterator(); stream2.hasNext(); ) { - assertEquals(stream1.next(), stream2.next()); - } - assertFalse(stream1.hasNext()); - } - - public void testSize() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - assertEquals(11, this.compositeLVM.size()); - assertEquals(11, coordList.size()); - } - - public void testToArray() { - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - } - - public void testHasListeners() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - assertTrue(this.compositeLVM.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.lvm0.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - this.compositeLVM.removeListChangeListener(ListValueModel.LIST_VALUES, coordList); - assertFalse(this.compositeLVM.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.lvm0.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, coordList); - assertTrue(this.compositeLVM.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.lvm0.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - public void testAddSource_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - LocalListValueModel lvm = new LocalListValueModel(); - lvm.add("xxx"); - lvm.add("yyy"); - lvm.add("zzz"); - this.uberLVM.add(0, lvm); - - Object[] expected = new Object[] { "xxx", "yyy", "zzz", "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(9)); - assertEquals("ggg", coordList.get(9)); - } - - public void testAddSource_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - LocalListValueModel lvm = new LocalListValueModel(); - lvm.add("xxx"); - lvm.add("yyy"); - lvm.add("zzz"); - this.uberLVM.add(2, lvm); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "xxx", "yyy", "zzz", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(9)); - assertEquals("ggg", coordList.get(9)); - } - - public void testAddSource_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - LocalListValueModel lvm = new LocalListValueModel(); - lvm.add("xxx"); - lvm.add("yyy"); - lvm.add("zzz"); - this.uberLVM.add(lvm); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "xxx", "yyy", "zzz" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testAddSources() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - LocalListValueModel lvmA = new LocalListValueModel(); - lvmA.add("xxx"); - lvmA.add("yyy"); - lvmA.add("zzz"); - LocalListValueModel lvmB = new LocalListValueModel(); - lvmB.add("ppp"); - lvmB.add("qqq"); - lvmB.add("rrr"); - Collection> c = new ArrayList>(); - c.add(lvmA); - c.add(lvmB); - this.uberLVM.addAll(2, c); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "xxx", "yyy", "zzz", "ppp", "qqq", "rrr", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(12)); - assertEquals("ggg", coordList.get(12)); - } - - public void testRemoveSource_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.remove(0); - - Object[] expected = new Object[] { "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(3)); - assertEquals("ggg", coordList.get(3)); - } - - public void testRemoveSource_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.remove(2); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(5)); - assertEquals("ggg", coordList.get(5)); - } - - public void testRemoveSource_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.remove(3); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("fff", this.compositeLVM.get(5)); - assertEquals("fff", coordList.get(5)); - } - - public void testRemoveSources() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.remove(2, 2); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("eee", this.compositeLVM.get(4)); - assertEquals("eee", coordList.get(4)); - } - - public void testReplaceSources() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - LocalListValueModel lvmA = new LocalListValueModel(); - lvmA.add("xxx"); - lvmA.add("yyy"); - lvmA.add("zzz"); - LocalListValueModel lvmB = new LocalListValueModel(); - lvmB.add("ppp"); - lvmB.add("qqq"); - lvmB.add("rrr"); - List> list = new ArrayList>(); - list.add(lvmA); - list.add(lvmB); - this.uberLVM.set(2, list); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "xxx", "yyy", "zzz", "ppp", "qqq", "rrr" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("qqq", this.compositeLVM.get(9)); - assertEquals("qqq", coordList.get(9)); - } - - public void testMoveSources_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.move(0, 2, 2); - - Object[] expected = new Object[] { "fff", "ggg", "hhh", "iii", "jjj", "kkk", "aaa", "bbb", "ccc", "ddd", "eee" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(1)); - assertEquals("ggg", coordList.get(1)); - } - - public void testMoveSources_Middle() { - LocalListValueModel lvm4 = new LocalListValueModel(); - lvm4.add("lll"); - lvm4.add("mmm"); - this.uberLVM.add(lvm4); - - LocalListValueModel lvm5 = new LocalListValueModel(); - lvm5.add("nnn"); - lvm5.add("ooo"); - lvm5.add("ppp"); - lvm5.add("qqq"); - this.uberLVM.add(lvm5); - - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.move(1, 3, 2); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "ddd", "eee", "fff", "nnn", "ooo", "ppp", "qqq" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(3)); - assertEquals("ggg", coordList.get(3)); - } - - public void testMoveSources_End() { - LocalListValueModel lvm4 = new LocalListValueModel(); - lvm4.add("lll"); - lvm4.add("mmm"); - this.uberLVM.add(lvm4); - - LocalListValueModel lvm5 = new LocalListValueModel(); - lvm5.add("nnn"); - lvm5.add("ooo"); - lvm5.add("ppp"); - lvm5.add("qqq"); - this.uberLVM.add(lvm5); - - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.move(3, 0, 3); - - Object[] expected = new Object[] { "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "nnn", "ooo", "ppp", "qqq", "aaa", "bbb", "ccc", "ddd", "eee", "fff" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(0)); - assertEquals("ggg", coordList.get(0)); - } - - public void testMoveSource() { - LocalListValueModel lvm4 = new LocalListValueModel(); - lvm4.add("lll"); - lvm4.add("mmm"); - this.uberLVM.add(lvm4); - - LocalListValueModel lvm5 = new LocalListValueModel(); - lvm5.add("nnn"); - lvm5.add("ooo"); - lvm5.add("ppp"); - lvm5.add("qqq"); - this.uberLVM.add(lvm5); - - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.move(3, 1); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "ddd", "eee", "lll", "mmm", "nnn", "ooo", "ppp", "qqq" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ooo", this.compositeLVM.get(14)); - assertEquals("ooo", coordList.get(14)); - } - - public void testClearSources() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.clear(); - - Object[] expected = new Object[0]; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - } - - public void testChangeSources1() { - List> newList = new ArrayList>(); - LocalListValueModel lvm4 = new LocalListValueModel(); - lvm4.add("lll"); - lvm4.add("mmm"); - newList.add(lvm4); - - LocalListValueModel lvm5 = new LocalListValueModel(); - lvm5.add("nnn"); - lvm5.add("ooo"); - lvm5.add("ppp"); - lvm5.add("qqq"); - newList.add(lvm5); - - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.setListValues(newList); - - Object[] expected = new Object[] { "lll", "mmm", "nnn", "ooo", "ppp", "qqq" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ooo", this.compositeLVM.get(3)); - assertEquals("ooo", coordList.get(3)); - } - - public void testChangeSources2() { - List> newList = new ArrayList>(); - LocalListValueModel lvm4 = new LocalListValueModel(); - lvm4.add("lll"); - lvm4.add("mmm"); - newList.add(lvm4); - - LocalListValueModel lvm5 = new LocalListValueModel(); - lvm5.add("nnn"); - lvm5.add("ooo"); - lvm5.add("ppp"); - lvm5.add("qqq"); - newList.add(lvm5); - - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.changeListValues(newList); - - Object[] expected = new Object[] { "lll", "mmm", "nnn", "ooo", "ppp", "qqq" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ooo", this.compositeLVM.get(3)); - assertEquals("ooo", coordList.get(3)); - } - - public void testChangeSources3() { - ListChangeListener listener = new ErrorListener(); - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - - List> newList = new ArrayList>(); - newList.add(this.lvm0); - newList.add(this.lvm1); - newList.add(this.lvm2); - newList.add(this.lvm3); - - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.changeListValues(newList); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ddd", this.compositeLVM.get(3)); - assertEquals("ddd", coordList.get(3)); - } - - public void testChangeSources4() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsAdded(ListAddEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - - List> newList = new ArrayList>(); - newList.add(this.lvm0); - newList.add(this.lvm1); - newList.add(this.lvm2); - newList.add(this.lvm3); - LocalListValueModel lvm4 = new LocalListValueModel(); - lvm4.add("lll"); - lvm4.add("mmm"); - newList.add(lvm4); - - - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.changeListValues(newList); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ddd", this.compositeLVM.get(3)); - assertEquals("ddd", coordList.get(3)); - } - - public void testChangeSources5() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsRemoved(ListRemoveEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - - List> newList = new ArrayList>(); - newList.add(this.lvm0); - newList.add(this.lvm1); - newList.add(this.lvm2); - - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.changeListValues(newList); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ddd", this.compositeLVM.get(3)); - assertEquals("ddd", coordList.get(3)); - } - - public void testChangeSources6() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsAdded(ListAddEvent event) { /* OK */ } - @Override - public void itemsRemoved(ListRemoveEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - - List> newList = new ArrayList>(); - newList.add(this.lvm0); - newList.add(this.lvm1); - - LocalListValueModel lvm4 = new LocalListValueModel(); - lvm4.add("lll"); - lvm4.add("mmm"); - newList.add(lvm4); - - newList.add(this.lvm3); - - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.uberLVM.changeListValues(newList); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "lll", "mmm", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ddd", this.compositeLVM.get(3)); - assertEquals("ddd", coordList.get(3)); - } - - public void testAddItem_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.add(0, "xxx"); - - Object[] expected = new Object[] { "xxx", "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(7)); - assertEquals("ggg", coordList.get(7)); - } - - public void testAddItem_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm2.add(1, "xxx"); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "xxx", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(7)); - assertEquals("ggg", coordList.get(7)); - } - - public void testAddItem_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.add(5, "xxx"); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "xxx" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testAddItems_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.addAll(0, Arrays.asList(new String[] { "xxx", "yyy", "zzz" })); - - Object[] expected = new Object[] { "xxx", "yyy", "zzz", "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(9)); - assertEquals("ggg", coordList.get(9)); - } - - public void testAddItems_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm2.addAll(1, Arrays.asList(new String[] { "xxx", "yyy", "zzz" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "xxx", "yyy", "zzz", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(9)); - assertEquals("ggg", coordList.get(9)); - } - - public void testAddItems_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.addAll(5, Arrays.asList(new String[] { "xxx", "yyy", "zzz" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "xxx", "yyy", "zzz" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testRemoveItem_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.remove(0); - - Object[] expected = new Object[] { "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(5)); - assertEquals("ggg", coordList.get(5)); - } - - public void testRemoveItem_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm2.remove(0); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(5)); - assertEquals("ggg", coordList.get(5)); - } - - public void testRemoveItem_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.remove(4); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testRemoveItems_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.remove(0, 3); - - Object[] expected = new Object[] { "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(3)); - assertEquals("ggg", coordList.get(3)); - } - - public void testRemoveItems_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.remove(1, 3); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("kkk", this.compositeLVM.get(7)); - assertEquals("kkk", coordList.get(7)); - } - - public void testRemoveItems_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.remove(3, 2); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testReplaceItem_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.set(0, "xxx"); - - Object[] expected = new Object[] { "xxx", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testReplaceItem_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm2.set(0, "xxx"); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "xxx", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testReplaceItem_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.set(4, "xxx"); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "xxx" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testReplaceItems_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.set(0, Arrays.asList(new String[] { "xxx", "yyy", "zzz" })); - - Object[] expected = new Object[] { "xxx", "yyy", "zzz", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testReplaceItems_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.set(1, Arrays.asList(new String[] { "xxx", "yyy", "zzz" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "xxx", "yyy", "zzz", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("kkk", this.compositeLVM.get(10)); - assertEquals("kkk", coordList.get(10)); - } - - public void testReplaceItems_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.set(3, Arrays.asList(new String[] { "xxx", "yyy" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "xxx", "yyy" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testMoveItem_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.move(2, 0); - - Object[] expected = new Object[] { "bbb", "ccc", "aaa", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testMoveItem_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm1.move(0, 1); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "eee", "ddd", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testMoveItem_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.move(0, 4); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "kkk", "ggg", "hhh", "iii", "jjj" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(7)); - assertEquals("ggg", coordList.get(7)); - } - - public void testMoveItems_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.move(1, 0, 2); - - Object[] expected = new Object[] { "ccc", "aaa", "bbb", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testMoveItems_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm1.add("eee.1"); - this.lvm1.add("eee.2"); - this.lvm1.add("eee.3"); - this.lvm1.move(1, 2, 3); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee.1", "eee.2", "eee.3", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(9)); - assertEquals("ggg", coordList.get(9)); - } - - public void testMoveItems_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.move(0, 2, 3); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "iii", "jjj", "kkk", "ggg", "hhh" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(9)); - assertEquals("ggg", coordList.get(9)); - } - - public void testClearItems_Begin() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.clear(); - - Object[] expected = new Object[] { "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(3)); - assertEquals("ggg", coordList.get(3)); - } - - public void testClearItems_Middle() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm1.clear(); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(4)); - assertEquals("ggg", coordList.get(4)); - } - - public void testClearItems_End() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.clear(); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("fff", this.compositeLVM.get(5)); - assertEquals("fff", coordList.get(5)); - } - - public void testChangeItems_Begin1() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.setListValues(Arrays.asList(new String[] { "xxx", "yyy", "zzz" })); - - Object[] expected = new Object[] { "xxx", "yyy", "zzz", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testChangeItems_Middle1() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm1.setListValues(Arrays.asList(new String[] { "xxx", "yyy", "zzz" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "xxx", "yyy", "zzz", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(7)); - assertEquals("ggg", coordList.get(7)); - } - - public void testChangeItems_End1() { - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.setListValues(Arrays.asList(new String[] { "xxx", "yyy", "zzz" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "xxx", "yyy", "zzz" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("fff", this.compositeLVM.get(5)); - assertEquals("fff", coordList.get(5)); - } - - public void testChangeItems_Begin2() { - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, new ErrorListener()); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.changeListValues(Arrays.asList(new String[] { "aaa", "bbb", "ccc" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testChangeItems_Middle2() { - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, new ErrorListener()); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm1.changeListValues(Arrays.asList(new String[] { "ddd", "eee" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("hhh", this.compositeLVM.get(7)); - assertEquals("hhh", coordList.get(7)); - } - - public void testChangeItems_End2() { - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, new ErrorListener()); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.changeListValues(Arrays.asList(new String[] { "ggg", "hhh", "iii", "jjj", "kkk" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("fff", this.compositeLVM.get(5)); - assertEquals("fff", coordList.get(5)); - } - - public void testChangeItems_Begin3() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsReplaced(ListReplaceEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.changeListValues(Arrays.asList(new String[] { "aaa", "bbb", "xxx" })); - - Object[] expected = new Object[] { "aaa", "bbb", "xxx", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(6)); - assertEquals("ggg", coordList.get(6)); - } - - public void testChangeItems_Middle3() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsReplaced(ListReplaceEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm1.changeListValues(Arrays.asList(new String[] { "ddd", "xxx" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "xxx", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("hhh", this.compositeLVM.get(7)); - assertEquals("hhh", coordList.get(7)); - } - - public void testChangeItems_End3() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsReplaced(ListReplaceEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.changeListValues(Arrays.asList(new String[] { "ggg", "hhh", "iii", "xxx", "kkk" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "xxx", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("fff", this.compositeLVM.get(5)); - assertEquals("fff", coordList.get(5)); - } - - public void testChangeItems_Begin4() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsAdded(ListAddEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.changeListValues(Arrays.asList(new String[] { "aaa", "bbb", "ccc", "xxx" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "xxx", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("fff", this.compositeLVM.get(6)); - assertEquals("fff", coordList.get(6)); - } - - public void testChangeItems_Middle4() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsAdded(ListAddEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm1.changeListValues(Arrays.asList(new String[] { "ddd", "eee", "xxx" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "xxx", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("ggg", this.compositeLVM.get(7)); - assertEquals("ggg", coordList.get(7)); - } - - public void testChangeItems_End4() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsAdded(ListAddEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.changeListValues(Arrays.asList(new String[] { "ggg", "hhh", "iii", "jjj", "kkk", "xxx" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "xxx" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("fff", this.compositeLVM.get(5)); - assertEquals("fff", coordList.get(5)); - } - - public void testChangeItems_Begin5() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsRemoved(ListRemoveEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm0.changeListValues(Arrays.asList(new String[] { "aaa" })); - - Object[] expected = new Object[] { "aaa", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("iii", this.compositeLVM.get(6)); - assertEquals("iii", coordList.get(6)); - } - - public void testChangeItems_Middle5() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsRemoved(ListRemoveEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm1.changeListValues(Arrays.asList(new String[] { "ddd" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "fff", "ggg", "hhh", "iii", "jjj", "kkk" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("iii", this.compositeLVM.get(7)); - assertEquals("iii", coordList.get(7)); - } - - public void testChangeItems_End5() { - ListChangeListener listener = new ErrorListener() { - @Override - public void itemsRemoved(ListRemoveEvent event) { /* OK */ } - }; - this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, listener); - CoordinatedList coordList = new CoordinatedList(this.compositeLVM); - - this.lvm3.changeListValues(Arrays.asList(new String[] { "ggg", "hhh", "iii" })); - - Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii" }; - assertEquals(expected.length, this.compositeLVM.size()); - assertEquals(expected.length, coordList.size()); - assertTrue(Arrays.equals(expected, this.compositeLVM.toArray())); - assertTrue(Arrays.equals(expected, coordList.toArray())); - assertEquals("fff", this.compositeLVM.get(5)); - assertEquals("fff", coordList.get(5)); - } - - class ErrorListener implements ListChangeListener { - public void itemsAdded(ListAddEvent event) { - fail(); - } - public void itemsRemoved(ListRemoveEvent event) { - fail(); - } - public void itemsMoved(ListMoveEvent event) { - fail(); - } - public void itemsReplaced(ListReplaceEvent event) { - fail(); - } - public void listCleared(ListClearEvent event) { - fail(); - } - public void listChanged(ListChangeEvent event) { - fail(); - } - } - - class LocalListValueModel extends SimpleListValueModel { - LocalListValueModel() { - super(); - } - void changeListValues(Iterable listValues) { - if (listValues == null) { - throw new NullPointerException(); - } - this.list.clear(); - CollectionTools.addAll(this.list, listValues); - this.fireListChanged(LIST_VALUES, this.list); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositePropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositePropertyValueModelTests.java deleted file mode 100644 index 5fa2413fea..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CompositePropertyValueModelTests.java +++ /dev/null @@ -1,199 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.value.CompositePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -public class CompositePropertyValueModelTests extends TestCase { - private SimplePropertyValueModel pvm1; - private WritablePropertyValueModel pvm2; - private WritablePropertyValueModel pvm3; - private WritablePropertyValueModel pvm4; - private Collection> collection; - private SimpleCollectionValueModel> cvm; - private PropertyValueModel compositePVM; - PropertyChangeEvent event; - - - public CompositePropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.pvm1 = new SimplePropertyValueModel(Integer.valueOf(1)); - this.pvm2 = new SimplePropertyValueModel(Integer.valueOf(2)); - this.pvm3 = new SimplePropertyValueModel(Integer.valueOf(3)); - this.pvm4 = new SimplePropertyValueModel(Integer.valueOf(4)); - this.collection = new ArrayList>(); - this.collection.add(this.pvm1); - this.collection.add(this.pvm2); - this.collection.add(this.pvm3); - this.collection.add(this.pvm4); - this.cvm = new SimpleCollectionValueModel>(this.collection); - - this.compositePVM = this.buildCompositePVM(cvm); - } - - private > PropertyValueModel buildCompositePVM(CollectionValueModel pvms) { - return new CompositePropertyValueModel(pvms) { - @Override - protected Integer buildValue() { - int sum = 0; - for (PropertyValueModel each : this.getCollectionModel()) { - sum += each.getValue().intValue(); - } - return Integer.valueOf(sum); - } - @Override - @SuppressWarnings("unchecked") - protected CollectionValueModel> getCollectionModel() { - return (CollectionValueModel>) super.getCollectionModel(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testGetValue() { - assertNull(this.compositePVM.getValue()); - ChangeListener listener = this.buildListener(); - this.compositePVM.addChangeListener(listener); - assertEquals(10, this.compositePVM.getValue().intValue()); - } - - public void testValueAndListeners1() { - assertNull(this.compositePVM.getValue()); - ChangeListener listener = this.buildListener(); - this.compositePVM.addChangeListener(listener); - assertEquals(10, this.compositePVM.getValue().intValue()); - this.compositePVM.removeChangeListener(listener); - assertNull(this.compositePVM.getValue()); - } - - public void testValueAndListeners2() { - assertNull(this.compositePVM.getValue()); - ChangeListener listener = this.buildListener(); - this.compositePVM.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertEquals(10, this.compositePVM.getValue().intValue()); - this.compositePVM.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertNull(this.compositePVM.getValue()); - } - - public void testPropertyChange1() { - this.compositePVM.addChangeListener(this.buildListener()); - this.verifyPropertyChange(); - } - - public void testPropertyChange2() { - this.compositePVM.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.verifyPropertyChange(); - } - - private void verifyPropertyChange() { - this.event = null; - this.pvm1.setValue(Integer.valueOf(5)); - this.verifyEvent(10, 14); - - this.event = null; - this.pvm4.setValue(Integer.valueOf(0)); - this.verifyEvent(14, 10); - } - - public void testCollectionChange1() { - this.compositePVM.addChangeListener(this.buildListener()); - this.verifyCollectionChange(); - } - - public void testCollectionChange2() { - this.compositePVM.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.verifyCollectionChange(); - } - - private void verifyCollectionChange() { - this.event = null; - WritablePropertyValueModel pvm = new SimplePropertyValueModel(Integer.valueOf(77)); - this.cvm.add(pvm); - this.verifyEvent(10, 87); - - this.event = null; - this.cvm.remove(pvm); - this.verifyEvent(87, 10); - - this.event = null; - this.cvm.clear(); - this.verifyEvent(10, 0); - - Collection> c2 = new ArrayList>(); - c2.add(this.pvm1); - c2.add(this.pvm2); - this.event = null; - this.cvm.setValues(c2); - this.verifyEvent(0, 3); - } - - public void testLazyListening1() { - assertFalse(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - ChangeListener listener = this.buildListener(); - - this.compositePVM.addChangeListener(listener); - assertTrue(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.compositePVM.removeChangeListener(listener); - assertFalse(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testLazyListening2() { - assertFalse(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - ChangeListener listener = this.buildListener(); - - this.compositePVM.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.compositePVM.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertFalse(this.pvm1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - private ChangeListener buildListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - CompositePropertyValueModelTests.this.event = e; - } - }; - } - - private void verifyEvent(int oldValue, int newValue) { - assertEquals(this.compositePVM, this.event.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event.getPropertyName()); - assertEquals(Integer.valueOf(oldValue), this.event.getOldValue()); - assertEquals(Integer.valueOf(newValue), this.event.getNewValue()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CoordinatedBag.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CoordinatedBag.java deleted file mode 100644 index 508a4d62f4..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CoordinatedBag.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Collection; -import java.util.Iterator; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; - -/** - * Helper class that keeps an internal collection in synch with the - * collection held by a collection value model. - */ -class CoordinatedBag implements Bag, CollectionChangeListener { - - private Bag bag = new HashBag(); - - CoordinatedBag(CollectionValueModel cvm) { - cvm.addCollectionChangeListener(CollectionValueModel.VALUES, this); - } - - - // ********** Collection implementation ********** - - public boolean add(E o) { - return this.bag.add(o); - } - - public boolean addAll(Collection c) { - return this.bag.addAll(c); - } - - public void clear() { - this.bag.clear(); - } - - public boolean contains(Object o) { - return this.bag.contains(o); - } - - public boolean containsAll(Collection c) { - return this.bag.containsAll(c); - } - - public boolean isEmpty() { - return this.bag.isEmpty(); - } - - public Iterator iterator() { - return this.bag.iterator(); - } - - public boolean remove(Object o) { - return this.bag.remove(o); - } - - public boolean removeAll(Collection c) { - return this.bag.removeAll(c); - } - - public boolean retainAll(Collection c) { - return this.bag.retainAll(c); - } - - public int size() { - return this.bag.size(); - } - - public Object[] toArray() { - return this.bag.toArray(); - } - - public T[] toArray(T[] a) { - return this.bag.toArray(a); - } - - - // ********** Bag implementation ********** - - public int count(Object o) { - return this.bag.count(o); - } - - public boolean add(E o, int count) { - return this.bag.add(o, count); - } - - public boolean remove(Object o, int count) { - return this.bag.remove(o, count); - } - - public Iterator uniqueIterator() { - return this.bag.uniqueIterator(); - } - - public int uniqueCount() { - return this.bag.uniqueCount(); - } - - public Iterator> entries() { - return this.bag.entries(); - } - - // ********** CollectionChangeListener implementation ********** - - @SuppressWarnings("unchecked") - public void itemsAdded(CollectionAddEvent event) { - for (E item : (Iterable) event.getItems()) { - this.bag.add(item); - } - } - - @SuppressWarnings("unchecked") - public void itemsRemoved(CollectionRemoveEvent event) { - for (E item : (Iterable) event.getItems()) { - this.bag.remove(item); - } - } - - public void collectionCleared(CollectionClearEvent event) { - this.bag.clear(); - } - - @SuppressWarnings("unchecked") - public void collectionChanged(CollectionChangeEvent event) { - this.bag.clear(); - CollectionTools.addAll(this.bag, ((CollectionValueModel) event.getSource()).iterator()); - } - - - // ********** standard methods ********** - - @Override - public boolean equals(Object o) { - return this.bag.equals(o); - } - - @Override - public int hashCode() { - return this.bag.hashCode(); - } - - @Override - public String toString() { - return this.bag.toString(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CoordinatedList.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CoordinatedList.java deleted file mode 100644 index 95cf02457b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/CoordinatedList.java +++ /dev/null @@ -1,264 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import javax.swing.ListModel; -import javax.swing.event.ListDataEvent; -import javax.swing.event.ListDataListener; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * Helper class that keeps an internal list in synch with the - * list held by a list value model. - */ -public class CoordinatedList implements List, ListChangeListener, ListDataListener { - private List list = new ArrayList(); - - public CoordinatedList(ListValueModel listValueModel) { - listValueModel.addListChangeListener(ListValueModel.LIST_VALUES, this); - for (Iterator stream = listValueModel.iterator(); stream.hasNext(); ) { - this.add(stream.next()); - } - } - - public CoordinatedList(ListModel listModel) { - listModel.addListDataListener(this); - for (int i = 0; i < listModel.getSize(); i++) { - this.add(i, this.getElementAt(listModel, i)); - } - } - - - // ********** List implementation ********** - - public void add(int index, E element) { - this.list.add(index, element); - } - - public boolean add(E o) { - return this.list.add(o); - } - - public boolean addAll(Collection c) { - return this.list.addAll(c); - } - - public boolean addAll(int index, Collection c) { - return this.list.addAll(index, c); - } - - public void clear() { - this.list.clear(); - } - - public boolean contains(Object o) { - return this.list.contains(o); - } - - public boolean containsAll(Collection c) { - return this.list.containsAll(c); - } - - public E get(int index) { - return this.list.get(index); - } - - public int indexOf(Object o) { - return this.list.indexOf(o); - } - - public boolean isEmpty() { - return this.list.isEmpty(); - } - - public Iterator iterator() { - return this.list.iterator(); - } - - public int lastIndexOf(Object o) { - return this.list.lastIndexOf(o); - } - - public ListIterator listIterator() { - return this.list.listIterator(); - } - - public ListIterator listIterator(int index) { - return this.list.listIterator(index); - } - - public E remove(int index) { - return this.list.remove(index); - } - - public boolean remove(Object o) { - return this.list.remove(o); - } - - public boolean removeAll(Collection c) { - return this.list.removeAll(c); - } - - public boolean retainAll(Collection c) { - return this.list.retainAll(c); - } - - public E set(int index, E element) { - return this.list.set(index, element); - } - - public int size() { - return this.list.size(); - } - - public List subList(int fromIndex, int toIndex) { - return this.list.subList(fromIndex, toIndex); - } - - public Object[] toArray() { - return this.list.toArray(); - } - - public T[] toArray(T[] a) { - return this.list.toArray(a); - } - - - // ********** ListChangeListener implementation ********** - - public void itemsAdded(ListAddEvent e) { - int i = e.getIndex(); - for (E item : this.getItems(e)) { - this.list.add(i++, item); - } - } - - public void itemsRemoved(ListRemoveEvent e) { - int base = e.getIndex(); - for (int i = e.getItemsSize(); i-- > 0; ) { - this.list.remove(base + i); // remove from end - } - } - - public void itemsReplaced(ListReplaceEvent e) { - int i = e.getIndex(); - for (E item : this.getNewItems(e)) { - this.list.set(i++, item); - } - } - - public void itemsMoved(ListMoveEvent e) { - CollectionTools.move(this.list, e.getTargetIndex(), e.getSourceIndex(), e.getLength()); - } - - public void listCleared(ListClearEvent e) { - this.list.clear(); - } - - public void listChanged(ListChangeEvent e) { - this.list.clear(); - CollectionTools.addAll(this.list, this.getSource(e).iterator()); - } - - - // ********** ListDataListener implementation ********** - - public void contentsChanged(ListDataEvent e) { - this.list.clear(); - ListModel lm = (ListModel) e.getSource(); - int size = lm.getSize(); - for (int i = 0; i < size; i++) { - this.list.add(i, this.getElementAt(lm, i)); - } - } - - public void intervalAdded(ListDataEvent e) { - ListModel lm = (ListModel) e.getSource(); - int start = Math.min(e.getIndex0(), e.getIndex1()); - int end = Math.max(e.getIndex0(), e.getIndex1()); - for (int i = start; i <= end; i++) { - this.list.add(i, this.getElementAt(lm, i)); - } - } - - public void intervalRemoved(ListDataEvent e) { - int start = Math.min(e.getIndex0(), e.getIndex1()); - int end = Math.max(e.getIndex0(), e.getIndex1()); - int length = end - start + 1; - for (int i = 1; i <= length; i++) { - this.list.remove(start); - } - } - - - // ********** standard methods ********** - - @Override - public boolean equals(Object o) { - return this.list.equals(o); - } - - @Override - public int hashCode() { - return this.list.hashCode(); - } - - @Override - public String toString() { - return this.list.toString(); - } - - - // ********** internal methods ********** - - /** - * minimize the scope of the suppressed warnings.= - */ - @SuppressWarnings("unchecked") - private E getElementAt(ListModel listModel, int index) { - return (E) listModel.getElementAt(index); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - private Iterable getItems(ListAddEvent event) { - return (Iterable) event.getItems(); - } - - // minimized scope of suppressed warnings - @SuppressWarnings("unchecked") - private Iterable getNewItems(ListReplaceEvent event) { - return (Iterable) event.getNewItems(); - } - - /** - * minimize the scope of the suppressed warnings.= - */ - @SuppressWarnings("unchecked") - private ListValueModel getSource(ListChangeEvent event) { - return (ListValueModel) event.getSource(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ExtendedListValueModelWrapperTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ExtendedListValueModelWrapperTests.java deleted file mode 100644 index 56e1a25d14..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ExtendedListValueModelWrapperTests.java +++ /dev/null @@ -1,313 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ExtendedListValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ExtendedListValueModelWrapperTests extends TestCase { - private SimpleListValueModel listHolder; - private ListValueModel extendedListHolder; - ListEvent event; - String eventType; - - private static final String ADD = "add"; - private static final String REMOVE = "remove"; - private static final String REPLACE = "replace"; - private static final String MOVE = "move"; - private static final String CLEAR = "clear"; - private static final String CHANGE = "change"; - - public ExtendedListValueModelWrapperTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.listHolder = new SimpleListValueModel(this.buildList()); - this.extendedListHolder = this.buildExtendedListHolder(this.listHolder); - } - - private List buildList() { - List result = new ArrayList(); - result.add("A"); - result.add("B"); - result.add("C"); - result.add("D"); - return result; - } - - private List buildExtendedList() { - List extendedList = new ArrayList(); - extendedList.addAll(this.buildPrefix()); - extendedList.addAll(this.buildList()); - extendedList.addAll(this.buildSuffix()); - return extendedList; - } - - private List buildPrefix() { - List prefix = new ArrayList(); - prefix.add("x"); - prefix.add("y"); - prefix.add("z"); - return prefix; - } - - private List buildSuffix() { - List suffix = new ArrayList(); - suffix.add("i"); - suffix.add("j"); - return suffix; - } - - private ListValueModel buildExtendedListHolder(ListValueModel lvm) { - return new ExtendedListValueModelWrapper(this.buildPrefix(), lvm, this.buildSuffix()); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - assertEquals(this.buildExtendedList(), CollectionTools.list(this.extendedListHolder.iterator())); - } - - public void testSize() { - this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - assertEquals(this.buildExtendedList().size(), CollectionTools.size(this.extendedListHolder.iterator())); - assertEquals(this.buildExtendedList().size(), this.extendedListHolder.size()); - } - - private boolean extendedListContains(Object item) { - return CollectionTools.contains(this.extendedListHolder.iterator(), item); - } - - private boolean extendedListContainsAll(Collection items) { - return CollectionTools.containsAll(this.extendedListHolder.iterator(), items); - } - - private boolean extendedListContainsAny(Collection items) { - List extendedList = CollectionTools.list(this.extendedListHolder.iterator()); - for (Iterator stream = items.iterator(); stream.hasNext(); ) { - if (extendedList.contains(stream.next())) { - return true; - } - } - return false; - } - - private boolean listContains(Object item) { - return CollectionTools.contains(this.listHolder.iterator(), item); - } - - private boolean listContainsAll(Collection items) { - return CollectionTools.containsAll(this.listHolder.iterator(), items); - } - -// private boolean listContainsAny(Collection items) { -// List extendedList = CollectionTools.list(this.listHolder.iterator()); -// for (Iterator stream = items.iterator(); stream.hasNext(); ) { -// if (extendedList.contains(stream.next())) { -// return true; -// } -// } -// return false; -// } -// - public void testAdd1() { - this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - - assertFalse(this.extendedListContains("E")); - this.listHolder.add(4, "E"); - assertTrue(this.extendedListContains("E")); - assertTrue(this.listContains("E")); - } - - public void testAdd2() { - this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - - assertFalse(this.extendedListContains(null)); - this.listHolder.add(4, null); - assertTrue(this.extendedListContains(null)); - assertTrue(this.listContains(null)); - } - - private List buildAddList() { - List addList = new ArrayList(); - addList.add("E"); - addList.add("F"); - return addList; - } - - public void testAddAll1() { - this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - - assertFalse(this.extendedListContainsAny(this.buildAddList())); - this.listHolder.addAll(4, this.buildAddList()); - assertTrue(this.extendedListContainsAll(this.buildAddList())); - assertTrue(this.listContainsAll(this.buildAddList())); - } - - public void testRemove1() { - this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - - assertTrue(this.extendedListContains("B")); - this.listHolder.remove(this.buildList().indexOf("B")); - assertFalse(this.extendedListContains("B")); - assertFalse(this.listContains("B")); - } - - public void testListChangeGeneric() { - this.extendedListHolder.addChangeListener(this.buildListener()); - this.verifyListChange(); - } - - public void testListChangeNamed() { - this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - this.verifyListChange(); - } - - private void verifyListChange() { - this.event = null; - this.eventType = null; - this.listHolder.add(4, "E"); - this.verifyEvent(ADD, 7, "E"); - - this.event = null; - this.eventType = null; - this.listHolder.add(5, null); - this.verifyEvent(ADD, 8, null); - - this.event = null; - this.eventType = null; - this.listHolder.remove(5); - this.verifyEvent(REMOVE, 8, null); - - this.event = null; - this.eventType = null; - this.listHolder.remove(4); - this.verifyEvent(REMOVE, 7, "E"); - - this.event = null; - this.eventType = null; - this.listHolder.addAll(0, this.buildList()); - this.verifyEvent(ADD); - assertEquals(this.buildList(), CollectionTools.list(((ListAddEvent) this.event).getItems())); - - this.event = null; - this.eventType = null; - this.listHolder.set(0, "AA"); - this.verifyEvent(REPLACE); - assertFalse(CollectionTools.contains(((ListReplaceEvent) this.event).getNewItems(), "A")); - assertTrue(CollectionTools.contains(((ListReplaceEvent) this.event).getNewItems(), "AA")); - } - - private ChangeListener buildListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(ListAddEvent e) { - ExtendedListValueModelWrapperTests.this.eventType = ADD; - ExtendedListValueModelWrapperTests.this.event = e; - } - @Override - public void itemsRemoved(ListRemoveEvent e) { - ExtendedListValueModelWrapperTests.this.eventType = REMOVE; - ExtendedListValueModelWrapperTests.this.event = e; - } - @Override - public void itemsReplaced(ListReplaceEvent e) { - ExtendedListValueModelWrapperTests.this.eventType = REPLACE; - ExtendedListValueModelWrapperTests.this.event = e; - } - @Override - public void itemsMoved(ListMoveEvent e) { - ExtendedListValueModelWrapperTests.this.eventType = MOVE; - ExtendedListValueModelWrapperTests.this.event = e; - } - @Override - public void listCleared(ListClearEvent e) { - ExtendedListValueModelWrapperTests.this.eventType = CLEAR; - ExtendedListValueModelWrapperTests.this.event = e; - } - @Override - public void listChanged(ListChangeEvent e) { - ExtendedListValueModelWrapperTests.this.eventType = CHANGE; - ExtendedListValueModelWrapperTests.this.event = e; - } - }; - } - - private void verifyEvent(String type) { - assertEquals(type, this.eventType); - assertEquals(this.extendedListHolder, this.event.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event.getListName()); - } - - private void verifyEvent(String type, int index, Object item) { - this.verifyEvent(type); - if (type == ADD) { - assertEquals(index, ((ListAddEvent) this.event).getIndex()); - assertEquals(item, ((ListAddEvent) this.event).getItems().iterator().next()); - } else if (type == REMOVE) { - assertEquals(index, ((ListRemoveEvent) this.event).getIndex()); - assertEquals(item, ((ListRemoveEvent) this.event).getItems().iterator().next()); - } - } - - public void testHasListeners() { - /* - * adding listeners to the extended list will cause listeners - * to be added to the wrapped list; - * likewise, removing listeners from the extended list will - * cause listeners to be removed from the wrapped list - */ - assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - ChangeListener listener = this.buildListener(); - - this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, listener); - assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - this.extendedListHolder.removeListChangeListener(ListValueModel.LIST_VALUES, listener); - assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - this.extendedListHolder.addChangeListener(listener); - assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - this.extendedListHolder.removeChangeListener(listener); - assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/FilteringCollectionValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/FilteringCollectionValueModelTests.java deleted file mode 100644 index df0787fe93..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/FilteringCollectionValueModelTests.java +++ /dev/null @@ -1,348 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Collection; -import java.util.Iterator; -import java.util.Vector; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.FilteringCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class FilteringCollectionValueModelTests extends TestCase { - private SimpleCollectionValueModel collectionHolder; - CollectionAddEvent addEvent; - CollectionRemoveEvent removeEvent; - CollectionClearEvent collectionClearedEvent; - CollectionChangeEvent collectionChangedEvent; - - private CollectionValueModel filteredCollectionHolder; - CollectionAddEvent filteredAddEvent; - CollectionRemoveEvent filteredRemoveEvent; - CollectionClearEvent filteredCollectionClearedEvent; - CollectionChangeEvent filteredCollectionChangedEvent; - - public FilteringCollectionValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.collectionHolder = new SimpleCollectionValueModel(buildCollection()); - this.filteredCollectionHolder = new FilteringCollectionValueModel(this.collectionHolder, this.buildFilter()); - } - - private Collection buildCollection() { - Collection collection = new Vector(); - collection.add("foo"); - return collection; - } - - private Filter buildFilter() { - return new Filter() { - public boolean accept(String s) { - return s.startsWith("b"); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - // add a listener to "activate" the wrapper - this.filteredCollectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildFilteredListener()); - - assertEquals("foo", this.collectionHolder.iterator().next()); - assertFalse(this.filteredCollectionHolder.iterator().hasNext()); - - this.collectionHolder.add("bar"); - Iterator collectionHolderValue = this.collectionHolder.iterator(); - assertEquals("foo", collectionHolderValue.next()); - assertEquals("bar", collectionHolderValue.next()); - assertTrue(this.filteredCollectionHolder.iterator().hasNext()); - assertEquals("bar", this.filteredCollectionHolder.iterator().next()); - - this.collectionHolder.remove("bar"); - assertEquals("foo", this.collectionHolder.iterator().next()); - assertFalse(this.filteredCollectionHolder.iterator().hasNext()); - - this.collectionHolder.remove("foo"); - assertFalse(this.collectionHolder.iterator().hasNext()); - assertFalse(this.filteredCollectionHolder.iterator().hasNext()); - - this.collectionHolder.add("foo"); - assertEquals("foo", this.collectionHolder.iterator().next()); - assertFalse(this.filteredCollectionHolder.iterator().hasNext()); - } - - public void testSetValue() { - // add a listener to "activate" the wrapper - this.filteredCollectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildFilteredListener()); - - Collection newCollection = new Vector(); - newCollection.add("fox"); - newCollection.add("baz"); - - this.collectionHolder.setValues(newCollection); - - Iterator collectionValues = this.collectionHolder.iterator(); - assertEquals("fox", collectionValues.next()); - assertEquals("baz", collectionValues.next()); - Iterator filteredCollectionValues = this.filteredCollectionHolder.iterator(); - assertEquals("baz", filteredCollectionValues.next()); - assertFalse(filteredCollectionValues.hasNext()); - } - - public void testLazyListening() { - assertTrue(((AbstractModel) this.collectionHolder).hasNoCollectionChangeListeners(CollectionValueModel.VALUES)); - ChangeListener listener = this.buildFilteredChangeListener(); - this.filteredCollectionHolder.addChangeListener(listener); - assertTrue(((AbstractModel) this.collectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - this.filteredCollectionHolder.removeChangeListener(listener); - assertTrue(((AbstractModel) this.collectionHolder).hasNoCollectionChangeListeners(CollectionValueModel.VALUES)); - - this.filteredCollectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, listener); - assertTrue(((AbstractModel) this.collectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - this.filteredCollectionHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, listener); - assertTrue(((AbstractModel) this.collectionHolder).hasNoCollectionChangeListeners(CollectionValueModel.VALUES)); - } - - public void testCollectionChange1() { - this.collectionHolder.addChangeListener(this.buildChangeListener()); - this.filteredCollectionHolder.addChangeListener(this.buildFilteredChangeListener()); - this.verifyCollectionChanges(); - } - - public void testCollectionChange2() { - this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildListener()); - this.filteredCollectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildFilteredListener()); - this.verifyCollectionChanges(); - } - - private void clearEvents() { - this.addEvent = null; - this.removeEvent = null; - this.collectionClearedEvent = null; - this.collectionChangedEvent = null; - this.filteredAddEvent = null; - this.filteredRemoveEvent = null; - this.filteredCollectionClearedEvent = null; - this.filteredCollectionChangedEvent = null; - } - - private void verifyCollectionChanges() { - clearEvents(); - this.collectionHolder.add("bar"); - Collection tempCollection = new Vector(); - tempCollection.add("bar"); - this.verifyEvent(this.addEvent, this.collectionHolder, tempCollection); - this.verifyEvent(this.filteredAddEvent, this.filteredCollectionHolder, tempCollection); - - clearEvents(); - this.collectionHolder.remove("foo"); - tempCollection.remove("bar"); - tempCollection.add("foo"); - this.verifyEvent(this.removeEvent, this.collectionHolder, tempCollection); - assertNull(this.filteredRemoveEvent); - - - clearEvents(); - this.collectionHolder.remove("bar"); - tempCollection.add("bar"); - tempCollection.remove("foo"); - this.verifyEvent(this.removeEvent, this.collectionHolder, tempCollection); - this.verifyEvent(this.filteredRemoveEvent, this.filteredCollectionHolder, tempCollection); - - - clearEvents(); - this.collectionHolder.add("foo"); - tempCollection.remove("bar"); - tempCollection.add("foo"); - this.verifyEvent(this.addEvent, this.collectionHolder, tempCollection); - assertNull(this.filteredAddEvent); - - - clearEvents(); - Collection newCollection = new Vector(); - newCollection.add("fox"); - newCollection.add("baz"); - - this.collectionHolder.setValues(newCollection); - - this.verifyEvent(this.collectionChangedEvent, this.collectionHolder); - - tempCollection.remove("foo"); - tempCollection.add("baz"); - this.verifyEvent(this.filteredCollectionChangedEvent, this.filteredCollectionHolder); - - } - - private CollectionChangeListener buildListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent e) { - FilteringCollectionValueModelTests.this.addEvent = e; - } - public void itemsRemoved(CollectionRemoveEvent e) { - FilteringCollectionValueModelTests.this.removeEvent = e; - } - public void collectionCleared(CollectionClearEvent e) { - FilteringCollectionValueModelTests.this.collectionClearedEvent = e; - } - public void collectionChanged(CollectionChangeEvent e) { - FilteringCollectionValueModelTests.this.collectionChangedEvent = e; - } - }; - } - - private ChangeListener buildChangeListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(CollectionAddEvent e) { - FilteringCollectionValueModelTests.this.addEvent = e; - } - @Override - public void itemsRemoved(CollectionRemoveEvent e) { - FilteringCollectionValueModelTests.this.removeEvent = e; - } - @Override - public void collectionCleared(CollectionClearEvent e) { - FilteringCollectionValueModelTests.this.collectionClearedEvent = e; - } - @Override - public void collectionChanged(CollectionChangeEvent e) { - FilteringCollectionValueModelTests.this.collectionChangedEvent = e; - } - }; - } - - private CollectionChangeListener buildFilteredListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent e) { - FilteringCollectionValueModelTests.this.filteredAddEvent = e; - } - public void itemsRemoved(CollectionRemoveEvent e) { - FilteringCollectionValueModelTests.this.filteredRemoveEvent = e; - } - public void collectionCleared(CollectionClearEvent e) { - FilteringCollectionValueModelTests.this.filteredCollectionClearedEvent = e; - } - public void collectionChanged(CollectionChangeEvent e) { - FilteringCollectionValueModelTests.this.filteredCollectionChangedEvent = e; - } - }; - } - - private ChangeListener buildFilteredChangeListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(CollectionAddEvent e) { - FilteringCollectionValueModelTests.this.filteredAddEvent = e; - } - @Override - public void itemsRemoved(CollectionRemoveEvent e) { - FilteringCollectionValueModelTests.this.filteredRemoveEvent = e; - } - @Override - public void collectionCleared(CollectionClearEvent e) { - FilteringCollectionValueModelTests.this.filteredCollectionClearedEvent = e; - } - @Override - public void collectionChanged(CollectionChangeEvent e) { - FilteringCollectionValueModelTests.this.filteredCollectionChangedEvent = e; - } - }; - } - - private void verifyEvent(CollectionChangeEvent event, Object source) { - assertEquals(source, event.getSource()); - assertEquals(CollectionValueModel.VALUES, event.getCollectionName()); - } - - private void verifyEvent(CollectionAddEvent event, Object source, Object items) { - assertEquals(source, event.getSource()); - assertEquals(CollectionValueModel.VALUES, event.getCollectionName()); - assertEquals(items, CollectionTools.vector(event.getItems())); - } - - private void verifyEvent(CollectionRemoveEvent event, Object source, Object items) { - assertEquals(source, event.getSource()); - assertEquals(CollectionValueModel.VALUES, event.getCollectionName()); - assertEquals(items, CollectionTools.vector(event.getItems())); - } - - public void testRemoveFilteredItem() { - // build collection with TestItems - SimpleCollectionValueModel tiHolder = new SimpleCollectionValueModel(this.buildCollection2()); - CollectionValueModel filteredTIHolder = new FilteringCollectionValueModel(tiHolder, this.buildFilter2()); - // add a listener to "activate" the wrapper - filteredTIHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildFilteredListener()); - - assertEquals(0, filteredTIHolder.size()); - - tiHolder.add(new TestItem("bar")); - assertEquals(1, filteredTIHolder.size()); - - TestItem baz = new TestItem("baz"); - tiHolder.add(baz); - assertEquals(2, filteredTIHolder.size()); - // before removing it, change the item so that it is filtered - baz.name = "jaz"; - tiHolder.remove(baz); - // this would fail because the item was not removed from - // the filtered collection cache... but we've fixed it now - assertEquals(1, filteredTIHolder.size()); - } - - private Collection buildCollection2() { - Collection collection = new Vector(); - collection.add(new TestItem("foo")); - return collection; - } - - private Filter buildFilter2() { - return new Filter() { - public boolean accept(TestItem ti) { - return ti.name.startsWith("b"); - } - }; - } - - - // ********** TestItem inner class ********** - - private class TestItem { - String name; - TestItem(String name) { - super(); - this.name = name; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/FilteringPropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/FilteringPropertyValueModelTests.java deleted file mode 100644 index a20db7f063..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/FilteringPropertyValueModelTests.java +++ /dev/null @@ -1,191 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.BidiFilter; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.FilteringWritablePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class FilteringPropertyValueModelTests extends TestCase { - private WritablePropertyValueModel objectHolder; - PropertyChangeEvent event; - - private WritablePropertyValueModel filteredObjectHolder; - PropertyChangeEvent filteredEvent; - - public FilteringPropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.objectHolder = new SimplePropertyValueModel("foo"); - this.filteredObjectHolder = new FilteringWritablePropertyValueModel(this.objectHolder, this.buildFilter()); - } - - private BidiFilter buildFilter() { - return new BidiFilter() { - public boolean accept(String s) { - return (s != null) && s.startsWith("b"); - } - public boolean reverseAccept(String s) { - return (s != null) && s.startsWith("b"); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testValue() { - assertEquals("foo", this.objectHolder.getValue()); - assertNull(this.filteredObjectHolder.getValue()); - - this.objectHolder.setValue("bar"); - assertEquals("bar", this.objectHolder.getValue()); - assertNotNull(this.filteredObjectHolder.getValue()); - assertEquals("bar", this.filteredObjectHolder.getValue()); - - this.objectHolder.setValue("baz"); - assertEquals("baz", this.objectHolder.getValue()); - assertNotNull(this.filteredObjectHolder.getValue()); - assertEquals("baz", this.filteredObjectHolder.getValue()); - - this.objectHolder.setValue(null); - assertNull(this.objectHolder.getValue()); - assertNull(this.filteredObjectHolder.getValue()); - - this.objectHolder.setValue("foo"); - assertEquals("foo", this.objectHolder.getValue()); - assertNull(this.filteredObjectHolder.getValue()); - } - - public void testSetValue() { - this.filteredObjectHolder.setValue("bar"); - assertEquals("bar", this.objectHolder.getValue()); - assertEquals("bar", this.filteredObjectHolder.getValue()); - - this.filteredObjectHolder.setValue("foo"); - assertEquals("bar", this.objectHolder.getValue()); - assertEquals("bar", this.filteredObjectHolder.getValue()); - - this.filteredObjectHolder.setValue(null); - assertEquals("bar", this.objectHolder.getValue()); - assertEquals("bar", this.filteredObjectHolder.getValue()); - - this.filteredObjectHolder.setValue("baz"); - assertEquals("baz", this.objectHolder.getValue()); - assertEquals("baz", this.filteredObjectHolder.getValue()); - } - - public void testLazyListening() { - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - ChangeListener listener = this.buildFilteredListener(); - this.filteredObjectHolder.addChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.filteredObjectHolder.removeChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.filteredObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.filteredObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testPropertyChange1() { - this.objectHolder.addChangeListener(this.buildListener()); - this.filteredObjectHolder.addChangeListener(this.buildFilteredListener()); - this.verifyPropertyChanges(); - } - - public void testPropertyChange2() { - this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.filteredObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildFilteredListener()); - this.verifyPropertyChanges(); - } - - private void verifyPropertyChanges() { - this.event = null; - this.filteredEvent = null; - this.objectHolder.setValue("bar"); - this.verifyEvent(this.event, this.objectHolder, "foo", "bar"); - this.verifyEvent(this.filteredEvent, this.filteredObjectHolder, null, "bar"); - - this.event = null; - this.filteredEvent = null; - this.objectHolder.setValue("baz"); - this.verifyEvent(this.event, this.objectHolder, "bar", "baz"); - this.verifyEvent(this.filteredEvent, this.filteredObjectHolder, "bar", "baz"); - - this.event = null; - this.filteredEvent = null; - this.objectHolder.setValue("foo"); - this.verifyEvent(this.event, this.objectHolder, "baz", "foo"); - this.verifyEvent(this.filteredEvent, this.filteredObjectHolder, "baz", null); - - this.event = null; - this.filteredEvent = null; - this.objectHolder.setValue("fop"); - this.verifyEvent(this.event, this.objectHolder, "foo", "fop"); - assertNull(this.filteredEvent); - - this.event = null; - this.filteredEvent = null; - this.objectHolder.setValue(null); - this.verifyEvent(this.event, this.objectHolder, "fop", null); - assertNull(this.filteredEvent); - - this.event = null; - this.filteredEvent = null; - this.objectHolder.setValue("bar"); - this.verifyEvent(this.event, this.objectHolder, null, "bar"); - this.verifyEvent(this.filteredEvent, this.filteredObjectHolder, null, "bar"); - } - - private ChangeListener buildListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - FilteringPropertyValueModelTests.this.event = e; - } - }; - } - - private ChangeListener buildFilteredListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - FilteringPropertyValueModelTests.this.filteredEvent = e; - } - }; - } - - private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) { - assertEquals(source, e.getSource()); - assertEquals(PropertyValueModel.VALUE, e.getPropertyName()); - assertEquals(oldValue, e.getOldValue()); - assertEquals(newValue, e.getNewValue()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java deleted file mode 100644 index 7ede9fcd6a..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import javax.swing.Icon; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ItemCollectionListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.swing.Displayable; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ItemCollectionListValueModelAdapterTests extends TestCase { - private Junk foo; - private Junk bar; - private Junk baz; - private Junk joo; - private Junk jar; - private Junk jaz; - - private Junk tom; - private Junk dick; - private Junk harry; - - public ItemCollectionListValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.foo = new Junk("foo"); - this.bar = new Junk("bar"); - this.baz = new Junk("baz"); - this.joo = new Junk("joo"); - this.jar = new Junk("jar"); - this.jaz = new Junk("jaz"); - - this.tom = new Junk("tom"); - this.dick = new Junk("dick"); - this.harry = new Junk("harry"); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testCollectionSynchronization() { - SimpleCollectionValueModel collectionHolder = this.buildCollectionHolder(); - ListValueModel listValueModel = new ItemCollectionListValueModelAdapter(collectionHolder, Junk.STUFF_COLLECTION); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - collectionHolder.add(this.tom); - collectionHolder.add(this.dick); - collectionHolder.add(this.harry); - assertEquals(9, synchList.size()); - this.compare(listValueModel, synchList); - - collectionHolder.remove(this.foo); - collectionHolder.remove(this.jar); - collectionHolder.remove(this.harry); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - } - - public void testListSynchronization() { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemCollectionListValueModelAdapter(listHolder, Junk.STUFF_COLLECTION); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - listHolder.add(6, this.tom); - listHolder.add(7, this.dick); - listHolder.add(8, this.harry); - assertEquals(9, synchList.size()); - this.compare(listValueModel, synchList); - - listHolder.remove(8); - listHolder.remove(0); - listHolder.remove(4); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - } - - private void compare(ListValueModel listValueModel, List list) { - assertEquals(listValueModel.size(), list.size()); - for (int i = 0; i < listValueModel.size(); i++) { - assertEquals(listValueModel.get(i), list.get(i)); - } - } - - - public void testHasListeners() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyListChangeListeners(Junk.STUFF_COLLECTION)); - assertFalse(this.jaz.hasAnyListChangeListeners(Junk.STUFF_COLLECTION)); - - ListValueModel listValueModel = new ItemCollectionListValueModelAdapter(listHolder, Junk.STUFF_COLLECTION); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION)); - assertFalse(this.jaz.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION)); - this.verifyHasNoListeners(listValueModel); - - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.foo.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION)); - assertTrue(this.jaz.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION)); - this.verifyHasListeners(listValueModel); - - listValueModel.removeListChangeListener(ListValueModel.LIST_VALUES, synchList); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION)); - assertFalse(this.jaz.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION)); - this.verifyHasNoListeners(listValueModel); - } - - public void testGetSize() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemCollectionListValueModelAdapter(listHolder, Junk.STUFF_COLLECTION); - CoordinatedList synchList = new CoordinatedList(listValueModel); - this.verifyHasListeners(listValueModel); - assertEquals(6, listValueModel.size()); - assertEquals(6, synchList.size()); - } - - public void testGet() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new SortedListValueModelWrapper(new ItemCollectionListValueModelAdapter(listHolder, Junk.STUFF_COLLECTION)); - CoordinatedList synchList = new CoordinatedList(listValueModel); - this.verifyHasListeners(listValueModel); - assertEquals(this.bar, listValueModel.get(0)); - assertEquals(this.bar, synchList.get(0)); - this.bar.removeStuff("bar"); - this.bar.addStuff("zzz"); - this.bar.addStuff("bar"); - assertEquals(this.bar, listValueModel.get(5)); - assertEquals(this.bar, synchList.get(5)); - this.bar.removeStuff("zzz"); - } - - private void verifyHasNoListeners(ListValueModel listValueModel) throws Exception { - assertTrue(((AbstractModel) listValueModel).hasNoListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private void verifyHasListeners(ListValueModel listValueModel) throws Exception { - assertTrue(((AbstractModel) listValueModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private SimpleCollectionValueModel buildCollectionHolder() { - return new SimpleCollectionValueModel(this.buildCollection()); - } - - private Collection buildCollection() { - Bag bag = new HashBag(); - this.populateCollection(bag); - return bag; - } - - private SimpleListValueModel buildListHolder() { - return new SimpleListValueModel(this.buildList()); - } - - private List buildList() { - List list = new ArrayList(); - this.populateCollection(list); - return list; - } - - private void populateCollection(Collection c) { - c.add(this.foo); - c.add(this.bar); - c.add(this.baz); - c.add(this.joo); - c.add(this.jar); - c.add(this.jaz); - } - - - // ********** Junk class ********** - - private class Junk extends AbstractModel implements Displayable, Comparable { - private Collection stuff; - public static final String STUFF_COLLECTION = "stuff"; - - - public Junk(String stuffItem) { - this.stuff = new ArrayList(); - this.stuff.add(stuffItem); - } - - public void addStuff(String stuffItem) { - this.addItemToCollection(stuffItem, this.stuff, STUFF_COLLECTION); - } - - public void removeStuff(String stuffItem) { - this.removeItemFromCollection(stuffItem, this.stuff, STUFF_COLLECTION); - } - - public String displayString() { - return toString(); - } - - public Icon icon() { - return null; - } - - public int compareTo(Junk o) { - return this.displayString().compareTo(o.displayString()); - } - - @Override - public String toString() { - return "Junk(" + this.stuff + ")"; - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java deleted file mode 100644 index d566ece7d8..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java +++ /dev/null @@ -1,244 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import javax.swing.Icon; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ItemListListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.swing.Displayable; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ItemListListValueModelAdapterTests extends TestCase { - private Junk foo; - private Junk bar; - private Junk baz; - private Junk joo; - private Junk jar; - private Junk jaz; - - private Junk tom; - private Junk dick; - private Junk harry; - - public ItemListListValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.foo = new Junk("foo"); - this.bar = new Junk("bar"); - this.baz = new Junk("baz"); - this.joo = new Junk("joo"); - this.jar = new Junk("jar"); - this.jaz = new Junk("jaz"); - - this.tom = new Junk("tom"); - this.dick = new Junk("dick"); - this.harry = new Junk("harry"); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testCollectionSynchronization() { - SimpleCollectionValueModel collectionHolder = this.buildCollectionHolder(); - ListValueModel listValueModel = new ItemListListValueModelAdapter(collectionHolder, Junk.STUFF_LIST); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - collectionHolder.add(this.tom); - collectionHolder.add(this.dick); - collectionHolder.add(this.harry); - assertEquals(9, synchList.size()); - this.compare(listValueModel, synchList); - - collectionHolder.remove(this.foo); - collectionHolder.remove(this.jar); - collectionHolder.remove(this.harry); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - } - - public void testListSynchronization() { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemListListValueModelAdapter(listHolder, Junk.STUFF_LIST); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - listHolder.add(6, this.tom); - listHolder.add(7, this.dick); - listHolder.add(8, this.harry); - assertEquals(9, synchList.size()); - this.compare(listValueModel, synchList); - - listHolder.remove(8); - listHolder.remove(0); - listHolder.remove(4); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - } - - private void compare(ListValueModel listValueModel, List list) { - assertEquals(listValueModel.size(), list.size()); - for (int i = 0; i < listValueModel.size(); i++) { - assertEquals(listValueModel.get(i), list.get(i)); - } - } - - - public void testHasListeners() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyListChangeListeners(Junk.STUFF_LIST)); - assertFalse(this.jaz.hasAnyListChangeListeners(Junk.STUFF_LIST)); - - ListValueModel listValueModel = new ItemListListValueModelAdapter(listHolder, Junk.STUFF_LIST); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyListChangeListeners(Junk.STUFF_LIST)); - assertFalse(this.jaz.hasAnyListChangeListeners(Junk.STUFF_LIST)); - this.verifyHasNoListeners(listValueModel); - - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.foo.hasAnyListChangeListeners(Junk.STUFF_LIST)); - assertTrue(this.jaz.hasAnyListChangeListeners(Junk.STUFF_LIST)); - this.verifyHasListeners(listValueModel); - - listValueModel.removeListChangeListener(ListValueModel.LIST_VALUES, synchList); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyListChangeListeners(Junk.STUFF_LIST)); - assertFalse(this.jaz.hasAnyListChangeListeners(Junk.STUFF_LIST)); - this.verifyHasNoListeners(listValueModel); - } - - public void testGetSize() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemListListValueModelAdapter(listHolder, Junk.STUFF_LIST); - CoordinatedList synchList = new CoordinatedList(listValueModel); - this.verifyHasListeners(listValueModel); - assertEquals(6, listValueModel.size()); - assertEquals(6, synchList.size()); - } - - public void testGet() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new SortedListValueModelWrapper(new ItemListListValueModelAdapter(listHolder, Junk.STUFF_LIST)); - CoordinatedList synchList = new CoordinatedList(listValueModel); - this.verifyHasListeners(listValueModel); - assertEquals(this.bar, listValueModel.get(0)); - assertEquals(this.bar, synchList.get(0)); - this.bar.removeStuff("bar"); - this.bar.addStuff("zzz"); - this.bar.addStuff("bar"); - assertEquals(this.bar, listValueModel.get(5)); - assertEquals(this.bar, synchList.get(5)); - this.bar.removeStuff("zzz"); - } - - private void verifyHasNoListeners(ListValueModel listValueModel) throws Exception { - assertTrue(((AbstractModel) listValueModel).hasNoListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private void verifyHasListeners(ListValueModel listValueModel) throws Exception { - assertTrue(((AbstractModel) listValueModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private SimpleCollectionValueModel buildCollectionHolder() { - return new SimpleCollectionValueModel(this.buildCollection()); - } - - private Collection buildCollection() { - Bag bag = new HashBag(); - this.populateCollection(bag); - return bag; - } - - private SimpleListValueModel buildListHolder() { - return new SimpleListValueModel(this.buildList()); - } - - private List buildList() { - List list = new ArrayList(); - this.populateCollection(list); - return list; - } - - private void populateCollection(Collection c) { - c.add(this.foo); - c.add(this.bar); - c.add(this.baz); - c.add(this.joo); - c.add(this.jar); - c.add(this.jaz); - } - - - // ********** Junk class ********** - - private class Junk extends AbstractModel implements Displayable, Comparable { - private List stuff; - public static final String STUFF_LIST = "stuff"; - - - public Junk(String stuffItem) { - this.stuff = new ArrayList(); - this.stuff.add(stuffItem); - } - public void addStuff(String stuffItem) { - this.stuff.add(stuffItem); - fireItemAdded(STUFF_LIST, this.stuff.indexOf(stuffItem), stuffItem); - } - - public void removeStuff(String stuffItem) { - int index = this.stuff.indexOf(stuffItem); - this.stuff.remove(stuffItem); - fireItemRemoved(STUFF_LIST, index, stuffItem); - } - - public String displayString() { - return toString(); - } - - public Icon icon() { - return null; - } - - public int compareTo(Junk o) { - return this.displayString().compareTo(o.displayString()); - } - - @Override - public String toString() { - return "Junk(" + this.stuff + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java deleted file mode 100644 index 35fce2a3e9..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java +++ /dev/null @@ -1,335 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; - -import javax.swing.Icon; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ItemPropertyListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.swing.Displayable; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ItemPropertyListValueModelAdapterTests extends TestCase { - private Junk foo; - private Junk bar; - private Junk baz; - private Junk joo; - private Junk jar; - private Junk jaz; - - private Junk tom; - private Junk dick; - private Junk harry; - - public ItemPropertyListValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.foo = new Junk("this.foo"); - this.bar = new Junk("this.bar"); - this.baz = new Junk("this.baz"); - this.joo = new Junk("this.joo"); - this.jar = new Junk("this.jar"); - this.jaz = new Junk("this.jaz"); - - this.tom = new Junk("this.tom"); - this.dick = new Junk("this.dick"); - this.harry = new Junk("this.harry"); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testCollectionSynchronization() { - SimpleCollectionValueModel collectionHolder = this.buildCollectionHolder(); - ListValueModel listValueModel = new ItemPropertyListValueModelAdapter(collectionHolder, Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - collectionHolder.add(this.tom); - collectionHolder.add(this.dick); - collectionHolder.add(this.harry); - assertEquals(9, synchList.size()); - this.compare(listValueModel, synchList); - - collectionHolder.remove(this.foo); - collectionHolder.remove(this.jar); - collectionHolder.remove(this.harry); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - collectionHolder.setValues(this.buildCollection()); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - } - - public void testListSynchronization() { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemPropertyListValueModelAdapter(listHolder, Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - listHolder.add(6, this.tom); - listHolder.add(7, this.dick); - listHolder.add(8, this.harry); - assertEquals(9, synchList.size()); - this.compare(listValueModel, synchList); - - listHolder.remove(8); - listHolder.remove(0); - listHolder.remove(4); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - // test concurrent modification exception - listHolder.setListValues(this.buildList()); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - } - - private void compare(ListValueModel listValueModel, List list) { - assertEquals(listValueModel.size(), list.size()); - for (int i = 0; i < listValueModel.size(); i++) { - assertEquals(listValueModel.get(i), list.get(i)); - } - } - - public void testCollectionSort() { - this.verifyCollectionSort(null); - } - - public void testListSort() { - this.verifyListSort(null); - } - - public void testCustomCollectionSort() { - this.verifyCollectionSort(this.buildCustomComparator()); - } - - public void testCustomListSort() { - this.verifyListSort(this.buildCustomComparator()); - } - - private Comparator buildCustomComparator() { - // sort with reverse order - return new Comparator() { - public int compare(Junk o1, Junk o2) { - return o2.displayString().compareTo(o1.displayString()); - } - }; - } - - private void verifyCollectionSort(Comparator comparator) { - SimpleCollectionValueModel collectionHolder = this.buildCollectionHolder(); - ListValueModel listValueModel = new ItemPropertyListValueModelAdapter(new SortedListValueModelAdapter(collectionHolder, comparator), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - collectionHolder.add(this.tom); - collectionHolder.add(this.dick); - collectionHolder.add(this.harry); - assertEquals(9, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - collectionHolder.remove(this.foo); - collectionHolder.remove(this.jar); - collectionHolder.remove(this.harry); - assertEquals(6, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - collectionHolder.setValues(this.buildCollection()); - assertEquals(6, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - } - - private void verifyListSort(Comparator comparator) { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemPropertyListValueModelAdapter(new SortedListValueModelWrapper(listHolder, comparator), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - listHolder.add(0, this.tom); - listHolder.add(0, this.dick); - listHolder.add(0, this.harry); - assertEquals(9, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - listHolder.remove(8); - listHolder.remove(4); - listHolder.remove(0); - listHolder.remove(5); - assertEquals(5, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - listHolder.setListValues(this.buildList()); - assertEquals(6, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - } - - private void compareSort(ListValueModel listValueModel, List list, Comparator comparator) { - SortedSet ss = new TreeSet(comparator); - for (int i = 0; i < listValueModel.size(); i++) { - ss.add(listValueModel.get(i)); - } - assertEquals(ss.size(), list.size()); - for (Iterator stream1 = ss.iterator(), stream2 = list.iterator(); stream1.hasNext(); ) { - assertEquals(stream1.next(), stream2.next()); - } - } - - public void testHasListeners() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); - assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); - assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); - assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); - - ListValueModel listValueModel = new ItemPropertyListValueModelAdapter(new SortedListValueModelWrapper(listHolder), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); - assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); - assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); - assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); - this.verifyHasNoListeners(listValueModel); - - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.foo.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); - assertTrue(this.foo.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); - assertTrue(this.jaz.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); - assertTrue(this.jaz.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); - this.verifyHasListeners(listValueModel); - - listValueModel.removeListChangeListener(ListValueModel.LIST_VALUES, synchList); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); - assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); - assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); - assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); - this.verifyHasNoListeners(listValueModel); - } - - public void testGetSize() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemPropertyListValueModelAdapter(new SortedListValueModelWrapper(listHolder), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); - CoordinatedList synchList = new CoordinatedList(listValueModel); - this.verifyHasListeners(listValueModel); - assertEquals(6, listValueModel.size()); - assertEquals(6, synchList.size()); - } - - public void testGet() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new SortedListValueModelWrapper(new ItemPropertyListValueModelAdapter(listHolder, Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY)); - CoordinatedList synchList = new CoordinatedList(listValueModel); - this.verifyHasListeners(listValueModel); - assertEquals(this.bar, listValueModel.get(0)); - assertEquals(this.bar, synchList.get(0)); - this.bar.setName("zzz"); - assertEquals(this.bar, listValueModel.get(5)); - assertEquals(this.bar, synchList.get(5)); - this.bar.setName("this.bar"); - } - - private void verifyHasNoListeners(ListValueModel listValueModel) throws Exception { - assertTrue(((AbstractModel) listValueModel).hasNoListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private void verifyHasListeners(ListValueModel listValueModel) throws Exception { - assertTrue(((AbstractModel) listValueModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private SimpleCollectionValueModel buildCollectionHolder() { - return new SimpleCollectionValueModel(this.buildCollection()); - } - - private Collection buildCollection() { - Bag bag = new HashBag(); - this.populateCollection(bag); - return bag; - } - - private SimpleListValueModel buildListHolder() { - return new SimpleListValueModel(this.buildList()); - } - - private List buildList() { - List list = new ArrayList(); - this.populateCollection(list); - return list; - } - - private void populateCollection(Collection c) { - c.add(this.foo); - c.add(this.bar); - c.add(this.baz); - c.add(this.joo); - c.add(this.jar); - c.add(this.jaz); - } - - - // ********** Junk class ********** - - private class Junk extends AbstractModel implements Displayable, Comparable { - private String name; - public Junk(String name) { - this.name = name; - } - public String displayString() { - return this.name; - } - public Icon icon() { - return null; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name); - } - public int compareTo(Junk o) { - return this.displayString().compareTo(o.displayString()); - } - @Override - public String toString() { - return "Junk(" + this.name + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java deleted file mode 100644 index 18730739e9..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java +++ /dev/null @@ -1,306 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ItemStateListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ItemStateListValueModelAdapterTests extends TestCase { - private Junk foo; - private Junk bar; - private Junk baz; - private Junk joo; - private Junk jar; - private Junk jaz; - - private Junk tom; - private Junk dick; - private Junk harry; - - public ItemStateListValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.foo = new Junk("this.foo"); - this.bar = new Junk("this.bar"); - this.baz = new Junk("this.baz"); - this.joo = new Junk("this.joo"); - this.jar = new Junk("this.jar"); - this.jaz = new Junk("this.jaz"); - - this.tom = new Junk("this.tom"); - this.dick = new Junk("this.dick"); - this.harry = new Junk("this.harry"); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testCollectionSynchronization() { - SimpleCollectionValueModel collectionHolder = this.buildCollectionHolder(); - ListValueModel listValueModel = new ItemStateListValueModelAdapter(collectionHolder); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - collectionHolder.add(this.tom); - collectionHolder.add(this.dick); - collectionHolder.add(this.harry); - assertEquals(9, synchList.size()); - this.compare(listValueModel, synchList); - - collectionHolder.remove(this.foo); - collectionHolder.remove(this.jar); - collectionHolder.remove(this.harry); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - } - - public void testListSynchronization() { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemStateListValueModelAdapter(listHolder); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - - listHolder.add(6, this.tom); - listHolder.add(7, this.dick); - listHolder.add(8, this.harry); - assertEquals(9, synchList.size()); - this.compare(listValueModel, synchList); - - listHolder.remove(8); - listHolder.remove(0); - listHolder.remove(4); - assertEquals(6, synchList.size()); - this.compare(listValueModel, synchList); - } - - private void compare(ListValueModel listValueModel, List list) { - assertEquals(listValueModel.size(), list.size()); - for (int i = 0; i < listValueModel.size(); i++) { - assertEquals(listValueModel.get(i), list.get(i)); - } - } - - public void testCollectionSort() { - this.verifyCollectionSort(null); - } - - public void testListSort() { - this.verifyListSort(null); - } - - public void testCustomCollectionSort() { - this.verifyCollectionSort(this.buildCustomComparator()); - } - - public void testCustomListSort() { - this.verifyListSort(this.buildCustomComparator()); - } - - private Comparator buildCustomComparator() { - // sort with reverse order - return new Comparator() { - public int compare(Junk o1, Junk o2) { - return o2.compareTo(o1); - } - }; - } - - private void verifyCollectionSort(Comparator comparator) { - SimpleCollectionValueModel collectionHolder = this.buildCollectionHolder(); - ListValueModel listValueModel = new ItemStateListValueModelAdapter(new SortedListValueModelAdapter(collectionHolder, comparator)); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - collectionHolder.add(this.tom); - collectionHolder.add(this.dick); - collectionHolder.add(this.harry); - assertEquals(9, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - collectionHolder.remove(this.foo); - collectionHolder.remove(this.jar); - collectionHolder.remove(this.harry); - assertEquals(6, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - } - - private void verifyListSort(Comparator comparator) { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemStateListValueModelAdapter(new SortedListValueModelWrapper(listHolder, comparator)); - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertEquals(6, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - listHolder.add(0, this.tom); - listHolder.add(0, this.dick); - listHolder.add(0, this.harry); - assertEquals(9, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - - listHolder.remove(8); - listHolder.remove(4); - listHolder.remove(0); - listHolder.remove(5); - assertEquals(5, synchList.size()); - this.compareSort(listValueModel, synchList, comparator); - } - - private void compareSort(ListValueModel listValueModel, List list, Comparator comparator) { - SortedSet ss = new TreeSet(comparator); - for (int i = 0; i < listValueModel.size(); i++) { - ss.add(listValueModel.get(i)); - } - assertEquals(ss.size(), list.size()); - for (Iterator stream1 = ss.iterator(), stream2 = list.iterator(); stream1.hasNext(); ) { - assertEquals(stream1.next(), stream2.next()); - } - } - - public void testHasListeners() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyStateChangeListeners()); - assertFalse(this.foo.hasAnyStateChangeListeners()); - assertFalse(this.jaz.hasAnyStateChangeListeners()); - assertFalse(this.jaz.hasAnyStateChangeListeners()); - - ListValueModel listValueModel = new ItemStateListValueModelAdapter(new SortedListValueModelWrapper(listHolder)); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyStateChangeListeners()); - assertFalse(this.foo.hasAnyStateChangeListeners()); - assertFalse(this.jaz.hasAnyStateChangeListeners()); - assertFalse(this.jaz.hasAnyStateChangeListeners()); - this.verifyHasNoListeners(listValueModel); - - CoordinatedList synchList = new CoordinatedList(listValueModel); - assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.foo.hasAnyStateChangeListeners()); - assertTrue(this.foo.hasAnyStateChangeListeners()); - assertTrue(this.jaz.hasAnyStateChangeListeners()); - assertTrue(this.jaz.hasAnyStateChangeListeners()); - this.verifyHasListeners(listValueModel); - - listValueModel.removeListChangeListener(ListValueModel.LIST_VALUES, synchList); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(this.foo.hasAnyStateChangeListeners()); - assertFalse(this.foo.hasAnyStateChangeListeners()); - assertFalse(this.jaz.hasAnyStateChangeListeners()); - assertFalse(this.jaz.hasAnyStateChangeListeners()); - this.verifyHasNoListeners(listValueModel); - } - - public void testGetSize() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new ItemStateListValueModelAdapter(new SortedListValueModelWrapper(listHolder)); - CoordinatedList synchList = new CoordinatedList(listValueModel); - this.verifyHasListeners(listValueModel); - assertEquals(6, listValueModel.size()); - assertEquals(6, synchList.size()); - } - - public void testGet() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListValueModel listValueModel = new SortedListValueModelWrapper(new ItemStateListValueModelAdapter(listHolder)); - CoordinatedList synchList = new CoordinatedList(listValueModel); - this.verifyHasListeners(listValueModel); - assertEquals(this.bar, listValueModel.get(0)); - assertEquals(this.bar, synchList.get(0)); - this.bar.setName("zzz"); - assertEquals(this.bar, listValueModel.get(5)); - assertEquals(this.bar, synchList.get(5)); - this.bar.setName("this.bar"); - } - - private void verifyHasNoListeners(ListValueModel listValueModel) throws Exception { - assertTrue(((AbstractModel) listValueModel).hasNoListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private void verifyHasListeners(ListValueModel listValueModel) throws Exception { - assertTrue(((AbstractModel) listValueModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private SimpleCollectionValueModel buildCollectionHolder() { - return new SimpleCollectionValueModel(this.buildCollection()); - } - - private Collection buildCollection() { - Bag bag = new HashBag(); - this.populateCollection(bag); - return bag; - } - - private SimpleListValueModel buildListHolder() { - return new SimpleListValueModel(this.buildList()); - } - - private List buildList() { - List list = new ArrayList(); - this.populateCollection(list); - return list; - } - - private void populateCollection(Collection c) { - c.add(this.foo); - c.add(this.bar); - c.add(this.baz); - c.add(this.joo); - c.add(this.jar); - c.add(this.jaz); - } - - // ********** Junk class ********** - private class Junk extends AbstractModel implements Comparable { - private String name; - public Junk(String name) { - this.name = name; - } - public void setName(String name) { - this.name = name; - this.fireStateChanged(); - } - public int compareTo(Junk j) { - return this.name.compareTo(j.name); - } - @Override - public String toString() { - return "Junk(" + this.name + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/JptUtilityModelValueTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/JptUtilityModelValueTests.java deleted file mode 100644 index 9812dd32bd..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/JptUtilityModelValueTests.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.jpt.common.utility.tests.internal.model.value.prefs.JptUtilityModelValuePrefsTests; -import org.eclipse.jpt.common.utility.tests.internal.model.value.swing.JptUtilityModelValueSwingTests; - -public class JptUtilityModelValueTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityModelValueTests.class.getPackage().getName()); - - suite.addTest(JptUtilityModelValuePrefsTests.suite()); - suite.addTest(JptUtilityModelValueSwingTests.suite()); - - suite.addTestSuite(BufferedWritablePropertyValueModelTests.class); - suite.addTestSuite(CachingTransformationPropertyValueModelTests.class); - suite.addTestSuite(CachingTransformationWritablePropertyValueModelTests.class); - suite.addTestSuite(CollectionAspectAdapterTests.class); - suite.addTestSuite(CollectionListValueModelAdapterTests.class); - suite.addTestSuite(CollectionPropertyValueModelAdapterTests.class); - suite.addTestSuite(CompositeBooleanPropertyValueModelTests.class); - suite.addTestSuite(CompositeCollectionValueModelTests.class); - suite.addTestSuite(CompositeListValueModelTests.class); - suite.addTestSuite(CompositePropertyValueModelTests.class); - suite.addTestSuite(ExtendedListValueModelWrapperTests.class); - suite.addTestSuite(FilteringCollectionValueModelTests.class); - suite.addTestSuite(FilteringPropertyValueModelTests.class); - suite.addTestSuite(ItemCollectionListValueModelAdapterTests.class); - suite.addTestSuite(ItemListListValueModelAdapterTests.class); - suite.addTestSuite(ItemPropertyListValueModelAdapterTests.class); - suite.addTestSuite(ItemStateListValueModelAdapterTests.class); - suite.addTestSuite(ListAspectAdapterTests.class); - suite.addTestSuite(ListCollectionValueModelAdapterTests.class); - suite.addTestSuite(ListCuratorTests.class); - suite.addTestSuite(NullCollectionValueModelTests.class); - suite.addTestSuite(NullListValueModelTests.class); - suite.addTestSuite(NullPropertyValueModelTests.class); - suite.addTestSuite(PropertyAspectAdapterTests.class); - suite.addTestSuite(PropertyCollectionValueModelAdapterTests.class); - suite.addTestSuite(PropertyListValueModelAdapterTests.class); - suite.addTestSuite(ReadOnlyWritablePropertyValueModelWrapperTests.class); - suite.addTestSuite(SetCollectionValueModelTests.class); - suite.addTestSuite(SimpleCollectionValueModelTests.class); - suite.addTestSuite(SimpleListValueModelTests.class); - suite.addTestSuite(SimplePropertyValueModelTests.class); - suite.addTestSuite(SortedListValueModelAdapterTests.class); - suite.addTestSuite(SortedListValueModelWrapperTests.class); - suite.addTestSuite(StaticCollectionValueModelTests.class); - suite.addTestSuite(StaticListValueModelTests.class); - suite.addTestSuite(StaticValueModelTests.class); - suite.addTestSuite(TransformationListValueModelTests.class); - suite.addTestSuite(TransformationListValueModelTests.TransformerTests.class); - suite.addTestSuite(TransformationPropertyValueModelTests.class); - suite.addTestSuite(TreeAspectAdapterTests.class); - suite.addTestSuite(ValueCollectionAdapterTests.class); - suite.addTestSuite(ValueListAdapterTests.class); - suite.addTestSuite(ValuePropertyAdapterTests.class); - suite.addTestSuite(ValueStateAdapterTests.class); - - return suite; - } - - private JptUtilityModelValueTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListAspectAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListAspectAdapterTests.java deleted file mode 100644 index d6f3fd2999..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListAspectAdapterTests.java +++ /dev/null @@ -1,476 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ListAspectAdapterTests extends TestCase { - private TestSubject subject1; - private WritablePropertyValueModel subjectHolder1; - private LocalListAspectAdapter aa1; - private ListEvent event1; - private ListChangeListener listener1; - - private TestSubject subject2; - - public ListAspectAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.subject1 = new TestSubject(); - this.subject1.addNames(this.subject1Names()); - this.subject1.addDescriptions(this.subject1Descriptions()); - this.subjectHolder1 = new SimplePropertyValueModel(this.subject1); - this.aa1 = this.buildAspectAdapter(this.subjectHolder1); - this.listener1 = this.buildValueChangeListener1(); - this.aa1.addListChangeListener(ListValueModel.LIST_VALUES, this.listener1); - this.event1 = null; - - this.subject2 = new TestSubject(); - this.subject2.addNames(this.subject2Names()); - this.subject2.addDescriptions(this.subject2Descriptions()); - } - - private List subject1Names() { - List result = new ArrayList(); - result.add("foo"); - result.add("bar"); - result.add("baz"); - result.add("bam"); - return result; - } - - private List subject1Descriptions() { - List result = new ArrayList(); - result.add("this.subject1 description1"); - result.add("this.subject1 description2"); - return result; - } - - private List subject2Names() { - List result = new ArrayList(); - result.add("joo"); - result.add("jar"); - result.add("jaz"); - result.add("jam"); - return result; - } - - private List subject2Descriptions() { - List result = new ArrayList(); - result.add("this.subject2 description1"); - result.add("this.subject2 description2"); - return result; - } - - private LocalListAspectAdapter buildAspectAdapter(PropertyValueModel subjectHolder) { - return new LocalListAspectAdapter(subjectHolder); - } - - private ListChangeListener buildValueChangeListener1() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent e) { - ListAspectAdapterTests.this.value1Changed(e); - } - public void itemsRemoved(ListRemoveEvent e) { - ListAspectAdapterTests.this.value1Changed(e); - } - public void itemsReplaced(ListReplaceEvent e) { - ListAspectAdapterTests.this.value1Changed(e); - } - public void itemsMoved(ListMoveEvent e) { - ListAspectAdapterTests.this.value1Changed(e); - } - public void listCleared(ListClearEvent e) { - ListAspectAdapterTests.this.value1Changed(e); - } - public void listChanged(ListChangeEvent e) { - ListAspectAdapterTests.this.value1Changed(e); - } - }; - } - - void value1Changed(ListEvent e) { - this.event1 = e; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSubjectHolder() { - assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator())); - assertNull(this.event1); - - this.subjectHolder1.setValue(this.subject2); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(this.subject2Names(), CollectionTools.list(this.aa1.listIterator())); - - this.event1 = null; - this.subjectHolder1.setValue(null); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertFalse(this.aa1.iterator().hasNext()); - - this.event1 = null; - this.subjectHolder1.setValue(this.subject1); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator())); - } - - public void testAdd() { - assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator())); - assertNull(this.event1); - - this.subject1.addName("jam"); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(this.subject1Names().size(), ((ListAddEvent) this.event1).getIndex()); - assertEquals("jam", ((ListAddEvent) this.event1).getItems().iterator().next()); - List namesPlus = this.subject1Names(); - namesPlus.add("jam"); - assertEquals(namesPlus, CollectionTools.list(this.aa1.listIterator())); - - this.event1 = null; - this.aa1.add(2, "jaz"); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(2, ((ListAddEvent) this.event1).getIndex()); - assertEquals("jaz", ((ListAddEvent) this.event1).getItems().iterator().next()); - namesPlus.add(2, "jaz"); - assertEquals(namesPlus, CollectionTools.list(this.aa1.listIterator())); - } - - public void testDefaultAdd() { - assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator())); - assertNull(this.event1); - - List items = new ArrayList(); - items.add("joo"); - items.add("jar"); - items.add("jaz"); - items.add("jam"); - - this.event1 = null; - this.aa1.addAll(2, items); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(5, ((ListAddEvent) this.event1).getIndex()); // only the last "add" event will still be there - assertEquals("jam", ((ListAddEvent) this.event1).getItems().iterator().next()); - List namesPlus = this.subject1Names(); - namesPlus.addAll(2, items); - assertEquals(namesPlus, CollectionTools.list(this.aa1.listIterator())); - } - - public void testRemove() { - assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator())); - assertNull(this.event1); - - String removedName = this.subject1.removeName(0); // should be "foo" - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(0, ((ListRemoveEvent) this.event1).getIndex()); - assertEquals(removedName, ((ListRemoveEvent) this.event1).getItems().iterator().next()); - List namesMinus = this.subject1Names(); - namesMinus.remove(0); - assertEquals(namesMinus, CollectionTools.list(this.aa1.listIterator())); - - this.event1 = null; - Object removedItem = this.aa1.remove(0); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(0, ((ListRemoveEvent) this.event1).getIndex()); - assertEquals(removedItem, ((ListRemoveEvent) this.event1).getItems().iterator().next()); - namesMinus.remove(0); - assertEquals(namesMinus, CollectionTools.list(this.aa1.listIterator())); - } - - public void testDefaultLength() { - assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator())); - assertNull(this.event1); - - List items = new ArrayList(); - items.add("bar"); - items.add("baz"); - - this.event1 = null; - this.aa1.remove(1, 2); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(1, ((ListRemoveEvent) this.event1).getIndex()); // only the last "remove" event will still be there - assertEquals("baz", ((ListRemoveEvent) this.event1).getItems().iterator().next()); - List namesPlus = this.subject1Names(); - namesPlus.remove(1); - namesPlus.remove(1); - assertEquals(namesPlus, CollectionTools.list(this.aa1.listIterator())); - } - - public void testReplace() { - assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator())); - assertNull(this.event1); - - String replacedName = this.subject1.setName(0, "jelly"); // should be "foo" - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(0, ((ListReplaceEvent) this.event1).getIndex()); - assertEquals("jelly", ((ListReplaceEvent) this.event1).getNewItems().iterator().next()); - assertEquals(replacedName, ((ListReplaceEvent) this.event1).getOldItems().iterator().next()); - List namesChanged = this.subject1Names(); - namesChanged.set(0, "jelly"); - assertEquals(namesChanged, CollectionTools.list(this.aa1.listIterator())); - - this.event1 = null; - replacedName = this.subject1.setName(1, "roll"); // should be "bar" - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(1, ((ListReplaceEvent) this.event1).getIndex()); - assertEquals("roll", ((ListReplaceEvent) this.event1).getNewItems().iterator().next()); - assertEquals(replacedName, ((ListReplaceEvent) this.event1).getOldItems().iterator().next()); - namesChanged = this.subject1Names(); - namesChanged.set(0, "jelly"); - namesChanged.set(1, "roll"); - assertEquals(namesChanged, CollectionTools.list(this.aa1.listIterator())); - } - - public void testListChange() { - assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator())); - assertNull(this.event1); - - this.subject1.addTwoNames("jam", "jaz"); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - List namesPlus2 = this.subject1Names(); - namesPlus2.add(0, "jaz"); - namesPlus2.add(0, "jam"); - assertEquals(namesPlus2, CollectionTools.list(this.aa1.listIterator())); - } - - public void testIterator() { - assertEquals(this.subject1Names(), CollectionTools.list(this.subject1.names())); - assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator())); - } - - public void testGet() { - assertEquals(this.subject1Names().get(0), this.subject1.getName(0)); - assertEquals(this.subject1Names().get(0), this.aa1.get(0)); - } - - public void testSize() { - assertEquals(this.subject1Names().size(), CollectionTools.size(this.subject1.names())); - assertEquals(this.subject1Names().size(), CollectionTools.size(this.aa1.listIterator())); - } - - public void testHasListeners() { - assertTrue(this.aa1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.subject1.hasAnyListChangeListeners(TestSubject.NAMES_LIST)); - this.aa1.removeListChangeListener(ListValueModel.LIST_VALUES, this.listener1); - assertFalse(this.subject1.hasAnyListChangeListeners(TestSubject.NAMES_LIST)); - assertFalse(this.aa1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - ChangeListener listener2 = new ChangeAdapter(); - this.aa1.addChangeListener(listener2); - assertTrue(this.aa1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.subject1.hasAnyListChangeListeners(TestSubject.NAMES_LIST)); - this.aa1.removeChangeListener(listener2); - assertFalse(this.subject1.hasAnyListChangeListeners(TestSubject.NAMES_LIST)); - assertFalse(this.aa1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - - // ********** inner class ********** - - class TestSubject extends AbstractModel { - private List names; - public static final String NAMES_LIST = "names"; - private List descriptions; - public static final String DESCRIPTIONS_LIST = "descriptions"; - - public TestSubject() { - this.names = new ArrayList(); - this.descriptions = new ArrayList(); - } - public ListIterator names() { - return new ReadOnlyListIterator(this.names); - } - public String getName(int index) { - return this.names.get(index); - } - public void addName(int index, String name) { - this.names.add(index, name); - this.fireItemAdded(NAMES_LIST, index, name); - } - public void addName(String name) { - this.addName(this.names.size(), name); - } - public void addNames(ListIterator newNames) { - while (newNames.hasNext()) { - this.addName(newNames.next()); - } - } - public void addNames(List newNames) { - this.addNames(newNames.listIterator()); - } - public void addTwoNames(String name1, String name2) { - this.names.add(0, name2); - this.names.add(0, name1); - this.fireListChanged(NAMES_LIST, this.names); - } - public String removeName(int index) { - String removedName = this.names.remove(index); - this.fireItemRemoved(NAMES_LIST, index, removedName); - return removedName; - } - public String setName(int index, String name) { - String replacedName = this.names.set(index, name); - this.fireItemReplaced(NAMES_LIST, index, name, replacedName); - return replacedName; - } - public ListIterator descriptions() { - return new ReadOnlyListIterator(this.descriptions); - } - public String getDescription(int index) { - return this.descriptions.get(index); - } - public void addDescription(int index, String description) { - this.descriptions.add(index, description); - this.fireItemAdded(DESCRIPTIONS_LIST, index, description); - } - public void addDescription(String description) { - this.addDescription(this.descriptions.size(), description); - } - public void addDescriptions(ListIterator newDescriptions) { - while (newDescriptions.hasNext()) { - this.addDescription(newDescriptions.next()); - } - } - public void addDescriptions(List newDescriptions) { - this.addDescriptions(newDescriptions.listIterator()); - } - public String removeDescription(int index) { - String removedDescription = this.descriptions.remove(index); - this.fireItemRemoved(DESCRIPTIONS_LIST, index, removedDescription); - return removedDescription; - } - public String setDescription(int index, String description) { - String replacedDescription = this.descriptions.set(index, description); - this.fireItemReplaced(DESCRIPTIONS_LIST, index, description, replacedDescription); - return replacedDescription; - } - } - - - // this is not a typical aspect adapter - the value is determined by the aspect name - class LocalListAspectAdapter extends ListAspectAdapter { - - LocalListAspectAdapter(PropertyValueModel subjectHolder) { - super(subjectHolder, TestSubject.NAMES_LIST); - } - - @Override - protected ListIterator listIterator_() { - if (this.listNames[0] == TestSubject.NAMES_LIST) { - return this.subject.names(); - } else if (this.listNames[0] == TestSubject.DESCRIPTIONS_LIST) { - return this.subject.descriptions(); - } else { - throw new IllegalStateException("invalid aspect name: " + this.listNames[0]); - } - } - - public void add(int index, Object item) { - if (this.listNames[0] == TestSubject.NAMES_LIST) { - this.subject.addName(index, (String) item); - } else if (this.listNames[0] == TestSubject.DESCRIPTIONS_LIST) { - this.subject.addDescription(index, (String) item); - } else { - throw new IllegalStateException("invalid aspect name: " + this.listNames[0]); - } - } - - public void addAll(int index, List items) { - for (int i = 0; i < items.size(); i++) { - this.add(index + i, items.get(i)); - } - } - - public String remove(int index) { - if (this.listNames[0] == TestSubject.NAMES_LIST) { - return this.subject.removeName(index); - } else if (this.listNames[0] == TestSubject.DESCRIPTIONS_LIST) { - return this.subject.removeDescription(index); - } else { - throw new IllegalStateException("invalid aspect name: " + this.listNames[0]); - } - } - - public List remove(int index, int length) { - List removedItems = new ArrayList(length); - for (int i = 0; i < length; i++) { - removedItems.add(this.remove(index)); - } - return removedItems; - } - - public Object replace(int index, Object item) { - if (this.listNames[0] == TestSubject.NAMES_LIST) { - return this.subject.setName(index, (String) item); - } else if (this.listNames[0] == TestSubject.DESCRIPTIONS_LIST) { - return this.subject.setDescription(index, (String) item); - } else { - throw new IllegalStateException("invalid aspect name: " + this.listNames[0]); - } - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListCollectionValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListCollectionValueModelAdapterTests.java deleted file mode 100644 index c499ad37ab..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListCollectionValueModelAdapterTests.java +++ /dev/null @@ -1,282 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import javax.swing.JList; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListCollectionValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListModelAdapter; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ListCollectionValueModelAdapterTests extends TestCase { - CollectionValueModel adapter; - private SimpleListValueModel wrappedListHolder; - private List wrappedList; - - public ListCollectionValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.wrappedList = new ArrayList(); - this.wrappedListHolder = new SimpleListValueModel(this.wrappedList); - this.adapter = new ListCollectionValueModelAdapter(this.wrappedListHolder); - } - - private Collection wrappedCollection() { - return CollectionTools.collection(this.wrappedList.iterator()); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) { - // override failure - } - }); - this.wrappedListHolder.add(0, "foo"); - this.wrappedListHolder.add(1, "bar"); - this.wrappedListHolder.add(2, "baz"); - Collection adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(3, adapterCollection.size()); - assertEquals(this.wrappedCollection(), adapterCollection); - } - - public void testStaleValues() { - CollectionChangeListener listener = new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) {/* OK */} - }; - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, listener); - this.wrappedListHolder.add(0, "foo"); - this.wrappedListHolder.add(1, "bar"); - this.wrappedListHolder.add(2, "baz"); - Collection adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(3, adapterCollection.size()); - assertEquals(this.wrappedCollection(), adapterCollection); - - this.adapter.removeCollectionChangeListener(CollectionValueModel.VALUES, listener); - adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(0, adapterCollection.size()); - assertEquals(new HashBag(), adapterCollection); - - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, listener); - adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(3, adapterCollection.size()); - assertEquals(this.wrappedCollection(), adapterCollection); - } - - public void testAdd() { - Bag synchCollection = new CoordinatedBag(this.adapter); - List synchList = new CoordinatedList(this.wrappedListHolder); - this.wrappedListHolder.add(0, "foo"); - assertTrue(this.wrappedList.contains("foo")); - this.wrappedListHolder.add(1, "bar"); - this.wrappedListHolder.add(2, "baz"); - this.wrappedListHolder.add(3, "joo"); - this.wrappedListHolder.add(4, "jar"); - this.wrappedListHolder.add(5, "jaz"); - assertEquals(6, this.wrappedList.size()); - - Collection adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(this.wrappedCollection(), adapterCollection); - assertEquals(this.wrappedCollection(), CollectionTools.collection(synchList.iterator())); - assertEquals(this.wrappedCollection(), synchCollection); - } - - public void testRemove() { - Bag synchCollection = new CoordinatedBag(this.adapter); - List synchList = new CoordinatedList(this.wrappedListHolder); - this.wrappedListHolder.add(0, "foo"); - this.wrappedListHolder.add(1, "bar"); - this.wrappedListHolder.add(2, "baz"); - this.wrappedListHolder.add(3, "joo"); - this.wrappedListHolder.add(4, "jar"); - this.wrappedListHolder.add(5, "jaz"); - assertEquals("jaz", this.wrappedListHolder.remove(5)); - assertFalse(this.wrappedList.contains("jaz")); - assertEquals("foo", this.wrappedListHolder.remove(0)); - assertFalse(this.wrappedList.contains("foo")); - assertEquals(4, this.wrappedList.size()); - - Collection adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(this.wrappedCollection(), adapterCollection); - assertEquals(this.wrappedCollection(), CollectionTools.collection(synchList.iterator())); - assertEquals(this.wrappedCollection(), synchCollection); - } - - public void testListSynch() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) { - // override failure - } - @Override - public void itemsRemoved(CollectionRemoveEvent e) { - // override failure - } - }); - this.wrappedListHolder.add(0, "foo"); - this.wrappedListHolder.add(1, "bar"); - this.wrappedListHolder.add(2, "baz"); - this.wrappedListHolder.add(3, "joo"); - this.wrappedListHolder.add(4, "jar"); - this.wrappedListHolder.add(5, "jaz"); - this.wrappedListHolder.remove(5); - assertFalse(this.wrappedList.contains("jaz")); - this.wrappedListHolder.remove(0); - assertFalse(this.wrappedList.contains("foo")); - assertEquals(4, this.wrappedList.size()); - - Collection adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(this.wrappedCollection(), adapterCollection); - } - - public void testReplace() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) { - // override failure - } - @Override - public void itemsRemoved(CollectionRemoveEvent e) { - // override failure - } - }); - this.wrappedListHolder.add(0, "foo"); - this.wrappedListHolder.add(1, "bar"); - this.wrappedListHolder.add(2, "baz"); - Collection adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(3, adapterCollection.size()); - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsRemoved(CollectionRemoveEvent e) { - assertEquals("foo", e.getItems().iterator().next()); - assertFalse(CollectionTools.contains(ListCollectionValueModelAdapterTests.this.adapter.iterator(), "joo")); - assertEquals(2, ListCollectionValueModelAdapterTests.this.adapter.size()); - } - @Override - public void itemsAdded(CollectionAddEvent e) { - assertEquals("joo", e.getItems().iterator().next()); - assertEquals(3, ListCollectionValueModelAdapterTests.this.adapter.size()); - } - }); - this.wrappedListHolder.set(0, "joo"); - adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(3, adapterCollection.size()); - assertEquals(this.wrappedCollection(), adapterCollection); - } - - public void testHasListeners() { - assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - CoordinatedBag synchCollection = new CoordinatedBag(this.adapter); - assertTrue(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - this.adapter.removeCollectionChangeListener(CollectionValueModel.VALUES, synchCollection); - assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - - ChangeListener cl = new ChangeAdapter(); - this.adapter.addChangeListener(cl); - assertTrue(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - this.adapter.removeChangeListener(cl); - assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - } - - public void testListChangedToEmpty() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) {/* OK */} - @Override - public void collectionCleared(CollectionClearEvent e) {/* OK */} - }); - this.wrappedListHolder.add(0, "foo"); - this.wrappedListHolder.add(1, "bar"); - this.wrappedListHolder.add(2, "baz"); - JList jList = new JList(new ListModelAdapter(this.adapter)); - this.wrappedListHolder.setListValues(new ArrayList()); - assertEquals(0, jList.getModel().getSize()); - } - - public void testCollectionChangedFromEmpty() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) {/* OK */} - @Override - public void itemsRemoved(CollectionRemoveEvent e) {/* OK */} - }); - JList jList = new JList(new ListModelAdapter(this.adapter)); - - ArrayList list = new ArrayList(); - list.add("foo"); - list.add("bar"); - this.wrappedListHolder.setListValues(list); - assertEquals(2, jList.getModel().getSize()); - } - - public void testCollectionChangedFromEmptyToEmpty() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) {/* OK */} - @Override - public void itemsRemoved(CollectionRemoveEvent e) {/* OK */} - }); - JList jList = new JList(new ListModelAdapter(this.adapter)); - - ArrayList list = new ArrayList(); - this.wrappedListHolder.setListValues(list); - assertEquals(0, jList.getModel().getSize()); - } - - - // ********** inner class ********** - - class TestListener implements CollectionChangeListener { - public void itemsAdded(CollectionAddEvent e) { - fail("unexpected event"); - } - public void itemsRemoved(CollectionRemoveEvent e) { - fail("unexpected event"); - } - public void collectionCleared(CollectionClearEvent e) { - fail("unexpected event"); - } - public void collectionChanged(CollectionChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListCuratorTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListCuratorTests.java deleted file mode 100644 index 8aa2573750..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ListCuratorTests.java +++ /dev/null @@ -1,348 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListCurator; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public final class ListCuratorTests - extends TestCase -{ - private TestSubject subject1; - private WritablePropertyValueModel subjectHolder1; - - private ListCurator curator; - private ListChangeListener listener1; - private ListEvent event1; - - private TestSubject subject2; - - public ListCuratorTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.subject1 = new TestSubject(this.subject1Names()); - this.subjectHolder1 = new SimplePropertyValueModel(this.subject1); - this.curator = this.buildListCurator(this.subjectHolder1); - this.listener1 = this.buildListChangeListener1(); - this.curator.addListChangeListener(ListValueModel.LIST_VALUES, this.listener1); - this.event1 = null; - - this.subject2 = new TestSubject(this.subject2Names()); - } - - private List subject1Names() { - ArrayList list = new ArrayList(); - list.add("alpha"); - list.add("bravo"); - list.add("charlie"); - list.add("delta"); - return list; - } - - private List subject2Names() { - ArrayList list = new ArrayList(); - list.add("echo"); - list.add("foxtrot"); - list.add("glove"); - list.add("hotel"); - return list; - } - - private ListCurator buildListCurator(PropertyValueModel subjectHolder) { - return new ListCurator(subjectHolder) { - @Override - public Iterator iteratorForRecord() { - return this.subject.strings(); - } - }; - } - - private ListChangeListener buildListChangeListener1() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent e) { - ListCuratorTests.this.value1Changed(e); - } - public void itemsRemoved(ListRemoveEvent e) { - ListCuratorTests.this.value1Changed(e); - } - public void itemsReplaced(ListReplaceEvent e) { - ListCuratorTests.this.value1Changed(e); - } - public void itemsMoved(ListMoveEvent e) { - ListCuratorTests.this.value1Changed(e); - } - public void listCleared(ListClearEvent e) { - ListCuratorTests.this.value1Changed(e); - } - public void listChanged(ListChangeEvent e) { - ListCuratorTests.this.value1Changed(e); - } - }; - } - - void value1Changed(ListEvent e) { - this.event1 = e; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSubjectHolder() { - assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator())); - assertNull(this.event1); - - this.subjectHolder1.setValue(this.subject2); - assertNotNull(this.event1); - assertEquals(this.curator, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(this.subject2Names(), CollectionTools.list(this.curator.listIterator())); - - this.event1 = null; - this.subjectHolder1.setValue(null); - assertNotNull(this.event1); - assertEquals(this.curator, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertFalse(this.curator.iterator().hasNext()); - - this.event1 = null; - this.subjectHolder1.setValue(this.subject1); - assertNotNull(this.event1); - assertEquals(this.curator, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator())); - } - - public void testAdd() { - assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator())); - assertNull(this.event1); - - this.subject1.addString("echo"); - assertNotNull(this.event1); - assertEquals(this.curator, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(this.subject1Names().size(), ((ListAddEvent) this.event1).getIndex()); - assertEquals("echo", ((ListAddEvent) this.event1).getItems().iterator().next()); - List stringsPlus = this.subject1Names(); - stringsPlus.add("echo"); - assertEquals(stringsPlus, CollectionTools.list(this.curator.listIterator())); - - this.event1 = null; - this.subject1.addString(0, "zulu"); - assertNotNull(this.event1); - assertEquals(this.curator, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(0, ((ListAddEvent) this.event1).getIndex()); - assertEquals("zulu", ((ListAddEvent) this.event1).getItems().iterator().next()); - stringsPlus.add(0, "zulu"); - assertEquals(stringsPlus, CollectionTools.list(this.curator.listIterator())); - } - - public void testRemove() { - assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator())); - assertNull(this.event1); - - String removedString = this.subject1.removeString(0); // should be "alpha" - assertNotNull(this.event1); - assertEquals(this.curator, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(0, ((ListRemoveEvent) this.event1).getIndex()); - assertEquals(removedString, ((ListRemoveEvent) this.event1).getItems().iterator().next()); - List stringsMinus = this.subject1Names(); - stringsMinus.remove(0); - assertEquals(stringsMinus, CollectionTools.list(this.curator.listIterator())); - - removedString = this.subject1.removeString(2); // should be "delta" - assertNotNull(this.event1); - assertEquals(this.curator, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(2, ((ListRemoveEvent) this.event1).getIndex()); - assertEquals(removedString, ((ListRemoveEvent) this.event1).getItems().iterator().next()); - stringsMinus.remove(2); - assertEquals(stringsMinus, CollectionTools.list(this.curator.listIterator())); - } - - public void testCompleteListChange() { - assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator())); - assertNull(this.event1); - - this.subject1.setStrings(this.subject2Names()); - assertNotNull(this.event1); - assertEquals(this.curator, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - List newStrings = this.subject2Names(); - assertEquals(newStrings, CollectionTools.list(this.curator.listIterator())); - } - - public void testPartialListChange() { - List startingList = CollectionTools.list(this.curator.listIterator()); - assertEquals(this.subject1Names(), startingList); - assertNull(this.event1); - - String identicalString = startingList.get(1); // should be "bravo" - String nonidenticalString = startingList.get(0); // should be "alpha" - List newStrings = CollectionTools.list(new String[] {new String("bravo"), new String("alpha"), "echo", "delta", "foxtrot"}); - this.subject1.setStrings(newStrings); - - List finalList = CollectionTools.list(this.curator.listIterator()); - assertNotNull(this.event1); - assertEquals(this.curator, this.event1.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName()); - assertEquals(newStrings, finalList); - assertTrue(identicalString == finalList.get(0)); - assertTrue(nonidenticalString != finalList.get(1)); - } - - public void testIterator() { - assertEquals(this.subject1Names(), CollectionTools.list(this.subject1.strings())); - assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator())); - } - - public void testGet() { - assertEquals(this.subject1Names().get(0), this.subject1.getString(0)); - assertEquals(this.subject1Names().get(0), this.curator.get(0)); - } - - public void testSize() { - assertEquals(this.subject1Names().size(), CollectionTools.size(this.subject1.strings())); - assertEquals(this.subject1Names().size(), CollectionTools.size(this.curator.listIterator())); - assertEquals(this.subject1Names().size(), this.curator.size()); - } - - public void testHasListeners() { - assertTrue(this.curator.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.subject1.hasAnyStateChangeListeners()); - this.curator.removeListChangeListener(ListValueModel.LIST_VALUES, this.listener1); - assertFalse(this.subject1.hasAnyStateChangeListeners()); - assertFalse(this.curator.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - ChangeListener listener2 = this.buildChangeListener(); - this.curator.addChangeListener(listener2); - assertTrue(this.curator.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(this.subject1.hasAnyStateChangeListeners()); - this.curator.removeChangeListener(listener2); - assertFalse(this.subject1.hasAnyStateChangeListeners()); - assertFalse(this.curator.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private ChangeListener buildChangeListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(ListAddEvent e) { - ListCuratorTests.this.value1Changed(e); - } - @Override - public void itemsRemoved(ListRemoveEvent e) { - ListCuratorTests.this.value1Changed(e); - } - @Override - public void itemsReplaced(ListReplaceEvent e) { - ListCuratorTests.this.value1Changed(e); - } - @Override - public void itemsMoved(ListMoveEvent e) { - ListCuratorTests.this.value1Changed(e); - } - @Override - public void listCleared(ListClearEvent e) { - ListCuratorTests.this.value1Changed(e); - } - @Override - public void listChanged(ListChangeEvent e) { - ListCuratorTests.this.value1Changed(e); - } - }; - } - - - // **************** Inner Class ******************************************* - - class TestSubject extends AbstractModel { - private List strings; - - public TestSubject() { - this.strings = new ArrayList(); - } - - public TestSubject(List strings) { - this(); - this.setStrings(strings); - } - - public String getString(int index) { - return this.strings.get(index); - } - - public ListIterator strings() { - return new ReadOnlyListIterator(this.strings); - } - - public void addString(int index, String string) { - this.strings.add(index, string); - this.fireStateChanged(); - } - - public void addString(String string) { - this.addString(this.strings.size(), string); - } - - public String removeString(int index) { - String string = this.strings.get(index); - this.removeString(string); - return string; - } - - public void removeString(String string) { - this.strings.remove(string); - this.fireStateChanged(); - } - - public void setStrings(List strings) { - this.strings = new ArrayList(strings); - this.fireStateChanged(); - } - - public void setStrings(String[] strings) { - this.strings = CollectionTools.list(strings); - this.fireStateChanged(); - } - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullCollectionValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullCollectionValueModelTests.java deleted file mode 100644 index 786bd931eb..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullCollectionValueModelTests.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.model.value.NullCollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -public class NullCollectionValueModelTests extends TestCase { - private CollectionValueModel collectionHolder; - - public NullCollectionValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.collectionHolder = new NullCollectionValueModel(); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSize() { - assertEquals(0, this.collectionHolder.size()); - } - - public void testIterator() { - assertFalse(this.collectionHolder.iterator().hasNext()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullListValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullListValueModelTests.java deleted file mode 100644 index 63ba4ac5cf..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullListValueModelTests.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.model.value.NullListValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -public class NullListValueModelTests extends TestCase { - private ListValueModel listHolder; - - public NullListValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.listHolder = new NullListValueModel(); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testGet() { - boolean exCaught = false; - try { - this.listHolder.get(0); - } catch (IndexOutOfBoundsException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testSize() { - assertEquals(0, this.listHolder.size()); - } - - public void testIterator() { - assertFalse(this.listHolder.iterator().hasNext()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullPropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullPropertyValueModelTests.java deleted file mode 100644 index eaf6422b9b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/NullPropertyValueModelTests.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.model.value.NullPropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -public class NullPropertyValueModelTests extends TestCase { - private PropertyValueModel valueHolder; - - public NullPropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.valueHolder = new NullPropertyValueModel(); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testValue() { - assertNull(this.valueHolder.getValue()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyAspectAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyAspectAdapterTests.java deleted file mode 100644 index a9a4ec6c28..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyAspectAdapterTests.java +++ /dev/null @@ -1,344 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class PropertyAspectAdapterTests extends TestCase { - private TestSubject subject1; - private WritablePropertyValueModel subjectHolder1; - private PropertyAspectAdapter aa1; - private PropertyChangeEvent event1; - private PropertyChangeListener listener1; - - private TestSubject subject2; - - private PropertyChangeEvent multipleValueEvent; - - private PropertyChangeEvent customValueEvent; - - - public PropertyAspectAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.subject1 = new TestSubject("foo", "test subject 1"); - this.subjectHolder1 = new SimplePropertyValueModel (this.subject1); - this.aa1 = this.buildAspectAdapter(this.subjectHolder1); - this.listener1 = this.buildValueChangeListener1(); - this.aa1.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener1); - this.event1 = null; - - this.subject2 = new TestSubject("bar", "test subject 2"); - } - - private PropertyAspectAdapter buildAspectAdapter(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestSubject.NAME_PROPERTY) { - // this is not a aspect adapter - the value is determined by the aspect name - @Override - protected String buildValue_() { - if (this.propertyNames[0] == TestSubject.NAME_PROPERTY) { - return this.subject.getName(); - } else if (this.propertyNames[0] == TestSubject.DESCRIPTION_PROPERTY) { - return this.subject.getDescription(); - } else { - throw new IllegalStateException("invalid aspect name: " + this.propertyNames[0]); - } - } - @Override - protected void setValue_(String value) { - if (this.propertyNames[0] == TestSubject.NAME_PROPERTY) { - this.subject.setName(value); - } else if (this.propertyNames[0] == TestSubject.DESCRIPTION_PROPERTY) { - this.subject.setDescription(value); - } else { - throw new IllegalStateException("invalid aspect name: " + this.propertyNames[0]); - } - } - }; - } - - private ChangeListener buildValueChangeListener1() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - PropertyAspectAdapterTests.this.value1Changed(e); - } - }; - } - - void value1Changed(PropertyChangeEvent e) { - this.event1 = e; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSubjectHolder() { - assertEquals("foo", this.aa1.getValue()); - assertNull(this.event1); - - this.subjectHolder1.setValue(this.subject2); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName()); - assertEquals("foo", this.event1.getOldValue()); - assertEquals("bar", this.event1.getNewValue()); - assertEquals("bar", this.aa1.getValue()); - - this.event1 = null; - this.subjectHolder1.setValue(null); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName()); - assertEquals("bar", this.event1.getOldValue()); - assertNull(this.event1.getNewValue()); - assertNull(this.aa1.getValue()); - - this.event1 = null; - this.subjectHolder1.setValue(this.subject1); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName()); - assertEquals(null, this.event1.getOldValue()); - assertEquals("foo", this.event1.getNewValue()); - assertEquals("foo", this.aa1.getValue()); - } - - public void testPropertyChange() { - assertEquals("foo", this.aa1.getValue()); - assertNull(this.event1); - - this.subject1.setName("baz"); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName()); - assertEquals("foo", this.event1.getOldValue()); - assertEquals("baz", this.event1.getNewValue()); - assertEquals("baz", this.aa1.getValue()); - - this.event1 = null; - this.subject1.setName(null); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName()); - assertEquals("baz", this.event1.getOldValue()); - assertEquals(null, this.event1.getNewValue()); - assertEquals(null, this.aa1.getValue()); - - this.event1 = null; - this.subject1.setName("foo"); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName()); - assertEquals(null, this.event1.getOldValue()); - assertEquals("foo", this.event1.getNewValue()); - assertEquals("foo", this.aa1.getValue()); - } - - public void testValue() { - assertEquals("foo", this.subject1.getName()); - assertEquals("foo", this.aa1.getValue()); - } - - public void testStaleValue() { - assertEquals("foo", this.subject1.getName()); - assertEquals("foo", this.aa1.getValue()); - - this.aa1.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener1); - assertEquals(null, this.aa1.getValue()); - - this.aa1.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener1); - assertEquals("foo", this.aa1.getValue()); - - this.aa1.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener1); - this.subjectHolder1.setValue(this.subject2); - assertEquals(null, this.aa1.getValue()); - - this.aa1.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener1); - assertEquals("bar", this.aa1.getValue()); - } - - public void testSetValue() { - this.aa1.setValue("baz"); - assertEquals("baz", this.aa1.getValue()); - assertEquals("baz", this.subject1.getName()); - } - - public void testHasListeners() { - assertTrue(this.aa1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(this.subject1.hasAnyPropertyChangeListeners(TestSubject.NAME_PROPERTY)); - this.aa1.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener1); - assertFalse(this.subject1.hasAnyPropertyChangeListeners(TestSubject.NAME_PROPERTY)); - assertFalse(this.aa1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - ChangeListener listener2 = this.buildValueChangeListener1(); - this.aa1.addChangeListener(listener2); - assertTrue(this.aa1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(this.subject1.hasAnyPropertyChangeListeners(TestSubject.NAME_PROPERTY)); - this.aa1.removeChangeListener(listener2); - assertFalse(this.subject1.hasAnyPropertyChangeListeners(TestSubject.NAME_PROPERTY)); - assertFalse(this.aa1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testMultipleAspectAdapter() { - TestSubject testSubject = new TestSubject("fred", "husband"); - WritablePropertyValueModel testSubjectHolder = new SimplePropertyValueModel(testSubject); - WritablePropertyValueModel testAA = this.buildMultipleAspectAdapter(testSubjectHolder); - PropertyChangeListener testListener = this.buildMultipleValueChangeListener(); - testAA.addPropertyChangeListener(PropertyValueModel.VALUE, testListener); - assertEquals("fred:husband", testAA.getValue()); - - this.multipleValueEvent = null; - testSubject.setName("wilma"); - assertEquals("wilma:husband", testAA.getValue()); - assertEquals("fred:husband", this.multipleValueEvent.getOldValue()); - assertEquals("wilma:husband", this.multipleValueEvent.getNewValue()); - - this.multipleValueEvent = null; - testSubject.setDescription("wife"); - assertEquals("wilma:wife", testAA.getValue()); - assertEquals("wilma:husband", this.multipleValueEvent.getOldValue()); - assertEquals("wilma:wife", this.multipleValueEvent.getNewValue()); - } - - private WritablePropertyValueModel buildMultipleAspectAdapter(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestSubject.NAME_PROPERTY, TestSubject.DESCRIPTION_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.getName() + ":" + this.subject.getDescription(); - } - }; - } - - private PropertyChangeListener buildMultipleValueChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - PropertyAspectAdapterTests.this.multipleValueChanged(e); - } - }; - } - - void multipleValueChanged(PropertyChangeEvent e) { - this.multipleValueEvent = e; - } - - /** - * test a bug where we would call #buildValue() in - * #engageNonNullSubject(), when we needed to call - * it in #engageSubject(), so the cached value would - * be rebuilt when the this.subject was set to null - */ - public void testCustomBuildValueWithNullSubject() { - TestSubject customSubject = new TestSubject("fred", "laborer"); - WritablePropertyValueModel customSubjectHolder = new SimplePropertyValueModel(customSubject); - WritablePropertyValueModel customAA = this.buildCustomAspectAdapter(customSubjectHolder); - PropertyChangeListener customListener = this.buildCustomValueChangeListener(); - customAA.addPropertyChangeListener(PropertyValueModel.VALUE, customListener); - assertEquals("fred", customAA.getValue()); - - this.customValueEvent = null; - customSubject.setName("wilma"); - assertEquals("wilma", customAA.getValue()); - assertEquals("fred", this.customValueEvent.getOldValue()); - assertEquals("wilma", this.customValueEvent.getNewValue()); - - this.customValueEvent = null; - customSubjectHolder.setValue(null); - // this would fail - the value would be null... - assertEquals("", customAA.getValue()); - assertEquals("wilma", this.customValueEvent.getOldValue()); - assertEquals("", this.customValueEvent.getNewValue()); - } - - /** - * Test a bug: - * If two listeners were added to an aspect adapter, one with an - * aspect name and one without, the aspect adapter would add its - * 'subjectChangeListener' to its 'subjectHolder' twice. As a result, - * the following code will trigger an IllegalArgumentException - * if the bug is present; otherwise, it completes silently. - */ - public void testDuplicateListener() { - ChangeListener listener2 = new ChangeAdapter(); - this.aa1.addChangeListener(listener2); - } - - private WritablePropertyValueModel buildCustomAspectAdapter(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestSubject.NAME_PROPERTY) { - @Override - protected String buildValue() { - return (this.subject == null) ? "" : this.subject.getName(); - } - }; - } - - private PropertyChangeListener buildCustomValueChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - PropertyAspectAdapterTests.this.customValueChanged(e); - } - }; - } - - void customValueChanged(PropertyChangeEvent e) { - this.customValueEvent = e; - } - - - // ********** test model ********** - - private static class TestSubject extends AbstractModel { - private String name; - public static final String NAME_PROPERTY = "name"; - private String description; - public static final String DESCRIPTION_PROPERTY = "description"; - - public TestSubject(String name, String description) { - this.name = name; - this.description = description; - } - public String getName() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - public String getDescription() { - return this.description; - } - public void setDescription(String description) { - Object old = this.description; - this.description = description; - this.firePropertyChanged(DESCRIPTION_PROPERTY, old, description); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyCollectionValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyCollectionValueModelAdapterTests.java deleted file mode 100644 index 1ef4cddd88..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyCollectionValueModelAdapterTests.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Collection; - -import javax.swing.JList; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyCollectionValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListModelAdapter; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class PropertyCollectionValueModelAdapterTests extends TestCase { - private CollectionValueModel adapter; - private WritablePropertyValueModel wrappedValueHolder; - - public PropertyCollectionValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.wrappedValueHolder = new SimplePropertyValueModel(); - this.adapter = new PropertyCollectionValueModelAdapter(this.wrappedValueHolder); - } - - private Collection wrappedCollection() { - return CollectionTools.collection(new SingleElementIterator(this.wrappedValueHolder.getValue())); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) {/* OK */} - }); - this.wrappedValueHolder.setValue("foo"); - Collection adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(1, adapterCollection.size()); - assertEquals(this.wrappedCollection(), adapterCollection); - assertEquals("foo", adapterCollection.iterator().next()); - } - - public void testStaleValue() { - CollectionChangeListener listener = new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) {/* OK */} - }; - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, listener); - this.wrappedValueHolder.setValue("foo"); - Collection adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(1, adapterCollection.size()); - assertEquals(this.wrappedCollection(), adapterCollection); - assertEquals("foo", adapterCollection.iterator().next()); - - this.adapter.removeCollectionChangeListener(CollectionValueModel.VALUES, listener); - adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(0, adapterCollection.size()); - assertEquals(new HashBag(), adapterCollection); - - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, listener); - adapterCollection = CollectionTools.collection(this.adapter.iterator()); - assertEquals(1, adapterCollection.size()); - assertEquals(this.wrappedCollection(), adapterCollection); - assertEquals("foo", adapterCollection.iterator().next()); - } - - public void testHasListeners() { - assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - CoordinatedBag synchCollection = new CoordinatedBag(this.adapter); - assertTrue(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - this.adapter.removeCollectionChangeListener(CollectionValueModel.VALUES, synchCollection); - assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - - ChangeListener cl = new ChangeAdapter(); - this.adapter.addChangeListener(cl); - assertTrue(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - this.adapter.removeChangeListener(cl); - assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - } - - public void testListChangedToEmpty() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) {/* OK */} - @Override - public void itemsRemoved(CollectionRemoveEvent e) {/* OK */} - }); - this.wrappedValueHolder.setValue("foo"); - JList jList = new JList(new ListModelAdapter(this.adapter)); - this.wrappedValueHolder.setValue(null); - assertEquals(0, jList.getModel().getSize()); - } - - public void testCollectionChangedFromEmpty() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() { - @Override - public void itemsAdded(CollectionAddEvent e) {/* OK */} - }); - JList jList = new JList(new ListModelAdapter(this.adapter)); - - this.wrappedValueHolder.setValue("foo"); - assertEquals(1, jList.getModel().getSize()); - } - - public void testCollectionChangedFromEmptyToEmpty() { - this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener()); - JList jList = new JList(new ListModelAdapter(this.adapter)); - - this.wrappedValueHolder.setValue(null); - assertEquals(0, jList.getModel().getSize()); - } - - - // ********** member class ********** - - static class TestListener implements CollectionChangeListener { - public void collectionChanged(CollectionChangeEvent event) { - fail("unexpected event"); - } - public void collectionCleared(CollectionClearEvent event) { - fail("unexpected event"); - } - public void itemsAdded(CollectionAddEvent event) { - fail("unexpected event"); - } - public void itemsRemoved(CollectionRemoveEvent event) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyListValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyListValueModelAdapterTests.java deleted file mode 100644 index 180cfe55dc..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/PropertyListValueModelAdapterTests.java +++ /dev/null @@ -1,211 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import javax.swing.JList; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.SingleElementIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListModelAdapter; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class PropertyListValueModelAdapterTests extends TestCase { - private ListValueModel adapter; - private WritablePropertyValueModel wrappedValueHolder; - - public PropertyListValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.wrappedValueHolder = new SimplePropertyValueModel(); - this.adapter = new PropertyListValueModelAdapter(this.wrappedValueHolder); - } - - private Collection wrappedList() { - return CollectionTools.list(new SingleElementIterator(this.wrappedValueHolder.getValue())); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() { - @Override - public void itemsAdded(ListAddEvent event) {/* OK */} - }); - assertFalse(this.adapter.iterator().hasNext()); - this.wrappedValueHolder.setValue("foo"); - List adapterList = CollectionTools.list(this.adapter.iterator()); - assertEquals(1, adapterList.size()); - assertEquals(this.wrappedList(), adapterList); - assertEquals("foo", adapterList.iterator().next()); - } - - public void testGetInt() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() { - @Override - public void itemsAdded(ListAddEvent event) {/* OK */} - }); - this.wrappedValueHolder.setValue("foo"); - assertEquals("foo", this.adapter.get(0)); - } - - public void testToArray1() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() { - @Override - public void itemsAdded(ListAddEvent event) {/* OK */} - }); - this.wrappedValueHolder.setValue("foo"); - Object[] array = this.adapter.toArray(); - assertEquals("foo", array[0]); - assertEquals(1, array.length); - } - - public void testToArray2() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener()); - Object[] array = this.adapter.toArray(); - assertEquals(0, array.length); - } - - public void testStaleValue() { - ListChangeListener listener = new TestListener() { - @Override - public void itemsAdded(ListAddEvent event) {/* OK */} - }; - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, listener); - this.wrappedValueHolder.setValue("foo"); - List adapterList = CollectionTools.list(this.adapter.iterator()); - assertEquals(1, adapterList.size()); - assertEquals(this.wrappedList(), adapterList); - assertEquals("foo", adapterList.iterator().next()); - - this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, listener); - adapterList = CollectionTools.list(this.adapter.iterator()); - assertEquals(0, adapterList.size()); - assertEquals(new ArrayList(), adapterList); - - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, listener); - adapterList = CollectionTools.list(this.adapter.iterator()); - assertEquals(1, adapterList.size()); - assertEquals(this.wrappedList(), adapterList); - assertEquals("foo", adapterList.iterator().next()); - } - - public void testHasListeners() { - assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - CoordinatedList synchList = new CoordinatedList(this.adapter); - assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, synchList); - assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - ChangeListener cl = new ChangeAdapter(); - this.adapter.addChangeListener(cl); - assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.adapter.removeChangeListener(cl); - assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - public void testListChangedToEmpty() { - this.wrappedValueHolder.setValue("foo"); - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() { - @Override - public void itemsRemoved(ListRemoveEvent event) {/* OK */} - }); - JList jList = new JList(new ListModelAdapter(this.adapter)); - this.wrappedValueHolder.setValue(null); - assertEquals(0, jList.getModel().getSize()); - } - - public void testListChangedFromEmpty() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() { - @Override - public void itemsAdded(ListAddEvent event) {/* OK */} - }); - JList jList = new JList(new ListModelAdapter(this.adapter)); - - this.wrappedValueHolder.setValue("foo"); - assertEquals(1, jList.getModel().getSize()); - } - - public void testListItemChanged() { - this.wrappedValueHolder.setValue("foo"); - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() { - @Override - public void itemsReplaced(ListReplaceEvent event) {/* OK */} - }); - JList jList = new JList(new ListModelAdapter(this.adapter)); - assertEquals(1, jList.getModel().getSize()); - assertEquals("foo", jList.getModel().getElementAt(0)); - - this.wrappedValueHolder.setValue("bar"); - assertEquals(1, jList.getModel().getSize()); - assertEquals("bar", jList.getModel().getElementAt(0)); - } - - public void testListChangedFromEmptyToEmpty() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener()); - JList jList = new JList(new ListModelAdapter(this.adapter)); - - this.wrappedValueHolder.setValue(null); - assertEquals(0, jList.getModel().getSize()); - } - - - // ********** member class ********** - - static class TestListener implements ListChangeListener { - public void listChanged(ListChangeEvent event) { - fail("unexpected event"); - } - public void listCleared(ListClearEvent event) { - fail("unexpected event"); - } - public void itemsAdded(ListAddEvent event) { - fail("unexpected event"); - } - public void itemsRemoved(ListRemoveEvent event) { - fail("unexpected event"); - } - public void itemsMoved(ListMoveEvent event) { - fail("unexpected event"); - } - public void itemsReplaced(ListReplaceEvent event) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ReadOnlyWritablePropertyValueModelWrapperTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ReadOnlyWritablePropertyValueModelWrapperTests.java deleted file mode 100644 index 938f6e9073..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ReadOnlyWritablePropertyValueModelWrapperTests.java +++ /dev/null @@ -1,157 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ReadOnlyWritablePropertyValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ReadOnlyWritablePropertyValueModelWrapperTests - extends TestCase -{ - private WritablePropertyValueModel objectHolder; - - PropertyChangeEvent event; - - private WritablePropertyValueModel wrapperObjectHolder; - - PropertyChangeEvent wrapperEvent; - - - public ReadOnlyWritablePropertyValueModelWrapperTests(String name) { - super(name); - } - - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.objectHolder = new SimplePropertyValueModel("foo"); - this.wrapperObjectHolder = new ReadOnlyWritablePropertyValueModelWrapper(this.objectHolder); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - - public void testValue() { - assertEquals("foo", this.objectHolder.getValue()); - assertEquals("foo", this.wrapperObjectHolder.getValue()); - - this.objectHolder.setValue("bar"); - assertEquals("bar", this.objectHolder.getValue()); - assertEquals("bar", this.wrapperObjectHolder.getValue()); - - this.objectHolder.setValue(null); - assertNull(this.objectHolder.getValue()); - assertNull(this.wrapperObjectHolder.getValue()); - - this.objectHolder.setValue("foo"); - assertEquals("foo", this.objectHolder.getValue()); - assertEquals("foo", this.wrapperObjectHolder.getValue()); - } - - public void testSetValue() { - boolean exceptionOccurred = false; - try { - this.wrapperObjectHolder.setValue("bar"); - } - catch (UnsupportedOperationException uoe) { - exceptionOccurred = true; - } - - assertTrue(exceptionOccurred); - assertEquals("foo", this.objectHolder.getValue()); - assertEquals("foo", this.wrapperObjectHolder.getValue()); - } - - public void testLazyListening() { - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - ChangeListener listener = buildWrapperListener(); - this.wrapperObjectHolder.addChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.wrapperObjectHolder.removeChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.wrapperObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.wrapperObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testPropertyChange1() { - this.objectHolder.addChangeListener(this.buildListener()); - this.wrapperObjectHolder.addChangeListener(this.buildWrapperListener()); - this.verifyPropertyChanges(); - } - - public void testPropertyChange2() { - this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.wrapperObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildWrapperListener()); - this.verifyPropertyChanges(); - } - - private void verifyPropertyChanges() { - this.event = null; - this.wrapperEvent = null; - this.objectHolder.setValue("bar"); - verifyEvent(this.event, this.objectHolder, "foo", "bar"); - verifyEvent(this.wrapperEvent, this.wrapperObjectHolder, "foo", "bar"); - - this.event = null; - this.wrapperEvent = null; - this.objectHolder.setValue(null); - verifyEvent(this.event, this.objectHolder, "bar", null); - verifyEvent(this.wrapperEvent, this.wrapperObjectHolder, "bar", null); - - this.event = null; - this.wrapperEvent = null; - this.objectHolder.setValue("foo"); - verifyEvent(this.event, this.objectHolder, null, "foo"); - verifyEvent(this.wrapperEvent, this.wrapperObjectHolder, null, "foo"); - } - - private ChangeListener buildListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - ReadOnlyWritablePropertyValueModelWrapperTests.this.event = e; - } - }; - } - - private ChangeListener buildWrapperListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - ReadOnlyWritablePropertyValueModelWrapperTests.this.wrapperEvent = e; - } - }; - } - - private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) { - assertEquals(source, e.getSource()); - assertEquals(PropertyValueModel.VALUE, e.getPropertyName()); - assertEquals(oldValue, e.getOldValue()); - assertEquals(newValue, e.getNewValue()); - } -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SetCollectionValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SetCollectionValueModelTests.java deleted file mode 100644 index cddfb7d38b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SetCollectionValueModelTests.java +++ /dev/null @@ -1,328 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SetCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SetCollectionValueModelTests extends TestCase { - private SimpleCollectionValueModel collectionHolder; - CollectionAddEvent addEvent; - CollectionRemoveEvent removeEvent; - CollectionClearEvent collectionClearedEvent; - CollectionChangeEvent collectionChangedEvent; - - private CollectionValueModel setHolder; - CollectionAddEvent setAddEvent; - CollectionRemoveEvent setRemoveEvent; - CollectionClearEvent setClearedEvent; - CollectionChangeEvent setChangedEvent; - - public SetCollectionValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.collectionHolder = new SimpleCollectionValueModel(this.buildCollection()); - this.setHolder = new SetCollectionValueModel(this.collectionHolder); - } - - private Collection buildCollection() { - Collection collection = new ArrayList(); - collection.add("foo"); - collection.add("foo"); - return collection; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - // add a listener to "activate" the wrapper - this.setHolder.addChangeListener(this.buildSetChangeListener()); - - this.verify(this.collectionHolder, "foo", "foo"); - this.verify(this.setHolder, "foo"); - - this.collectionHolder.add("bar"); - this.collectionHolder.add("bar"); - this.verify(this.collectionHolder, "foo", "foo", "bar", "bar"); - this.verify(this.setHolder, "foo", "bar"); - - this.collectionHolder.remove("bar"); - this.verify(this.collectionHolder, "foo", "foo", "bar"); - this.verify(this.setHolder, "foo", "bar"); - - this.collectionHolder.remove("bar"); - this.verify(this.collectionHolder, "foo", "foo"); - this.verify(this.setHolder, "foo"); - - this.collectionHolder.remove("foo"); - this.verify(this.collectionHolder, "foo"); - this.verify(this.setHolder, "foo"); - - this.collectionHolder.remove("foo"); - assertFalse(this.collectionHolder.iterator().hasNext()); - assertFalse(this.setHolder.iterator().hasNext()); - } - - public void testSize() { - // add a listener to "activate" the wrapper - this.setHolder.addChangeListener(this.buildSetChangeListener()); - - assertEquals(2, this.collectionHolder.size()); - assertEquals(1, this.setHolder.size()); - - this.collectionHolder.add("bar"); - this.collectionHolder.add("bar"); - assertEquals(4, this.collectionHolder.size()); - assertEquals(2, this.setHolder.size()); - - this.collectionHolder.remove("bar"); - assertEquals(3, this.collectionHolder.size()); - assertEquals(2, this.setHolder.size()); - - this.collectionHolder.remove("bar"); - assertEquals(2, this.collectionHolder.size()); - assertEquals(1, this.setHolder.size()); - - this.collectionHolder.remove("foo"); - assertEquals(1, this.collectionHolder.size()); - assertEquals(1, this.setHolder.size()); - - this.collectionHolder.remove("foo"); - assertEquals(0, this.collectionHolder.size()); - assertEquals(0, this.setHolder.size()); - } - - public void testBulkChange() { - // add a listener to "activate" the wrapper - this.setHolder.addChangeListener(this.buildSetChangeListener()); - - Collection newCollection = new ArrayList(); - newCollection.add("fox"); - newCollection.add("fox"); - newCollection.add("bat"); - - this.collectionHolder.setValues(newCollection); - this.verify(this.collectionHolder, "fox", "fox", "bat"); - this.verify(this.setHolder, "fox", "bat"); - } - - public void testLazyListening() { - assertTrue(((AbstractModel) this.collectionHolder).hasNoCollectionChangeListeners(CollectionValueModel.VALUES)); - ChangeListener listener = this.buildSetChangeListener(); - this.setHolder.addChangeListener(listener); - assertTrue(((AbstractModel) this.collectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - this.setHolder.removeChangeListener(listener); - assertTrue(((AbstractModel) this.collectionHolder).hasNoCollectionChangeListeners(CollectionValueModel.VALUES)); - - this.setHolder.addCollectionChangeListener(CollectionValueModel.VALUES, listener); - assertTrue(((AbstractModel) this.collectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - this.setHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, listener); - assertTrue(((AbstractModel) this.collectionHolder).hasNoCollectionChangeListeners(CollectionValueModel.VALUES)); - } - - public void testEvents1() { - this.collectionHolder.addChangeListener(this.buildChangeListener()); - this.setHolder.addChangeListener(this.buildSetChangeListener()); - this.verifyEvents(); - } - - public void testEvents2() { - this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildCollectionChangeListener()); - this.setHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildSetCollectionChangeListener()); - this.verifyEvents(); - } - - private void clearEvents() { - this.addEvent = null; - this.removeEvent = null; - this.collectionClearedEvent = null; - this.collectionChangedEvent = null; - this.setAddEvent = null; - this.setRemoveEvent = null; - this.setClearedEvent = null; - this.setChangedEvent = null; - } - - private void verifyEvents() { - this.clearEvents(); - this.collectionHolder.add("bar"); - this.verifyEvent(this.addEvent, this.collectionHolder, "bar"); - this.verifyEvent(this.setAddEvent, this.setHolder, "bar"); - - this.clearEvents(); - this.collectionHolder.remove("foo"); - this.verifyEvent(this.removeEvent, this.collectionHolder, "foo"); - assertNull(this.setRemoveEvent); - - this.clearEvents(); - this.collectionHolder.add("bar"); - this.verifyEvent(this.addEvent, this.collectionHolder, "bar"); - assertNull(this.setAddEvent); - - this.clearEvents(); - this.collectionHolder.remove("foo"); - this.verifyEvent(this.removeEvent, this.collectionHolder, "foo"); - this.verifyEvent(this.setRemoveEvent, this.setHolder, "foo"); - - this.clearEvents(); - this.collectionHolder.add("foo"); - this.verifyEvent(this.addEvent, this.collectionHolder, "foo"); - this.verifyEvent(this.setAddEvent, this.setHolder, "foo"); - - this.clearEvents(); - this.collectionHolder.clear(); - this.verifyEvent(this.collectionClearedEvent, this.collectionHolder); - this.verifyEvent(this.setClearedEvent, this.setHolder); - - this.clearEvents(); - Collection newCollection = new ArrayList(); - newCollection.add("fox"); - newCollection.add("fox"); - newCollection.add("bat"); - newCollection.add("bat"); - newCollection.add("bat"); - this.collectionHolder.setValues(newCollection); - this.verifyEvent(this.collectionChangedEvent, this.collectionHolder, "fox", "fox", "bat", "bat", "bat"); - this.verifyEvent(this.setChangedEvent, this.setHolder, "fox", "bat"); - - } - - private CollectionChangeListener buildCollectionChangeListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - SetCollectionValueModelTests.this.addEvent = event; - } - public void itemsRemoved(CollectionRemoveEvent event) { - SetCollectionValueModelTests.this.removeEvent = event; - } - public void collectionCleared(CollectionClearEvent event) { - SetCollectionValueModelTests.this.collectionClearedEvent = event; - } - public void collectionChanged(CollectionChangeEvent event) { - SetCollectionValueModelTests.this.collectionChangedEvent = event; - } - }; - } - - private ChangeListener buildChangeListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(CollectionAddEvent event) { - SetCollectionValueModelTests.this.addEvent = event; - } - @Override - public void itemsRemoved(CollectionRemoveEvent event) { - SetCollectionValueModelTests.this.removeEvent = event; - } - @Override - public void collectionCleared(CollectionClearEvent event) { - SetCollectionValueModelTests.this.collectionClearedEvent = event; - } - @Override - public void collectionChanged(CollectionChangeEvent event) { - SetCollectionValueModelTests.this.collectionChangedEvent = event; - } - }; - } - - private CollectionChangeListener buildSetCollectionChangeListener() { - return new CollectionChangeListener() { - public void itemsAdded(CollectionAddEvent event) { - SetCollectionValueModelTests.this.setAddEvent = event; - } - public void itemsRemoved(CollectionRemoveEvent event) { - SetCollectionValueModelTests.this.setRemoveEvent = event; - } - public void collectionCleared(CollectionClearEvent event) { - SetCollectionValueModelTests.this.setClearedEvent = event; - } - public void collectionChanged(CollectionChangeEvent event) { - SetCollectionValueModelTests.this.setChangedEvent = event; - } - }; - } - - private ChangeListener buildSetChangeListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(CollectionAddEvent event) { - SetCollectionValueModelTests.this.setAddEvent = event; - } - @Override - public void itemsRemoved(CollectionRemoveEvent event) { - SetCollectionValueModelTests.this.setRemoveEvent = event; - } - @Override - public void collectionCleared(CollectionClearEvent event) { - SetCollectionValueModelTests.this.setClearedEvent = event; - } - @Override - public void collectionChanged(CollectionChangeEvent event) { - SetCollectionValueModelTests.this.setChangedEvent = event; - } - }; - } - - private void verify(CollectionValueModel cvm, String... expectedItems) { - Bag actual = CollectionTools.bag(cvm); - Bag expected = CollectionTools.bag(expectedItems); - assertEquals(expected, actual); - } - - private void verifyEvent(CollectionAddEvent event, Object source, Object... expectedItems) { - assertEquals(source, event.getSource()); - assertEquals(CollectionValueModel.VALUES, event.getCollectionName()); - assertEquals(CollectionTools.bag(expectedItems), CollectionTools.bag(event.getItems())); - } - - private void verifyEvent(CollectionRemoveEvent event, Object source, Object... expectedItems) { - assertEquals(source, event.getSource()); - assertEquals(CollectionValueModel.VALUES, event.getCollectionName()); - assertEquals(CollectionTools.bag(expectedItems), CollectionTools.bag(event.getItems())); - } - - private void verifyEvent(CollectionClearEvent event, Object source) { - assertEquals(source, event.getSource()); - assertEquals(CollectionValueModel.VALUES, event.getCollectionName()); - } - - private void verifyEvent(CollectionChangeEvent event, Object source, Object... expectedItems) { - assertEquals(source, event.getSource()); - assertEquals(CollectionValueModel.VALUES, event.getCollectionName()); - assertEquals(CollectionTools.bag(expectedItems), CollectionTools.bag(event.getCollection())); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimpleCollectionValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimpleCollectionValueModelTests.java deleted file mode 100644 index e3e4a70a58..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimpleCollectionValueModelTests.java +++ /dev/null @@ -1,443 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SimpleCollectionValueModelTests extends TestCase { - private SimpleCollectionValueModel bagHolder; - CollectionEvent bagEvent; - String bagEventType; - - private SimpleCollectionValueModel setHolder; - CollectionEvent setEvent; - String setEventType; - - private static final String ADD = "add"; - private static final String REMOVE = "remove"; - private static final String CHANGE = "change"; - private static final String CLEAR = "clear"; - - - public SimpleCollectionValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.bagHolder = new SimpleCollectionValueModel(this.buildBag()); - this.setHolder = new SimpleCollectionValueModel(this.buildSet()); - } - - private Bag buildBag() { - Bag result = new HashBag(); - this.addItemsTo(result); - return result; - } - - private Set buildSet() { - Set result = new HashSet(); - this.addItemsTo(result); - return result; - } - - private void addItemsTo(Collection c) { - c.add("foo"); - c.add("bar"); - c.add("baz"); - } - - private Bag buildAddItems() { - Bag result = new HashBag(); - result.add("joo"); - result.add("jar"); - result.add("jaz"); - return result; - } - - private Bag buildRemoveItems() { - Bag result = new HashBag(); - result.add("foo"); - result.add("baz"); - return result; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - assertEquals(this.buildBag(), CollectionTools.bag(this.bagHolder.iterator())); - assertEquals(this.buildSet(), CollectionTools.set(this.setHolder.iterator())); - } - - public void testSize() { - assertEquals(this.buildBag().size(), CollectionTools.size(this.bagHolder.iterator())); - assertEquals(this.buildSet().size(), CollectionTools.size(this.setHolder.iterator())); - } - - private boolean bagHolderContains(Object item) { - return CollectionTools.contains(this.bagHolder.iterator(), item); - } - - private boolean setHolderContains(Object item) { - return CollectionTools.contains(this.setHolder.iterator(), item); - } - - private boolean bagHolderContainsAll(Collection items) { - return CollectionTools.containsAll(this.bagHolder.iterator(), items); - } - - private boolean setHolderContainsAll(Collection items) { - return CollectionTools.containsAll(this.setHolder.iterator(), items); - } - - private boolean bagHolderContainsAny(Collection items) { - Bag bag = CollectionTools.bag(this.bagHolder.iterator()); - for (String string : items) { - if (bag.contains(string)) { - return true; - } - } - return false; - } - - private boolean setHolderContainsAny(Collection items) { - Set set = CollectionTools.set(this.setHolder.iterator()); - for (String string : items) { - if (set.contains(string)) { - return true; - } - } - return false; - } - - public void testAdd() { - assertFalse(this.bagHolderContains("joo")); - this.bagHolder.add("joo"); - assertTrue(this.bagHolderContains("joo")); - - assertFalse(this.bagHolderContains(null)); - this.bagHolder.add(null); - assertTrue(this.bagHolderContains(null)); - - assertFalse(this.setHolderContains("joo")); - this.setHolder.add("joo"); - assertTrue(this.setHolderContains("joo")); - - assertFalse(this.setHolderContains(null)); - this.setHolder.add(null); - assertTrue(this.setHolderContains(null)); - } - - public void testAddAll() { - assertFalse(this.bagHolderContainsAny(this.buildAddItems())); - this.bagHolder.addAll(this.buildAddItems()); - assertTrue(this.bagHolderContainsAll(this.buildAddItems())); - - assertFalse(this.setHolderContainsAny(this.buildAddItems())); - this.setHolder.addAll(this.buildAddItems()); - assertTrue(this.setHolderContainsAll(this.buildAddItems())); - } - - public void testRemove() { - assertTrue(this.bagHolderContains("bar")); - this.bagHolder.remove("bar"); - assertFalse(this.bagHolderContains("bar")); - - this.bagHolder.add(null); - assertTrue(this.bagHolderContains(null)); - this.bagHolder.remove(null); - assertFalse(this.bagHolderContains(null)); - - assertTrue(this.setHolderContains("bar")); - this.setHolder.remove("bar"); - assertFalse(this.setHolderContains("bar")); - - this.setHolder.add(null); - assertTrue(this.setHolderContains(null)); - this.setHolder.remove(null); - assertFalse(this.setHolderContains(null)); - } - - public void testRemoveAll() { - assertTrue(this.bagHolderContainsAll(this.buildRemoveItems())); - this.bagHolder.removeAll(this.buildRemoveItems()); - assertFalse(this.bagHolderContainsAny(this.buildRemoveItems())); - - assertTrue(this.setHolderContainsAll(this.buildRemoveItems())); - this.setHolder.removeAll(this.buildRemoveItems()); - assertFalse(this.setHolderContainsAny(this.buildRemoveItems())); - } - - public void testSetValues() { - assertTrue(this.bagHolderContains("bar")); - assertFalse(this.bagHolderContains("jar")); - this.bagHolder.setValues(this.buildAddItems()); - assertFalse(this.bagHolderContains("bar")); - assertTrue(this.bagHolderContains("jar")); - - this.bagHolder.add(null); - assertTrue(this.bagHolderContains(null)); - this.bagHolder.remove(null); - assertFalse(this.bagHolderContains(null)); - - this.bagHolder.setValues(new HashBag()); - assertFalse(this.bagHolderContains("jar")); - - assertTrue(this.setHolderContains("bar")); - assertFalse(this.setHolderContains("jar")); - this.setHolder.setValues(this.buildAddItems()); - assertFalse(this.setHolderContains("bar")); - assertTrue(this.setHolderContains("jar")); - - this.setHolder.add(null); - assertTrue(this.setHolderContains(null)); - this.setHolder.remove(null); - assertFalse(this.setHolderContains(null)); - - this.setHolder.setValues(new HashBag()); - assertFalse(this.setHolderContains("jar")); - } - - public void testCollectionChange1() { - this.bagHolder.addChangeListener(this.buildBagListener()); - this.verifyBagChange(); - - this.setHolder.addChangeListener(this.buildSetListener()); - this.verifySetChange(); - } - - public void testCollectionChange2() { - this.bagHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildBagListener()); - this.verifyBagChange(); - - this.setHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildSetListener()); - this.verifySetChange(); - } - - private void verifyBagChange() { - this.bagEvent = null; - this.bagEventType = null; - this.bagHolder.add("foo"); - this.verifyBagEvent(ADD, "foo"); - - this.bagEvent = null; - this.bagEventType = null; - this.bagHolder.add("foo"); - this.verifyBagEvent(ADD, "foo"); - - this.bagEvent = null; - this.bagEventType = null; - this.bagHolder.add("joo"); - this.verifyBagEvent(ADD, "joo"); - - this.bagEvent = null; - this.bagEventType = null; - this.bagHolder.add(null); - this.verifyBagEvent(ADD, null); - - this.bagEvent = null; - this.bagEventType = null; - this.bagHolder.add(null); - this.verifyBagEvent(ADD, null); - - this.bagEvent = null; - this.bagEventType = null; - this.bagHolder.remove("joo"); - this.verifyBagEvent(REMOVE, "joo"); - - this.bagEvent = null; - this.bagEventType = null; - this.bagHolder.remove(null); - this.verifyBagEvent(REMOVE, null); - - this.bagEvent = null; - this.bagEventType = null; - this.bagHolder.setValues(this.buildBag()); - this.verifyBagEvent(CHANGE); - - this.bagEvent = null; - this.bagEventType = null; - this.bagHolder.addAll(this.buildBag()); - this.verifyBagEvent(ADD); - assertEquals(this.buildBag(), CollectionTools.bag(((CollectionAddEvent) this.bagEvent).getItems())); - } - - private void verifySetChange() { - this.setEvent = null; - this.setEventType = null; - this.setHolder.add("foo"); - assertNull(this.setEvent); - assertNull(this.setEventType); - - this.setEvent = null; - this.setEventType = null; - this.setHolder.add("joo"); - this.verifySetEvent(ADD, "joo"); - - this.setEvent = null; - this.setEventType = null; - this.setHolder.add("joo"); - assertNull(this.setEvent); - assertNull(this.setEventType); - - this.setEvent = null; - this.setEventType = null; - this.setHolder.add(null); - this.verifySetEvent(ADD, null); - - this.setEvent = null; - this.setEventType = null; - this.setHolder.add(null); - assertNull(this.setEvent); - assertNull(this.setEventType); - - this.setEvent = null; - this.setEventType = null; - this.setHolder.remove("joo"); - this.verifySetEvent(REMOVE, "joo"); - - this.setEvent = null; - this.setEventType = null; - this.setHolder.remove("joo"); - assertNull(this.setEvent); - assertNull(this.setEventType); - - this.setEvent = null; - this.setEventType = null; - this.setHolder.remove(null); - this.verifySetEvent(REMOVE, null); - - this.setEvent = null; - this.setEventType = null; - this.setHolder.setValues(this.buildSet()); - this.verifySetEvent(CHANGE); - - this.setEvent = null; - this.setEventType = null; - this.setHolder.addAll(this.buildSet()); - assertNull(this.setEvent); - assertNull(this.setEventType); - } - - private ChangeListener buildBagListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(CollectionAddEvent e) { - SimpleCollectionValueModelTests.this.bagEventType = ADD; - SimpleCollectionValueModelTests.this.bagEvent = e; - } - @Override - public void itemsRemoved(CollectionRemoveEvent e) { - SimpleCollectionValueModelTests.this.bagEventType = REMOVE; - SimpleCollectionValueModelTests.this.bagEvent = e; - } - @Override - public void collectionCleared(CollectionClearEvent e) { - SimpleCollectionValueModelTests.this.bagEventType = CLEAR; - SimpleCollectionValueModelTests.this.bagEvent = e; - } - @Override - public void collectionChanged(CollectionChangeEvent e) { - SimpleCollectionValueModelTests.this.bagEventType = CHANGE; - SimpleCollectionValueModelTests.this.bagEvent = e; - } - }; - } - - private ChangeListener buildSetListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(CollectionAddEvent e) { - SimpleCollectionValueModelTests.this.setEventType = ADD; - SimpleCollectionValueModelTests.this.setEvent = e; - } - @Override - public void itemsRemoved(CollectionRemoveEvent e) { - SimpleCollectionValueModelTests.this.setEventType = REMOVE; - SimpleCollectionValueModelTests.this.setEvent = e; - } - @Override - public void collectionCleared(CollectionClearEvent e) { - SimpleCollectionValueModelTests.this.setEventType = CLEAR; - SimpleCollectionValueModelTests.this.setEvent = e; - } - @Override - public void collectionChanged(CollectionChangeEvent e) { - SimpleCollectionValueModelTests.this.setEventType = CHANGE; - SimpleCollectionValueModelTests.this.setEvent = e; - } - }; - } - - private void verifyBagEvent(String eventType) { - assertEquals(eventType, this.bagEventType); - assertEquals(this.bagHolder, this.bagEvent.getSource()); - assertEquals(CollectionValueModel.VALUES, this.bagEvent.getCollectionName()); - } - - private void verifyBagEvent(String eventType, Object item) { - this.verifyBagEvent(eventType); - assertEquals(item, this.getBagEventItems().iterator().next()); - } - - private Iterable getBagEventItems() { - if (this.bagEvent instanceof CollectionAddEvent) { - return ((CollectionAddEvent) this.bagEvent).getItems(); - } else if (this.bagEvent instanceof CollectionRemoveEvent) { - return ((CollectionRemoveEvent) this.bagEvent).getItems(); - } - throw new IllegalStateException(); - } - - private void verifySetEvent(String eventType) { - assertEquals(eventType, this.setEventType); - assertEquals(this.setHolder, this.setEvent.getSource()); - assertEquals(CollectionValueModel.VALUES, this.setEvent.getCollectionName()); - } - - private void verifySetEvent(String eventType, Object item) { - this.verifySetEvent(eventType); - assertEquals(item, this.getSetEventItems().iterator().next()); - } - - private Iterable getSetEventItems() { - if (this.setEvent instanceof CollectionAddEvent) { - return ((CollectionAddEvent) this.setEvent).getItems(); - } else if (this.setEvent instanceof CollectionRemoveEvent) { - return ((CollectionRemoveEvent) this.setEvent).getItems(); - } - throw new IllegalStateException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimpleListValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimpleListValueModelTests.java deleted file mode 100644 index 50db81128b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimpleListValueModelTests.java +++ /dev/null @@ -1,378 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SimpleListValueModelTests extends TestCase { - private SimpleListValueModel listHolder; - ListEvent event; - String eventType; - - private static final String ADD = "add"; - private static final String REMOVE = "remove"; - private static final String REPLACE = "replace"; - private static final String MOVE = "move"; - private static final String CLEAR = "clear"; - private static final String CHANGE = "change"; - - - public SimpleListValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.listHolder = new SimpleListValueModel(this.buildList()); - } - - private List buildList() { - List result = new ArrayList(); - result.add("foo"); - result.add("bar"); - result.add("baz"); - return result; - } - - private List buildAddList() { - List result = new ArrayList(); - result.add("joo"); - result.add("jar"); - result.add("jaz"); - return result; - } - -// private List buildRemoveList() { -// List result = new ArrayList(); -// result.add("foo"); -// result.add("bar"); -// return result; -// } -// - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - assertEquals(this.buildList(), CollectionTools.list(this.listHolder.iterator())); - } - - public void testListIterator() { - assertEquals(this.buildList(), CollectionTools.list(this.listHolder.listIterator())); - } - - public void testListIteratorInt() { - assertEquals(CollectionTools.list(this.buildList().listIterator(1)), CollectionTools.list(this.listHolder.listIterator(1))); - } - - public void testSize() { - assertEquals(this.buildList().size(), this.listHolder.size()); - } - - private boolean listContains(Object item) { - return CollectionTools.contains(this.listHolder.listIterator(), item); - } - - private boolean listContainsAll(Collection items) { - return CollectionTools.containsAll(this.listHolder.listIterator(), items); - } - - private boolean listContainsAny(Collection items) { - Set set = CollectionTools.set(this.listHolder.iterator()); - for (Iterator stream = items.iterator(); stream.hasNext(); ) { - if (set.contains(stream.next())) { - return true; - } - } - return false; - } - - public void testAddObject() { - assertFalse(this.listContains("joo")); - this.listHolder.add("joo"); - assertTrue(this.listContains("joo")); - - assertFalse(this.listContains(null)); - this.listHolder.add(null); - assertTrue(this.listContains(null)); - } - - public void testAddIntObject() { - assertFalse(this.listContains("joo")); - this.listHolder.add(2, "joo"); - assertTrue(this.listContains("joo")); - - assertFalse(this.listContains(null)); - this.listHolder.add(0, null); - assertTrue(this.listContains(null)); - } - - public void testAddAllCollection() { - assertFalse(this.listContainsAny(this.buildAddList())); - this.listHolder.addAll(this.buildAddList()); - assertTrue(this.listContainsAll(this.buildAddList())); - } - - public void testAddAllIntCollection() { - assertFalse(this.listContainsAny(this.buildAddList())); - this.listHolder.addAll(2, this.buildAddList()); - assertTrue(this.listContainsAll(this.buildAddList())); - } - - public void testClear() { - assertFalse(this.listHolder.isEmpty()); - this.listHolder.clear(); - assertTrue(this.listHolder.isEmpty()); - } - - public void testContainsObject() { - assertTrue(this.listHolder.contains("foo")); - assertFalse(this.listHolder.contains("joo")); - } - - public void testContainsAllCollection() { - Collection c = new ArrayList(); - c.add("foo"); - c.add("bar"); - assertTrue(this.listHolder.containsAll(c)); - - c.add("joo"); - assertFalse(this.listHolder.containsAll(c)); - } - - public void testEquals() { - assertEquals(new SimpleListValueModel(this.buildList()), this.listHolder); - assertFalse(this.listHolder.equals(new SimpleListValueModel(this.buildAddList()))); - assertFalse(this.listHolder.equals(this.buildList())); - assertFalse(this.listHolder.equals(new SimpleListValueModel())); - } - - public void testGetInt() { - assertEquals("foo", this.listHolder.get(0)); - assertEquals("bar", this.listHolder.get(1)); - assertEquals("baz", this.listHolder.get(2)); - } - - public void testHashCode() { - assertEquals(new SimpleListValueModel(this.buildList()).hashCode(), this.listHolder.hashCode()); - } - - public void testIndexOfObject() { - assertEquals(0, this.listHolder.indexOf("foo")); - assertEquals(1, this.listHolder.indexOf("bar")); - assertEquals(2, this.listHolder.indexOf("baz")); - assertEquals(-1, this.listHolder.indexOf("joo")); - } - - public void testLastIndexOfObject() { - assertEquals(0, this.listHolder.lastIndexOf("foo")); - assertEquals(1, this.listHolder.lastIndexOf("bar")); - assertEquals(2, this.listHolder.lastIndexOf("baz")); - assertEquals(-1, this.listHolder.lastIndexOf("joo")); - - this.listHolder.add("foo"); - assertEquals(3, this.listHolder.lastIndexOf("foo")); - } - - public void testIsEmpty() { - assertFalse(this.listHolder.isEmpty()); - this.listHolder.clear(); - assertTrue(this.listHolder.isEmpty()); - } - - public void testRemove() { - assertTrue(this.listContains("bar")); - this.listHolder.remove(this.buildList().indexOf("bar")); - assertFalse(this.listContains("bar")); - - this.listHolder.add(1, null); - assertTrue(this.listContains(null)); - this.listHolder.remove(1); - assertFalse(this.listContains(null)); - } - - public void testSetValues() { - List newList = new ArrayList(); - newList.add("joo"); - newList.add("jar"); - newList.add("jaz"); - - assertTrue(this.listContains("bar")); - assertFalse(this.listContains("jar")); - this.listHolder.setListValues(newList); - assertFalse(this.listContains("bar")); - assertTrue(this.listContains("jar")); - - this.listHolder.add(1, null); - assertTrue(this.listContains(null)); - this.listHolder.remove(1); - assertFalse(this.listContains(null)); - - this.listHolder.setListValues(new ArrayList()); - assertFalse(this.listContains("jar")); - } - - public void testListChange1() { - this.listHolder.addChangeListener(this.buildChangeListener()); - this.verifyListChange(); - } - - public void testListChange2() { - this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - this.verifyListChange(); - } - - private void verifyListChange() { - this.event = null; - this.eventType = null; - this.listHolder.add(1, "joo"); - this.verifyEvent(ADD, 1, "joo"); - - this.event = null; - this.eventType = null; - this.listHolder.add(1, null); - this.verifyEvent(ADD, 1, null); - - this.event = null; - this.eventType = null; - this.listHolder.remove(1); - this.verifyEvent(REMOVE, 1, null); - - this.event = null; - this.eventType = null; - this.listHolder.remove(1); - this.verifyEvent(REMOVE, 1, "joo"); - - this.event = null; - this.eventType = null; - this.listHolder.setListValues(this.buildList()); - this.verifyEvent(CHANGE); - - this.event = null; - this.eventType = null; - this.listHolder.addAll(0, this.buildList()); - this.verifyEvent(ADD); - assertEquals(this.buildList(), CollectionTools.list(((ListAddEvent) this.event).getItems())); - - this.event = null; - this.eventType = null; - this.listHolder.set(0, "joo"); - this.verifyEvent(REPLACE); - assertFalse(CollectionTools.contains(((ListReplaceEvent) this.event).getNewItems(), "foo")); - assertTrue(CollectionTools.contains(((ListReplaceEvent) this.event).getNewItems(), "joo")); - } - - private ListChangeListener buildListener() { - return new ListChangeListener() { - public void itemsAdded(ListAddEvent e) { - SimpleListValueModelTests.this.eventType = ADD; - SimpleListValueModelTests.this.event = e; - } - public void itemsRemoved(ListRemoveEvent e) { - SimpleListValueModelTests.this.eventType = REMOVE; - SimpleListValueModelTests.this.event = e; - } - public void itemsReplaced(ListReplaceEvent e) { - SimpleListValueModelTests.this.eventType = REPLACE; - SimpleListValueModelTests.this.event = e; - } - public void itemsMoved(ListMoveEvent e) { - SimpleListValueModelTests.this.eventType = MOVE; - SimpleListValueModelTests.this.event = e; - } - public void listCleared(ListClearEvent e) { - SimpleListValueModelTests.this.eventType = CLEAR; - SimpleListValueModelTests.this.event = e; - } - public void listChanged(ListChangeEvent e) { - SimpleListValueModelTests.this.eventType = CHANGE; - SimpleListValueModelTests.this.event = e; - } - }; - } - - private ChangeListener buildChangeListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(ListAddEvent e) { - SimpleListValueModelTests.this.eventType = ADD; - SimpleListValueModelTests.this.event = e; - } - @Override - public void itemsRemoved(ListRemoveEvent e) { - SimpleListValueModelTests.this.eventType = REMOVE; - SimpleListValueModelTests.this.event = e; - } - @Override - public void itemsReplaced(ListReplaceEvent e) { - SimpleListValueModelTests.this.eventType = REPLACE; - SimpleListValueModelTests.this.event = e; - } - @Override - public void itemsMoved(ListMoveEvent e) { - SimpleListValueModelTests.this.eventType = MOVE; - SimpleListValueModelTests.this.event = e; - } - @Override - public void listCleared(ListClearEvent e) { - SimpleListValueModelTests.this.eventType = CLEAR; - SimpleListValueModelTests.this.event = e; - } - @Override - public void listChanged(ListChangeEvent e) { - SimpleListValueModelTests.this.eventType = CHANGE; - SimpleListValueModelTests.this.event = e; - } - }; - } - - private void verifyEvent(String e) { - assertEquals(e, this.eventType); - assertEquals(this.listHolder, this.event.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event.getListName()); - } - - private void verifyEvent(String e, int index, Object item) { - this.verifyEvent(e); - if (e == ADD) { - assertEquals(index, ((ListAddEvent) this.event).getIndex()); - assertEquals(item, ((ListAddEvent) this.event).getItems().iterator().next()); - } else if (e == REMOVE) { - assertEquals(index, ((ListRemoveEvent) this.event).getIndex()); - assertEquals(item, ((ListRemoveEvent) this.event).getItems().iterator().next()); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimplePropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimplePropertyValueModelTests.java deleted file mode 100644 index 48f61d5273..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SimplePropertyValueModelTests.java +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SimplePropertyValueModelTests extends TestCase { - private WritablePropertyValueModel objectHolder; - PropertyChangeEvent event; - - - public SimplePropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.objectHolder = new SimplePropertyValueModel("foo"); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testValue() { - assertEquals("foo", this.objectHolder.getValue()); - } - - public void testSetValue() { - this.objectHolder.setValue("bar"); - assertEquals("bar", this.objectHolder.getValue()); - this.objectHolder.setValue(null); - assertEquals(null, this.objectHolder.getValue()); - this.objectHolder.setValue("baz"); - assertEquals("baz", this.objectHolder.getValue()); - } - - public void testPropertyChange1() { - this.objectHolder.addChangeListener(this.buildListener()); - this.verifyPropertyChange(); - } - - public void testPropertyChange2() { - this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.verifyPropertyChange(); - } - - private void verifyPropertyChange() { - this.event = null; - this.objectHolder.setValue("bar"); - this.verifyEvent("foo", "bar"); - - this.event = null; - this.objectHolder.setValue(null); - this.verifyEvent("bar", null); - - this.event = null; - this.objectHolder.setValue("baz"); - this.verifyEvent(null, "baz"); - } - - private ChangeListener buildListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - SimplePropertyValueModelTests.this.event = e; - } - }; - } - - private void verifyEvent(Object oldValue, Object newValue) { - assertEquals(this.objectHolder, this.event.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event.getPropertyName()); - assertEquals(oldValue, this.event.getOldValue()); - assertEquals(newValue, this.event.getNewValue()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SortedListValueModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SortedListValueModelAdapterTests.java deleted file mode 100644 index 46607e8921..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SortedListValueModelAdapterTests.java +++ /dev/null @@ -1,222 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.TreeSet; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.ReverseComparator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelAdapter; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SortedListValueModelAdapterTests extends TestCase { - private SortedListValueModelAdapter adapter; - private SimpleCollectionValueModel wrappedCollectionHolder; - private Collection wrappedCollection; - - - public SortedListValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.wrappedCollection = new HashBag(); - this.wrappedCollectionHolder = new SimpleCollectionValueModel(this.wrappedCollection); - this.adapter = new SortedListValueModelAdapter(this.wrappedCollectionHolder); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - private void verifyList(Collection expected, ListValueModel actual) { - this.verifyList(expected, actual, null); - } - - private void verifyList(Collection expected, ListValueModel actual, Comparator comparator) { - Collection sortedSet = new TreeSet(comparator); - sortedSet.addAll(expected); - List expectedList = new ArrayList(sortedSet); - List actualList = CollectionTools.list(actual.iterator()); - assertEquals(expectedList, actualList); - } - - public void testAdd() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - @Override - public void itemsReplaced(ListReplaceEvent e) {/* OK */} - }); - this.wrappedCollectionHolder.add("foo"); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - assertEquals(3, this.adapter.size()); - this.verifyList(this.wrappedCollection, this.adapter); - } - - public void testAddItem() { - List synchList = new CoordinatedList(this.adapter); - Bag synchCollection = new CoordinatedBag(this.wrappedCollectionHolder); - this.wrappedCollectionHolder.add("foo"); - assertTrue(this.wrappedCollection.contains("foo")); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - this.wrappedCollectionHolder.add("joo"); - this.wrappedCollectionHolder.add("jar"); - this.wrappedCollectionHolder.add("jaz"); - assertEquals(6, this.wrappedCollection.size()); - - this.verifyList(this.wrappedCollection, this.adapter); - assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator())); - assertEquals(this.wrappedCollection, synchCollection); - } - - public void testRemoveItem() { - List synchList = new CoordinatedList(this.adapter); - Bag synchCollection = new CoordinatedBag(this.wrappedCollectionHolder); - this.wrappedCollectionHolder.add("foo"); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - this.wrappedCollectionHolder.add("joo"); - this.wrappedCollectionHolder.add("jar"); - this.wrappedCollectionHolder.add("jaz"); - this.wrappedCollectionHolder.remove("jaz"); - assertFalse(this.wrappedCollection.contains("jaz")); - this.wrappedCollectionHolder.remove("foo"); - assertFalse(this.wrappedCollection.contains("foo")); - assertEquals(4, this.wrappedCollection.size()); - - this.verifyList(this.wrappedCollection, this.adapter); - assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator())); - assertEquals(this.wrappedCollection, synchCollection); - } - - public void testListSynch() { - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - @Override - public void itemsRemoved(ListRemoveEvent e) {/* OK */} - @Override - public void itemsReplaced(ListReplaceEvent e) {/* OK */} - }); - this.wrappedCollectionHolder.add("foo"); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - this.wrappedCollectionHolder.add("joo"); - this.wrappedCollectionHolder.add("jar"); - this.wrappedCollectionHolder.add("jaz"); - this.wrappedCollectionHolder.remove("jaz"); - assertFalse(this.wrappedCollection.contains("jaz")); - this.wrappedCollectionHolder.remove("foo"); - assertFalse(this.wrappedCollection.contains("foo")); - assertEquals(4, this.wrappedCollection.size()); - - this.verifyList(this.wrappedCollection, this.adapter); - } - - public void testSetComparator() { - List synchList = new CoordinatedList(this.adapter); - Bag synchCollection = new CoordinatedBag(this.wrappedCollectionHolder); - this.wrappedCollectionHolder.add("foo"); - assertTrue(this.wrappedCollection.contains("foo")); - this.wrappedCollectionHolder.add("bar"); - this.wrappedCollectionHolder.add("baz"); - this.wrappedCollectionHolder.add("joo"); - this.wrappedCollectionHolder.add("jar"); - this.wrappedCollectionHolder.add("jaz"); - assertEquals(6, this.wrappedCollection.size()); - - this.verifyList(this.wrappedCollection, this.adapter); - assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator())); - assertEquals(this.wrappedCollection, synchCollection); - - this.adapter.setComparator(new ReverseComparator()); - this.verifyList(this.wrappedCollection, this.adapter, new ReverseComparator()); - assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator())); - assertEquals(this.wrappedCollection, synchCollection); - } - - public void testHasListeners() { - assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - CoordinatedList synchList = new CoordinatedList(this.adapter); - assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, synchList); - assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - ChangeListener cl = new ChangeAdapter(); - this.adapter.addChangeListener(cl); - assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.adapter.removeChangeListener(cl); - assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - public void testCollectionChange() { - this.wrappedCollectionHolder.add("fred"); - this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - @Override - public void itemsReplaced(ListReplaceEvent e) {/* OK */} - }); - this.wrappedCollectionHolder.setValues(Arrays.asList(new String[] {"foo", "bar", "baz"})); - assertEquals(3, this.adapter.size()); - this.verifyList(this.wrappedCollection, this.adapter); - } - - class TestListChangeListener implements ListChangeListener { - public void itemsAdded(ListAddEvent e) { - fail("unexpected event"); - } - public void itemsRemoved(ListRemoveEvent e) { - fail("unexpected event"); - } - public void itemsReplaced(ListReplaceEvent e) { - fail("unexpected event"); - } - public void itemsMoved(ListMoveEvent e) { - fail("unexpected event"); - } - public void listCleared(ListClearEvent e) { - fail("unexpected event"); - } - public void listChanged(ListChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SortedListValueModelWrapperTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SortedListValueModelWrapperTests.java deleted file mode 100644 index 0f4f945eec..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/SortedListValueModelWrapperTests.java +++ /dev/null @@ -1,237 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.TreeSet; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.ReverseComparator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SortedListValueModelWrapperTests extends TestCase { - private List list; - private SimpleListValueModel listModel; - private SortedListValueModelWrapper sortedListModel; - - - public SortedListValueModelWrapperTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.list = new ArrayList(); - this.listModel = new SimpleListValueModel(this.list); - this.sortedListModel = new SortedListValueModelWrapper(this.listModel); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - private void verifyList(Collection expected, ListValueModel actual) { - this.verifyList(expected, actual, null); - } - - private void verifyList(Collection expected, ListValueModel actual, Comparator comparator) { - Collection sortedSet = new TreeSet(comparator); - sortedSet.addAll(expected); - List expectedList = new ArrayList(sortedSet); - List actualList = CollectionTools.list(actual); - assertEquals(expectedList, actualList); - } - - public void testAdd() { - this.sortedListModel.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - @Override - public void itemsReplaced(ListReplaceEvent e) {/* OK */} - }); - this.listModel.add("foo"); - this.listModel.add("bar"); - this.listModel.add("baz"); - assertEquals(3, this.sortedListModel.size()); - this.verifyList(this.list, this.sortedListModel); - } - - public void testAddItem() { - List sortedSynchList = new CoordinatedList(this.sortedListModel); - List synchList = new CoordinatedList(this.listModel); - this.listModel.add("foo"); - assertTrue(this.list.contains("foo")); - this.listModel.add("bar"); - this.listModel.add("baz"); - this.listModel.add("joo"); - this.listModel.add("jar"); - this.listModel.add("jaz"); - assertEquals(6, this.list.size()); - - this.verifyList(this.list, this.sortedListModel); - assertEquals(this.list, synchList); - assertEquals(CollectionTools.list(this.sortedListModel), sortedSynchList); - } - - public void testRemoveItem() { - List sortedSynchList = new CoordinatedList(this.sortedListModel); - List synchList = new CoordinatedList(this.listModel); - this.listModel.add("foo"); - this.listModel.add("bar"); - this.listModel.add("baz"); - this.listModel.add("joo"); - this.listModel.add("jar"); - this.listModel.add("jaz"); - this.listModel.remove("jaz"); - assertFalse(this.list.contains("jaz")); - this.listModel.remove("foo"); - assertFalse(this.list.contains("foo")); - assertEquals(4, this.list.size()); - - this.verifyList(this.list, this.sortedListModel); - assertEquals(this.list, synchList); - assertEquals(CollectionTools.list(this.sortedListModel), sortedSynchList); - } - - public void testReplaceItem() { - List sortedSynchList = new CoordinatedList(this.sortedListModel); - List synchList = new CoordinatedList(this.listModel); - this.listModel.add("foo"); - assertTrue(this.list.contains("foo")); - this.listModel.add("bar"); - this.listModel.add("baz"); - this.listModel.add("joo"); - this.listModel.add("jar"); - this.listModel.add("jaz"); - assertEquals(6, this.list.size()); - this.listModel.set(3, "ttt"); - this.listModel.set(4, "xxx"); - assertTrue(this.list.contains("xxx")); - - this.verifyList(this.list, this.sortedListModel); - assertEquals(this.list, synchList); - assertEquals(CollectionTools.list(this.sortedListModel), sortedSynchList); - } - - public void testListSynch() { - this.sortedListModel.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void itemsAdded(ListAddEvent e) {/* OK */} - @Override - public void itemsRemoved(ListRemoveEvent e) {/* OK */} - @Override - public void itemsReplaced(ListReplaceEvent e) {/* OK */} - }); - this.listModel.add("foo"); - this.listModel.add("bar"); - this.listModel.add("baz"); - this.listModel.add("joo"); - this.listModel.add("jar"); - this.listModel.add("jaz"); - this.listModel.remove("jaz"); - assertFalse(this.list.contains("jaz")); - this.listModel.remove("foo"); - assertFalse(this.list.contains("foo")); - assertEquals(4, this.list.size()); - - this.verifyList(this.list, this.sortedListModel); - } - - public void testSetComparator() { - List sortedSynchList = new CoordinatedList(this.sortedListModel); - List synchList = new CoordinatedList(this.listModel); - this.listModel.add("foo"); - assertTrue(this.list.contains("foo")); - this.listModel.add("bar"); - this.listModel.add("baz"); - this.listModel.add("joo"); - this.listModel.add("jar"); - this.listModel.add("jaz"); - assertEquals(6, this.list.size()); - - this.verifyList(this.list, this.sortedListModel); - assertEquals(this.list, synchList); - assertEquals(CollectionTools.list(this.sortedListModel), sortedSynchList); - - this.sortedListModel.setComparator(new ReverseComparator()); - this.verifyList(this.list, this.sortedListModel, new ReverseComparator()); - assertEquals(this.list, synchList); - } - - public void testHasListeners() { - assertFalse(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - CoordinatedList sortedSynchList = new CoordinatedList(this.sortedListModel); - assertTrue(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.sortedListModel.removeListChangeListener(ListValueModel.LIST_VALUES, sortedSynchList); - assertFalse(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - ChangeListener cl = new ChangeAdapter(); - this.sortedListModel.addChangeListener(cl); - assertTrue(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.sortedListModel.removeChangeListener(cl); - assertFalse(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - public void testListChange() { - this.listModel.add("fred"); - this.sortedListModel.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { - @Override - public void listChanged(ListChangeEvent e) {/* OK */} - }); - this.listModel.setListValues(Arrays.asList(new String[] {"foo", "bar", "baz"})); - assertEquals(3, this.sortedListModel.size()); - this.verifyList(this.list, this.sortedListModel); - } - - class TestListChangeListener implements ListChangeListener { - public void itemsAdded(ListAddEvent e) { - fail("unexpected event"); - } - public void itemsRemoved(ListRemoveEvent e) { - fail("unexpected event"); - } - public void itemsReplaced(ListReplaceEvent e) { - fail("unexpected event"); - } - public void itemsMoved(ListMoveEvent e) { - fail("unexpected event"); - } - public void listCleared(ListClearEvent e) { - fail("unexpected event"); - } - public void listChanged(ListChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticCollectionValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticCollectionValueModelTests.java deleted file mode 100644 index 920f57d506..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticCollectionValueModelTests.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Collection; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.model.value.StaticCollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class StaticCollectionValueModelTests extends TestCase { - - private static final Collection COLLECTION = buildCollection(); - private static Collection buildCollection() { - Collection result = new HashBag(); - result.add("foo"); - result.add("bar"); - return result; - } - - private CollectionValueModel collectionHolder; - - - public StaticCollectionValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.collectionHolder = this.buildCollectionHolder(); - } - - private CollectionValueModel buildCollectionHolder() { - return new StaticCollectionValueModel(COLLECTION); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - assertEquals(buildCollection(), CollectionTools.bag(this.collectionHolder.iterator())); - } - - public void testSize() { - assertEquals(buildCollection().size(), this.collectionHolder.size()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticListValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticListValueModelTests.java deleted file mode 100644 index 620a4ab071..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticListValueModelTests.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.List; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.StaticListValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class StaticListValueModelTests extends TestCase { - - private static final List LIST = buildList(); - private static List buildList() { - List result = new ArrayList(); - result.add("foo"); - result.add("bar"); - return result; - } - - private ListValueModel listHolder; - - - public StaticListValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.listHolder = new StaticListValueModel(LIST); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testGet() { - List expected = buildList(); - for (int i = 0; i < this.listHolder.size(); i++) { - assertEquals(expected.get(i), this.listHolder.get(i)); - } - } - - public void testIterator() { - assertEquals(buildList(), CollectionTools.list(this.listHolder.listIterator())); - } - - public void testSize() { - assertEquals(buildList().size(), this.listHolder.size()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticValueModelTests.java deleted file mode 100644 index 535a700f52..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/StaticValueModelTests.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class StaticValueModelTests extends TestCase { - private PropertyValueModel objectHolder; - private static final PropertyValueModel OBJECT_HOLDER = new StaticPropertyValueModel("foo"); - - - public StaticValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.objectHolder = OBJECT_HOLDER; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testValue() { - assertEquals("foo", this.objectHolder.getValue()); - } - - public void testToString() { - assertTrue(this.objectHolder.toString().indexOf("foo") >= 0); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TransformationListValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TransformationListValueModelTests.java deleted file mode 100644 index 78963bc685..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TransformationListValueModelTests.java +++ /dev/null @@ -1,339 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.Transformer; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.TransformationListValueModel; -import org.eclipse.jpt.common.utility.model.event.ListAddEvent; -import org.eclipse.jpt.common.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.common.utility.model.event.ListClearEvent; -import org.eclipse.jpt.common.utility.model.event.ListEvent; -import org.eclipse.jpt.common.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class TransformationListValueModelTests extends TestCase { - private SimpleListValueModel listHolder; - private ListValueModel transformedListHolder; - ListEvent event; - String eventType; - - private static final String ADD = "add"; - private static final String REMOVE = "remove"; - private static final String REPLACE = "replace"; - private static final String MOVE = "move"; - private static final String CLEAR = "clear"; - private static final String CHANGE = "change"; - - - public TransformationListValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.listHolder = new SimpleListValueModel(this.buildList()); - this.transformedListHolder = this.buildTransformedListHolder(this.listHolder); - } - - private List buildList() { - List result = new ArrayList(); - result.add("foo"); - result.add("bar"); - result.add("baz"); - return result; - } - - private List buildTransformedList() { - return this.transform(this.buildList()); - } - - private List transform(List list) { - List result = new ArrayList(list.size()); - for (String string : list) { - if (string == null) { - result.add(null); - } else { - result.add(string.toUpperCase()); - } - } - return result; - } - - private List buildAddList() { - List result = new ArrayList(); - result.add("joo"); - result.add("jar"); - result.add("jaz"); - return result; - } - - private List buildTransformedAddList() { - return this.transform(this.buildAddList()); - } - -// private List buildRemoveList() { -// List result = new ArrayList(); -// result.add("foo"); -// result.add("bar"); -// return result; -// } -// -// private List buildTransformedRemoveList() { -// return this.transform(this.buildRemoveList()); -// } -// - ListValueModel buildTransformedListHolder(ListValueModel lvm) { - return new TransformationListValueModel(lvm) { - @Override - protected String transformItem_(String s) { - return s.toUpperCase(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testIterator() { - this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - assertEquals(this.buildTransformedList(), CollectionTools.list(this.transformedListHolder.iterator())); - } - - public void testStaleValues() { - ListChangeListener listener = this.buildListener(); - this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, listener); - assertEquals(this.buildTransformedList(), CollectionTools.list(this.transformedListHolder.iterator())); - - this.transformedListHolder.removeListChangeListener(ListValueModel.LIST_VALUES, listener); - assertEquals(Collections.EMPTY_LIST, CollectionTools.list(this.transformedListHolder.iterator())); - } - - public void testSize() { - this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - assertEquals(this.buildTransformedList().size(), CollectionTools.size(this.transformedListHolder.iterator())); - } - - private boolean transformedListContains(Object item) { - return CollectionTools.contains(this.transformedListHolder.iterator(), item); - } - - private boolean transformedListContainsAll(Collection items) { - return CollectionTools.containsAll(this.transformedListHolder.iterator(), items); - } - - private boolean transformedListContainsAny(Collection items) { - List transformedList = CollectionTools.list(this.transformedListHolder.iterator()); - for (Iterator stream = items.iterator(); stream.hasNext(); ) { - if (transformedList.contains(stream.next())) { - return true; - } - } - return false; - } - - public void testAdd() { - this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - - assertFalse(this.transformedListContains("JOO")); - this.listHolder.add(2, "joo"); - assertTrue(this.transformedListContains("JOO")); - - assertFalse(this.transformedListContains(null)); - this.listHolder.add(0, null); - assertTrue(this.transformedListContains(null)); - } - - public void testAddAll() { - this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - - assertFalse(this.transformedListContainsAny(this.buildTransformedAddList())); - this.listHolder.addAll(2, this.buildAddList()); - assertTrue(this.transformedListContainsAll(this.buildTransformedAddList())); - } - - public void testRemove() { - this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - - assertTrue(this.transformedListContains("BAR")); - this.listHolder.remove(this.buildList().indexOf("bar")); - assertFalse(this.transformedListContains("BAR")); - - this.listHolder.add(1, null); - assertTrue(this.transformedListContains(null)); - this.listHolder.remove(1); - assertFalse(this.transformedListContains(null)); - } - - public void testListChangeGeneric() { - this.transformedListHolder.addChangeListener(this.buildListener()); - this.verifyListChange(); - } - - public void testListChangeNamed() { - this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener()); - this.verifyListChange(); - } - - private void verifyListChange() { - this.event = null; - this.eventType = null; - this.listHolder.add(1, "joo"); - this.verifyEvent(ADD, 1, "JOO"); - - this.event = null; - this.eventType = null; - this.listHolder.add(1, null); - this.verifyEvent(ADD, 1, null); - - this.event = null; - this.eventType = null; - this.listHolder.remove(1); - this.verifyEvent(REMOVE, 1, null); - - this.event = null; - this.eventType = null; - this.listHolder.remove(1); - this.verifyEvent(REMOVE, 1, "JOO"); - - this.event = null; - this.eventType = null; - this.listHolder.addAll(0, this.buildList()); - this.verifyEvent(ADD); - assertEquals(this.buildTransformedList(), CollectionTools.list(((ListAddEvent) this.event).getItems())); - - this.event = null; - this.eventType = null; - this.listHolder.set(0, "joo"); - this.verifyEvent(REPLACE); - assertFalse(CollectionTools.contains(((ListReplaceEvent) this.event).getNewItems(), "FOO")); - assertTrue(CollectionTools.contains(((ListReplaceEvent) this.event).getNewItems(), "JOO")); - } - - private ChangeListener buildListener() { - return new ChangeAdapter() { - @Override - public void itemsAdded(ListAddEvent e) { - TransformationListValueModelTests.this.eventType = ADD; - TransformationListValueModelTests.this.event = e; - } - @Override - public void itemsRemoved(ListRemoveEvent e) { - TransformationListValueModelTests.this.eventType = REMOVE; - TransformationListValueModelTests.this.event = e; - } - @Override - public void itemsReplaced(ListReplaceEvent e) { - TransformationListValueModelTests.this.eventType = REPLACE; - TransformationListValueModelTests.this.event = e; - } - @Override - public void itemsMoved(ListMoveEvent e) { - TransformationListValueModelTests.this.eventType = MOVE; - TransformationListValueModelTests.this.event = e; - } - @Override - public void listCleared(ListClearEvent e) { - TransformationListValueModelTests.this.eventType = CLEAR; - TransformationListValueModelTests.this.event = e; - } - @Override - public void listChanged(ListChangeEvent e) { - TransformationListValueModelTests.this.eventType = CHANGE; - TransformationListValueModelTests.this.event = e; - } - }; - } - - private void verifyEvent(String type) { - assertEquals(type, this.eventType); - assertEquals(this.transformedListHolder, this.event.getSource()); - assertEquals(ListValueModel.LIST_VALUES, this.event.getListName()); - } - - private void verifyEvent(String type, int index, Object item) { - this.verifyEvent(type); - if (type == ADD) { - assertEquals(index, ((ListAddEvent) this.event).getIndex()); - assertEquals(item, ((ListAddEvent) this.event).getItems().iterator().next()); - } else if (type == REMOVE) { - assertEquals(index, ((ListRemoveEvent) this.event).getIndex()); - assertEquals(item, ((ListRemoveEvent) this.event).getItems().iterator().next()); - } - } - - public void testHasListeners() { - /* - * adding listeners to the transformed list will cause listeners - * to be added to the wrapped list; - * likewise, removing listeners from the transformed list will - * cause listeners to be removed from the wrapped list - */ - assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - ChangeListener listener = this.buildListener(); - - this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, listener); - assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - this.transformedListHolder.removeListChangeListener(ListValueModel.LIST_VALUES, listener); - assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - this.transformedListHolder.addChangeListener(listener); - assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - this.transformedListHolder.removeChangeListener(listener); - assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - } - - - /** - * execute the same set of tests again, but by passing a Transformer to the adapter - * (as opposed to overriding #transformItem(Object)) - */ - public static class TransformerTests extends TransformationListValueModelTests { - public TransformerTests(String name) { - super(name); - } - @Override - ListValueModel buildTransformedListHolder(ListValueModel lvm) { - return new TransformationListValueModel(lvm, this.buildTransformer()); - } - private Transformer buildTransformer() { - return new Transformer() { - public String transform(String s) { - return (s == null) ? null : s.toUpperCase(); - } - }; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TransformationPropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TransformationPropertyValueModelTests.java deleted file mode 100644 index 8344919d69..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TransformationPropertyValueModelTests.java +++ /dev/null @@ -1,189 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.BidiTransformer; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.TransformationWritablePropertyValueModel; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class TransformationPropertyValueModelTests extends TestCase { - private WritablePropertyValueModel objectHolder; - PropertyChangeEvent event; - - private WritablePropertyValueModel transformationObjectHolder; - PropertyChangeEvent transformationEvent; - - public TransformationPropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.objectHolder = new SimplePropertyValueModel("foo"); - this.transformationObjectHolder = new TransformationWritablePropertyValueModel(this.objectHolder, this.buildTransformer()); - } - - private BidiTransformer buildTransformer() { - return new BidiTransformer() { - public String transform(String s) { - return (s == null) ? null : s.toUpperCase(); - } - public String reverseTransform(String s) { - return (s == null) ? null : s.toLowerCase(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testValue() { - assertEquals("foo", this.objectHolder.getValue()); - assertEquals("FOO", this.transformationObjectHolder.getValue()); - - this.objectHolder.setValue("bar"); - assertEquals("bar", this.objectHolder.getValue()); - assertEquals("BAR", this.transformationObjectHolder.getValue()); - - this.objectHolder.setValue("baz"); - assertEquals("baz", this.objectHolder.getValue()); - assertEquals("BAZ", this.transformationObjectHolder.getValue()); - - this.objectHolder.setValue(null); - assertNull(this.objectHolder.getValue()); - assertNull(this.transformationObjectHolder.getValue()); - - this.objectHolder.setValue("foo"); - assertEquals("foo", this.objectHolder.getValue()); - assertEquals("FOO", this.transformationObjectHolder.getValue()); - } - - public void testSetValue() { - this.transformationObjectHolder.setValue("BAR"); - assertEquals("bar", this.objectHolder.getValue()); - assertEquals("BAR", this.transformationObjectHolder.getValue()); - - this.transformationObjectHolder.setValue("Foo"); - assertEquals("foo", this.objectHolder.getValue()); - assertEquals("FOO", this.transformationObjectHolder.getValue()); - - this.transformationObjectHolder.setValue(null); - assertNull(this.objectHolder.getValue()); - assertNull(this.transformationObjectHolder.getValue()); - - this.transformationObjectHolder.setValue("baz"); - assertEquals("baz", this.objectHolder.getValue()); - assertEquals("BAZ", this.transformationObjectHolder.getValue()); - } - - public void testLazyListening() { - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - ChangeListener listener = this.buildTransformationListener(); - this.transformationObjectHolder.addChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.transformationObjectHolder.removeChangeListener(listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.transformationObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testPropertyChange1() { - this.objectHolder.addChangeListener(this.buildListener()); - this.transformationObjectHolder.addChangeListener(this.buildTransformationListener()); - this.verifyPropertyChanges(); - } - - public void testPropertyChange2() { - this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener()); - this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildTransformationListener()); - this.verifyPropertyChanges(); - } - - private void verifyPropertyChanges() { - this.event = null; - this.transformationEvent = null; - this.objectHolder.setValue("bar"); - this.verifyEvent(this.event, this.objectHolder, "foo", "bar"); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "FOO", "BAR"); - - this.event = null; - this.transformationEvent = null; - this.objectHolder.setValue("baz"); - this.verifyEvent(this.event, this.objectHolder, "bar", "baz"); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "BAR", "BAZ"); - - this.event = null; - this.transformationEvent = null; - this.objectHolder.setValue("Foo"); - this.verifyEvent(this.event, this.objectHolder, "baz", "Foo"); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "BAZ", "FOO"); - - this.event = null; - this.transformationEvent = null; - this.objectHolder.setValue("FOO"); - this.verifyEvent(this.event, this.objectHolder, "Foo", "FOO"); - assertNull(this.transformationEvent); - - this.event = null; - this.transformationEvent = null; - this.objectHolder.setValue(null); - this.verifyEvent(this.event, this.objectHolder, "FOO", null); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "FOO", null); - - this.event = null; - this.transformationEvent = null; - this.objectHolder.setValue("bar"); - this.verifyEvent(this.event, this.objectHolder, null, "bar"); - this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, null, "BAR"); - } - - private ChangeListener buildListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - TransformationPropertyValueModelTests.this.event = e; - } - }; - } - - private ChangeListener buildTransformationListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - TransformationPropertyValueModelTests.this.transformationEvent = e; - } - }; - } - - private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) { - assertEquals(source, e.getSource()); - assertEquals(PropertyValueModel.VALUE, e.getPropertyName()); - assertEquals(oldValue, e.getOldValue()); - assertEquals(newValue, e.getNewValue()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TreeAspectAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TreeAspectAdapterTests.java deleted file mode 100644 index 22ffb59825..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/TreeAspectAdapterTests.java +++ /dev/null @@ -1,362 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.iterators.ChainIterator; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TreeIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.TreeAspectAdapter; -import org.eclipse.jpt.common.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.common.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.common.utility.model.event.TreeEvent; -import org.eclipse.jpt.common.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.TreeChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.TreeValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class TreeAspectAdapterTests extends TestCase { - private TestSubject subject1; - private WritablePropertyValueModel subjectHolder1; - private TreeAspectAdapter> aa1; - private TreeEvent event1; - private TreeChangeListener listener1; - - private TestSubject subject2; - - - public TreeAspectAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.subject1 = new TestSubject(); - TestNode root, node; - - root = this.subject1.getRootNameNode(); - node = this.subject1.addName(root, "name 1.1"); - this.subject1.addName(node, "name 1.1.1"); - this.subject1.addName(node, "name 1.1.2"); - node = this.subject1.addName(root, "name 1.2"); - this.subject1.addName(node, "name 1.2.1"); - node = this.subject1.addName(root, "name 1.3"); - - root = this.subject1.getRootDescriptionNode(); - node = this.subject1.addDescription(root, "description 1.1"); - this.subject1.addDescription(node, "description 1.1.1"); - this.subject1.addDescription(node, "description 1.1.2"); - node = this.subject1.addDescription(root, "description 1.2"); - this.subject1.addDescription(node, "description 1.2.1"); - node = this.subject1.addDescription(root, "description 1.3"); - - this.subjectHolder1 = new SimplePropertyValueModel(this.subject1); - this.aa1 = this.buildAspectAdapter(this.subjectHolder1); - this.listener1 = this.buildValueChangeListener1(); - this.aa1.addTreeChangeListener(TreeValueModel.NODES, this.listener1); - this.event1 = null; - - this.subject2 = new TestSubject(); - - root = this.subject2.getRootNameNode(); - node = this.subject2.addName(root, "name 2.1"); - this.subject2.addName(node, "name 2.1.1"); - this.subject2.addName(node, "name 2.1.2"); - node = this.subject2.addName(root, "name 2.2"); - this.subject2.addName(node, "name 2.2.1"); - node = this.subject2.addName(root, "name 2.3"); - - root = this.subject2.getRootDescriptionNode(); - node = this.subject2.addDescription(root, "description 2.1"); - this.subject2.addDescription(node, "description 2.1.1"); - this.subject2.addDescription(node, "description 2.1.2"); - node = this.subject2.addDescription(root, "description 2.2"); - this.subject2.addDescription(node, "description 2.2.1"); - node = this.subject2.addDescription(root, "description 2.3"); - } - - private TreeAspectAdapter> buildAspectAdapter(PropertyValueModel subjectHolder) { - return new TreeAspectAdapter>(subjectHolder, TestSubject.NAMES_TREE) { - // this is not a typical aspect adapter - the value is determined by the aspect name - @Override - protected Iterator> nodes_() { - if (this.treeNames[0] == TestSubject.NAMES_TREE) { - return this.subject.namePaths(); - } - if (this.treeNames[0] == TestSubject.DESCRIPTIONS_TREE) { - return this.subject.descriptionPaths(); - } - throw new IllegalStateException("invalid aspect name: " + this.treeNames[0]); - } - }; - } - - private ChangeListener buildValueChangeListener1() { - return new ChangeAdapter() { - @Override - public void nodeAdded(TreeAddEvent e) { - TreeAspectAdapterTests.this.value1Changed(e); - } - @Override - public void nodeRemoved(TreeRemoveEvent e) { - TreeAspectAdapterTests.this.value1Changed(e); - } - @Override - public void treeCleared(TreeClearEvent e) { - TreeAspectAdapterTests.this.value1Changed(e); - } - @Override - public void treeChanged(TreeChangeEvent e) { - TreeAspectAdapterTests.this.value1Changed(e); - } - }; - } - - void value1Changed(TreeEvent e) { - this.event1 = e; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSubjectHolder() { - assertNull(this.event1); - - this.subjectHolder1.setValue(this.subject2); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(TreeValueModel.NODES, this.event1.getTreeName()); - - this.event1 = null; - this.subjectHolder1.setValue(null); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(TreeValueModel.NODES, this.event1.getTreeName()); - - this.event1 = null; - this.subjectHolder1.setValue(this.subject1); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(TreeValueModel.NODES, this.event1.getTreeName()); - } - - public void testTreeStructureChange() { - assertNull(this.event1); - - this.subject1.addTwoNames(this.subject1.getRootNameNode(), "jam", "jaz"); - assertNotNull(this.event1); - assertEquals(this.aa1, this.event1.getSource()); - assertEquals(TreeValueModel.NODES, this.event1.getTreeName()); - assertTrue(this.subject1.containsNameNode("jam")); - assertTrue(this.subject1.containsNameNode("jaz")); - } - - public void testNodes() { - assertEquals(this.convertToNames(this.subject1.namePaths()), this.convertToNames(this.aa1.nodes())); - } - - private Collection convertToNames(Iterator> namePaths) { - Collection result = new HashBag(); - while (namePaths.hasNext()) { - List path = namePaths.next(); - StringBuffer sb = new StringBuffer(); - sb.append('['); - for (int i = 0; i < path.size(); i++) { - sb.append(path.get(i).getText()); - if (i < path.size() - 1) { - sb.append(':'); - } - } - sb.append(']'); - result.add(sb.toString()); - } - return result; - } - - public void testHasListeners() { - assertTrue(this.aa1.hasAnyTreeChangeListeners(TreeValueModel.NODES)); - assertTrue(this.subject1.hasAnyTreeChangeListeners(TestSubject.NAMES_TREE)); - this.aa1.removeTreeChangeListener(TreeValueModel.NODES, this.listener1); - assertFalse(this.subject1.hasAnyTreeChangeListeners(TestSubject.NAMES_TREE)); - assertFalse(this.aa1.hasAnyTreeChangeListeners(TreeValueModel.NODES)); - - ChangeListener listener2 = this.buildValueChangeListener1(); - this.aa1.addChangeListener(listener2); - assertTrue(this.aa1.hasAnyTreeChangeListeners(TreeValueModel.NODES)); - assertTrue(this.subject1.hasAnyTreeChangeListeners(TestSubject.NAMES_TREE)); - this.aa1.removeChangeListener(listener2); - assertFalse(this.subject1.hasAnyTreeChangeListeners(TestSubject.NAMES_TREE)); - assertFalse(this.aa1.hasAnyTreeChangeListeners(TreeValueModel.NODES)); - } - - // ********** inner classes ********** - - class TestSubject extends AbstractModel { - private TestNode rootNameNode; - public static final String NAMES_TREE = "names"; - private TestNode rootDescriptionNode; - public static final String DESCRIPTIONS_TREE = "descriptions"; - - public TestSubject() { - this.rootNameNode = new TestNode("root name"); - this.rootDescriptionNode = new TestNode("root description"); - } - public TestNode getRootNameNode() { - return this.rootNameNode; - } - public Iterator nameNodes() { - return new TreeIterator(this.rootNameNode) { - @Override - public Iterator children(TestNode next) { - return next.children(); - } - }; - } - public Iterator> namePaths() { - return new TransformationIterator>(this.nameNodes()) { - @Override - protected List transform(TestNode next) { - return next.getPath(); - } - }; - } - public TestNode addName(TestNode parent, String name) { - TestNode child = new TestNode(name); - parent.addChild(child); - this.fireNodeAdded(NAMES_TREE, child.getPath()); - return child; - } - public void addTwoNames(TestNode parent, String name1, String name2) { - parent.addChild(new TestNode(name1)); - parent.addChild(new TestNode(name2)); - this.fireTreeChanged(NAMES_TREE, parent.getPath()); - } - public void removeNameNode(TestNode nameNode) { - nameNode.getParent().removeChild(nameNode); - this.fireNodeRemoved(NAMES_TREE, nameNode.getPath()); - } - public boolean containsNameNode(String name) { - return this.nameNode(name) != null; - } - public TestNode nameNode(String name) { - for (Iterator stream = this.nameNodes(); stream.hasNext(); ) { - TestNode node = stream.next(); - if (node.getText().equals(name)) { - return node; - } - } - return null; - } - public TestNode getRootDescriptionNode() { - return this.rootDescriptionNode; - } - public Iterator descriptionNodes() { - return new TreeIterator(this.rootDescriptionNode) { - @Override - public Iterator children(TestNode next) { - return next.children(); - } - }; - } - public Iterator> descriptionPaths() { - return new TransformationIterator>(this.descriptionNodes()) { - @Override - protected List transform(TestNode next) { - return next.getPath(); - } - }; - } - public TestNode addDescription(TestNode parent, String description) { - TestNode child = new TestNode(description); - parent.addChild(child); - this.fireNodeAdded(DESCRIPTIONS_TREE, child.getPath()); - return child; - } - public void removeDescriptionNode(TestNode descriptionNode) { - descriptionNode.getParent().removeChild(descriptionNode); - this.fireNodeRemoved(DESCRIPTIONS_TREE, descriptionNode.getPath()); - } - public boolean containsDescriptionNode(String name) { - for (Iterator stream = this.descriptionNodes(); stream.hasNext(); ) { - TestNode node = stream.next(); - if (node.getText().equals(name)) { - return true; - } - } - return false; - } - } - - class TestNode { - private final String text; - private TestNode parent; - private final Collection children; - - public TestNode(String text) { - this.text = text; - this.children = new HashBag(); - } - public String getText() { - return this.text; - } - public TestNode getParent() { - return this.parent; - } - private void setParent(TestNode parent) { - this.parent = parent; - } - public Iterator children() { - return new ReadOnlyIterator(this.children); - } - public void addChild(TestNode child) { - this.children.add(child); - child.setParent(this); - } - public void removeChild(TestNode child) { - this.children.remove(child); - } - public List getPath() { - return CollectionTools.reverseList(this.buildAntiPath()); - } - private Iterator buildAntiPath() { - return new ChainIterator(this) { - @Override - protected TestNode nextLink(TestNode currentLink) { - return currentLink.getParent(); - } - }; - } - @Override - public String toString() { - return "TestNode(" + this.text + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueCollectionAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueCollectionAdapterTests.java deleted file mode 100644 index 316c2c4812..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueCollectionAdapterTests.java +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.Collection; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.ValueCollectionAdapter; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ValueCollectionAdapterTests extends TestCase { - private Junk junk; - private SimplePropertyValueModel junkHolder; - private ValueCollectionAdapter junkHolder2; - - - public ValueCollectionAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.junk = new Junk("foo"); - this.junkHolder = new SimplePropertyValueModel(this.junk); - this.junkHolder2 = new ValueCollectionAdapter(this.junkHolder, Junk.STUFF_COLLECTION); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testWrappedPVM() { - Junk junk2 = new Junk("bar"); - LocalListener l = new LocalListener(this.junkHolder2, this.junk, junk2); - this.junkHolder2.addChangeListener(l); - this.junkHolder.setValue(junk2); - assertTrue(l.eventReceived()); - } - - public void testHasPropertyChangeListeners() throws Exception { - assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addChangeListener(l); - assertTrue(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.junkHolder2.removeChangeListener(l); - assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testHasStateChangeListeners() throws Exception { - assertFalse(this.junk.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION)); - assertFalse(this.junkHolder2.hasAnyStateChangeListeners()); - - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addStateChangeListener(l); - assertTrue(this.junk.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION)); - assertTrue(this.junkHolder2.hasAnyStateChangeListeners()); - - this.junkHolder2.removeStateChangeListener(l); - assertFalse(this.junk.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION)); - assertFalse(this.junkHolder2.hasAnyStateChangeListeners()); - } - - public void testCollectionAdd() { - LocalListener l = new LocalListener(this.junkHolder2); - this.junkHolder2.addStateChangeListener(l); - this.junk.addStuff("bar"); - assertTrue(l.eventReceived()); - } - - public void testCollectionRemove() { - LocalListener l = new LocalListener(this.junkHolder2); - this.junkHolder2.addStateChangeListener(l); - this.junk.removeStuff("foo"); - assertTrue(l.eventReceived()); - } - - - class LocalListener extends ChangeAdapter { - private boolean eventReceived = false; - private final Object source; - private final Object oldValue; - private final Object newValue; - LocalListener(Object source) { - this(source, null, null); - } - LocalListener(Object source, Object oldValue, Object newValue) { - super(); - this.source = source; - this.oldValue = oldValue; - this.newValue = newValue; - } - @Override - public void propertyChanged(PropertyChangeEvent e) { - this.eventReceived = true; - assertEquals(this.source, e.getSource()); - assertEquals(this.oldValue, e.getOldValue()); - assertEquals(this.newValue, e.getNewValue()); - assertEquals(PropertyValueModel.VALUE, e.getPropertyName()); - } - @Override - public void stateChanged(StateChangeEvent e) { - this.eventReceived = true; - assertEquals(this.source, e.getSource()); - } - boolean eventReceived() { - return this.eventReceived; - } - } - - - private class Junk extends AbstractModel { - private Collection stuff; - public static final String STUFF_COLLECTION = "stuff"; - - public Junk(String stuffItem) { - this.stuff = new ArrayList(); - this.stuff.add(stuffItem); - } - - public void addStuff(String stuffItem) { - this.addItemToCollection(stuffItem, this.stuff, STUFF_COLLECTION); - } - - public void removeStuff(String stuffItem) { - this.removeItemFromCollection(stuffItem, this.stuff, STUFF_COLLECTION); - } - - @Override - public String toString() { - return "Junk(" + this.stuff + ")"; - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueListAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueListAdapterTests.java deleted file mode 100644 index 4a447a431c..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueListAdapterTests.java +++ /dev/null @@ -1,169 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import java.util.ArrayList; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.ValueListAdapter; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ValueListAdapterTests extends TestCase { - private Junk junk; - private SimplePropertyValueModel junkHolder; - private ValueListAdapter junkHolder2; - - - public ValueListAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.junk = new Junk("foo"); - this.junkHolder = new SimplePropertyValueModel(this.junk); - this.junkHolder2 = new ValueListAdapter(this.junkHolder, Junk.STUFF_LIST); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testWrappedPVM() { - Junk junk2 = new Junk("bar"); - LocalListener l = new LocalListener(this.junkHolder2, this.junk, junk2); - this.junkHolder2.addChangeListener(l); - this.junkHolder.setValue(junk2); - assertTrue(l.eventReceived()); - } - - public void testHasPropertyChangeListeners() throws Exception { - assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addChangeListener(l); - assertTrue(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.junkHolder2.removeChangeListener(l); - assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testHasStateChangeListeners() throws Exception { - assertFalse(this.junk.hasAnyListChangeListeners(Junk.STUFF_LIST)); - assertFalse(this.junkHolder2.hasAnyStateChangeListeners()); - - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addStateChangeListener(l); - assertTrue(this.junk.hasAnyListChangeListeners(Junk.STUFF_LIST)); - assertTrue(this.junkHolder2.hasAnyStateChangeListeners()); - - this.junkHolder2.removeStateChangeListener(l); - assertFalse(this.junk.hasAnyListChangeListeners(Junk.STUFF_LIST)); - assertFalse(this.junkHolder2.hasAnyStateChangeListeners()); - } - - public void testListAdd() { - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addStateChangeListener(l); - this.junk.addStuff("bar"); - assertTrue(l.eventReceived()); - } - - public void testListRemove() { - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addStateChangeListener(l); - this.junk.removeStuff("foo"); - assertTrue(l.eventReceived()); - } - - public void testListReplace() { - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addStateChangeListener(l); - this.junk.replaceStuff("foo", "bar"); - assertTrue(l.eventReceived()); - } - - - class LocalListener extends ChangeAdapter { - private boolean eventReceived = false; - private final Object source; - private final Object oldValue; - private final Object newValue; - LocalListener(Object source) { - this(source, null, null); - } - LocalListener(Object source, Object oldValue, Object newValue) { - super(); - this.source = source; - this.oldValue = oldValue; - this.newValue = newValue; - } - @Override - public void propertyChanged(PropertyChangeEvent e) { - this.eventReceived = true; - assertEquals(this.source, e.getSource()); - assertEquals(this.oldValue, e.getOldValue()); - assertEquals(this.newValue, e.getNewValue()); - assertEquals(PropertyValueModel.VALUE, e.getPropertyName()); - } - @Override - public void stateChanged(StateChangeEvent e) { - this.eventReceived = true; - assertEquals(this.source, e.getSource()); - } - boolean eventReceived() { - return this.eventReceived; - } - } - - private class Junk extends AbstractModel { - private List stuff; - public static final String STUFF_LIST = "stuff"; - - public Junk(String stuffItem) { - this.stuff = new ArrayList(); - this.stuff.add(stuffItem); - } - - public void addStuff(String stuffItem) { - this.addItemToList(stuffItem, this.stuff, STUFF_LIST); - } - - public void removeStuff(String stuffItem) { - this.removeItemFromList(stuffItem, this.stuff, STUFF_LIST); - } - - public void replaceStuff(String oldStuffItem, String newStuffItem) { - this.replaceItemInList(oldStuffItem, newStuffItem, this.stuff, STUFF_LIST); - } - - @Override - public String toString() { - return "Junk(" + this.stuff + ")"; - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValuePropertyAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValuePropertyAdapterTests.java deleted file mode 100644 index c3f5be6675..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValuePropertyAdapterTests.java +++ /dev/null @@ -1,145 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.ValuePropertyAdapter; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ValuePropertyAdapterTests extends TestCase { - private Junk junk; - private SimplePropertyValueModel junkHolder; - private ValuePropertyAdapter junkHolder2; - - - public ValuePropertyAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.junk = new Junk("foo"); - this.junkHolder = new SimplePropertyValueModel(this.junk); - this.junkHolder2 = new ValuePropertyAdapter(this.junkHolder, Junk.NAME_PROPERTY); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testWrappedPVM() { - Junk junk2 = new Junk("bar"); - LocalListener l = new LocalListener(this.junkHolder2, this.junk, junk2); - this.junkHolder2.addChangeListener(l); - this.junkHolder.setValue(junk2); - assertTrue(l.eventReceived()); - } - - public void testHasPropertyChangeListeners() throws Exception { - assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addChangeListener(l); - assertTrue(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.junkHolder2.removeChangeListener(l); - assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testHasStateChangeListeners() throws Exception { - assertFalse(this.junk.hasAnyPropertyChangeListeners(Junk.NAME_PROPERTY)); - assertFalse(this.junkHolder2.hasAnyStateChangeListeners()); - - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addStateChangeListener(l); - assertTrue(this.junk.hasAnyPropertyChangeListeners(Junk.NAME_PROPERTY)); - assertTrue(this.junkHolder2.hasAnyStateChangeListeners()); - - this.junkHolder2.removeStateChangeListener(l); - assertFalse(this.junk.hasAnyPropertyChangeListeners(Junk.NAME_PROPERTY)); - assertFalse(this.junkHolder2.hasAnyStateChangeListeners()); - } - - public void testChangeProperty() { - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addStateChangeListener(l); - this.junk.setName("bar"); - assertTrue(l.eventReceived()); - } - - - class LocalListener extends ChangeAdapter { - private boolean eventReceived = false; - private final Object source; - private final Object oldValue; - private final Object newValue; - LocalListener(Object source) { - this(source, null, null); - } - LocalListener(Object source, Object oldValue, Object newValue) { - super(); - this.source = source; - this.oldValue = oldValue; - this.newValue = newValue; - } - @Override - public void propertyChanged(PropertyChangeEvent e) { - this.eventReceived = true; - assertEquals(this.source, e.getSource()); - assertEquals(this.oldValue, e.getOldValue()); - assertEquals(this.newValue, e.getNewValue()); - assertEquals(PropertyValueModel.VALUE, e.getPropertyName()); - } - @Override - public void stateChanged(StateChangeEvent e) { - this.eventReceived = true; - assertEquals(this.source, e.getSource()); - } - boolean eventReceived() { - return this.eventReceived; - } - } - - class Junk extends AbstractModel { - private String name; - public static final String NAME_PROPERTY = "name"; - - public Junk(String name) { - this.name = name; - } - - public void setName(String name) { - String old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - - @Override - public String toString() { - return "Junk(" + this.name + ")"; - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueStateAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueStateAdapterTests.java deleted file mode 100644 index d23581257a..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/ValueStateAdapterTests.java +++ /dev/null @@ -1,145 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.ValueStateAdapter; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ValueStateAdapterTests extends TestCase { - private Junk junk; - private SimplePropertyValueModel junkHolder; - private ValueStateAdapter junkHolder2; - - - public ValueStateAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.junk = new Junk("foo"); - this.junkHolder = new SimplePropertyValueModel(this.junk); - this.junkHolder2 = new ValueStateAdapter(this.junkHolder); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testWrappedPVM() { - Junk junk2 = new Junk("bar"); - LocalListener l = new LocalListener(this.junkHolder2, this.junk, junk2); - this.junkHolder2.addChangeListener(l); - this.junkHolder.setValue(junk2); - assertTrue(l.eventReceived()); - } - - public void testHasPropertyChangeListeners() throws Exception { - assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addChangeListener(l); - assertTrue(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - this.junkHolder2.removeChangeListener(l); - assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - public void testHasStateChangeListeners() throws Exception { - assertFalse(this.junk.hasAnyStateChangeListeners()); - assertFalse(this.junkHolder2.hasAnyStateChangeListeners()); - - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addStateChangeListener(l); - assertTrue(this.junk.hasAnyStateChangeListeners()); - assertTrue(this.junkHolder2.hasAnyStateChangeListeners()); - - this.junkHolder2.removeStateChangeListener(l); - assertFalse(this.junk.hasAnyStateChangeListeners()); - assertFalse(this.junkHolder2.hasAnyStateChangeListeners()); - } - - public void testChangeState() { - LocalListener l = new LocalListener(this.junkHolder2, null, this.junk); - this.junkHolder2.addChangeListener(l); - this.junkHolder2.addStateChangeListener(l); - this.junk.setName("bar"); - assertTrue(l.eventReceived()); - } - - - class LocalListener extends ChangeAdapter { - private boolean eventReceived = false; - private final Object source; - private final Object oldValue; - private final Object newValue; - LocalListener(Object source) { - this(source, null, null); - } - LocalListener(Object source, Object oldValue, Object newValue) { - super(); - this.source = source; - this.oldValue = oldValue; - this.newValue = newValue; - } - @Override - public void propertyChanged(PropertyChangeEvent e) { - this.eventReceived = true; - assertEquals(this.source, e.getSource()); - assertEquals(this.oldValue, e.getOldValue()); - assertEquals(this.newValue, e.getNewValue()); - assertEquals(PropertyValueModel.VALUE, e.getPropertyName()); - } - @Override - public void stateChanged(StateChangeEvent e) { - this.eventReceived = true; - assertEquals(this.source, e.getSource()); - } - boolean eventReceived() { - return this.eventReceived; - } - } - - class Junk extends AbstractModel { - private String name; - public static final String NAME_PROPERTY = "name"; - - public Junk(String name) { - this.name = name; - } - - public void setName(String name) { - this.name = name; - this.fireStateChanged(); - } - - @Override - public String toString() { - return "Junk(" + this.name + ")"; - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/JptUtilityModelValuePrefsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/JptUtilityModelValuePrefsTests.java deleted file mode 100644 index ad966a9607..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/JptUtilityModelValuePrefsTests.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.prefs; - -import junit.framework.Test; -import junit.framework.TestSuite; - -public class JptUtilityModelValuePrefsTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityModelValuePrefsTests.class.getPackage().getName()); - - suite.addTestSuite(PreferencesCollectionValueModelTests.class); - suite.addTestSuite(PreferencePropertyValueModelTests.class); - - return suite; - } - - private JptUtilityModelValuePrefsTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencePropertyValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencePropertyValueModelTests.java deleted file mode 100644 index 35ea6e729f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencePropertyValueModelTests.java +++ /dev/null @@ -1,398 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.prefs; - -import java.util.prefs.NodeChangeEvent; -import java.util.prefs.NodeChangeListener; -import java.util.prefs.PreferenceChangeEvent; -import java.util.prefs.PreferenceChangeListener; -import java.util.prefs.Preferences; - -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.prefs.PreferencePropertyValueModel; -import org.eclipse.jpt.common.utility.model.Model; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -@SuppressWarnings("nls") -public class PreferencePropertyValueModelTests extends PreferencesTestCase { - private WritablePropertyValueModel nodeHolder; - PreferencePropertyValueModel preferenceAdapter; - PropertyChangeEvent event; - PropertyChangeListener listener; - boolean listenerRemoved = false; - PreferenceChangeEvent preferenceEvent; - private static final String KEY_NAME = "foo"; - private static final String STRING_VALUE = "original string value"; - - public PreferencePropertyValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.testNode.put(KEY_NAME, STRING_VALUE); - - this.nodeHolder = new SimplePropertyValueModel(this.testNode); - this.preferenceAdapter = new PreferencePropertyValueModel(this.nodeHolder, KEY_NAME); - this.listener = this.buildValueChangeListener(); - this.preferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener); - this.event = null; - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - } - - private PropertyChangeListener buildValueChangeListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - if (PreferencePropertyValueModelTests.this.event != null) { - throw new IllegalStateException("unexpected this.event: " + e); - } - PreferencePropertyValueModelTests.this.event = e; - } - }; - } - - public void testSubjectHolder() throws Exception { - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - assertNull(this.event); - - String ANOTHER_STRING_VALUE = "some other value"; - Preferences anotherNode = this.classNode.node("another test node"); - anotherNode.put(KEY_NAME, ANOTHER_STRING_VALUE); - - this.nodeHolder.setValue(anotherNode); - this.verifyEvent(STRING_VALUE, ANOTHER_STRING_VALUE); - assertEquals(ANOTHER_STRING_VALUE, this.preferenceAdapter.getValue()); - - this.event = null; - this.nodeHolder.setValue(null); - this.verifyEvent(ANOTHER_STRING_VALUE, null); - assertNull(this.preferenceAdapter.getValue()); - - this.event = null; - this.nodeHolder.setValue(this.testNode); - this.verifyEvent(null, STRING_VALUE); - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - } - - public void testPreferenceChange() throws Exception { - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - assertNull(this.event); - - this.testNode.put(KEY_NAME, STRING_VALUE + STRING_VALUE); - this.waitForEventQueueToClear(); - this.verifyEvent(STRING_VALUE, STRING_VALUE + STRING_VALUE); - assertEquals(STRING_VALUE + STRING_VALUE, this.preferenceAdapter.getValue()); - - this.event = null; - this.testNode.remove(KEY_NAME); - this.waitForEventQueueToClear(); - this.verifyEvent(STRING_VALUE + STRING_VALUE, null); - assertNull(this.preferenceAdapter.getValue()); - - this.event = null; - this.testNode.put(KEY_NAME, STRING_VALUE); - this.waitForEventQueueToClear(); - this.verifyEvent(null, STRING_VALUE); - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - } - - public void testValue() throws Exception { - assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, "")); - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - } - - public void testSetValue() throws Exception { - String ANOTHER_STRING_VALUE = "some other value"; - this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE); - assertEquals(ANOTHER_STRING_VALUE, this.preferenceAdapter.getValue()); - assertEquals(ANOTHER_STRING_VALUE, this.testNode.get(KEY_NAME, "")); - } - - public void testHasListeners() throws Exception { - assertTrue(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(this.nodeHasAnyPrefListeners(this.testNode)); - this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener); - assertFalse(this.nodeHasAnyPrefListeners(this.testNode)); - assertFalse(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - ChangeListener listener2 = this.buildChangeListener(); - this.preferenceAdapter.addChangeListener(listener2); - assertTrue(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - assertTrue(this.nodeHasAnyPrefListeners(this.testNode)); - this.preferenceAdapter.removeChangeListener(listener2); - assertFalse(this.nodeHasAnyPrefListeners(this.testNode)); - assertFalse(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - private ChangeListener buildChangeListener() { - return new ChangeAdapter() { - @Override - public void propertyChanged(PropertyChangeEvent e) { - if (PreferencePropertyValueModelTests.this.event != null) { - throw new IllegalStateException("unexpected this.event: " + e); - } - PreferencePropertyValueModelTests.this.event = e; - } - }; - } - - public void testRemoveAndReAddPreference() throws Exception { - assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, null)); - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - assertNull(this.event); - - // remove the preference entirely... - this.testNode.remove(KEY_NAME); - this.waitForEventQueueToClear(); - assertNull(this.testNode.get(KEY_NAME, null)); - this.verifyEvent(STRING_VALUE, null); - assertNull(this.preferenceAdapter.getValue()); - - // ...then re-add it with the same key - this.event = null; - this.testNode.put(KEY_NAME, STRING_VALUE); - this.waitForEventQueueToClear(); - assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, null)); - this.verifyEvent(null, STRING_VALUE); - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - } - - public void testDefaultValue() throws Exception { - // rebuild the adapter with a default value - String DEFAULT_VALUE = "default value"; - this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener); - this.preferenceAdapter = new PreferencePropertyValueModel(this.nodeHolder, KEY_NAME, DEFAULT_VALUE); - this.preferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener); - - assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, null)); - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - assertNull(this.event); - - // remove the preference entirely... - this.testNode.remove(KEY_NAME); - this.waitForEventQueueToClear(); - assertNull(this.testNode.get(KEY_NAME, null)); - this.verifyEvent(STRING_VALUE, DEFAULT_VALUE); - assertEquals(DEFAULT_VALUE, this.preferenceAdapter.getValue()); - - // ...then re-add it with the same key - this.event = null; - this.testNode.put(KEY_NAME, STRING_VALUE); - this.waitForEventQueueToClear(); - assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, null)); - this.verifyEvent(DEFAULT_VALUE, STRING_VALUE); - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - } - - public void testUnsynchronizedValue() throws Exception { - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - assertNull(this.event); - - // remove the this.listener so the adapter no longer listens to the preference - this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener); - - this.testNode.put(KEY_NAME, STRING_VALUE + STRING_VALUE); - this.waitForEventQueueToClear(); - // no this.event should have been fired... - assertNull(this.event); - // ...and the adapter's value should be null - assertNull(this.preferenceAdapter.getValue()); - - this.testNode.remove(KEY_NAME); - this.waitForEventQueueToClear(); - assertNull(this.event); - assertNull(this.preferenceAdapter.getValue()); - - this.testNode.put(KEY_NAME, STRING_VALUE); - this.waitForEventQueueToClear(); - assertNull(this.event); - assertNull(this.preferenceAdapter.getValue()); - - // add the this.listener so the adapter synchs - this.preferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener); - assertEquals(STRING_VALUE, this.preferenceAdapter.getValue()); - } - - public void testIntegerPreference() throws Exception { - // stop listening to the node and convert it to an integer - this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener); - - PreferencePropertyValueModel integerPreferenceAdapter = new PreferencePropertyValueModel(this.nodeHolder, KEY_NAME); - this.testNode.putInt(KEY_NAME, 123); - integerPreferenceAdapter = PreferencePropertyValueModel.forInteger(this.testNode, KEY_NAME, 0); - integerPreferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener); - assertEquals(new Integer(123), integerPreferenceAdapter.getValue()); - assertNull(this.event); - - this.testNode.putInt(KEY_NAME, 246); - this.waitForEventQueueToClear(); - this.verifyEvent(integerPreferenceAdapter, new Integer(123), new Integer(246)); - assertEquals(new Integer(246), integerPreferenceAdapter.getValue()); - - this.event = null; - this.testNode.remove(KEY_NAME); - this.waitForEventQueueToClear(); - this.verifyEvent(integerPreferenceAdapter, new Integer(246), new Integer(0)); - assertEquals(new Integer(0), integerPreferenceAdapter.getValue()); - - this.event = null; - this.testNode.putInt(KEY_NAME, 123); - this.waitForEventQueueToClear(); - this.verifyEvent(integerPreferenceAdapter, new Integer(0), new Integer(123)); - assertEquals(new Integer(123), integerPreferenceAdapter.getValue()); - } - - /** - * test a situation where - * - we are listening to the node when it gets removed from the preferences "repository" - * - we get notification that it has been removed - * - we try to remove our this.listener - * - the node will throw an IllegalStateException - the adapter should handle it OK... - */ - public void testRemoveNode() throws Exception { - assertTrue(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - Preferences parent = this.testNode.parent(); - parent.addNodeChangeListener(this.buildParentNodeChangeListener()); - this.testNode.removeNode(); - this.testNode.flush(); // this seems to be required for the this.event to trigger... - this.waitForEventQueueToClear(); - - assertTrue(this.listenerRemoved); - assertTrue(this.preferenceAdapter.hasNoPropertyChangeListeners(PropertyValueModel.VALUE)); - } - - private NodeChangeListener buildParentNodeChangeListener() { - return new NodeChangeListener() { - public void childAdded(NodeChangeEvent e) { - throw new IllegalStateException("unexpected this.event: " + e); - } - public void childRemoved(NodeChangeEvent e) { - if (e.getChild() == PreferencePropertyValueModelTests.this.testNode) { - PreferencePropertyValueModelTests.this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, PreferencePropertyValueModelTests.this.listener); - // this line of code will not execute if the line above triggers an exception - PreferencePropertyValueModelTests.this.listenerRemoved = true; - } - } - }; - } - - public void testSetSameValue() { - assertNull(this.event); - assertNull(this.preferenceEvent); - this.testNode.addPreferenceChangeListener(this.buildPreferenceChangeListener()); - - String ANOTHER_STRING_VALUE = "some other value"; - this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE); - - this.verifyEvent(STRING_VALUE, ANOTHER_STRING_VALUE); - this.waitForEventQueueToClear(); - this.verifyPreferenceEvent(ANOTHER_STRING_VALUE); - - // now set to *same* value - nothing should happen... - this.event = null; - this.preferenceEvent = null; - this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE); - - assertNull(this.event); - assertNull(this.preferenceEvent); - } - - public void testSetSameValueForcePassThrough() throws Exception { - assertNull(this.event); - assertNull(this.preferenceEvent); - - this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener); - this.preferenceAdapter = new AlwaysUpdatePreferencePropertyValueModel(this.nodeHolder, KEY_NAME); - this.preferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener); - - this.testNode.addPreferenceChangeListener(this.buildPreferenceChangeListener()); - - String ANOTHER_STRING_VALUE = "some other value"; - this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE); - - this.verifyEvent(STRING_VALUE, ANOTHER_STRING_VALUE); - this.waitForEventQueueToClear(); - this.verifyPreferenceEvent(ANOTHER_STRING_VALUE); - - // now set to *same* value - only one this.event should fire - this.event = null; - this.preferenceEvent = null; - this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE); - - assertNull(this.event); - this.waitForEventQueueToClear(); - this.verifyPreferenceEvent(ANOTHER_STRING_VALUE); - assertNull(this.event); - } - - private PreferenceChangeListener buildPreferenceChangeListener() { - return new PreferenceChangeListener() { - public void preferenceChange(PreferenceChangeEvent evt) { - PreferencePropertyValueModelTests.this.preferenceEvent = evt; - } - }; - } - - private void verifyEvent(Model source, Object oldValue, Object newValue) { - assertNotNull(this.event); - assertEquals(source, this.event.getSource()); - assertEquals(PropertyValueModel.VALUE, this.event.getPropertyName()); - assertEquals(oldValue, this.event.getOldValue()); - assertEquals(newValue, this.event.getNewValue()); - } - - private void verifyEvent(Object oldValue, Object newValue) { - this.verifyEvent(this.preferenceAdapter, oldValue, newValue); - } - - private void verifyPreferenceEvent(Object newValue) { - assertNotNull(this.preferenceEvent); - assertEquals(this.testNode, this.preferenceEvent.getSource()); - assertEquals(KEY_NAME, this.preferenceEvent.getKey()); - assertEquals(newValue, this.preferenceEvent.getNewValue()); - assertEquals(newValue, this.testNode.get(KEY_NAME, "")); - } - - private boolean nodeHasAnyPrefListeners(Preferences node) throws Exception { - PreferenceChangeListener[] prefListeners = (PreferenceChangeListener[]) ReflectionTools.getFieldValue(node, "prefListeners"); - return prefListeners.length > 0; - } - - - /** - * Use this adapter to test out always passing through the new value - * to the preference. - */ - private class AlwaysUpdatePreferencePropertyValueModel

extends PreferencePropertyValueModel

{ - - AlwaysUpdatePreferencePropertyValueModel(PropertyValueModel preferencesHolder, String key) { - super(preferencesHolder, key); - } - - @Override - protected boolean preferenceIsToBeSet(Object oldValue, Object newValue) { - return true; - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencesCollectionValueModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencesCollectionValueModelTests.java deleted file mode 100644 index ed7e6ff7d8..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencesCollectionValueModelTests.java +++ /dev/null @@ -1,312 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.prefs; - -import java.util.HashMap; -import java.util.Map; -import java.util.prefs.NodeChangeEvent; -import java.util.prefs.NodeChangeListener; -import java.util.prefs.PreferenceChangeListener; -import java.util.prefs.Preferences; - -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.prefs.PreferencePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.prefs.PreferencesCollectionValueModel; -import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionEvent; -import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ChangeAdapter; -import org.eclipse.jpt.common.utility.model.listener.ChangeListener; -import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -@SuppressWarnings("nls") -public class PreferencesCollectionValueModelTests extends PreferencesTestCase { - private Map expectedValues; - private WritablePropertyValueModel nodeHolder; - PreferencesCollectionValueModel preferencesAdapter; - CollectionEvent event; - CollectionChangeListener listener; - private PropertyChangeListener itemListener; - boolean listenerRemoved = false; - private static final String KEY_NAME_1 = "foo 1"; - private static final String KEY_NAME_2 = "foo 2"; - private static final String KEY_NAME_3 = "foo 3"; - private static final String STRING_VALUE_1 = "original string value 1"; - private static final String STRING_VALUE_2 = "original string value 2"; - private static final String STRING_VALUE_3 = "original string value 3"; - - public PreferencesCollectionValueModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.expectedValues = new HashMap(); - this.testNode.put(KEY_NAME_1, STRING_VALUE_1); this.expectedValues.put(KEY_NAME_1, STRING_VALUE_1); - this.testNode.put(KEY_NAME_2, STRING_VALUE_2); this.expectedValues.put(KEY_NAME_2, STRING_VALUE_2); - this.testNode.put(KEY_NAME_3, STRING_VALUE_3); this.expectedValues.put(KEY_NAME_3, STRING_VALUE_3); - - this.nodeHolder = new SimplePropertyValueModel(this.testNode); - this.preferencesAdapter = new PreferencesCollectionValueModel(this.nodeHolder); - this.listener = this.buildCollectionChangeListener(); - this.itemListener = this.buildItemListener(); - this.preferencesAdapter.addCollectionChangeListener(CollectionValueModel.VALUES, this.listener); - this.event = null; - } - - private CollectionChangeListener buildCollectionChangeListener() { - return new CollectionChangeListener() { - public void collectionChanged(CollectionChangeEvent e) { - this.logEvent(e); - } - public void collectionCleared(CollectionClearEvent e) { - this.logEvent(e); - } - public void itemsAdded(CollectionAddEvent e) { - this.logEvent(e); - } - public void itemsRemoved(CollectionRemoveEvent e) { - this.logEvent(e); - } - private void logEvent(CollectionEvent e) { - if (PreferencesCollectionValueModelTests.this.event != null) { - throw new IllegalStateException("unexpected this.event: " + e); - } - PreferencesCollectionValueModelTests.this.event = e; - } - }; - } - - private PropertyChangeListener buildItemListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - throw new IllegalStateException("unexpected this.event: " + e); - } - }; - } - - public void testSubjectHolder() throws Exception { - this.verifyAdapter(this.preferencesAdapter); - assertNull(this.event); - - String ANOTHER_KEY_NAME_1 = "another key 1"; - String ANOTHER_KEY_NAME_2 = "another key 2"; - String ANOTHER_KEY_NAME_3 = "another key 3"; - String ANOTHER_STRING_VALUE_1 = "another string value 1"; - String ANOTHER_STRING_VALUE_2 = "another string value 2"; - String ANOTHER_STRING_VALUE_3 = "another string value 3"; - Preferences anotherNode = this.classNode.node("another test node"); - this.expectedValues.clear(); - anotherNode.put(ANOTHER_KEY_NAME_1, ANOTHER_STRING_VALUE_1); this.expectedValues.put(ANOTHER_KEY_NAME_1, ANOTHER_STRING_VALUE_1); - anotherNode.put(ANOTHER_KEY_NAME_2, ANOTHER_STRING_VALUE_2); this.expectedValues.put(ANOTHER_KEY_NAME_2, ANOTHER_STRING_VALUE_2); - anotherNode.put(ANOTHER_KEY_NAME_3, ANOTHER_STRING_VALUE_3); this.expectedValues.put(ANOTHER_KEY_NAME_3, ANOTHER_STRING_VALUE_3); - - this.nodeHolder.setValue(anotherNode); - // collectionChanged does not pass any items in the this.event - this.verifyEvent(); - this.verifyAdapter(this.preferencesAdapter); - - this.event = null; - this.expectedValues.clear(); - this.nodeHolder.setValue(null); - this.verifyEvent(); - assertFalse(this.preferencesAdapter.iterator().hasNext()); - - this.event = null; - this.nodeHolder.setValue(this.testNode); - this.verifyEvent(); - this.expectedValues.clear(); - this.expectedValues.put(KEY_NAME_1, STRING_VALUE_1); - this.expectedValues.put(KEY_NAME_2, STRING_VALUE_2); - this.expectedValues.put(KEY_NAME_3, STRING_VALUE_3); - this.verifyAdapter(this.preferencesAdapter); - } - - public void testAddPreference() throws Exception { - this.verifyAdapter(this.preferencesAdapter); - assertNull(this.event); - - String ANOTHER_KEY_NAME = "another key"; - String ANOTHER_STRING_VALUE = "another string value"; - this.testNode.put(ANOTHER_KEY_NAME, ANOTHER_STRING_VALUE); - this.waitForEventQueueToClear(); - Map expectedItems = new HashMap(); - expectedItems.put(ANOTHER_KEY_NAME, ANOTHER_STRING_VALUE); - this.verifyEvent(expectedItems); - this.expectedValues.put(ANOTHER_KEY_NAME, ANOTHER_STRING_VALUE); - this.verifyAdapter(this.preferencesAdapter); - } - - public void testRemovePreference() throws Exception { - this.verifyAdapter(this.preferencesAdapter); - assertNull(this.event); - - this.testNode.remove(KEY_NAME_2); - this.waitForEventQueueToClear(); - - assertNotNull(this.event); - assertEquals(this.preferencesAdapter, this.event.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event.getCollectionName()); - assertEquals(1, ((CollectionRemoveEvent) this.event).getItemsSize()); - @SuppressWarnings("unchecked") - String key = ((PreferencePropertyValueModel) ((CollectionRemoveEvent) this.event).getItems().iterator().next()).getKey(); - assertEquals(KEY_NAME_2, key); - - this.expectedValues.remove(KEY_NAME_2); - this.verifyAdapter(this.preferencesAdapter); - } - - public void testChangePreference() throws Exception { - this.verifyAdapter(this.preferencesAdapter); - assertNull(this.event); - - String DIFFERENT = "something completely different"; - this.testNode.put(KEY_NAME_2, DIFFERENT); - this.waitForEventQueueToClear(); - - assertNull(this.event); - - this.expectedValues.put(KEY_NAME_2, DIFFERENT); - this.verifyAdapter(this.preferencesAdapter); - } - - public void testValues() throws Exception { - this.verifyNode(this.testNode); - this.verifyAdapter(this.preferencesAdapter); - } - - /** - * test a situation where - * - we are listening to the node when it gets removed from the preferences "repository" - * - we get notification that it has been removed - * - we try to remove our this.listener - * - the node will throw an IllegalStateException - the adapter should handle it OK... - */ - public void testRemoveNode() throws Exception { - assertTrue(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - - Preferences parent = this.testNode.parent(); - parent.addNodeChangeListener(this.buildParentNodeChangeListener()); - this.testNode.removeNode(); - this.testNode.flush(); // this seems to be required for the this.event to trigger... - this.waitForEventQueueToClear(); - - assertTrue(this.listenerRemoved); - assertFalse(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - } - - private NodeChangeListener buildParentNodeChangeListener() { - return new NodeChangeListener() { - public void childAdded(NodeChangeEvent e) { - throw new IllegalStateException("unexpected this.event: " + e); - } - public void childRemoved(NodeChangeEvent e) { - if (e.getChild() == PreferencesCollectionValueModelTests.this.testNode) { - PreferencesCollectionValueModelTests.this.preferencesAdapter.removeCollectionChangeListener(CollectionValueModel.VALUES, PreferencesCollectionValueModelTests.this.listener); - // this line of code will not execute if the line above triggers an exception - PreferencesCollectionValueModelTests.this.listenerRemoved = true; - } - } - }; - } - - public void testHasListeners() throws Exception { - assertTrue(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - assertTrue(this.nodeHasAnyPrefListeners(this.testNode)); - this.preferencesAdapter.removeCollectionChangeListener(CollectionValueModel.VALUES, this.listener); - assertFalse(this.nodeHasAnyPrefListeners(this.testNode)); - assertFalse(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - - ChangeListener listener2 = this.buildChangeListener(); - this.preferencesAdapter.addChangeListener(listener2); - assertTrue(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - assertTrue(this.nodeHasAnyPrefListeners(this.testNode)); - this.preferencesAdapter.removeChangeListener(listener2); - assertFalse(this.nodeHasAnyPrefListeners(this.testNode)); - assertFalse(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES)); - } - - private ChangeListener buildChangeListener() { - return new ChangeAdapter() { - @Override - public void collectionChanged(CollectionChangeEvent e) { - this.logEvent(e); - } - @Override - public void collectionCleared(CollectionClearEvent e) { - this.logEvent(e); - } - @Override - public void itemsAdded(CollectionAddEvent e) { - this.logEvent(e); - } - @Override - public void itemsRemoved(CollectionRemoveEvent e) { - this.logEvent(e); - } - private void logEvent(CollectionEvent e) { - if (PreferencesCollectionValueModelTests.this.event != null) { - throw new IllegalStateException("unexpected this.event: " + e); - } - PreferencesCollectionValueModelTests.this.event = e; - } - }; - } - - private void verifyEvent(Map items) { - this.verifyEvent(); - assertEquals(items.size(), ((CollectionAddEvent) this.event).getItemsSize()); - @SuppressWarnings("unchecked") - Iterable> eventItems = (Iterable>) ((CollectionAddEvent) this.event).getItems(); - this.verifyItems(items, eventItems); - } - - private void verifyEvent() { - assertNotNull(this.event); - assertEquals(this.preferencesAdapter, this.event.getSource()); - assertEquals(CollectionValueModel.VALUES, this.event.getCollectionName()); - } - - private void verifyNode(Preferences node) throws Exception { - String[] keys = node.keys(); - assertEquals(this.expectedValues.size(), keys.length); - for (int i = 0; i < keys.length; i++) { - assertEquals(this.expectedValues.get(keys[i]), node.get(keys[i], "")); - } - } - - private void verifyAdapter(PreferencesCollectionValueModel cvm) { - assertEquals(this.expectedValues.size(), cvm.size()); - this.verifyItems(this.expectedValues, cvm); - } - - private void verifyItems(Map expected, Iterable> actual) { - for (PreferencePropertyValueModel model : actual) { - model.addPropertyChangeListener(PropertyValueModel.VALUE, this.itemListener); - assertEquals(expected.get(model.getKey()), model.getValue()); - model.removePropertyChangeListener(PropertyValueModel.VALUE, this.itemListener); - } - } - - private boolean nodeHasAnyPrefListeners(Preferences node) throws Exception { - PreferenceChangeListener[] prefListeners = (PreferenceChangeListener[]) ReflectionTools.getFieldValue(node, "prefListeners"); - return prefListeners.length > 0; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencesTestCase.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencesTestCase.java deleted file mode 100644 index 3ae2c74db7..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/prefs/PreferencesTestCase.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.prefs; - -import java.util.EventObject; -import java.util.List; -import java.util.prefs.AbstractPreferences; -import java.util.prefs.Preferences; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -/** - * set up and tear down a test node for any subclass that - * needs to test preferences-related stuff - */ -@SuppressWarnings("nls") -public abstract class PreferencesTestCase extends TestCase { - protected Preferences classNode; - public Preferences testNode; - protected static final String TEST_NODE_NAME = "test node"; - - public PreferencesTestCase(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - Preferences packageNode = Preferences.userNodeForPackage(this.getClass()); - this.classNode = packageNode.node(this.getClass().getSimpleName()); - // clean out any leftover crap... - if ((this.classNode.keys().length > 0) || (this.classNode.childrenNames().length > 0)) { - this.classNode.removeNode(); - // ...and re-create the node - this.classNode = packageNode.node(this.getClass().getSimpleName()); - } - this.testNode = this.classNode.node(TEST_NODE_NAME); - } - - @Override - protected void tearDown() throws Exception { - // wait for all the events to be delivered before tearing down - this.waitForEventQueueToClear(); - Preferences node = this.classNode.parent(); - this.classNode.removeNode(); - while (this.nodeIsVestigial(node)) { - Preferences parent = node.parent(); - node.removeNode(); - node = parent; - } - TestTools.clear(this); - super.tearDown(); - } - - private boolean nodeIsVestigial(Preferences node) throws Exception { - return (node != null) - && (node.keys().length == 0) - && (node.childrenNames().length == 0) - && (node != Preferences.userRoot()); - } - - protected void waitForEventQueueToClear() { - while ( ! this.preferencesEventQueue().isEmpty()) { - TestTools.sleep(100); - } - TestTools.sleep(100); - } - - @SuppressWarnings("unchecked") - private List preferencesEventQueue() { - return (List) ReflectionTools.getStaticFieldValue(AbstractPreferences.class, "eventQueue"); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/CheckBoxModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/CheckBoxModelAdapterTests.java deleted file mode 100644 index 47a7c8e320..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/CheckBoxModelAdapterTests.java +++ /dev/null @@ -1,135 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import javax.swing.ButtonModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; -import javax.swing.event.EventListenerList; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.CheckBoxModelAdapter; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class CheckBoxModelAdapterTests extends TestCase { - private WritablePropertyValueModel booleanHolder; - private ButtonModel buttonModelAdapter; - boolean eventFired; - - public CheckBoxModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.booleanHolder = new SimplePropertyValueModel(Boolean.TRUE); - this.buttonModelAdapter = new CheckBoxModelAdapter(this.booleanHolder) { - @Override - protected PropertyChangeListener buildBooleanChangeListener() { - return this.buildBooleanChangeListener_(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSetSelected() throws Exception { - this.eventFired = false; - this.buttonModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - CheckBoxModelAdapterTests.this.eventFired = true; - } - }); - this.buttonModelAdapter.setSelected(false); - assertTrue(this.eventFired); - assertEquals(Boolean.FALSE, this.booleanHolder.getValue()); - } - - public void testSetValue() throws Exception { - this.eventFired = false; - this.buttonModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - CheckBoxModelAdapterTests.this.eventFired = true; - } - }); - assertTrue(this.buttonModelAdapter.isSelected()); - this.booleanHolder.setValue(Boolean.FALSE); - assertTrue(this.eventFired); - assertFalse(this.buttonModelAdapter.isSelected()); - } - - public void testDefaultValue() throws Exception { - this.eventFired = false; - this.buttonModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - CheckBoxModelAdapterTests.this.eventFired = true; - } - }); - assertTrue(this.buttonModelAdapter.isSelected()); - this.booleanHolder.setValue(null); - assertTrue(this.eventFired); - assertFalse(this.buttonModelAdapter.isSelected()); - - this.eventFired = false; - this.booleanHolder.setValue(Boolean.FALSE); - assertFalse(this.eventFired); - assertFalse(this.buttonModelAdapter.isSelected()); - } - - public void testHasListeners() throws Exception { - SimplePropertyValueModel localBooleanHolder = (SimplePropertyValueModel) this.booleanHolder; - assertFalse(localBooleanHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.buttonModelAdapter); - - ChangeListener listener = new TestChangeListener(); - this.buttonModelAdapter.addChangeListener(listener); - assertTrue(localBooleanHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasListeners(this.buttonModelAdapter); - - this.buttonModelAdapter.removeChangeListener(listener); - assertFalse(localBooleanHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.buttonModelAdapter); - } - - private void verifyHasNoListeners(Object model) throws Exception { - EventListenerList listenerList = (EventListenerList) ReflectionTools.getFieldValue(model, "listenerList"); - assertEquals(0, listenerList.getListenerList().length); - } - - private void verifyHasListeners(Object model) throws Exception { - EventListenerList listenerList = (EventListenerList) ReflectionTools.getFieldValue(model, "listenerList"); - assertFalse(listenerList.getListenerList().length == 0); - } - - - // ********** member class ********** - private class TestChangeListener implements ChangeListener { - TestChangeListener() { - super(); - } - public void stateChanged(ChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/CheckBoxModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/CheckBoxModelAdapterUITest.java deleted file mode 100644 index 6c7464e0f5..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/CheckBoxModelAdapterUITest.java +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.ButtonModel; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.WindowConstants; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.CheckBoxModelAdapter; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Play around with a set of check boxes. - */ -@SuppressWarnings("nls") -public class CheckBoxModelAdapterUITest { - - private TestModel testModel; - private WritablePropertyValueModel testModelHolder; - private WritablePropertyValueModel flag1Holder; - private WritablePropertyValueModel flag2Holder; - private WritablePropertyValueModel notFlag2Holder; - private ButtonModel flag1ButtonModel; - private ButtonModel flag2ButtonModel; - private ButtonModel notFlag2ButtonModel; - - public static void main(String[] args) throws Exception { - new CheckBoxModelAdapterUITest().exec(); - } - - private CheckBoxModelAdapterUITest() { - super(); - } - - private void exec() throws Exception { - this.testModel = new TestModel(true, true); - this.testModelHolder = new SimplePropertyValueModel(this.testModel); - this.flag1Holder = this.buildFlag1Holder(this.testModelHolder); - this.flag1ButtonModel = this.buildCheckBoxModelAdapter(this.flag1Holder); - this.flag2Holder = this.buildFlag2Holder(this.testModelHolder); - this.flag2ButtonModel = this.buildCheckBoxModelAdapter(this.flag2Holder); - this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder); - this.notFlag2ButtonModel = this.buildCheckBoxModelAdapter(this.notFlag2Holder); - this.openWindow(); - } - - private WritablePropertyValueModel buildFlag1Holder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.FLAG1_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isFlag1()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag1(value.booleanValue()); - } - }; - } - - private WritablePropertyValueModel buildFlag2Holder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isFlag2()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setFlag2(value.booleanValue()); - } - }; - } - - private WritablePropertyValueModel buildNotFlag2Holder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.NOT_FLAG2_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isNotFlag2()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setNotFlag2(value.booleanValue()); - } - }; - } - - private ButtonModel buildCheckBoxModelAdapter(WritablePropertyValueModel booleanHolder) { - return new CheckBoxModelAdapter(booleanHolder); - } - - private void openWindow() { - JFrame window = new JFrame(this.getClass().getName()); - window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - window.addWindowListener(this.buildWindowListener()); - window.getContentPane().add(this.buildMainPanel(), "Center"); - window.setSize(400, 100); - window.setVisible(true); - } - - private WindowListener buildWindowListener() { - return new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - e.getWindow().setVisible(false); - System.exit(0); - } - }; - } - - private Component buildMainPanel() { - JPanel mainPanel = new JPanel(new BorderLayout()); - mainPanel.add(this.buildCheckBoxPanel(), BorderLayout.NORTH); - mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH); - return mainPanel; - } - - private Component buildCheckBoxPanel() { - JPanel taskListPanel = new JPanel(new GridLayout(1, 0)); - taskListPanel.add(this.buildFlag1CheckBox()); - taskListPanel.add(this.buildFlag2CheckBox()); - taskListPanel.add(this.buildNotFlag2CheckBox()); - taskListPanel.add(this.buildUnattachedCheckBox()); - return taskListPanel; - } - - private JCheckBox buildFlag1CheckBox() { - JCheckBox checkBox = new JCheckBox(); - checkBox.setText("flag 1"); - checkBox.setModel(this.flag1ButtonModel); - return checkBox; - } - - private JCheckBox buildFlag2CheckBox() { - JCheckBox checkBox = new JCheckBox(); - checkBox.setText("flag 2"); - checkBox.setModel(this.flag2ButtonModel); - return checkBox; - } - - private JCheckBox buildNotFlag2CheckBox() { - JCheckBox checkBox = new JCheckBox(); - checkBox.setText("not flag 2"); - checkBox.setModel(this.notFlag2ButtonModel); - return checkBox; - } - - private JCheckBox buildUnattachedCheckBox() { - JCheckBox checkBox = new JCheckBox("unattached"); - checkBox.getModel().addItemListener(this.buildUnattachedItemListener()); - return checkBox; - } - - private ItemListener buildUnattachedItemListener() { - return new ItemListener() { - public void itemStateChanged(ItemEvent e) { - System.out.println("unattached state changed: " + e); - } - }; - } - - private Component buildControlPanel() { - JPanel controlPanel = new JPanel(new GridLayout(1, 0)); - controlPanel.add(this.buildFlipFlag1Button()); - controlPanel.add(this.buildClearModelButton()); - controlPanel.add(this.buildRestoreModelButton()); - controlPanel.add(this.buildPrintModelButton()); - return controlPanel; - } - - private JButton buildFlipFlag1Button() { - return new JButton(this.buildFlipFlag1Action()); - } - - private Action buildFlipFlag1Action() { - Action action = new AbstractAction("flip flag 1") { - public void actionPerformed(ActionEvent event) { - CheckBoxModelAdapterUITest.this.flipFlag1(); - } - }; - action.setEnabled(true); - return action; - } - - void flipFlag1() { - this.testModel.setFlag1( ! this.testModel.isFlag1()); - } - - private JButton buildClearModelButton() { - return new JButton(this.buildClearModelAction()); - } - - private Action buildClearModelAction() { - Action action = new AbstractAction("clear model") { - public void actionPerformed(ActionEvent event) { - CheckBoxModelAdapterUITest.this.clearModel(); - } - }; - action.setEnabled(true); - return action; - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private JButton buildRestoreModelButton() { - return new JButton(this.buildRestoreModelAction()); - } - - private Action buildRestoreModelAction() { - Action action = new AbstractAction("restore model") { - public void actionPerformed(ActionEvent event) { - CheckBoxModelAdapterUITest.this.restoreModel(); - } - }; - action.setEnabled(true); - return action; - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private JButton buildPrintModelButton() { - return new JButton(this.buildPrintModelAction()); - } - - private Action buildPrintModelAction() { - Action action = new AbstractAction("print model") { - public void actionPerformed(ActionEvent event) { - CheckBoxModelAdapterUITest.this.printModel(); - } - }; - action.setEnabled(true); - return action; - } - - void printModel() { - System.out.println("flag 1: " + this.testModel.isFlag1()); - System.out.println("flag 2: " + this.testModel.isFlag2()); - System.out.println("not flag 2: " + this.testModel.isNotFlag2()); - System.out.println("***"); - } - - - private class TestModel extends AbstractModel { - private boolean flag1; - public static final String FLAG1_PROPERTY = "flag1"; - private boolean flag2; - public static final String FLAG2_PROPERTY = "flag2"; - private boolean notFlag2; - public static final String NOT_FLAG2_PROPERTY = "notFlag2"; - - public TestModel(boolean flag1, boolean flag2) { - this.flag1 = flag1; - this.flag2 = flag2; - this.notFlag2 = ! flag2; - } - public boolean isFlag1() { - return this.flag1; - } - public void setFlag1(boolean flag1) { - boolean old = this.flag1; - this.flag1 = flag1; - this.firePropertyChanged(FLAG1_PROPERTY, old, flag1); - } - public boolean isFlag2() { - return this.flag2; - } - public void setFlag2(boolean flag2) { - boolean old = this.flag2; - this.flag2 = flag2; - this.firePropertyChanged(FLAG2_PROPERTY, old, flag2); - - old = this.notFlag2; - this.notFlag2 = ! flag2; - this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2); - } - public boolean isNotFlag2() { - return this.notFlag2; - } - public void setNotFlag2(boolean notFlag2) { - this.setFlag2( ! notFlag2); - } - @Override - public String toString() { - return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterTests.java deleted file mode 100644 index 891611573d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterTests.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import javax.swing.ComboBoxModel; -import javax.swing.ListModel; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ComboBoxModelAdapter; -import org.eclipse.jpt.common.utility.internal.swing.Displayable; -import org.eclipse.jpt.common.utility.internal.swing.SimpleDisplayable; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.model.value.CoordinatedList; - -@SuppressWarnings("nls") -public class ComboBoxModelAdapterTests extends TestCase { - - public ComboBoxModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - // nothing yet... - } - - @Override - protected void tearDown() throws Exception { - // nothing yet... - super.tearDown(); - } - - public void testHasListeners() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - SimplePropertyValueModel selectionHolder = new SimplePropertyValueModel(listHolder.iterator().next()); - assertFalse(selectionHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - - ComboBoxModel comboBoxModel = new ComboBoxModelAdapter(listHolder, selectionHolder); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(selectionHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(comboBoxModel); - - CoordinatedList synchList = new CoordinatedList(comboBoxModel); - PropertyChangeListener selectionListener = this.buildSelectionListener(); - selectionHolder.addPropertyChangeListener(PropertyValueModel.VALUE, selectionListener); - assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(selectionHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasListeners(comboBoxModel); - - comboBoxModel.removeListDataListener(synchList); - selectionHolder.removePropertyChangeListener(PropertyValueModel.VALUE, selectionListener); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertFalse(selectionHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(comboBoxModel); - } - - private PropertyChangeListener buildSelectionListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent evt) { - // do nothing... - } - }; - } - - private void verifyHasNoListeners(ListModel listModel) throws Exception { - boolean hasNoListeners = ((Boolean) ReflectionTools.executeMethod(listModel, "hasNoListDataListeners")).booleanValue(); - assertTrue(hasNoListeners); - } - - private void verifyHasListeners(ListModel listModel) throws Exception { - boolean hasListeners = ((Boolean) ReflectionTools.executeMethod(listModel, "hasListDataListeners")).booleanValue(); - assertTrue(hasListeners); - } - - private SimpleListValueModel buildListHolder() { - return new SimpleListValueModel(this.buildList()); - } - - private List buildList() { - List list = new ArrayList(); - this.populateCollection(list); - return list; - } - - private void populateCollection(Collection c) { - c.add(new SimpleDisplayable("foo")); - c.add(new SimpleDisplayable("bar")); - c.add(new SimpleDisplayable("baz")); - c.add(new SimpleDisplayable("joo")); - c.add(new SimpleDisplayable("jar")); - c.add(new SimpleDisplayable("jaz")); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest.java deleted file mode 100644 index c750bdf997..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest.java +++ /dev/null @@ -1,393 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.util.ArrayList; -import java.util.List; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.ComboBoxModel; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.ListCellRenderer; -import javax.swing.UIManager; -import javax.swing.WindowConstants; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ComboBoxModelAdapter; -import org.eclipse.jpt.common.utility.internal.swing.FilteringListBrowser; -import org.eclipse.jpt.common.utility.internal.swing.ListChooser; -import org.eclipse.jpt.common.utility.internal.swing.SimpleListCellRenderer; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - - -/** - * Play around with a set of combo-boxes. - * - * DefaultLongListBrowserDialogUITest subclasses this class; so be - * careful when making changes. - */ -@SuppressWarnings("nls") -public class ComboBoxModelAdapterUITest { - - protected JFrame window; - private TestModel testModel; - private WritablePropertyValueModel testModelHolder; - private WritablePropertyValueModel colorHolder; - private SimpleListValueModel colorListHolder; - protected ComboBoxModel colorComboBoxModel; - private int nextColorNumber = 0; - - public static void main(String[] args) throws Exception { - new ComboBoxModelAdapterUITest().exec(); - } - - protected ComboBoxModelAdapterUITest() { - super(); - } - - protected void exec() throws Exception { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); -// UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); // Metal LAF -// UIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel.class.getName()); -// UIManager.setLookAndFeel(com.sun.java.swing.plaf.motif.MotifLookAndFeel.class.getName()); -// UIManager.setLookAndFeel(oracle.bali.ewt.olaf.OracleLookAndFeel.class.getName()); - this.testModel = this.buildTestModel(); - this.testModelHolder = new SimplePropertyValueModel(this.testModel); - this.colorHolder = this.buildColorHolder(this.testModelHolder); - this.colorListHolder = this.buildColorListHolder(); - this.colorComboBoxModel = this.buildComboBoxModelAdapter(this.colorListHolder, this.colorHolder); - this.openWindow(); - } - - private WritablePropertyValueModel buildColorHolder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.COLOR_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.getColor(); - } - @Override - protected void setValue_(Object value) { - this.subject.setColor((String) value); - } - }; - } - - protected TestModel buildTestModel() { - return new TestModel(); - } - - private SimpleListValueModel buildColorListHolder() { - return new SimpleListValueModel(TestModel.validColors()); -// return new AbstractReadOnlyListValueModel() { -// public Object value() { -// return new ArrayListIterator(TestModel.VALID_COLORS); -// } -// public int size() { -// return TestModel.VALID_COLORS.length; -// } -// }; - } - - protected ListValueModel uiColorListHolder() { - return this.colorListHolder; - } - - private ComboBoxModel buildComboBoxModelAdapter(ListValueModel listHolder, WritablePropertyValueModel selectionHolder) { - return new ComboBoxModelAdapter(listHolder, selectionHolder); - } - - private void openWindow() { - this.window = new JFrame(this.getClass().getSimpleName()); - this.window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - this.window.addWindowListener(this.buildWindowListener()); - this.window.getContentPane().add(this.buildMainPanel(), "Center"); - this.window.setLocation(300, 300); - this.window.setSize(400, 150); - this.window.setVisible(true); - } - - private WindowListener buildWindowListener() { - return new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - e.getWindow().setVisible(false); - System.exit(0); - } - }; - } - - private Component buildMainPanel() { - JPanel mainPanel = new JPanel(new BorderLayout()); - mainPanel.add(this.buildComboBoxPanel(), BorderLayout.NORTH); - mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH); - return mainPanel; - } - - protected JPanel buildComboBoxPanel() { - JPanel panel = new JPanel(new GridLayout(1, 0)); - panel.add(this.buildComboBox()); - panel.add(this.buildComboBox()); - panel.add(this.buildListChooser1()); - panel.add(this.buildListChooser2()); - return panel; - } - - private JComboBox buildComboBox() { - JComboBox comboBox = new JComboBox(this.colorComboBoxModel); - comboBox.setRenderer(this.buildComboBoxRenderer()); - return comboBox; - } - - protected ListCellRenderer buildComboBoxRenderer() { - return new SimpleListCellRenderer() { - @Override - protected String buildText(Object value) { - return super.buildText(value); - } - }; - } - - private ListChooser buildListChooser1() { - return new LocalListChooser1(this.colorComboBoxModel); - } - - private ListChooser buildListChooser2() { - return new LocalListChooser2(this.colorComboBoxModel); - } - - private Component buildControlPanel() { - JPanel controlPanel = new JPanel(new GridLayout(2, 0)); - controlPanel.add(this.buildResetColorButton()); - controlPanel.add(this.buildClearModelButton()); - controlPanel.add(this.buildRestoreModelButton()); - controlPanel.add(this.buildPrintModelButton()); - controlPanel.add(this.buildAddTenButton()); - controlPanel.add(this.buildRemoveTenButton()); - return controlPanel; - } - - // ********** reset color button ********** - private JButton buildResetColorButton() { - return new JButton(this.buildResetColorAction()); - } - - private Action buildResetColorAction() { - Action action = new AbstractAction("reset color") { - public void actionPerformed(ActionEvent event) { - ComboBoxModelAdapterUITest.this.resetColor(); - } - }; - action.setEnabled(true); - return action; - } - - void resetColor() { - this.testModel.setColor(TestModel.DEFAULT_COLOR); - } - - // ********** clear model button ********** - private JButton buildClearModelButton() { - return new JButton(this.buildClearModelAction()); - } - - private Action buildClearModelAction() { - Action action = new AbstractAction("clear model") { - public void actionPerformed(ActionEvent event) { - ComboBoxModelAdapterUITest.this.clearModel(); - } - }; - action.setEnabled(true); - return action; - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - // ********** restore model button ********** - private JButton buildRestoreModelButton() { - return new JButton(this.buildRestoreModelAction()); - } - - private Action buildRestoreModelAction() { - Action action = new AbstractAction("restore model") { - public void actionPerformed(ActionEvent event) { - ComboBoxModelAdapterUITest.this.restoreModel(); - } - }; - action.setEnabled(true); - return action; - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - // ********** print model button ********** - private JButton buildPrintModelButton() { - return new JButton(this.buildPrintModelAction()); - } - - private Action buildPrintModelAction() { - Action action = new AbstractAction("print model") { - public void actionPerformed(ActionEvent event) { - ComboBoxModelAdapterUITest.this.printModel(); - } - }; - action.setEnabled(true); - return action; - } - - void printModel() { - System.out.println(this.testModel); - } - - // ********** add 20 button ********** - private JButton buildAddTenButton() { - return new JButton(this.buildAddTenAction()); - } - - private Action buildAddTenAction() { - Action action = new AbstractAction("add 20") { - public void actionPerformed(ActionEvent event) { - ComboBoxModelAdapterUITest.this.addTen(); - } - }; - action.setEnabled(true); - return action; - } - - void addTen() { - for (int i = this.nextColorNumber; i < this.nextColorNumber + 20; i++) { - this.colorListHolder.add(this.colorListHolder.size(), "color" + i); - } - this.nextColorNumber += 20; - } - - // ********** remove 20 button ********** - private JButton buildRemoveTenButton() { - return new JButton(this.buildRemoveTenAction()); - } - - private Action buildRemoveTenAction() { - Action action = new AbstractAction("remove 20") { - public void actionPerformed(ActionEvent event) { - ComboBoxModelAdapterUITest.this.removeTen(); - } - }; - action.setEnabled(true); - return action; - } - - void removeTen() { - for (int i = 0; i < 20; i++) { - if (this.colorListHolder.size() > 0) { - this.colorListHolder.remove(this.colorListHolder.size() - 1); - } - } - } - - - protected static class TestModel extends AbstractModel { - private String color; - public static final String COLOR_PROPERTY = "color"; - public static final String RED = "red"; - public static final String ORANGE = "orange"; - public static final String YELLOW = "yellow"; - public static final String GREEN = "green"; - public static final String BLUE = "blue"; - public static final String INDIGO = "indigo"; - public static final String VIOLET = "violet"; - public static final String DEFAULT_COLOR = RED; - public static List validColors; - public static final String[] DEFAULT_VALID_COLORS = { - RED, - ORANGE, - YELLOW, - GREEN, - BLUE, - INDIGO, - VIOLET - }; - - public static List validColors() { - if (validColors == null) { - validColors = buildDefaultValidColors(); - } - return validColors; - } - public static List buildDefaultValidColors() { - List result = new ArrayList(); - CollectionTools.addAll(result, DEFAULT_VALID_COLORS); - return result; - } - - public TestModel() { - this(DEFAULT_COLOR); - } - public TestModel(String color) { - this.color = color; - } - public String getColor() { - return this.color; - } - public void setColor(String color) { - this.checkColor(color); - Object old = this.color; - this.color = color; - this.firePropertyChanged(COLOR_PROPERTY, old, color); - } - public void checkColor(String c) { - if ( ! validColors().contains(c)) { - throw new IllegalArgumentException(c); - } - } - @Override - public String toString() { - return "TestModel(" + this.color + ")"; - } - } - - - private class LocalListChooser1 extends ListChooser { - public LocalListChooser1(ComboBoxModel model) { - super(model); - } - } - - - private class LocalListChooser2 extends ListChooser { - public LocalListChooser2(ComboBoxModel model) { - super(model); - } - @Override - protected ListBrowser buildBrowser() { - return new FilteringListBrowser(); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest2.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest2.java deleted file mode 100644 index ed00f4cf18..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest2.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import javax.swing.ListCellRenderer; -import org.eclipse.jpt.common.utility.internal.model.value.ExtendedListValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.swing.SimpleListCellRenderer; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; - -/** - * - */ -@SuppressWarnings("nls") -public class ComboBoxModelAdapterUITest2 extends ComboBoxModelAdapterUITest { - - public static void main(String[] args) throws Exception { - new ComboBoxModelAdapterUITest2().exec(); - } - - public ComboBoxModelAdapterUITest2() { - super(); - } - - /** - * use a different model that allows the color to be set to null - */ - @Override - protected TestModel buildTestModel() { - return new TestModel2(); - } - - /** - * add a null to the front of the list - */ - @Override - protected ListValueModel uiColorListHolder() { - // the default is to prepend the wrapped list with a null item - return new ExtendedListValueModelWrapper(super.uiColorListHolder()); - } - - /** - * convert null to some text - */ - @Override - protected ListCellRenderer buildComboBoxRenderer() { - return new SimpleListCellRenderer() { - @Override - protected String buildText(Object value) { - return (value == null) ? "" : super.buildText(value); - } - }; - } - - - protected static class TestModel2 extends TestModel { - /** - * null is OK here - */ - @Override - public void checkColor(String color) { - if (color == null) { - return; - } - super.checkColor(color); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DateSpinnerModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DateSpinnerModelAdapterTests.java deleted file mode 100644 index 2b09c75e48..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DateSpinnerModelAdapterTests.java +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.util.Date; -import javax.swing.SpinnerModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.DateSpinnerModelAdapter; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class DateSpinnerModelAdapterTests extends TestCase { - private WritablePropertyValueModel valueHolder; - private SpinnerModel spinnerModelAdapter; - boolean eventFired; - - public DateSpinnerModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.valueHolder = new SimplePropertyValueModel(new Date()); - this.spinnerModelAdapter = new DateSpinnerModelAdapter(this.valueHolder) { - @Override - protected PropertyChangeListener buildDateChangeListener() { - return this.buildDateChangeListener_(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSetValueSpinnerModel() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - DateSpinnerModelAdapterTests.this.eventFired = true; - } - }); - Date newDate = new Date(); - newDate.setTime(777777); - this.spinnerModelAdapter.setValue(newDate); - assertTrue(this.eventFired); - assertEquals(777777, ((Date) this.valueHolder.getValue()).getTime()); - } - - public void testSetValueValueHolder() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - DateSpinnerModelAdapterTests.this.eventFired = true; - } - }); - Date newDate = new Date(); - newDate.setTime(777777); - this.valueHolder.setValue(newDate); - assertTrue(this.eventFired); - assertEquals(777777, ((Date) this.spinnerModelAdapter.getValue()).getTime()); - } - - public void testDefaultValue() throws Exception { - Date newDate = new Date(); - newDate.setTime(777777); - this.valueHolder.setValue(newDate); - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - DateSpinnerModelAdapterTests.this.eventFired = true; - } - }); - assertEquals(777777, ((Date) this.spinnerModelAdapter.getValue()).getTime()); - this.valueHolder.setValue(null); - assertTrue(this.eventFired); - assertFalse(((Date) this.spinnerModelAdapter.getValue()).getTime() == 777777); - } - - public void testHasListeners() throws Exception { - SimplePropertyValueModel localValueHolder = (SimplePropertyValueModel) this.valueHolder; - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.spinnerModelAdapter); - - ChangeListener listener = new TestChangeListener(); - this.spinnerModelAdapter.addChangeListener(listener); - assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasListeners(this.spinnerModelAdapter); - - this.spinnerModelAdapter.removeChangeListener(listener); - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.spinnerModelAdapter); - } - - private void verifyHasNoListeners(SpinnerModel adapter) throws Exception { - assertEquals(0, ((DateSpinnerModelAdapter) adapter).getChangeListeners().length); - } - - private void verifyHasListeners(Object adapter) throws Exception { - assertFalse(((DateSpinnerModelAdapter) adapter).getChangeListeners().length == 0); - } - - public void testNullInitialValue() { - Date today = new Date(); - this.valueHolder = new SimplePropertyValueModel(); - this.spinnerModelAdapter = new DateSpinnerModelAdapter(this.valueHolder, today) { - @Override - protected PropertyChangeListener buildDateChangeListener() { - return this.buildDateChangeListener_(); - } - }; - - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - DateSpinnerModelAdapterTests.this.eventFired = true; - } - }); - assertEquals(today, this.spinnerModelAdapter.getValue()); - - Date newDate = new Date(); - newDate.setTime(777777); - this.valueHolder.setValue(newDate); - - assertTrue(this.eventFired); - assertEquals(777777, ((Date) this.spinnerModelAdapter.getValue()).getTime()); - } - - - // ********** inner class ********** - private class TestChangeListener implements ChangeListener { - TestChangeListener() { - super(); - } - public void stateChanged(ChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DocumentAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DocumentAdapterTests.java deleted file mode 100644 index 52206d000e..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DocumentAdapterTests.java +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.event.DocumentEvent.EventType; -import javax.swing.text.Document; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.DocumentAdapter; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class DocumentAdapterTests extends TestCase { - private WritablePropertyValueModel stringHolder; - Document documentAdapter; - boolean eventFired; - - public DocumentAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.stringHolder = new SimplePropertyValueModel("0123456789"); - this.documentAdapter = new DocumentAdapter(this.stringHolder) { - @Override - protected PropertyChangeListener buildStringListener() { - return this.buildStringListener_(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testRemove() throws Exception { - this.eventFired = false; - this.documentAdapter.addDocumentListener(new TestDocumentListener() { - @Override - public void removeUpdate(DocumentEvent e) { - DocumentAdapterTests.this.eventFired = true; - assertEquals(EventType.REMOVE, e.getType()); - assertEquals(DocumentAdapterTests.this.documentAdapter, e.getDocument()); - // this will be the removal of "23456" - assertEquals(2, e.getOffset()); - assertEquals(5, e.getLength()); - } - }); - this.documentAdapter.remove(2, 5); - assertTrue(this.eventFired); - assertEquals("01789", this.stringHolder.getValue()); - } - - public void testInsert() throws Exception { - this.eventFired = false; - this.documentAdapter.addDocumentListener(new TestDocumentListener() { - @Override - public void insertUpdate(DocumentEvent e) { - DocumentAdapterTests.this.eventFired = true; - assertEquals(EventType.INSERT, e.getType()); - assertEquals(DocumentAdapterTests.this.documentAdapter, e.getDocument()); - // this will be the insert of "xxxxxx" - assertEquals(2, e.getOffset()); - assertEquals(5, e.getLength()); - } - }); - this.documentAdapter.insertString(2, "xxxxx", null); - assertTrue(this.eventFired); - assertEquals("01xxxxx23456789", this.stringHolder.getValue()); - } - - public void testSetValue() throws Exception { - this.eventFired = false; - this.documentAdapter.addDocumentListener(new TestDocumentListener() { - @Override - public void insertUpdate(DocumentEvent e) { - DocumentAdapterTests.this.eventFired = true; - assertEquals(EventType.INSERT, e.getType()); - assertEquals(DocumentAdapterTests.this.documentAdapter, e.getDocument()); - // this will be the insert of "foo" - assertEquals(0, e.getOffset()); - assertEquals(3, e.getLength()); - } - @Override - public void removeUpdate(DocumentEvent e) { - assertEquals(EventType.REMOVE, e.getType()); - assertEquals(DocumentAdapterTests.this.documentAdapter, e.getDocument()); - // this will be the removal of "0123456789" - assertEquals(0, e.getOffset()); - assertEquals(10, e.getLength()); - } - }); - assertEquals("0123456789", this.documentAdapter.getText(0, this.documentAdapter.getLength())); - this.stringHolder.setValue("foo"); - assertTrue(this.eventFired); - assertEquals("foo", this.documentAdapter.getText(0, this.documentAdapter.getLength())); - } - - public void testHasListeners() throws Exception { - SimplePropertyValueModel localStringHolder = (SimplePropertyValueModel) this.stringHolder; - assertFalse(localStringHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.documentAdapter); - - DocumentListener listener = new TestDocumentListener(); - this.documentAdapter.addDocumentListener(listener); - assertTrue(localStringHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasListeners(this.documentAdapter); - - this.documentAdapter.removeDocumentListener(listener); - assertFalse(localStringHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.documentAdapter); - } - - private void verifyHasNoListeners(Object document) throws Exception { - Object delegate = ReflectionTools.getFieldValue(document, "delegate"); - Object[] listeners = (Object[]) ReflectionTools.executeMethod(delegate, "getDocumentListeners"); - assertEquals(0, listeners.length); - } - - private void verifyHasListeners(Object document) throws Exception { - Object delegate = ReflectionTools.getFieldValue(document, "delegate"); - Object[] listeners = (Object[]) ReflectionTools.executeMethod(delegate, "getDocumentListeners"); - assertFalse(listeners.length == 0); - } - - -private class TestDocumentListener implements DocumentListener { - TestDocumentListener() { - super(); - } - public void changedUpdate(DocumentEvent e) { - fail("unexpected event"); - } - public void insertUpdate(DocumentEvent e) { - fail("unexpected event"); - } - public void removeUpdate(DocumentEvent e) { - fail("unexpected event"); - } -} - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DocumentAdapterUITest.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DocumentAdapterUITest.java deleted file mode 100644 index f199f51150..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/DocumentAdapterUITest.java +++ /dev/null @@ -1,256 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.WindowConstants; -import javax.swing.text.AbstractDocument; -import javax.swing.text.AttributeSet; -import javax.swing.text.BadLocationException; -import javax.swing.text.Document; -import javax.swing.text.PlainDocument; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.DocumentAdapter; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Play around with a set of entry fields. - */ -@SuppressWarnings("nls") -public class DocumentAdapterUITest { - - private TestModel testModel; - private static final String DEFAULT_NAME = "Scooby Doo"; - private WritablePropertyValueModel testModelHolder; - private WritablePropertyValueModel nameHolder; - private Document nameDocument; - private Document upperCaseNameDocument; - - public static void main(String[] args) throws Exception { - new DocumentAdapterUITest().exec(); - } - - private DocumentAdapterUITest() { - super(); - } - - private void exec() throws Exception { - this.testModel = new TestModel(DEFAULT_NAME); - this.testModelHolder = new SimplePropertyValueModel(this.testModel); - this.nameHolder = this.buildNameHolder(this.testModelHolder); - this.nameDocument = this.buildNameDocument(this.nameHolder); - this.upperCaseNameDocument = this.buildUpperCaseNameDocument(this.nameHolder); - this.openWindow(); - } - - private WritablePropertyValueModel buildNameHolder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.NAME_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.getName(); - } - @Override - protected void setValue_(String value) { - this.subject.setName(value); - } - }; - } - - private Document buildNameDocument(WritablePropertyValueModel stringHolder) { - return new DocumentAdapter(stringHolder); - } - - private Document buildUpperCaseNameDocument(WritablePropertyValueModel stringHolder) { - return new DocumentAdapter(stringHolder, this.buildUpperCaseNameDocumentDelegate()); - } - - private AbstractDocument buildUpperCaseNameDocumentDelegate() { - return new PlainDocument() { - @Override - public void insertString(int offset, String string, AttributeSet a) throws BadLocationException { - if (string == null) { - return; - } - char[] upper = string.toCharArray(); - for (int i = 0; i < upper.length; i++) { - upper[i] = Character.toUpperCase(upper[i]); - } - super.insertString(offset, new String(upper), a); - } - }; - } - - private void openWindow() { - JFrame window = new JFrame(this.getClass().getName()); - window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - window.addWindowListener(this.buildWindowListener()); - window.getContentPane().add(this.buildMainPanel(), "Center"); - window.setSize(400, 100); - window.setVisible(true); - } - - private WindowListener buildWindowListener() { - return new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - e.getWindow().setVisible(false); - System.exit(0); - } - }; - } - - private Component buildMainPanel() { - JPanel mainPanel = new JPanel(new BorderLayout()); - mainPanel.add(this.buildTextFieldPanel(), BorderLayout.NORTH); - mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH); - return mainPanel; - } - - private Component buildTextFieldPanel() { - JPanel taskListPanel = new JPanel(new GridLayout(1, 0)); - taskListPanel.add(this.buildNameTextField()); - taskListPanel.add(this.buildReadOnlyNameTextField()); - taskListPanel.add(this.buildUpperCaseNameTextField()); - return taskListPanel; - } - - private JTextField buildNameTextField() { - return new JTextField(this.nameDocument, null, 0); - } - - private JTextField buildReadOnlyNameTextField() { - JTextField nameTextField = this.buildNameTextField(); - nameTextField.setEditable(false); - return nameTextField; - } - - private JTextField buildUpperCaseNameTextField() { - return new JTextField(this.upperCaseNameDocument, null, 0); - } - - private Component buildControlPanel() { - JPanel controlPanel = new JPanel(new GridLayout(1, 0)); - controlPanel.add(this.buildResetNameButton()); - controlPanel.add(this.buildClearModelButton()); - controlPanel.add(this.buildRestoreModelButton()); - controlPanel.add(this.buildPrintModelButton()); - return controlPanel; - } - - private JButton buildResetNameButton() { - return new JButton(this.buildResetNameAction()); - } - - private Action buildResetNameAction() { - Action action = new AbstractAction("reset name") { - public void actionPerformed(ActionEvent event) { - DocumentAdapterUITest.this.resetName(); - } - }; - action.setEnabled(true); - return action; - } - - void resetName() { - this.testModel.setName(DEFAULT_NAME); - } - - private JButton buildClearModelButton() { - return new JButton(this.buildClearModelAction()); - } - - private Action buildClearModelAction() { - Action action = new AbstractAction("clear model") { - public void actionPerformed(ActionEvent event) { - DocumentAdapterUITest.this.clearModel(); - } - }; - action.setEnabled(true); - return action; - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private JButton buildRestoreModelButton() { - return new JButton(this.buildRestoreModelAction()); - } - - private Action buildRestoreModelAction() { - Action action = new AbstractAction("restore model") { - public void actionPerformed(ActionEvent event) { - DocumentAdapterUITest.this.restoreModel(); - } - }; - action.setEnabled(true); - return action; - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private JButton buildPrintModelButton() { - return new JButton(this.buildPrintModelAction()); - } - - private Action buildPrintModelAction() { - Action action = new AbstractAction("print model") { - public void actionPerformed(ActionEvent event) { - DocumentAdapterUITest.this.printModel(); - } - }; - action.setEnabled(true); - return action; - } - - void printModel() { - System.out.println("name: " + this.testModel.getName()); - } - - - private class TestModel extends AbstractModel { - private String name; - public static final String NAME_PROPERTY = "name"; - - public TestModel(String name) { - this.name = name; - } - public String getName() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - @Override - public String toString() { - return "TestModel(" + this.getName() + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/JptUtilityModelValueSwingTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/JptUtilityModelValueSwingTests.java deleted file mode 100644 index 93c6b41c9d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/JptUtilityModelValueSwingTests.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import junit.framework.Test; -import junit.framework.TestSuite; - -public class JptUtilityModelValueSwingTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityModelValueSwingTests.class.getPackage().getName()); - - suite.addTestSuite(CheckBoxModelAdapterTests.class); - suite.addTestSuite(ComboBoxModelAdapterTests.class); - suite.addTestSuite(DateSpinnerModelAdapterTests.class); - suite.addTestSuite(DocumentAdapterTests.class); - suite.addTestSuite(ListModelAdapterTests.class); - suite.addTestSuite(ListSpinnerModelAdapterTests.class); - suite.addTestSuite(NumberSpinnerModelAdapterTests.class); - suite.addTestSuite(ObjectListSelectionModelTests.class); - suite.addTestSuite(PrimitiveListTreeModelTests.class); - suite.addTestSuite(RadioButtonModelAdapterTests.class); - suite.addTestSuite(SpinnerModelAdapterTests.class); - suite.addTestSuite(TableModelAdapterTests.class); - suite.addTestSuite(TreeModelAdapterTests.class); - - return suite; - } - - private JptUtilityModelValueSwingTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListModelAdapterTests.java deleted file mode 100644 index 0be426de9f..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListModelAdapterTests.java +++ /dev/null @@ -1,320 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; - -import javax.swing.ListModel; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.Bag; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListModelAdapter; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.model.value.CoordinatedList; - -@SuppressWarnings("nls") -public class ListModelAdapterTests extends TestCase { - - public ListModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - // nothing yet... - } - - @Override - protected void tearDown() throws Exception { - // nothing yet... - super.tearDown(); - } - - private ListModelAdapter buildListModel(ListValueModel listHolder) { - return new ListModelAdapter(listHolder) { - @Override - protected ListChangeListener buildListChangeListener() { - return this.buildListChangeListener_(); - } - }; - } - - private ListModel buildListModel(CollectionValueModel collectionHolder) { - return new ListModelAdapter(collectionHolder) { - @Override - protected ListChangeListener buildListChangeListener() { - return this.buildListChangeListener_(); - } - }; - } - - public void testCollectionSynchronization() { - SimpleCollectionValueModel collectionHolder = this.buildCollectionHolder(); - ListModel listModel = this.buildListModel(collectionHolder); - CoordinatedList synchList = new CoordinatedList(listModel); - assertEquals(6, synchList.size()); - this.compare(listModel, synchList); - - collectionHolder.add("tom"); - collectionHolder.add("dick"); - collectionHolder.add("harry"); - collectionHolder.add(null); - assertEquals(10, synchList.size()); - this.compare(listModel, synchList); - - collectionHolder.remove("foo"); - collectionHolder.remove("jar"); - collectionHolder.remove("harry"); - collectionHolder.remove(null); - assertEquals(6, synchList.size()); - this.compare(listModel, synchList); - } - - public void testListSynchronization() { - SimpleListValueModel listHolder = this.buildListHolder(); - ListModel listModel = this.buildListModel(listHolder); - CoordinatedList synchList = new CoordinatedList(listModel); - assertEquals(6, synchList.size()); - this.compare(listModel, synchList); - - listHolder.add(6, "tom"); - listHolder.add(7, "dick"); - listHolder.add(8, "harry"); - listHolder.add(9, null); - assertEquals(10, synchList.size()); - this.compare(listModel, synchList); - - listHolder.remove(9); - listHolder.remove(8); - listHolder.remove(4); - listHolder.remove(0); - assertEquals(6, synchList.size()); - this.compare(listModel, synchList); - } - - public void testSetModel() { - SimpleListValueModel listHolder1 = this.buildListHolder(); - ListModelAdapter listModel = this.buildListModel(listHolder1); - CoordinatedList synchList = new CoordinatedList(listModel); - assertTrue(listHolder1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - assertEquals(6, synchList.size()); - this.compare(listModel, synchList); - - SimpleListValueModel listHolder2 = this.buildListHolder2(); - listModel.setModel(listHolder2); - assertEquals(3, synchList.size()); - this.compare(listModel, synchList); - assertTrue(listHolder1.hasNoListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(listHolder2.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - listModel.setModel(new SimpleListValueModel()); - assertEquals(0, synchList.size()); - this.compare(listModel, synchList); - assertTrue(listHolder1.hasNoListChangeListeners(ListValueModel.LIST_VALUES)); - assertTrue(listHolder2.hasNoListChangeListeners(ListValueModel.LIST_VALUES)); - } - - private void compare(ListModel listModel, List list) { - assertEquals(listModel.getSize(), list.size()); - for (int i = 0; i < listModel.getSize(); i++) { - assertEquals(listModel.getElementAt(i), list.get(i)); - } - } - - public void testCollectionSort() { - this.verifyCollectionSort(null); - } - - public void testListSort() { - this.verifyListSort(null); - } - - public void testCustomCollectionSort() { - this.verifyCollectionSort(this.buildCustomComparator()); - } - - public void testCustomListSort() { - this.verifyListSort(this.buildCustomComparator()); - } - - private Comparator buildCustomComparator() { - // sort with reverse order - return new Comparator() { - public int compare(String s1, String s2) { - return s2.compareTo(s1); - } - }; - } - - private void verifyCollectionSort(Comparator comparator) { - SimpleCollectionValueModel collectionHolder = this.buildCollectionHolder(); - ListModel listModel = this.buildListModel(new SortedListValueModelAdapter(collectionHolder, comparator)); - CoordinatedList synchList = new CoordinatedList(listModel); - assertEquals(6, synchList.size()); - this.compareSort(listModel, synchList, comparator); - - collectionHolder.add("tom"); - collectionHolder.add("dick"); - collectionHolder.add("harry"); - assertEquals(9, synchList.size()); - this.compareSort(listModel, synchList, comparator); - - collectionHolder.remove("foo"); - collectionHolder.remove("jar"); - collectionHolder.remove("harry"); - assertEquals(6, synchList.size()); - this.compareSort(listModel, synchList, comparator); - } - - private void verifyListSort(Comparator comparator) { - SimpleListValueModel listHolder = this.buildListHolder(); - ListModel listModel = this.buildListModel(new SortedListValueModelWrapper(listHolder, comparator)); - CoordinatedList synchList = new CoordinatedList(listModel); - assertEquals(6, synchList.size()); - this.compareSort(listModel, synchList, comparator); - - listHolder.add(0, "tom"); - listHolder.add(0, "dick"); - listHolder.add(0, "harry"); - assertEquals(9, synchList.size()); - this.compareSort(listModel, synchList, comparator); - - listHolder.remove(8); - listHolder.remove(4); - listHolder.remove(0); - listHolder.remove(5); - assertEquals(5, synchList.size()); - this.compareSort(listModel, synchList, comparator); - } - - private void compareSort(ListModel listModel, List list, Comparator comparator) { - SortedSet ss = new TreeSet(comparator); - for (int i = 0; i < listModel.getSize(); i++) { - ss.add((String) listModel.getElementAt(i)); - } - assertEquals(ss.size(), list.size()); - for (Iterator stream1 = ss.iterator(), stream2 = list.iterator(); stream1.hasNext(); ) { - assertEquals(stream1.next(), stream2.next()); - } - } - - public void testHasListeners() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - - ListModel listModel = this.buildListModel(listHolder); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.verifyHasNoListeners(listModel); - - CoordinatedList synchList = new CoordinatedList(listModel); - assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.verifyHasListeners(listModel); - - listModel.removeListDataListener(synchList); - assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); - this.verifyHasNoListeners(listModel); - } - - public void testGetSize() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListModel listModel = this.buildListModel(listHolder); - this.verifyHasNoListeners(listModel); - assertEquals(6, listModel.getSize()); - - CoordinatedList synchList = new CoordinatedList(listModel); - this.verifyHasListeners(listModel); - assertEquals(6, listModel.getSize()); - - listModel.removeListDataListener(synchList); - this.verifyHasNoListeners(listModel); - assertEquals(6, listModel.getSize()); - } - - public void testGetElementAt() throws Exception { - SimpleListValueModel listHolder = this.buildListHolder(); - ListModel listModel = this.buildListModel(new SortedListValueModelWrapper(listHolder)); - CoordinatedList synchList = new CoordinatedList(listModel); - this.verifyHasListeners(listModel); - assertEquals("bar", listModel.getElementAt(0)); - assertEquals("bar", synchList.get(0)); - } - - private void verifyHasNoListeners(ListModel listModel) throws Exception { - boolean hasNoListeners = ((Boolean) ReflectionTools.executeMethod(listModel, "hasNoListDataListeners")).booleanValue(); - assertTrue(hasNoListeners); - } - - private void verifyHasListeners(ListModel listModel) throws Exception { - boolean hasListeners = ((Boolean) ReflectionTools.executeMethod(listModel, "hasListDataListeners")).booleanValue(); - assertTrue(hasListeners); - } - - private SimpleCollectionValueModel buildCollectionHolder() { - return new SimpleCollectionValueModel(this.buildCollection()); - } - - private Collection buildCollection() { - Bag bag = new HashBag(); - this.populateCollection(bag); - return bag; - } - - private SimpleListValueModel buildListHolder() { - return new SimpleListValueModel(this.buildList()); - } - - private List buildList() { - List list = new ArrayList(); - this.populateCollection(list); - return list; - } - - private void populateCollection(Collection c) { - c.add("foo"); - c.add("bar"); - c.add("baz"); - c.add("joo"); - c.add("jar"); - c.add("jaz"); - } - - private SimpleListValueModel buildListHolder2() { - return new SimpleListValueModel(this.buildList2()); - } - - private List buildList2() { - List list = new ArrayList(); - this.populateCollection2(list); - return list; - } - - private void populateCollection2(Collection c) { - c.add("tom"); - c.add("dick"); - c.add("harry"); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java deleted file mode 100644 index 17fd76236d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java +++ /dev/null @@ -1,370 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.TextField; -import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Date; -import java.util.List; -import java.util.ListIterator; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.Icon; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.ListModel; -import javax.swing.WindowConstants; - -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListModelAdapter; -import org.eclipse.jpt.common.utility.internal.swing.Displayable; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * an example UI for testing various permutations of the ListModelAdapter - */ -@SuppressWarnings("nls") -public class ListModelAdapterUITest { - - private WritablePropertyValueModel taskListHolder; - private TextField taskTextField; - - public static void main(String[] args) throws Exception { - new ListModelAdapterUITest().exec(args); - } - - private ListModelAdapterUITest() { - super(); - } - - private void exec(@SuppressWarnings("unused") String[] args) throws Exception { - this.taskListHolder = new SimplePropertyValueModel(new TaskList()); - this.openWindow(); - } - - private void openWindow() { - JFrame window = new JFrame(this.getClass().getName()); - window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - window.addWindowListener(this.buildWindowListener()); - window.getContentPane().add(this.buildMainPanel(), "Center"); - window.setSize(800, 400); - window.setVisible(true); - } - - private WindowListener buildWindowListener() { - return new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - e.getWindow().setVisible(false); - System.exit(0); - } - }; - } - - private Component buildMainPanel() { - JPanel mainPanel = new JPanel(new BorderLayout()); - mainPanel.add(this.buildTaskListPanel(), BorderLayout.CENTER); - mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH); - return mainPanel; - } - - private Component buildTaskListPanel() { - JPanel taskListPanel = new JPanel(new GridLayout(0, 1)); - taskListPanel.add(this.buildPrimitiveTaskListPanel()); - taskListPanel.add(this.buildDisplayableTaskListPanel()); - return taskListPanel; - } - - private Component buildPrimitiveTaskListPanel() { - JPanel taskListPanel = new JPanel(new GridLayout(1, 0)); - taskListPanel.add(this.buildUnsortedPrimitiveListPanel()); - taskListPanel.add(this.buildStandardSortedPrimitiveListPanel()); - taskListPanel.add(this.buildCustomSortedPrimitiveListPanel()); - return taskListPanel; - } - - private Component buildDisplayableTaskListPanel() { - JPanel taskListPanel = new JPanel(new GridLayout(1, 0)); - taskListPanel.add(this.buildUnsortedDisplayableListPanel()); - taskListPanel.add(this.buildStandardSortedDisplayableListPanel()); - taskListPanel.add(this.buildCustomSortedDisplayableListPanel()); - return taskListPanel; - } - - private Component buildUnsortedPrimitiveListPanel() { - return this.buildListPanel("primitive unsorted", this.buildUnsortedPrimitiveListModel()); - } - - private Component buildStandardSortedPrimitiveListPanel() { - return this.buildListPanel("primitive sorted", this.buildStandardSortedPrimitiveListModel()); - } - - private Component buildCustomSortedPrimitiveListPanel() { - return this.buildListPanel("primitive reverse sorted", this.buildCustomSortedPrimitiveListModel()); - } - - private Component buildUnsortedDisplayableListPanel() { - return this.buildListPanel("displayable unsorted", this.buildUnsortedDisplayableListModel()); - } - - private Component buildStandardSortedDisplayableListPanel() { - return this.buildListPanel("displayable sorted", this.buildStandardSortedDisplayableListModel()); - } - - private Component buildCustomSortedDisplayableListPanel() { - return this.buildListPanel("displayable reverse sorted", this.buildCustomSortedDisplayableListModel()); - } - - private ListModel buildUnsortedPrimitiveListModel() { - return new ListModelAdapter(this.buildPrimitiveTaskListAdapter()); - } - - private ListModel buildStandardSortedPrimitiveListModel() { - return new ListModelAdapter(new SortedListValueModelWrapper(this.buildPrimitiveTaskListAdapter())); - } - - private ListModel buildCustomSortedPrimitiveListModel() { - return new ListModelAdapter(new SortedListValueModelWrapper(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator())); - } - - private ListModel buildUnsortedDisplayableListModel() { - return new ListModelAdapter(this.buildDisplayableTaskListAdapter()); - } - - private ListModel buildStandardSortedDisplayableListModel() { - return new ListModelAdapter(new SortedListValueModelWrapper(this.buildDisplayableTaskListAdapter())); - } - - private ListModel buildCustomSortedDisplayableListModel() { - return new ListModelAdapter(new SortedListValueModelWrapper(this.buildDisplayableTaskListAdapter(), this.buildCustomTaskObjectComparator())); - } - - private Component buildListPanel(String label, ListModel listModel) { - JPanel listPanel = new JPanel(new BorderLayout()); - JLabel listLabel = new JLabel(" " + label); - listPanel.add(listLabel, BorderLayout.NORTH); - - JList listBox = new JList(); - listBox.setModel(listModel); - listBox.setDoubleBuffered(true); - listLabel.setLabelFor(listBox); - listPanel.add(new JScrollPane(listBox), BorderLayout.CENTER); - return listPanel; - } - - private Comparator buildCustomStringComparator() { - return new Comparator() { - public int compare(String s1, String s2) { - return s2.compareTo(s1); - } - }; - } - - private Comparator buildCustomTaskObjectComparator() { - return new Comparator() { - public int compare(Task to1, Task to2) { - return to2.displayString().compareTo(to1.displayString()); - } - }; - } - - private ListValueModel buildPrimitiveTaskListAdapter() { - return new ListAspectAdapter(TaskList.TASK_NAMES_LIST, this.taskList()) { - @Override - protected ListIterator listIterator_() { - return this.subject.taskNames(); - } - }; - } - - private ListValueModel buildDisplayableTaskListAdapter() { - return new ListAspectAdapter(TaskList.TASKS_LIST, this.taskList()) { - @Override - protected ListIterator listIterator_() { - return this.subject.tasks(); - } - }; - } - - private Component buildControlPanel() { - JPanel controlPanel = new JPanel(new BorderLayout()); - controlPanel.add(this.buildAddRemoveTaskPanel(), BorderLayout.CENTER); - controlPanel.add(this.buildClearButton(), BorderLayout.EAST); - return controlPanel; - } - - private Component buildAddRemoveTaskPanel() { - JPanel addRemoveTaskPanel = new JPanel(new BorderLayout()); - addRemoveTaskPanel.add(this.buildAddButton(), BorderLayout.WEST); - addRemoveTaskPanel.add(this.buildTaskTextField(), BorderLayout.CENTER); - addRemoveTaskPanel.add(this.buildRemoveButton(), BorderLayout.EAST); - return addRemoveTaskPanel; - } - - private String getTask() { - return this.taskTextField.getText(); - } - - private TaskList taskList() { - return this.taskListHolder.getValue(); - } - - void addTask() { - String task = this.getTask(); - if (task.length() != 0) { - this.taskList().addTask(task); - } - } - - void removeTask() { - String task = this.getTask(); - if (task.length() != 0) { - this.taskList().removeTask(task); - } - } - - void clearTasks() { - this.taskList().clearTasks(); - } - - private TextField buildTaskTextField() { - this.taskTextField = new TextField(); - return this.taskTextField; - } - - private JButton buildAddButton() { - return new JButton(this.buildAddAction()); - } - - private Action buildAddAction() { - Action action = new AbstractAction("add") { - public void actionPerformed(ActionEvent event) { - ListModelAdapterUITest.this.addTask(); - } - }; - action.setEnabled(true); - return action; - } - - private JButton buildRemoveButton() { - return new JButton(this.buildRemoveAction()); - } - - private Action buildRemoveAction() { - Action action = new AbstractAction("remove") { - public void actionPerformed(ActionEvent event) { - ListModelAdapterUITest.this.removeTask(); - } - }; - action.setEnabled(true); - return action; - } - - private JButton buildClearButton() { - return new JButton(this.buildClearAction()); - } - - private Action buildClearAction() { - Action action = new AbstractAction("clear") { - public void actionPerformed(ActionEvent event) { - ListModelAdapterUITest.this.clearTasks(); - } - }; - action.setEnabled(true); - return action; - } - - public class TaskList extends AbstractModel { - private List taskNames = new ArrayList(); - private List taskObjects = new ArrayList(); - public static final String TASK_NAMES_LIST = "taskNames"; - public static final String TASKS_LIST = "tasks"; - TaskList() { - super(); - } - public ListIterator taskNames() { - return this.taskNames.listIterator(); - } - public ListIterator tasks() { - return this.taskObjects.listIterator(); - } - public void addTask(String taskName) { - int index = this.taskNames.size(); - this.taskNames.add(index, taskName); - this.fireItemAdded(TASK_NAMES_LIST, index, taskName); - - Task taskObject = new Task(taskName); - this.taskObjects.add(index, taskObject); - this.fireItemAdded(TASKS_LIST, index, taskObject); - } - public void removeTask(String taskName) { - int index = this.taskNames.indexOf(taskName); - if (index != -1) { - Object removedTask = this.taskNames.remove(index); - this.fireItemRemoved(TASK_NAMES_LIST, index, removedTask); - // assume the indexes match... - Object removedTaskObject = this.taskObjects.remove(index); - this.fireItemRemoved(TASKS_LIST, index, removedTaskObject); - } - } - public void clearTasks() { - this.taskNames.clear(); - this.fireListChanged(TASK_NAMES_LIST, this.taskNames); - this.taskObjects.clear(); - this.fireListChanged(TASKS_LIST, this.taskObjects); - } - } - - public class Task extends AbstractModel implements Displayable { - private String name; - private Date creationTimeStamp; - public Task(String name) { - this.name = name; - this.creationTimeStamp = new Date(); - } - public String displayString() { - return this.name + ": " + this.creationTimeStamp.getTime(); - } - public Icon icon() { - return null; - } - public String getName() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name); - } - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.displayString()); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListSpinnerModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListSpinnerModelAdapterTests.java deleted file mode 100644 index 8260698bf7..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ListSpinnerModelAdapterTests.java +++ /dev/null @@ -1,134 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import javax.swing.SpinnerModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListSpinnerModelAdapter; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ListSpinnerModelAdapterTests extends TestCase { - private WritablePropertyValueModel valueHolder; - private SpinnerModel spinnerModelAdapter; - boolean eventFired; - private static final String[] VALUE_LIST = {"red", "green", "blue"}; - private static final String DEFAULT_VALUE = VALUE_LIST[0]; - - public ListSpinnerModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.valueHolder = new SimplePropertyValueModel(DEFAULT_VALUE); - this.spinnerModelAdapter = new ListSpinnerModelAdapter(this.valueHolder, VALUE_LIST) { - @Override - protected PropertyChangeListener buildValueChangeListener() { - return this.buildValueChangeListener_(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSetValueSpinnerModel() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - ListSpinnerModelAdapterTests.this.eventFired = true; - } - }); - assertEquals(DEFAULT_VALUE, this.valueHolder.getValue()); - this.spinnerModelAdapter.setValue(VALUE_LIST[2]); - assertTrue(this.eventFired); - assertEquals(VALUE_LIST[2], this.valueHolder.getValue()); - } - - public void testSetValueValueHolder() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - ListSpinnerModelAdapterTests.this.eventFired = true; - } - }); - assertEquals(DEFAULT_VALUE, this.spinnerModelAdapter.getValue()); - this.valueHolder.setValue(VALUE_LIST[2]); - assertTrue(this.eventFired); - assertEquals(VALUE_LIST[2], this.spinnerModelAdapter.getValue()); - } - - public void testDefaultValue() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - ListSpinnerModelAdapterTests.this.eventFired = true; - } - }); - assertEquals(DEFAULT_VALUE, this.spinnerModelAdapter.getValue()); - - this.valueHolder.setValue(VALUE_LIST[2]); - assertTrue(this.eventFired); - assertEquals(VALUE_LIST[2], this.spinnerModelAdapter.getValue()); - - this.eventFired = false; - this.valueHolder.setValue(null); - assertTrue(this.eventFired); - assertEquals(VALUE_LIST[0], this.spinnerModelAdapter.getValue()); - } - - public void testHasListeners() throws Exception { - SimplePropertyValueModel localValueHolder = (SimplePropertyValueModel) this.valueHolder; - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.spinnerModelAdapter); - - ChangeListener listener = new TestChangeListener(); - this.spinnerModelAdapter.addChangeListener(listener); - assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasListeners(this.spinnerModelAdapter); - - this.spinnerModelAdapter.removeChangeListener(listener); - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.spinnerModelAdapter); - } - - private void verifyHasNoListeners(SpinnerModel adapter) throws Exception { - assertEquals(0, ((ListSpinnerModelAdapter) adapter).getChangeListeners().length); - } - - private void verifyHasListeners(Object adapter) throws Exception { - assertFalse(((ListSpinnerModelAdapter) adapter).getChangeListeners().length == 0); - } - - - private class TestChangeListener implements ChangeListener { - TestChangeListener() { - super(); - } - public void stateChanged(ChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/NumberSpinnerModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/NumberSpinnerModelAdapterTests.java deleted file mode 100644 index be5d8e16db..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/NumberSpinnerModelAdapterTests.java +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import javax.swing.SpinnerModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.NumberSpinnerModelAdapter; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class NumberSpinnerModelAdapterTests extends TestCase { - private WritablePropertyValueModel valueHolder; - private SpinnerModel spinnerModelAdapter; - boolean eventFired; - - public NumberSpinnerModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.valueHolder = new SimplePropertyValueModel(new Integer(0)); - this.spinnerModelAdapter = new NumberSpinnerModelAdapter(this.valueHolder, -33, 33, 1) { - @Override - protected PropertyChangeListener buildNumberChangeListener() { - return this.buildNumberChangeListener_(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSetValueSpinnerModel() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - NumberSpinnerModelAdapterTests.this.eventFired = true; - } - }); - this.spinnerModelAdapter.setValue(new Integer(5)); - assertTrue(this.eventFired); - assertEquals(new Integer(5), this.valueHolder.getValue()); - } - - public void testSetValueValueHolder() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - NumberSpinnerModelAdapterTests.this.eventFired = true; - } - }); - assertEquals(new Integer(0), this.spinnerModelAdapter.getValue()); - this.valueHolder.setValue(new Integer(7)); - assertTrue(this.eventFired); - assertEquals(new Integer(7), this.spinnerModelAdapter.getValue()); - } - - public void testDefaultValue() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - NumberSpinnerModelAdapterTests.this.eventFired = true; - } - }); - assertEquals(new Integer(0), this.spinnerModelAdapter.getValue()); - this.valueHolder.setValue(null); - assertTrue(this.eventFired); - assertEquals(new Integer(-33), this.spinnerModelAdapter.getValue()); - } - - public void testHasListeners() throws Exception { - SimplePropertyValueModel localValueHolder = (SimplePropertyValueModel) this.valueHolder; - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.spinnerModelAdapter); - - ChangeListener listener = new TestChangeListener(); - this.spinnerModelAdapter.addChangeListener(listener); - assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasListeners(this.spinnerModelAdapter); - - this.spinnerModelAdapter.removeChangeListener(listener); - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.spinnerModelAdapter); - } - - private void verifyHasNoListeners(SpinnerModel adapter) throws Exception { - assertEquals(0, ((NumberSpinnerModelAdapter) adapter).getChangeListeners().length); - } - - private void verifyHasListeners(Object adapter) throws Exception { - assertFalse(((NumberSpinnerModelAdapter) adapter).getChangeListeners().length == 0); - } - - public void testNullInitialValue() { - this.valueHolder = new SimplePropertyValueModel(); - this.spinnerModelAdapter = new NumberSpinnerModelAdapter(this.valueHolder, new Integer(-33), new Integer(33), new Integer(1), new Integer(0)) { - @Override - protected PropertyChangeListener buildNumberChangeListener() { - return this.buildNumberChangeListener_(); - } - }; - - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - NumberSpinnerModelAdapterTests.this.eventFired = true; - } - }); - assertEquals(new Integer(0), this.spinnerModelAdapter.getValue()); - this.valueHolder.setValue(new Integer(7)); - assertTrue(this.eventFired); - assertEquals(new Integer(7), this.spinnerModelAdapter.getValue()); - } - - - // ********** inner class ********** - private class TestChangeListener implements ChangeListener { - TestChangeListener() { - super(); - } - public void stateChanged(ChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ObjectListSelectionModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ObjectListSelectionModelTests.java deleted file mode 100644 index 4f55864415..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ObjectListSelectionModelTests.java +++ /dev/null @@ -1,205 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import javax.swing.DefaultListModel; -import javax.swing.ListModel; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ObjectListSelectionModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class ObjectListSelectionModelTests extends TestCase { - private DefaultListModel listModel; - private ObjectListSelectionModel selectionModel; - - public ObjectListSelectionModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.listModel = this.buildListModel(); - this.selectionModel = this.buildSelectionModel(this.listModel); - } - - private DefaultListModel buildListModel() { - DefaultListModel lm = new DefaultListModel(); - lm.addElement("foo"); - lm.addElement("bar"); - lm.addElement("baz"); - return lm; - } - - private ObjectListSelectionModel buildSelectionModel(ListModel lm) { - return new ObjectListSelectionModel(lm); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testListDataListener() { - this.selectionModel.addListSelectionListener(this.buildListSelectionListener()); - this.selectionModel.setSelectionInterval(0, 0); - assertEquals("foo", this.selectionModel.selectedValue()); - this.listModel.set(0, "jar"); - assertEquals("jar", this.selectionModel.selectedValue()); - } - - public void testGetSelectedValue() { - this.selectionModel.setSelectionInterval(0, 0); - assertEquals("foo", this.selectionModel.selectedValue()); - } - - public void testGetSelectedValues() { - this.selectionModel.setSelectionInterval(0, 0); - this.selectionModel.addSelectionInterval(2, 2); - assertEquals(2, this.selectionModel.selectedValues().length); - assertTrue(ArrayTools.contains(this.selectionModel.selectedValues(), "foo")); - assertTrue(ArrayTools.contains(this.selectionModel.selectedValues(), "baz")); - } - - public void testSetSelectedValue() { - this.selectionModel.setSelectedValue("foo"); - assertEquals(0, this.selectionModel.getMinSelectionIndex()); - assertEquals(0, this.selectionModel.getMaxSelectionIndex()); - } - - public void testSetSelectedValues() { - this.selectionModel.setSelectedValues(new Object[] {"foo", "baz"}); - assertEquals(0, this.selectionModel.getMinSelectionIndex()); - assertEquals(2, this.selectionModel.getMaxSelectionIndex()); - } - - public void testAddSelectedValue() { - this.listModel.addElement("joo"); - this.listModel.addElement("jar"); - this.listModel.addElement("jaz"); - this.selectionModel.setSelectedValue("foo"); - this.selectionModel.addSelectedValue("jaz"); - assertEquals(0, this.selectionModel.getMinSelectionIndex()); - assertEquals(5, this.selectionModel.getMaxSelectionIndex()); - assertTrue(this.selectionModel.isSelectedIndex(0)); - assertFalse(this.selectionModel.isSelectedIndex(1)); - assertFalse(this.selectionModel.isSelectedIndex(2)); - assertFalse(this.selectionModel.isSelectedIndex(3)); - assertFalse(this.selectionModel.isSelectedIndex(4)); - assertTrue(this.selectionModel.isSelectedIndex(5)); - } - - public void testAddSelectedValues() { - this.listModel.addElement("joo"); - this.listModel.addElement("jar"); - this.listModel.addElement("jaz"); - this.selectionModel.setSelectedValue("foo"); - this.selectionModel.addSelectedValues(new Object[] {"bar", "jar"}); - assertEquals(0, this.selectionModel.getMinSelectionIndex()); - assertEquals(4, this.selectionModel.getMaxSelectionIndex()); - assertTrue(this.selectionModel.isSelectedIndex(0)); - assertTrue(this.selectionModel.isSelectedIndex(1)); - assertFalse(this.selectionModel.isSelectedIndex(2)); - assertFalse(this.selectionModel.isSelectedIndex(3)); - assertTrue(this.selectionModel.isSelectedIndex(4)); - assertFalse(this.selectionModel.isSelectedIndex(5)); - } - - public void testRemoveSelectedValue() { - this.listModel.addElement("joo"); - this.listModel.addElement("jar"); - this.listModel.addElement("jaz"); - this.selectionModel.setSelectedValues(new Object[] {"foo", "baz", "jar"}); - this.selectionModel.removeSelectedValue("jar"); - assertEquals(0, this.selectionModel.getMinSelectionIndex()); - assertEquals(2, this.selectionModel.getMaxSelectionIndex()); - assertTrue(this.selectionModel.isSelectedIndex(0)); - assertFalse(this.selectionModel.isSelectedIndex(1)); - assertTrue(this.selectionModel.isSelectedIndex(2)); - assertFalse(this.selectionModel.isSelectedIndex(3)); - assertFalse(this.selectionModel.isSelectedIndex(4)); - assertFalse(this.selectionModel.isSelectedIndex(5)); - } - - public void testRemoveSelectedValues() { - this.listModel.addElement("joo"); - this.listModel.addElement("jar"); - this.listModel.addElement("jaz"); - this.selectionModel.setSelectedValues(new Object[] {"foo", "baz", "joo", "jar"}); - this.selectionModel.removeSelectedValues(new Object[] {"foo", "joo"}); - assertEquals(2, this.selectionModel.getMinSelectionIndex()); - assertEquals(4, this.selectionModel.getMaxSelectionIndex()); - assertFalse(this.selectionModel.isSelectedIndex(0)); - assertFalse(this.selectionModel.isSelectedIndex(1)); - assertTrue(this.selectionModel.isSelectedIndex(2)); - assertFalse(this.selectionModel.isSelectedIndex(3)); - assertTrue(this.selectionModel.isSelectedIndex(4)); - assertFalse(this.selectionModel.isSelectedIndex(5)); - } - - public void testGetAnchorSelectedValue() { - this.selectionModel.setAnchorSelectionIndex(1); - assertEquals("bar", this.selectionModel.getAnchorSelectedValue()); - } - - public void testGetLeadSelectedValue() { - this.selectionModel.setSelectedValue("bar"); - assertEquals("bar", this.selectionModel.getLeadSelectedValue()); - this.selectionModel.setSelectedValues(new Object[] {"foo", "baz"}); - assertEquals("baz", this.selectionModel.getLeadSelectedValue()); - } - - public void testGetMinMaxSelectedValue() { - this.listModel.addElement("joo"); - this.listModel.addElement("jar"); - this.listModel.addElement("jaz"); - this.selectionModel.setSelectedValue("foo"); - this.selectionModel.addSelectedValues(new Object[] {"bar", "jar"}); - assertEquals("foo", this.selectionModel.getMinSelectedValue()); - assertEquals("jar", this.selectionModel.getMaxSelectedValue()); - } - - public void testValueIsSelected() { - this.listModel.addElement("joo"); - this.listModel.addElement("jar"); - this.listModel.addElement("jaz"); - this.selectionModel.setSelectedValue("foo"); - this.selectionModel.addSelectedValues(new Object[] {"bar", "jar"}); - assertTrue(this.selectionModel.valueIsSelected("foo")); - assertTrue(this.selectionModel.valueIsSelected("bar")); - assertTrue(this.selectionModel.valueIsSelected("jar")); - assertFalse(this.selectionModel.valueIsSelected("baz")); - } - - public void testHasListeners() throws Exception { - ListSelectionListener listener = this.buildListSelectionListener(); - assertEquals(0, this.listModel.getListDataListeners().length); - this.selectionModel.addListSelectionListener(listener); - assertEquals(1, this.listModel.getListDataListeners().length); - this.selectionModel.removeListSelectionListener(listener); - assertEquals(0, this.listModel.getListDataListeners().length); - } - - private ListSelectionListener buildListSelectionListener() { - return new ListSelectionListener() { - public void valueChanged(ListSelectionEvent e) { - // do nothing for now... - } - }; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/PrimitiveListTreeModelTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/PrimitiveListTreeModelTests.java deleted file mode 100644 index eca1bee8dd..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/PrimitiveListTreeModelTests.java +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.ListIterator; -import javax.swing.event.TreeModelEvent; -import javax.swing.event.TreeModelListener; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.TreeModel; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyListIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.PrimitiveListTreeModel; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class PrimitiveListTreeModelTests extends TestCase { - TestModel testModel; - private TreeModel treeModel; - - public PrimitiveListTreeModelTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.testModel = this.buildTestModel(); - this.treeModel = this.buildTreeModel(); - } - - private TestModel buildTestModel() { - return new TestModel(); - } - - private TreeModel buildTreeModel() { - return new PrimitiveListTreeModel(this.buildListValueModel()) { - @Override - protected void primitiveChanged(int index, Object newValue) { - if ( ! newValue.equals("")) { - PrimitiveListTreeModelTests.this.testModel.replaceName(index, (String) newValue); - } - } - @Override - protected ListChangeListener buildListChangeListener() { - return this.buildListChangeListener_(); - } - }; - } - - private ListValueModel buildListValueModel() { - return new ListAspectAdapter(TestModel.NAMES_LIST, this.testModel) { - @Override - protected ListIterator listIterator_() { - return this.subject.names(); - } - @Override - public String get(int index) { - return this.subject.getName(index); - } - @Override - public int size() { - return this.subject.namesSize(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testAddPrimitive() { - this.treeModel.addTreeModelListener(new TestTreeModelListener() { - @Override - public void treeNodesInserted(TreeModelEvent e) { - PrimitiveListTreeModelTests.this.verifyTreeModelEvent(e, new int[] {0}, new String[] {"foo"}); - } - }); - this.testModel.addName("foo"); - } - - public void testRemovePrimitive() { - this.testModel.addName("foo"); - this.testModel.addName("bar"); - this.testModel.addName("baz"); - this.treeModel.addTreeModelListener(new TestTreeModelListener() { - @Override - public void treeNodesRemoved(TreeModelEvent e) { - PrimitiveListTreeModelTests.this.verifyTreeModelEvent(e, new int[] {1}, new String[] {"bar"}); - } - }); - String name = this.testModel.removeName(1); - assertEquals("bar", name); - } - - public void testReplacePrimitive() { - this.testModel.addName("foo"); - this.testModel.addName("bar"); - this.testModel.addName("baz"); - this.treeModel.addTreeModelListener(new TestTreeModelListener() { - @Override - public void treeNodesChanged(TreeModelEvent e) { - PrimitiveListTreeModelTests.this.verifyTreeModelEvent(e, new int[] {1}, new String[] {"jar"}); - } - }); - String name = this.testModel.replaceName(1, "jar"); - assertEquals("bar", name); - } - - void verifyTreeModelEvent(TreeModelEvent e, int[] expectedChildIndices, String[] expectedNames) { - assertTrue(Arrays.equals(expectedChildIndices, e.getChildIndices())); - Object[] actualChildren = e.getChildren(); - assertEquals(expectedNames.length, actualChildren.length); - for (int i = 0; i < expectedNames.length; i++) { - DefaultMutableTreeNode node = (DefaultMutableTreeNode) actualChildren[i]; - assertEquals(expectedNames[i], node.getUserObject()); - } - assertEquals(1, e.getPath().length); - assertEquals(this.treeModel.getRoot(), e.getPath()[0]); - assertEquals(this.treeModel, e.getSource()); - } - - -// ********** inner classes ********** - - class TestModel extends AbstractModel { - private final List names; - static final String NAMES_LIST = "names"; - - TestModel() { - super(); - this.names = new ArrayList(); - } - - public ListIterator names() { - return new ReadOnlyListIterator(this.names); - } - public int namesSize() { - return this.names.size(); - } - public String getName(int index) { - return this.names.get(index); - } - public void addName(int index, String name) { - this.addItemToList(index, name, this.names, NAMES_LIST); - } - public void addName(String name) { - this.addName(this.namesSize(), name); - } - public void addNames(int index, List list) { - this.addItemsToList(index, this.names, list, NAMES_LIST); - } - public void addNames(List list) { - this.addNames(this.namesSize(), list); - } - public String removeName(int index) { - return this.removeItemFromList(index, this.names, NAMES_LIST); - } - public List removeNames(int index, int length) { - return this.removeItemsFromList(index, length, this.names, NAMES_LIST); - } - public String replaceName(int index, String newName) { - return this.setItemInList(index, newName, this.names, NAMES_LIST); - } - } - - - public class TestTreeModelListener implements TreeModelListener { - public void treeNodesChanged(TreeModelEvent e) { - fail("unexpected event"); - } - public void treeNodesInserted(TreeModelEvent e) { - fail("unexpected event"); - } - public void treeNodesRemoved(TreeModelEvent e) { - fail("unexpected event"); - } - public void treeStructureChanged(TreeModelEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/RadioButtonModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/RadioButtonModelAdapterTests.java deleted file mode 100644 index edd9e93504..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/RadioButtonModelAdapterTests.java +++ /dev/null @@ -1,230 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import javax.swing.ButtonModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; -import javax.swing.event.EventListenerList; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.RadioButtonModelAdapter; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class RadioButtonModelAdapterTests extends TestCase { - private WritablePropertyValueModel valueHolder; - - private ButtonModel redButtonModelAdapter; - private ChangeListener redListener; - boolean redEventFired; - - private ButtonModel greenButtonModelAdapter; - private ChangeListener greenListener; - boolean greenEventFired; - - private ButtonModel blueButtonModelAdapter; - private ChangeListener blueListener; - boolean blueEventFired; - -// private ButtonGroup buttonGroup; // DO NOT use a ButtonGroup - - private static final String RED = "red"; - private static final String GREEN = "green"; - private static final String BLUE = "blue"; - - public RadioButtonModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.valueHolder = new SimplePropertyValueModel(null); -// buttonGroup = new ButtonGroup(); - - this.redButtonModelAdapter = this.buildButtonModel(this.valueHolder, RED); -// this.redButtonModelAdapter.setGroup(buttonGroup); - this.redListener = new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - RadioButtonModelAdapterTests.this.redEventFired = true; - } - }; - - this.greenButtonModelAdapter = this.buildButtonModel(this.valueHolder, GREEN); -// this.greenButtonModelAdapter.setGroup(buttonGroup); - this.greenListener = new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - RadioButtonModelAdapterTests.this.greenEventFired = true; - } - }; - - this.blueButtonModelAdapter = this.buildButtonModel(this.valueHolder, BLUE); -// this.blueButtonModelAdapter.setGroup(buttonGroup); - this.blueListener = new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - RadioButtonModelAdapterTests.this.blueEventFired = true; - } - }; - - this.clearFlags(); - } - - private ButtonModel buildButtonModel(WritablePropertyValueModel pvm, Object buttonValue) { - return new RadioButtonModelAdapter(pvm, buttonValue) { - @Override - protected PropertyChangeListener buildBooleanChangeListener() { - return this.buildBooleanChangeListener_(); - } - }; - } - - private void listenToModelAdapters() { - this.redButtonModelAdapter.addChangeListener(this.redListener); - this.greenButtonModelAdapter.addChangeListener(this.greenListener); - this.blueButtonModelAdapter.addChangeListener(this.blueListener); - } - - private void clearFlags() { - this.redEventFired = false; - this.greenEventFired = false; - this.blueEventFired = false; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSetSelected() throws Exception { - this.listenToModelAdapters(); - - this.greenButtonModelAdapter.setSelected(true); - assertFalse(this.redEventFired); - assertTrue(this.greenEventFired); - assertFalse(this.blueEventFired); - assertEquals(GREEN, this.valueHolder.getValue()); - - this.clearFlags(); - this.blueButtonModelAdapter.setSelected(true); - assertFalse(this.redEventFired); - assertTrue(this.greenEventFired); - assertTrue(this.blueEventFired); - assertEquals(BLUE, this.valueHolder.getValue()); - - this.clearFlags(); - this.redButtonModelAdapter.setSelected(true); - assertTrue(this.redEventFired); - assertFalse(this.greenEventFired); - assertTrue(this.blueEventFired); - assertEquals(RED, this.valueHolder.getValue()); - } - - public void testSetValue() throws Exception { - this.listenToModelAdapters(); - - this.greenButtonModelAdapter.setSelected(true); - - this.clearFlags(); - this.valueHolder.setValue(BLUE); - assertFalse(this.redEventFired); - assertTrue(this.greenEventFired); - assertTrue(this.blueEventFired); - assertFalse(this.redButtonModelAdapter.isSelected()); - assertFalse(this.greenButtonModelAdapter.isSelected()); - assertTrue(this.blueButtonModelAdapter.isSelected()); - - this.clearFlags(); - this.valueHolder.setValue(RED); - assertTrue(this.redEventFired); - assertFalse(this.greenEventFired); - assertTrue(this.blueEventFired); - assertTrue(this.redButtonModelAdapter.isSelected()); - assertFalse(this.greenButtonModelAdapter.isSelected()); - assertFalse(this.blueButtonModelAdapter.isSelected()); - } - - public void testDefaultValue() throws Exception { - this.listenToModelAdapters(); - - this.valueHolder.setValue(GREEN); - assertFalse(this.redButtonModelAdapter.isSelected()); - assertTrue(this.greenButtonModelAdapter.isSelected()); - assertFalse(this.blueButtonModelAdapter.isSelected()); - - this.clearFlags(); - this.valueHolder.setValue(null); - assertFalse(this.redEventFired); - assertTrue(this.greenEventFired); - assertFalse(this.blueEventFired); - assertFalse(this.redButtonModelAdapter.isSelected()); - assertFalse(this.greenButtonModelAdapter.isSelected()); - assertFalse(this.blueButtonModelAdapter.isSelected()); - - this.clearFlags(); - this.valueHolder.setValue(BLUE); - assertFalse(this.redEventFired); - assertFalse(this.greenEventFired); - assertTrue(this.blueEventFired); - assertFalse(this.redButtonModelAdapter.isSelected()); - assertFalse(this.greenButtonModelAdapter.isSelected()); - assertTrue(this.blueButtonModelAdapter.isSelected()); - } - - public void testHasListeners() throws Exception { - SimplePropertyValueModel localValueHolder = (SimplePropertyValueModel) this.valueHolder; - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.redButtonModelAdapter); - this.verifyHasNoListeners(this.greenButtonModelAdapter); - this.verifyHasNoListeners(this.blueButtonModelAdapter); - - ChangeListener listener = new TestChangeListener(); - this.redButtonModelAdapter.addChangeListener(listener); - assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasListeners(this.redButtonModelAdapter); - this.verifyHasNoListeners(this.greenButtonModelAdapter); - this.verifyHasNoListeners(this.blueButtonModelAdapter); - - this.redButtonModelAdapter.removeChangeListener(listener); - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.redButtonModelAdapter); - this.verifyHasNoListeners(this.greenButtonModelAdapter); - this.verifyHasNoListeners(this.blueButtonModelAdapter); - } - - private void verifyHasNoListeners(Object model) throws Exception { - EventListenerList listenerList = (EventListenerList) ReflectionTools.getFieldValue(model, "listenerList"); - assertEquals(0, listenerList.getListenerList().length); - } - - private void verifyHasListeners(Object model) throws Exception { - EventListenerList listenerList = (EventListenerList) ReflectionTools.getFieldValue(model, "listenerList"); - assertFalse(listenerList.getListenerList().length == 0); - } - - - private class TestChangeListener implements ChangeListener { - TestChangeListener() { - super(); - } - public void stateChanged(ChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/RadioButtonModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/RadioButtonModelAdapterUITest.java deleted file mode 100644 index 0b4ff59108..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/RadioButtonModelAdapterUITest.java +++ /dev/null @@ -1,260 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.ButtonModel; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.WindowConstants; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.RadioButtonModelAdapter; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - - -/** - * Play around with a set of radio buttons. - */ -@SuppressWarnings("nls") -public class RadioButtonModelAdapterUITest { - - private TestModel testModel; - private WritablePropertyValueModel testModelHolder; - private WritablePropertyValueModel colorHolder; - private ButtonModel redButtonModel; - private ButtonModel greenButtonModel; - private ButtonModel blueButtonModel; - - public static void main(String[] args) throws Exception { - new RadioButtonModelAdapterUITest().exec(); - } - - private RadioButtonModelAdapterUITest() { - super(); - } - - private void exec() throws Exception { - this.testModel = new TestModel(); - this.testModelHolder = new SimplePropertyValueModel(this.testModel); - this.colorHolder = this.buildColorHolder(this.testModelHolder); - this.redButtonModel = this.buildRadioButtonModelAdapter(this.colorHolder, TestModel.RED); - this.greenButtonModel = this.buildRadioButtonModelAdapter(this.colorHolder, TestModel.GREEN); - this.blueButtonModel = this.buildRadioButtonModelAdapter(this.colorHolder, TestModel.BLUE); - this.openWindow(); - } - - private WritablePropertyValueModel buildColorHolder(PropertyValueModel subjectHolder) { - return new PropertyAspectAdapter(subjectHolder, TestModel.COLOR_PROPERTY) { - @Override - protected Object buildValue_() { - return this.subject.getColor(); - } - @Override - protected void setValue_(Object value) { - this.subject.setColor((String) value); - } - }; - } - - private ButtonModel buildRadioButtonModelAdapter(WritablePropertyValueModel colorPVM, String color) { - return new RadioButtonModelAdapter(colorPVM, color); - } - - private void openWindow() { - JFrame window = new JFrame(this.getClass().getName()); - window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - window.addWindowListener(this.buildWindowListener()); - window.getContentPane().add(this.buildMainPanel(), "Center"); - window.setSize(400, 100); - window.setLocation(200, 200); - window.setVisible(true); - } - - private WindowListener buildWindowListener() { - return new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - e.getWindow().setVisible(false); - System.exit(0); - } - }; - } - - private Component buildMainPanel() { - JPanel mainPanel = new JPanel(new BorderLayout()); - mainPanel.add(this.buildRadioButtonPanel(), BorderLayout.NORTH); - mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH); - return mainPanel; - } - - private Component buildRadioButtonPanel() { - JPanel taskListPanel = new JPanel(new GridLayout(1, 0)); - taskListPanel.add(this.buildRedRadioButton()); - taskListPanel.add(this.buildGreenRadioButton()); - taskListPanel.add(this.buildBlueRadioButton()); - return taskListPanel; - } - - private JRadioButton buildRedRadioButton() { - JRadioButton radioButton = new JRadioButton(); - radioButton.setText("red"); - radioButton.setModel(this.redButtonModel); - return radioButton; - } - - private JRadioButton buildGreenRadioButton() { - JRadioButton radioButton = new JRadioButton(); - radioButton.setText("green"); - radioButton.setModel(this.greenButtonModel); - return radioButton; - } - - private JRadioButton buildBlueRadioButton() { - JRadioButton radioButton = new JRadioButton(); - radioButton.setText("blue"); - radioButton.setModel(this.blueButtonModel); - return radioButton; - } - - private Component buildControlPanel() { - JPanel controlPanel = new JPanel(new GridLayout(1, 0)); - controlPanel.add(this.buildResetColorButton()); - controlPanel.add(this.buildClearModelButton()); - controlPanel.add(this.buildRestoreModelButton()); - controlPanel.add(this.buildPrintModelButton()); - return controlPanel; - } - - private JButton buildResetColorButton() { - return new JButton(this.buildResetColorAction()); - } - - private Action buildResetColorAction() { - Action action = new AbstractAction("reset color") { - public void actionPerformed(ActionEvent event) { - RadioButtonModelAdapterUITest.this.resetColor(); - } - }; - action.setEnabled(true); - return action; - } - - void resetColor() { - this.testModel.setColor(TestModel.DEFAULT_COLOR); - } - - private JButton buildClearModelButton() { - return new JButton(this.buildClearModelAction()); - } - - private Action buildClearModelAction() { - Action action = new AbstractAction("clear model") { - public void actionPerformed(ActionEvent event) { - RadioButtonModelAdapterUITest.this.clearModel(); - } - }; - action.setEnabled(true); - return action; - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private JButton buildRestoreModelButton() { - return new JButton(this.buildRestoreModelAction()); - } - - private Action buildRestoreModelAction() { - Action action = new AbstractAction("restore model") { - public void actionPerformed(ActionEvent event) { - RadioButtonModelAdapterUITest.this.restoreModel(); - } - }; - action.setEnabled(true); - return action; - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private JButton buildPrintModelButton() { - return new JButton(this.buildPrintModelAction()); - } - - private Action buildPrintModelAction() { - Action action = new AbstractAction("print model") { - public void actionPerformed(ActionEvent event) { - RadioButtonModelAdapterUITest.this.printModel(); - } - }; - action.setEnabled(true); - return action; - } - - void printModel() { - System.out.println(this.testModel); - } - - - private static class TestModel extends AbstractModel { - private String color; - public static final String COLOR_PROPERTY = "color"; - public static final String RED = "red"; - public static final String GREEN = "green"; - public static final String BLUE = "blue"; - public static final String DEFAULT_COLOR = RED; - public static final String[] VALID_COLORS = { - RED, - GREEN, - BLUE - }; - - public TestModel() { - this(DEFAULT_COLOR); - } - public TestModel(String color) { - this.color = color; - } - public String getColor() { - return this.color; - } - public void setColor(String color) { - if ( ! ArrayTools.contains(VALID_COLORS, color)) { - throw new IllegalArgumentException(color); - } - Object old = this.color; - this.color = color; - this.firePropertyChanged(COLOR_PROPERTY, old, color); - } - @Override - public String toString() { - return "TestModel(" + this.color + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ReadOnlyTableModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ReadOnlyTableModelAdapterUITest.java deleted file mode 100644 index 72cb1d2d31..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/ReadOnlyTableModelAdapterUITest.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import org.eclipse.jpt.common.utility.internal.model.value.swing.ColumnAdapter; -import org.eclipse.jpt.common.utility.tests.internal.model.value.swing.TableModelAdapterTests.PersonColumnAdapter; - -/** - * Make it easy to test the table model adapter and - * renderers without any editing allowed. - */ -public class ReadOnlyTableModelAdapterUITest extends TableModelAdapterUITest { - - public static void main(String[] args) throws Exception { - new ReadOnlyTableModelAdapterUITest().exec(args); - } - - protected ReadOnlyTableModelAdapterUITest() { - super(); - } - - @Override - protected ColumnAdapter buildColumnAdapter() { - return new PersonColumnAdapter() { - @Override - public boolean columnIsEditable(int index) { - return false; - } - }; - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/SpinnerModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/SpinnerModelAdapterTests.java deleted file mode 100644 index 76a1c158f4..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/SpinnerModelAdapterTests.java +++ /dev/null @@ -1,118 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import javax.swing.SpinnerModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.SpinnerModelAdapter; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SpinnerModelAdapterTests extends TestCase { - private WritablePropertyValueModel valueHolder; - SpinnerModel spinnerModelAdapter; - boolean eventFired; - - public SpinnerModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.valueHolder = new SimplePropertyValueModel(new Integer(0)); - this.spinnerModelAdapter = new SpinnerModelAdapter(this.valueHolder) { - @Override - protected PropertyChangeListener buildValueListener() { - return this.buildValueListener_(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testSetValueSpinnerModel() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - SpinnerModelAdapterTests.this.eventFired = true; - assertEquals(SpinnerModelAdapterTests.this.spinnerModelAdapter, e.getSource()); - } - }); - this.spinnerModelAdapter.setValue(new Integer(5)); - assertTrue(this.eventFired); - assertEquals(new Integer(5), this.valueHolder.getValue()); - } - - public void testSetValueValueHolder() throws Exception { - this.eventFired = false; - this.spinnerModelAdapter.addChangeListener(new TestChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - SpinnerModelAdapterTests.this.eventFired = true; - assertEquals(SpinnerModelAdapterTests.this.spinnerModelAdapter, e.getSource()); - } - }); - assertEquals(new Integer(0), this.spinnerModelAdapter.getValue()); - this.valueHolder.setValue(new Integer(7)); - assertTrue(this.eventFired); - assertEquals(new Integer(7), this.spinnerModelAdapter.getValue()); - } - - public void testHasListeners() throws Exception { - SimplePropertyValueModel localValueHolder = (SimplePropertyValueModel) this.valueHolder; - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.spinnerModelAdapter); - - ChangeListener listener = new TestChangeListener(); - this.spinnerModelAdapter.addChangeListener(listener); - assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasListeners(this.spinnerModelAdapter); - - this.spinnerModelAdapter.removeChangeListener(listener); - assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE)); - this.verifyHasNoListeners(this.spinnerModelAdapter); - } - - private void verifyHasNoListeners(Object adapter) throws Exception { - Object delegate = ReflectionTools.getFieldValue(adapter, "delegate"); - Object[] listeners = (Object[]) ReflectionTools.executeMethod(delegate, "getChangeListeners"); - assertEquals(0, listeners.length); - } - - private void verifyHasListeners(Object adapter) throws Exception { - Object delegate = ReflectionTools.getFieldValue(adapter, "delegate"); - Object[] listeners = (Object[]) ReflectionTools.executeMethod(delegate, "getChangeListeners"); - assertFalse(listeners.length == 0); - } - - - private class TestChangeListener implements ChangeListener { - TestChangeListener() { - super(); - } - public void stateChanged(ChangeEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/SpinnerModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/SpinnerModelAdapterUITest.java deleted file mode 100644 index 26976caed9..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/SpinnerModelAdapterUITest.java +++ /dev/null @@ -1,344 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.util.Calendar; -import java.util.Date; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JSpinner; -import javax.swing.SpinnerModel; -import javax.swing.WindowConstants; - -import org.eclipse.jpt.common.utility.internal.ArrayTools; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.DateSpinnerModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListSpinnerModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.NumberSpinnerModelAdapter; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -/** - * Play around with a set of spinners. - */ -@SuppressWarnings("nls") -public class SpinnerModelAdapterUITest { - - private TestModel testModel; - private WritablePropertyValueModel testModelHolder; - - private WritablePropertyValueModel birthDateHolder; - private SpinnerModel birthDateSpinnerModel; - - private WritablePropertyValueModel ageHolder; - private SpinnerModel ageSpinnerModel; - - private WritablePropertyValueModel eyeColorHolder; - private SpinnerModel eyeColorSpinnerModel; - - - public static void main(String[] args) throws Exception { - new SpinnerModelAdapterUITest().exec(); - } - - private SpinnerModelAdapterUITest() { - super(); - } - - private void exec() throws Exception { - this.testModel = new TestModel(); - this.testModelHolder = new SimplePropertyValueModel(this.testModel); - - this.birthDateHolder = this.buildBirthDateHolder(this.testModelHolder); - this.birthDateSpinnerModel = this.buildBirthDateSpinnerModel(this.birthDateHolder); - - this.ageHolder = this.buildAgeHolder(this.testModelHolder); - this.ageSpinnerModel = this.buildAgeSpinnerModel(this.ageHolder); - - this.eyeColorHolder = this.buildEyeColorHolder(this.testModelHolder); - this.eyeColorSpinnerModel = this.buildEyeColorSpinnerModel(this.eyeColorHolder); - - this.openWindow(); - } - - private WritablePropertyValueModel buildBirthDateHolder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.BIRTH_DATE_PROPERTY) { - @Override - protected Object buildValue_() { - return this.subject.getBirthDate(); - } - @Override - protected void setValue_(Object value) { - this.subject.setBirthDate((Date) value); - } - }; - } - - private SpinnerModel buildBirthDateSpinnerModel(WritablePropertyValueModel valueHolder) { - return new DateSpinnerModelAdapter(valueHolder); - } - - private WritablePropertyValueModel buildAgeHolder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.AGE_PROPERTY) { - @Override - protected Number buildValue_() { - return new Integer(this.subject.getAge()); - } - @Override - protected void setValue_(Number value) { - this.subject.setAge(value.intValue()); - } - }; - } - - private SpinnerModel buildAgeSpinnerModel(WritablePropertyValueModel valueHolder) { - return new NumberSpinnerModelAdapter(valueHolder, valueHolder.getValue().intValue(), TestModel.MIN_AGE, TestModel.MAX_AGE, 1); - } - - private WritablePropertyValueModel buildEyeColorHolder(PropertyValueModel vm) { - return new PropertyAspectAdapter(vm, TestModel.EYE_COLOR_PROPERTY) { - @Override - protected Object buildValue_() { - return this.subject.getEyeColor(); - } - @Override - protected void setValue_(Object value) { - this.subject.setEyeColor((String) value); - } - }; - } - - private SpinnerModel buildEyeColorSpinnerModel(WritablePropertyValueModel valueHolder) { - return new ListSpinnerModelAdapter(valueHolder, TestModel.VALID_EYE_COLORS); - } - - private void openWindow() { - JFrame window = new JFrame(this.getClass().getName()); - window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - window.addWindowListener(this.buildWindowListener()); - window.getContentPane().add(this.buildMainPanel(), "Center"); - window.setSize(600, 100); - window.setVisible(true); - } - - private WindowListener buildWindowListener() { - return new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - e.getWindow().setVisible(false); - System.exit(0); - } - }; - } - - private Component buildMainPanel() { - JPanel mainPanel = new JPanel(new BorderLayout()); - mainPanel.add(this.buildSpinnerPanel(), BorderLayout.NORTH); - mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH); - return mainPanel; - } - - private Component buildSpinnerPanel() { - JPanel taskListPanel = new JPanel(new GridLayout(1, 0)); - taskListPanel.add(this.buildBirthDateSpinner()); - taskListPanel.add(this.buildAgeSpinner()); - taskListPanel.add(this.buildEyeColorSpinner()); - return taskListPanel; - } - - private JSpinner buildBirthDateSpinner() { - return new JSpinner(this.birthDateSpinnerModel); - } - - private JSpinner buildAgeSpinner() { - return new JSpinner(this.ageSpinnerModel); - } - - private JSpinner buildEyeColorSpinner() { - return new JSpinner(this.eyeColorSpinnerModel); - } - - private Component buildControlPanel() { - JPanel controlPanel = new JPanel(new GridLayout(1, 0)); - controlPanel.add(this.buildResetModelButton()); - controlPanel.add(this.buildClearModelButton()); - controlPanel.add(this.buildRestoreModelButton()); - controlPanel.add(this.buildPrintModelButton()); - return controlPanel; - } - - private JButton buildResetModelButton() { - return new JButton(this.buildResetModelAction()); - } - - private Action buildResetModelAction() { - Action action = new AbstractAction("reset model") { - public void actionPerformed(ActionEvent event) { - SpinnerModelAdapterUITest.this.resetModel(); - } - }; - action.setEnabled(true); - return action; - } - - void resetModel() { - this.testModel.setBirthDate(TestModel.DEFAULT_BIRTH_DATE); - this.testModel.setEyeColor(TestModel.DEFAULT_EYE_COLOR); - } - - private JButton buildClearModelButton() { - return new JButton(this.buildClearModelAction()); - } - - private Action buildClearModelAction() { - Action action = new AbstractAction("clear model") { - public void actionPerformed(ActionEvent event) { - SpinnerModelAdapterUITest.this.clearModel(); - } - }; - action.setEnabled(true); - return action; - } - - void clearModel() { - this.testModelHolder.setValue(null); - } - - private JButton buildRestoreModelButton() { - return new JButton(this.buildRestoreModelAction()); - } - - private Action buildRestoreModelAction() { - Action action = new AbstractAction("restore model") { - public void actionPerformed(ActionEvent event) { - SpinnerModelAdapterUITest.this.restoreModel(); - } - }; - action.setEnabled(true); - return action; - } - - void restoreModel() { - this.testModelHolder.setValue(this.testModel); - } - - private JButton buildPrintModelButton() { - return new JButton(this.buildPrintModelAction()); - } - - private Action buildPrintModelAction() { - Action action = new AbstractAction("print model") { - public void actionPerformed(ActionEvent event) { - SpinnerModelAdapterUITest.this.printModel(); - } - }; - action.setEnabled(true); - return action; - } - - void printModel() { - System.out.println("birth date: " + this.testModel.getBirthDate()); - System.out.println("age: " + this.testModel.getAge()); - System.out.println("eyes: " + this.testModel.getEyeColor()); - } - - - static class TestModel extends AbstractModel { - private Calendar birthCal = Calendar.getInstance(); - // "virtual" properties - public static final String BIRTH_DATE_PROPERTY = "birthDate"; - public static final String AGE_PROPERTY = "age"; - public static final Date DEFAULT_BIRTH_DATE = new Date(); - public static final int DEFAULT_AGE = 0; - public static final int MIN_AGE = 0; - public static final int MAX_AGE = 150; - private String eyeColor; - public static final String EYE_COLOR_PROPERTY = "eyeColor"; - public static final String[] VALID_EYE_COLORS = {"blue", "brown", "green", "hazel", "pink"}; - public static final String DEFAULT_EYE_COLOR = VALID_EYE_COLORS[3]; - - TestModel() { - this(DEFAULT_BIRTH_DATE, DEFAULT_EYE_COLOR); - } - public TestModel(Date birthDate, String eyeColor) { - this.setBirthDate(birthDate); - this.setEyeColor(eyeColor); - } - public Date getBirthDate() { - return (Date) this.birthCal.getTime().clone(); - } - public void setBirthDate(Date birthDate) { - Date oldBirthDate = this.getBirthDate(); - int oldAge = this.getAge(); - this.birthCal.setTimeInMillis(birthDate.getTime()); - int newAge = this.getAge(); - if (newAge < MIN_AGE || newAge > MAX_AGE) { - throw new IllegalArgumentException(birthDate.toString()); - } - this.firePropertyChanged(BIRTH_DATE_PROPERTY, oldBirthDate, this.getBirthDate()); - this.firePropertyChanged(AGE_PROPERTY, oldAge, newAge); - } - public int getAge() { - Calendar currentCal = Calendar.getInstance(); - int age = currentCal.get(Calendar.YEAR) - this.birthCal.get(Calendar.YEAR); - if (currentCal.get(Calendar.MONTH) < this.birthCal.get(Calendar.MONTH)) { - age--; - } else if (currentCal.get(Calendar.MONTH) == this.birthCal.get(Calendar.MONTH)) { - if (currentCal.get(Calendar.DAY_OF_MONTH) < this.birthCal.get(Calendar.DAY_OF_MONTH)) { - age--; - } - } - return age; - } - public void setAge(int newAge) { - if (newAge < MIN_AGE || newAge > MAX_AGE) { - throw new IllegalArgumentException(String.valueOf(newAge)); - } - - int oldAge = this.getAge(); - int delta = newAge - oldAge; - - Calendar newBirthCal = Calendar.getInstance(); - newBirthCal.setTimeInMillis(this.birthCal.getTime().getTime()); - // if the age increased, the birth date must be "decreased"; and vice versa - newBirthCal.set(Calendar.YEAR, newBirthCal.get(Calendar.YEAR) - delta); - this.setBirthDate(newBirthCal.getTime()); - } - public String getEyeColor() { - return this.eyeColor; - } - public void setEyeColor(String eyeColor) { - if ( ! ArrayTools.contains(VALID_EYE_COLORS, eyeColor)) { - throw new IllegalArgumentException(eyeColor); - } - Object old = this.eyeColor; - this.eyeColor = eyeColor; - this.firePropertyChanged(EYE_COLOR_PROPERTY, old, eyeColor); - } - @Override - public String toString() { - return "TestModel(birth: " + this.getBirthDate() + " - eyes: " + this.eyeColor + ")"; - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TableModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TableModelAdapterTests.java deleted file mode 100644 index d7125a42ff..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TableModelAdapterTests.java +++ /dev/null @@ -1,641 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.text.DateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import javax.swing.event.TableModelEvent; -import javax.swing.event.TableModelListener; -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ColumnAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.TableModelAdapter; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class TableModelAdapterTests extends TestCase { - private Crowd crowd; - TableModelEvent event; - - public TableModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.crowd = this.buildCrowd(); - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testGetRowCount() throws Exception { - TableModelAdapter tableModelAdapter = this.buildTableModelAdapter(); - assertEquals(0, tableModelAdapter.getRowCount()); - // we need to add a listener to wake up the adapter - tableModelAdapter.addTableModelListener(this.buildTableModelListener()); - assertEquals(this.crowd.peopleSize(), tableModelAdapter.getRowCount()); - } - - public void testGetColumnCount() throws Exception { - TableModelAdapter tableModelAdapter = this.buildTableModelAdapter(); - assertEquals(PersonColumnAdapter.COLUMN_COUNT, tableModelAdapter.getColumnCount()); - } - - public void testGetValueAt() throws Exception { - TableModelAdapter tableModelAdapter = this.buildTableModelAdapter(); - tableModelAdapter.addTableModelListener(this.buildTableModelListener()); - - List sortedNames = this.sortedNames(); - for (int i = 0; i < this.crowd.peopleSize(); i++) { - assertEquals(sortedNames.get(i), tableModelAdapter.getValueAt(i, PersonColumnAdapter.NAME_COLUMN)); - } - } - - public void testSetValueAt() throws Exception { - TableModelAdapter tableModelAdapter = this.buildTableModelAdapter(); - this.event = null; - tableModelAdapter.addTableModelListener(new TestTableModelListener() { - @Override - public void tableChanged(TableModelEvent e) { - TableModelAdapterTests.this.event = e; - } - }); - - Person person = this.crowd.personNamed("Gollum"); - assertEquals(Person.EYE_COLOR_BLUE, person.getEyeColor()); - assertFalse(person.isEvil()); - assertEquals(0, person.getRank()); - - for (int i = 0; i < tableModelAdapter.getRowCount(); i++) { - if (tableModelAdapter.getValueAt(i, PersonColumnAdapter.NAME_COLUMN).equals("Gollum")) { - tableModelAdapter.setValueAt(Person.EYE_COLOR_HAZEL, i, PersonColumnAdapter.EYE_COLOR_COLUMN); - tableModelAdapter.setValueAt(Boolean.TRUE, i, PersonColumnAdapter.EVIL_COLUMN); - tableModelAdapter.setValueAt(new Integer(-1), i, PersonColumnAdapter.RANK_COLUMN); - break; - } - } - assertNotNull(this.event); - assertEquals(Person.EYE_COLOR_HAZEL, person.getEyeColor()); - assertTrue(person.isEvil()); - assertEquals(-1, person.getRank()); - } - - public void testAddRow() throws Exception { - TableModelAdapter tableModelAdapter = this.buildTableModelAdapter(); - this.event = null; - tableModelAdapter.addTableModelListener(this.buildSingleEventListener()); - // add a person to the end of the list so we only trigger one event - this.crowd.addPerson("Zzzzz"); - assertNotNull(this.event); - assertEquals(TableModelEvent.INSERT, this.event.getType()); - assertEquals(TableModelEvent.ALL_COLUMNS, this.event.getColumn()); - } - - public void testRemoveRow() throws Exception { - TableModelAdapter tableModelAdapter = this.buildTableModelAdapter(); - this.event = null; - tableModelAdapter.addTableModelListener(this.buildSingleEventListener()); - // removing a person should only trigger one event, since a re-sort is not needed - this.crowd.removePerson(this.crowd.personNamed("Gollum")); - assertNotNull(this.event); - assertEquals(TableModelEvent.DELETE, this.event.getType()); - assertEquals(TableModelEvent.ALL_COLUMNS, this.event.getColumn()); - } - - public void testChangeCell() throws Exception { - TableModelAdapter tableModelAdapter = this.buildTableModelAdapter(); - this.event = null; - tableModelAdapter.addTableModelListener(this.buildSingleEventListener()); - // add a person to the end of the list so we only trigger one event - Person person = this.crowd.personNamed("Gollum"); - person.setEvil(true); - assertNotNull(this.event); - assertEquals(TableModelEvent.UPDATE, this.event.getType()); - assertEquals(PersonColumnAdapter.EVIL_COLUMN, this.event.getColumn()); - } - - public void testLazyListListener() throws Exception { - TableModelAdapter tableModelAdapter = this.buildTableModelAdapter(); - TableModelListener listener = this.buildTableModelListener(); - assertTrue(this.crowd.hasNoCollectionChangeListeners(Crowd.PEOPLE_COLLECTION)); - tableModelAdapter.addTableModelListener(listener); - assertTrue(this.crowd.hasAnyCollectionChangeListeners(Crowd.PEOPLE_COLLECTION)); - tableModelAdapter.removeTableModelListener(listener); - assertTrue(this.crowd.hasNoCollectionChangeListeners(Crowd.PEOPLE_COLLECTION)); - } - - public void testLazyCellListener() throws Exception { - TableModelAdapter tableModelAdapter = this.buildTableModelAdapter(); - TableModelListener listener = this.buildTableModelListener(); - Person person = this.crowd.personNamed("Gollum"); - assertTrue(person.hasNoPropertyChangeListeners(Person.NAME_PROPERTY)); - assertTrue(person.hasNoPropertyChangeListeners(Person.BIRTH_DATE_PROPERTY)); - assertTrue(person.hasNoPropertyChangeListeners(Person.EYE_COLOR_PROPERTY)); - assertTrue(person.hasNoPropertyChangeListeners(Person.EVIL_PROPERTY)); - assertTrue(person.hasNoPropertyChangeListeners(Person.RANK_PROPERTY)); - - tableModelAdapter.addTableModelListener(listener); - assertTrue(person.hasAnyPropertyChangeListeners(Person.NAME_PROPERTY)); - assertTrue(person.hasAnyPropertyChangeListeners(Person.BIRTH_DATE_PROPERTY)); - assertTrue(person.hasAnyPropertyChangeListeners(Person.EYE_COLOR_PROPERTY)); - assertTrue(person.hasAnyPropertyChangeListeners(Person.EVIL_PROPERTY)); - assertTrue(person.hasAnyPropertyChangeListeners(Person.RANK_PROPERTY)); - - tableModelAdapter.removeTableModelListener(listener); - assertTrue(person.hasNoPropertyChangeListeners(Person.NAME_PROPERTY)); - assertTrue(person.hasNoPropertyChangeListeners(Person.BIRTH_DATE_PROPERTY)); - assertTrue(person.hasNoPropertyChangeListeners(Person.EYE_COLOR_PROPERTY)); - assertTrue(person.hasNoPropertyChangeListeners(Person.EVIL_PROPERTY)); - assertTrue(person.hasNoPropertyChangeListeners(Person.RANK_PROPERTY)); - } - - private TableModelAdapter buildTableModelAdapter() { - return new TableModelAdapter(this.buildSortedPeopleAdapter(), this.buildColumnAdapter()) { - @Override - protected PropertyChangeListener buildCellListener() { - return this.buildCellListener_(); - } - @Override - protected ListChangeListener buildListChangeListener() { - return this.buildListChangeListener_(); - } - }; - } - - private ListValueModel buildSortedPeopleAdapter() { - return new SortedListValueModelAdapter(this.buildPeopleAdapter()); - } - - private CollectionValueModel buildPeopleAdapter() { - return new CollectionAspectAdapter(Crowd.PEOPLE_COLLECTION, this.crowd) { - @Override - protected Iterator iterator_() { - return this.subject.people(); - } - @Override - protected int size_() { - return this.subject.peopleSize(); - } - }; - } - - private Crowd buildCrowd() { - Crowd result = new Crowd(); - result.addPerson("Bilbo"); - result.addPerson("Gollum"); - result.addPerson("Frodo"); - result.addPerson("Samwise"); - return result; - } - - private ColumnAdapter buildColumnAdapter() { - return new PersonColumnAdapter(); - } - - private TableModelListener buildTableModelListener() { - return new TestTableModelListener(); - } - - private List sortedNames() { - return new ArrayList(CollectionTools.sortedSet(this.crowd.peopleNames())); - } - - private TableModelListener buildSingleEventListener() { - return new TestTableModelListener() { - @Override - public void tableChanged(TableModelEvent e) { - // we expect only a single event - if (TableModelAdapterTests.this.event == null) { - TableModelAdapterTests.this.event = e; - } else { - fail("unexpected event"); - } - } - }; - } - - - // ********** classes ********** - - public static class PersonColumnAdapter implements ColumnAdapter { - public static final int COLUMN_COUNT = 7; - - public static final int NAME_COLUMN = 0; - public static final int BIRTH_DATE_COLUMN = 1; - public static final int GONE_WEST_DATE_COLUMN = 2; - public static final int EYE_COLOR_COLUMN = 3; - public static final int EVIL_COLUMN = 4; - public static final int RANK_COLUMN = 5; - public static final int ADVENTURE_COUNT_COLUMN = 6; - - private static final String[] COLUMN_NAMES = new String[] { - "Name", - "Birth", - "Gone West", - "Eyes", - "Evil", - "Rank", - "Adventures" - }; - - - public int columnCount() { - return COLUMN_COUNT; - } - - public String columnName(int index) { - return COLUMN_NAMES[index]; - } - - public Class columnClass(int index) { - switch (index) { - case NAME_COLUMN: return Object.class; - case BIRTH_DATE_COLUMN: return Date.class; - case GONE_WEST_DATE_COLUMN: return Date.class; - case EYE_COLOR_COLUMN: return Object.class; - case EVIL_COLUMN: return Boolean.class; - case RANK_COLUMN: return Integer.class; - case ADVENTURE_COUNT_COLUMN:return Integer.class; - default: return Object.class; - } - } - - public boolean columnIsEditable(int index) { - return index != NAME_COLUMN; - } - - public WritablePropertyValueModel[] cellModels(Object subject) { - Person person = (Person) subject; - @SuppressWarnings("unchecked") - WritablePropertyValueModel[] result = new WritablePropertyValueModel[COLUMN_COUNT]; - - result[NAME_COLUMN] = this.buildNameAdapter(person); - result[BIRTH_DATE_COLUMN] = this.buildBirthDateAdapter(person); - result[GONE_WEST_DATE_COLUMN] = this.buildGoneWestDateAdapter(person); - result[EYE_COLOR_COLUMN] = this.buildEyeColorAdapter(person); - result[EVIL_COLUMN] = this.buildEvilAdapter(person); - result[RANK_COLUMN] = this.buildRankAdapter(person); - result[ADVENTURE_COUNT_COLUMN] = this.buildAdventureCountAdapter(person); - - return result; - } - - private WritablePropertyValueModel buildNameAdapter(Person person) { - return new PropertyAspectAdapter(Person.NAME_PROPERTY, person) { - @Override - protected String buildValue_() { - return this.subject.getName(); - } - @Override - protected void setValue_(Object value) { - this.subject.setName((String) value); - } - }; - } - - private WritablePropertyValueModel buildBirthDateAdapter(Person person) { - return new PropertyAspectAdapter(Person.BIRTH_DATE_PROPERTY, person) { - @Override - protected Date buildValue_() { - return this.subject.getBirthDate(); - } - @Override - protected void setValue_(Object value) { - this.subject.setBirthDate((Date) value); - } - }; - } - - private WritablePropertyValueModel buildGoneWestDateAdapter(Person person) { - return new PropertyAspectAdapter(Person.GONE_WEST_DATE_PROPERTY, person) { - @Override - protected Date buildValue_() { - return this.subject.getGoneWestDate(); - } - @Override - protected void setValue_(Object value) { - this.subject.setGoneWestDate((Date) value); - } - }; - } - - private WritablePropertyValueModel buildEyeColorAdapter(Person person) { - return new PropertyAspectAdapter(Person.EYE_COLOR_PROPERTY, person) { - @Override - protected String buildValue_() { - return this.subject.getEyeColor(); - } - @Override - protected void setValue_(Object value) { - this.subject.setEyeColor((String) value); - } - }; - } - - private WritablePropertyValueModel buildEvilAdapter(Person person) { - return new PropertyAspectAdapter(Person.EVIL_PROPERTY, person) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isEvil()); - } - @Override - protected void setValue_(Object value) { - this.subject.setEvil(((Boolean)value).booleanValue()); - } - }; - } - - private WritablePropertyValueModel buildRankAdapter(Person person) { - return new PropertyAspectAdapter(Person.RANK_PROPERTY, person) { - @Override - protected Integer buildValue_() { - return new Integer(this.subject.getRank()); - } - @Override - protected void setValue_(Object value) { - this.subject.setRank(((Integer) value).intValue()); - } - }; - } - - private WritablePropertyValueModel buildAdventureCountAdapter(Person person) { - return new PropertyAspectAdapter(Person.ADVENTURE_COUNT_PROPERTY, person) { - @Override - protected Integer buildValue_() { - return new Integer(this.subject.getAdventureCount()); - } - @Override - protected void setValue_(Object value) { - this.subject.setAdventureCount(((Integer) value).intValue()); - } - }; - } - - } - - - public static class Crowd extends AbstractModel { - private final Collection people; - public static final String PEOPLE_COLLECTION = "people"; - - public Crowd() { - super(); - this.people = new ArrayList(); - } - - - public Iterator people() { - return new CloneIterator(this.people) { - @Override - protected void remove(Person person) { - Crowd.this.removePerson(person); - } - }; - } - - public int peopleSize() { - return this.people.size(); - } - - public Person addPerson(String name) { - this.checkPersonName(name); - return this.addPerson(new Person(this, name)); - } - - private Person addPerson(Person person) { - this.addItemToCollection(person, this.people, PEOPLE_COLLECTION); - return person; - } - - public void removePerson(Person person) { - this.removeItemFromCollection(person, this.people, PEOPLE_COLLECTION); - } - - public void removePeople(Collection persons) { - this.removeItemsFromCollection(persons, this.people, PEOPLE_COLLECTION); - } - - public void removePeople(Iterator persons) { - this.removeItemsFromCollection(persons, this.people, PEOPLE_COLLECTION); - } - - void checkPersonName(String personName) { - if (personName == null) { - throw new NullPointerException(); - } - if (CollectionTools.contains(this.peopleNames(), personName)) { - throw new IllegalArgumentException(personName); - } - } - - public Iterator peopleNames() { - return new TransformationIterator(this.people.iterator()) { - @Override - protected String transform(Person person) { - return person.getName(); - } - }; - } - - public Person personNamed(String name) { - for (Iterator stream = this.people.iterator(); stream.hasNext(); ) { - Person person = stream.next(); - if (person.getName().equals(name)) { - return person; - } - } - return null; - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, String.valueOf(this.people.size()) + " people"); - } - - } - - - public static class Person extends AbstractModel implements Comparable { - private Crowd crowd; - private String name; - public static final String NAME_PROPERTY= "name"; - private Date birthDate; - public static final String BIRTH_DATE_PROPERTY= "birthDate"; - private Date goneWestDate; - public static final String GONE_WEST_DATE_PROPERTY= "goneWestDate"; - private String eyeColor; - public static final String EYE_COLOR_PROPERTY= "eyeColor"; - public static final String EYE_COLOR_BLUE = "blue"; - public static final String EYE_COLOR_GREEN = "green"; - public static final String EYE_COLOR_BROWN = "brown"; - public static final String EYE_COLOR_HAZEL = "hazel"; - public static final String EYE_COLOR_PINK = "pink"; - private static Collection validEyeColors; - public static final String DEFAULT_EYE_COLOR = EYE_COLOR_BLUE; - private boolean evil; - public static final String EVIL_PROPERTY= "evil"; - private int rank; - public static final String RANK_PROPERTY= "rank"; - private int adventureCount; - public static final String ADVENTURE_COUNT_PROPERTY= "adventureCount"; - - Person(Crowd crowd, String name) { - super(); - this.crowd = crowd; - this.name = name; - this.birthDate = new Date(); - Calendar c = Calendar.getInstance(); - c.add(Calendar.YEAR, 250); - this.goneWestDate = new Date(c.getTimeInMillis()); - this.eyeColor = DEFAULT_EYE_COLOR; - this.evil = false; - this.rank = 0; - this.adventureCount = 0; - } - - public static Collection getValidEyeColors() { - if (validEyeColors == null) { - validEyeColors = buildValidEyeColors(); - } - return validEyeColors; - } - - private static Collection buildValidEyeColors() { - Collection result = new ArrayList(); - result.add(EYE_COLOR_BLUE); - result.add(EYE_COLOR_GREEN); - result.add(EYE_COLOR_BROWN); - result.add(EYE_COLOR_HAZEL); - result.add(EYE_COLOR_PINK); - return result; - } - - public Crowd getCrowd() { - return this.crowd; - } - - public String getName() { - return this.name; - } - public void setName(String name) { - this.crowd.checkPersonName(name); - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - - public Date getBirthDate() { - return this.birthDate; - } - public void setBirthDate(Date birthDate) { - Object old = this.birthDate; - this.birthDate = birthDate; - this.firePropertyChanged(BIRTH_DATE_PROPERTY, old, birthDate); - } - - public Date getGoneWestDate() { - return this.goneWestDate; - } - public void setGoneWestDate(Date goneWestDate) { - Object old = this.goneWestDate; - this.goneWestDate = goneWestDate; - this.firePropertyChanged(GONE_WEST_DATE_PROPERTY, old, goneWestDate); - } - - public String getEyeColor() { - return this.eyeColor; - } - public void setEyeColor(String eyeColor) { - if (! getValidEyeColors().contains(eyeColor)) { - throw new IllegalArgumentException(eyeColor); - } - Object old = this.eyeColor; - this.eyeColor = eyeColor; - this.firePropertyChanged(EYE_COLOR_PROPERTY, old, eyeColor); - } - - public boolean isEvil() { - return this.evil; - } - public void setEvil(boolean evil) { - boolean old = this.evil; - this.evil = evil; - this.firePropertyChanged(EVIL_PROPERTY, old, evil); - } - - public int getRank() { - return this.rank; - } - public void setRank(int rank) { - int old = this.rank; - this.rank = rank; - this.firePropertyChanged(RANK_PROPERTY, old, rank); - } - - public int getAdventureCount() { - return this.adventureCount; - } - public void setAdventureCount(int adventureCount) { - int old = this.adventureCount; - this.adventureCount = adventureCount; - this.firePropertyChanged(ADVENTURE_COUNT_PROPERTY, old, adventureCount); - } - - public int compareTo(Person p) { - return this.name.compareToIgnoreCase(p.name); - } - - @Override - public String toString() { - return this.name + - "\tborn: " + DateFormat.getDateInstance().format(this.birthDate) + - "\tgone west: " + DateFormat.getDateInstance().format(this.goneWestDate) + - "\teyes: " + this.eyeColor + - "\tevil: " + this.evil + - "\trank: " + this.rank + - "\tadventures: " + this.adventureCount - ; - } - - } - - - private class TestTableModelListener implements TableModelListener { - TestTableModelListener() { - super(); - } - public void tableChanged(TableModelEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java deleted file mode 100644 index 07a614cb44..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java +++ /dev/null @@ -1,733 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.ButtonModel; -import javax.swing.ComboBoxModel; -import javax.swing.DefaultListCellRenderer; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JFrame; -import javax.swing.JList; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JSpinner; -import javax.swing.JTable; -import javax.swing.JTextField; -import javax.swing.ListCellRenderer; -import javax.swing.ListSelectionModel; -import javax.swing.SpinnerModel; -import javax.swing.UIManager; -import javax.swing.WindowConstants; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import javax.swing.table.TableColumn; -import javax.swing.table.TableModel; -import javax.swing.text.Document; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.ItemPropertyListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleCollectionValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.swing.CheckBoxModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ColumnAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ComboBoxModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.DateSpinnerModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.DocumentAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ListModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.NumberSpinnerModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.swing.ObjectListSelectionModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.TableModelAdapter; -import org.eclipse.jpt.common.utility.internal.swing.CheckBoxTableCellRenderer; -import org.eclipse.jpt.common.utility.internal.swing.ComboBoxTableCellRenderer; -import org.eclipse.jpt.common.utility.internal.swing.SpinnerTableCellRenderer; -import org.eclipse.jpt.common.utility.internal.swing.TableCellEditorAdapter; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.model.value.swing.TableModelAdapterTests.Crowd; -import org.eclipse.jpt.common.utility.tests.internal.model.value.swing.TableModelAdapterTests.Person; -import org.eclipse.jpt.common.utility.tests.internal.model.value.swing.TableModelAdapterTests.PersonColumnAdapter; - -/** - * an example UI for testing the TableModelAdapter - * "name" column is read-only text field - * "birth date" column is date text field - * "gone west date" column is date spinner - * "eye color" column is combo-box - * "evil" column is check box - * "rank" column is number text field - * "adventure count" column is number spinner - * - * Note that the table model and row selection model share the same - * list value model (the sorted people adapter) - */ -@SuppressWarnings("nls") -public class TableModelAdapterUITest { - private SimpleCollectionValueModel eyeColorsHolder; // Object because it adapts to a combo-box - private WritablePropertyValueModel crowdHolder; - private WritablePropertyValueModel selectedPersonHolder; - private ListValueModel sortedPeopleAdapter; - private TableModel tableModel; - private ObjectListSelectionModel rowSelectionModel; - private Action removeAction; - private Action renameAction; - - public static void main(String[] args) throws Exception { - new TableModelAdapterUITest().exec(args); - } - - protected TableModelAdapterUITest() { - super(); - } - - protected void exec(@SuppressWarnings("unused") String[] args) throws Exception { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - this.eyeColorsHolder = this. buildEyeColorCollectionHolder(); - this.crowdHolder = this.buildCrowdHolder(); - this.selectedPersonHolder = this.buildSelectedPersonHolder(); - this.sortedPeopleAdapter = this.buildSortedPeopleAdapter(); - this.tableModel = this.buildTableModel(); - this.rowSelectionModel = this.buildRowSelectionModel(); - this.openWindow(); - } - - private SimpleCollectionValueModel buildEyeColorCollectionHolder() { - return new SimpleCollectionValueModel(new ArrayList(Person.getValidEyeColors())); - } - - private WritablePropertyValueModel buildCrowdHolder() { - return new SimplePropertyValueModel(this.buildCrowd()); - } - - private Crowd buildCrowd() { - Crowd crowd = new Crowd(); - - Person p = crowd.addPerson("Bilbo"); - p.setEyeColor(Person.EYE_COLOR_BROWN); - p.setRank(22); - p.setAdventureCount(1); - - p = crowd.addPerson("Gollum"); - p.setEyeColor(Person.EYE_COLOR_PINK); - p.setEvil(true); - p.setRank(2); - p.setAdventureCount(50); - - p = crowd.addPerson("Frodo"); - p.setEyeColor(Person.EYE_COLOR_BLUE); - p.setRank(34); - p.setAdventureCount(1); - - p = crowd.addPerson("Samwise"); - p.setEyeColor(Person.EYE_COLOR_GREEN); - p.setRank(19); - p.setAdventureCount(1); - - return crowd; - } - - private WritablePropertyValueModel buildSelectedPersonHolder() { - return new SimplePropertyValueModel(); - } - - private ListValueModel buildSortedPeopleAdapter() { - return new SortedListValueModelWrapper(this.buildPeopleNameAdapter()); - } - - // the list will need to be re-sorted if a name changes - private ListValueModel buildPeopleNameAdapter() { - return new ItemPropertyListValueModelAdapter(this.buildPeopleAdapter(), Person.NAME_PROPERTY); - } - - private CollectionValueModel buildPeopleAdapter() { - return new CollectionAspectAdapter(this.crowdHolder, Crowd.PEOPLE_COLLECTION) { - @Override - protected Iterator iterator_() { - return this.subject.people(); - } - @Override - protected int size_() { - return this.subject.peopleSize(); - } - }; - } - - private TableModel buildTableModel() { - return new TableModelAdapter(this.sortedPeopleAdapter, this.buildColumnAdapter()); - } - - protected ColumnAdapter buildColumnAdapter() { - return new PersonColumnAdapter(); - } - - private ObjectListSelectionModel buildRowSelectionModel() { - ObjectListSelectionModel rsm = new ObjectListSelectionModel(new ListModelAdapter(this.sortedPeopleAdapter)); - rsm.addListSelectionListener(this.buildRowSelectionListener()); - rsm.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - return rsm; - } - - private ListSelectionListener buildRowSelectionListener() { - return new ListSelectionListener() { - public void valueChanged(ListSelectionEvent e) { - if (e.getValueIsAdjusting()) { - return; - } - TableModelAdapterUITest.this.rowSelectionChanged(e); - } - }; - } - - void rowSelectionChanged(@SuppressWarnings("unused") ListSelectionEvent event) { - Person selection = (Person) this.rowSelectionModel.selectedValue(); - this.selectedPersonHolder.setValue(selection); - boolean personSelected = (selection != null); - this.removeAction.setEnabled(personSelected); - this.renameAction.setEnabled(personSelected); - } - - private void openWindow() { - JFrame window = new JFrame(this.getClass().getSimpleName()); - window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - window.addWindowListener(this.buildWindowListener()); - window.getContentPane().add(this.buildMainPanel(), "Center"); - window.setLocation(200, 200); - window.setSize(600, 400); - window.setVisible(true); - } - - private WindowListener buildWindowListener() { - return new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - e.getWindow().setVisible(false); - System.exit(0); - } - }; - } - - private Component buildMainPanel() { - JPanel mainPanel = new JPanel(new BorderLayout()); - mainPanel.add(this.buildTablePane(), BorderLayout.CENTER); - mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH); - return mainPanel; - } - - private Component buildTablePane() { - return new JScrollPane(this.buildTable()); - } - - private JTable buildTable() { - JTable table = new JTable(this.tableModel); - table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); // see Java bug 5007652 - table.setSelectionModel(this.rowSelectionModel); - table.setDoubleBuffered(true); - table.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN); - int rowHeight = 20; // start with minimum of 20 - - // gone west column (spinner) - TableColumn column = table.getColumnModel().getColumn(PersonColumnAdapter.GONE_WEST_DATE_COLUMN); - SpinnerTableCellRenderer spinnerRenderer = this.buildDateSpinnerRenderer(); - column.setCellRenderer(spinnerRenderer); - column.setCellEditor(new TableCellEditorAdapter(this.buildDateSpinnerRenderer())); - rowHeight = Math.max(rowHeight, spinnerRenderer.preferredHeight()); - - // eye color column (combo-box) - // the jdk combo-box renderer looks like a text field - // until the user starts an edit - use a custom one - column = table.getColumnModel().getColumn(PersonColumnAdapter.EYE_COLOR_COLUMN); - ComboBoxTableCellRenderer eyeColorRenderer = this.buildEyeColorComboBoxRenderer(); - column.setCellRenderer(eyeColorRenderer); - column.setCellEditor(new TableCellEditorAdapter(this.buildEyeColorComboBoxRenderer())); - rowHeight = Math.max(rowHeight, eyeColorRenderer.preferredHeight()); - - // evil (check box) - // the jdk check box renderer and editor suck - use a custom ones - column = table.getColumnModel().getColumn(PersonColumnAdapter.EVIL_COLUMN); - CheckBoxTableCellRenderer evilRenderer = new CheckBoxTableCellRenderer(); - column.setCellRenderer(evilRenderer); - column.setCellEditor(new TableCellEditorAdapter(new CheckBoxTableCellRenderer())); - rowHeight = Math.max(rowHeight, evilRenderer.preferredHeight()); - - // adventure count column (spinner) - column = table.getColumnModel().getColumn(PersonColumnAdapter.ADVENTURE_COUNT_COLUMN); - spinnerRenderer = this.buildNumberSpinnerRenderer(); - column.setCellRenderer(spinnerRenderer); - column.setCellEditor(new TableCellEditorAdapter(this.buildNumberSpinnerRenderer())); - rowHeight = Math.max(rowHeight, spinnerRenderer.preferredHeight()); - - table.setRowHeight(rowHeight); - return table; - } - - private SpinnerTableCellRenderer buildDateSpinnerRenderer() { - return new SpinnerTableCellRenderer(new DateSpinnerModelAdapter(new SimplePropertyValueModel())); - } - - private SpinnerTableCellRenderer buildNumberSpinnerRenderer() { - return new SpinnerTableCellRenderer(new NumberSpinnerModelAdapter(new SimplePropertyValueModel())); - } - - private ComboBoxTableCellRenderer buildEyeColorComboBoxRenderer() { - return new ComboBoxTableCellRenderer(this.buildReadOnlyEyeColorComboBoxModel(), this.buildEyeColorRenderer()); - } - - private ComboBoxModel buildReadOnlyEyeColorComboBoxModel() { - return new ComboBoxModelAdapter(this.eyeColorsHolder, new SimplePropertyValueModel()); - } - - private ListCellRenderer buildEyeColorRenderer() { - return new EyeColorRenderer(); - } - - private Component buildControlPanel() { - JPanel controlPanel = new JPanel(new GridLayout(0, 1)); - controlPanel.add(this.buildButtonPanel()); - controlPanel.add(this.buildPersonPanel()); - return controlPanel; - } - - private Component buildButtonPanel() { - JPanel buttonPanel = new JPanel(new GridLayout(1, 0)); - buttonPanel.add(this.buildAddButton()); - buttonPanel.add(this.buildRemoveButton()); - buttonPanel.add(this.buildRenameButton()); - buttonPanel.add(this.buildAddEyeColorButton()); - buttonPanel.add(this.buildPrintButton()); - buttonPanel.add(this.buildResetButton()); - return buttonPanel; - } - - private Component buildPersonPanel() { - JPanel personPanel = new JPanel(new GridLayout(1, 0)); - personPanel.add(this.buildNameTextField()); - personPanel.add(this.buildBirthDateSpinner()); - personPanel.add(this.buildGoneWestDateSpinner()); - personPanel.add(this.buildEyeColorComboBox()); - personPanel.add(this.buildEvilCheckBox()); - personPanel.add(this.buildRankSpinner()); - personPanel.add(this.buildAdventureCountSpinner()); - return personPanel; - } - - - // ********** add button ********** - - private JButton buildAddButton() { - return new JButton(this.buildAddAction()); - } - - private Action buildAddAction() { - Action action = new AbstractAction("add") { - public void actionPerformed(ActionEvent event) { - TableModelAdapterUITest.this.addPerson(); - } - }; - action.setEnabled(true); - return action; - } - - void addPerson() { - String name = this.getNameFromUser(); - if (name != null) { - this.setSelectedPerson(this.crowd().addPerson(name)); - } - } - - - // ********** remove button ********** - - private JButton buildRemoveButton() { - return new JButton(this.buildRemoveAction()); - } - - private Action buildRemoveAction() { - this.removeAction = new AbstractAction("remove") { - public void actionPerformed(ActionEvent event) { - TableModelAdapterUITest.this.removePerson(); - } - }; - this.removeAction.setEnabled(false); - return this.removeAction; - } - - void removePerson() { - Person person = this.selectedPerson(); - if (person != null) { - this.crowd().removePerson(person); - } - } - - - // ********** rename button ********** - - private JButton buildRenameButton() { - return new JButton(this.buildRenameAction()); - } - - private Action buildRenameAction() { - this.renameAction = new AbstractAction("rename") { - public void actionPerformed(ActionEvent event) { - TableModelAdapterUITest.this.renamePerson(); - } - }; - this.renameAction.setEnabled(false); - return this.renameAction; - } - - void renamePerson() { - Person person = this.selectedPerson(); - if (person != null) { - String name = this.promptUserForName(person.getName()); - if (name != null) { - person.setName(name); - this.setSelectedPerson(person); - } - } - } - - - // ********** add eye color button ********** - - private JButton buildAddEyeColorButton() { - return new JButton(this.buildAddEyeColorAction()); - } - - private Action buildAddEyeColorAction() { - Action action = new AbstractAction("add eye color") { - public void actionPerformed(ActionEvent event) { - TableModelAdapterUITest.this.addEyeColor(); - } - }; - action.setEnabled(true); - return action; - } - - void addEyeColor() { - String color = this.promptUserForEyeColor(); - if (color != null) { - this.eyeColorsHolder.add(color); - } - } - - private String promptUserForEyeColor() { - while (true) { - String eyeColor = JOptionPane.showInputDialog("Eye Color"); - if (eyeColor == null) { - return null; // user pressed - } - if ((eyeColor.length() == 0)) { - JOptionPane.showMessageDialog(null, "The eye color is required.", "Invalid Eye Color", JOptionPane.ERROR_MESSAGE); - } else if (CollectionTools.contains(this.eyeColorsHolder.iterator(), eyeColor)) { - JOptionPane.showMessageDialog(null, "The eye color already exists.", "Invalid Eye Color", JOptionPane.ERROR_MESSAGE); - } else { - return eyeColor; - } - } - } - - - // ********** print button ********** - - private JButton buildPrintButton() { - return new JButton(this.buildPrintAction()); - } - - private Action buildPrintAction() { - Action action = new AbstractAction("print") { - public void actionPerformed(ActionEvent event) { - TableModelAdapterUITest.this.printCrowd(); - } - }; - action.setEnabled(true); - return action; - } - - void printCrowd() { - System.out.println(this.crowd()); - for (Iterator stream = this.crowd().people(); stream.hasNext(); ) { - System.out.println("\t" + stream.next()); - } - } - - - // ********** reset button ********** - - private JButton buildResetButton() { - return new JButton(this.buildResetAction()); - } - - private Action buildResetAction() { - Action action = new AbstractAction("reset") { - public void actionPerformed(ActionEvent event) { - TableModelAdapterUITest.this.reset(); - } - }; - action.setEnabled(true); - return action; - } - - void reset() { - this.crowdHolder.setValue(this.buildCrowd()); - } - - - // ********** new name dialog ********** - - private String getNameFromUser() { - return this.promptUserForName(null); - } - - private String promptUserForName(@SuppressWarnings("unused") String originalName) { - while (true) { - String name = JOptionPane.showInputDialog("Person Name"); - if (name == null) { - return null; // user pressed - } - if ((name.length() == 0)) { - JOptionPane.showMessageDialog(null, "The name is required.", "Invalid Name", JOptionPane.ERROR_MESSAGE); - } else if (CollectionTools.contains(this.crowd().peopleNames(), name)) { - JOptionPane.showMessageDialog(null, "The name already exists.", "Invalid Name", JOptionPane.ERROR_MESSAGE); - } else { - return name; - } - } - } - - - // ********** name text field ********** - - private Component buildNameTextField() { - JTextField textField = new JTextField(this.buildNameDocument(), null, 0); - textField.setEditable(false); - return textField; - } - - private Document buildNameDocument() { - return new DocumentAdapter(this.buildNameAdapter()); - } - - private WritablePropertyValueModel buildNameAdapter() { - return new PropertyAspectAdapter(this.selectedPersonHolder, Person.NAME_PROPERTY) { - @Override - protected String buildValue_() { - return this.subject.getName(); - } - @Override - protected void setValue_(String value) { - this.subject.setName(value); - } - }; - } - - - // ********** birth date spinner ********** - - private JSpinner buildBirthDateSpinner() { - return new JSpinner(this.buildBirthDateSpinnerModel()); - } - - private SpinnerModel buildBirthDateSpinnerModel() { - return new DateSpinnerModelAdapter(this.buildBirthDateAdapter()); - } - - private WritablePropertyValueModel buildBirthDateAdapter() { - return new PropertyAspectAdapter(this.selectedPersonHolder, Person.BIRTH_DATE_PROPERTY) { - @Override - protected Date buildValue_() { - return this.subject.getBirthDate(); - } - @Override - protected void setValue_(Object value) { - this.subject.setBirthDate((Date) value); - } - }; - } - - - // ********** gone west date spinner ********** - - private JSpinner buildGoneWestDateSpinner() { - return new JSpinner(this.buildGoneWestDateSpinnerModel()); - } - - private SpinnerModel buildGoneWestDateSpinnerModel() { - return new DateSpinnerModelAdapter(this.buildGoneWestDateAdapter()); - } - - private WritablePropertyValueModel buildGoneWestDateAdapter() { - return new PropertyAspectAdapter(this.selectedPersonHolder, Person.GONE_WEST_DATE_PROPERTY) { - @Override - protected Date buildValue_() { - return this.subject.getGoneWestDate(); - } - @Override - protected void setValue_(Object value) { - this.subject.setGoneWestDate((Date) value); - } - }; - } - - - // ********** eye color combo-box ********** - - private JComboBox buildEyeColorComboBox() { - return new JComboBox(this.buildEyeColorComboBoxModel()); - } - - private ComboBoxModel buildEyeColorComboBoxModel() { - return new ComboBoxModelAdapter(this.eyeColorsHolder, this.buildEyeColorAdapter()); - } - - private WritablePropertyValueModel buildEyeColorAdapter() { - return new PropertyAspectAdapter(this.selectedPersonHolder, Person.EYE_COLOR_PROPERTY) { - @Override - protected Object buildValue_() { - return this.subject.getEyeColor(); - } - @Override - protected void setValue_(Object value) { - this.subject.setEyeColor((String) value); - } - }; - } - - - // ********** evil check box ********** - - private JCheckBox buildEvilCheckBox() { - JCheckBox checkBox = new JCheckBox(); - checkBox.setText("evil"); - checkBox.setModel(this.buildEvilCheckBoxModel()); - return checkBox; - } - - private ButtonModel buildEvilCheckBoxModel() { - return new CheckBoxModelAdapter(this.buildEvilAdapter()); - } - - private WritablePropertyValueModel buildEvilAdapter() { - return new PropertyAspectAdapter(this.selectedPersonHolder, Person.EVIL_PROPERTY) { - @Override - protected Boolean buildValue_() { - return Boolean.valueOf(this.subject.isEvil()); - } - @Override - protected void setValue_(Boolean value) { - this.subject.setEvil(value.booleanValue()); - } - }; - } - - - // ********** rank spinner ********** - - private JSpinner buildRankSpinner() { - return new JSpinner(this.buildRankSpinnerModel()); - } - - private SpinnerModel buildRankSpinnerModel() { - return new NumberSpinnerModelAdapter(this.buildRankAdapter()); - } - - private WritablePropertyValueModel buildRankAdapter() { - return new PropertyAspectAdapter(this.selectedPersonHolder, Person.RANK_PROPERTY) { - @Override - protected Number buildValue_() { - return new Integer(this.subject.getRank()); - } - @Override - protected void setValue_(Number value) { - this.subject.setRank(value.intValue()); - } - }; - } - - - // ********** adventure count spinner ********** - - private JSpinner buildAdventureCountSpinner() { - return new JSpinner(this.buildAdventureCountSpinnerModel()); - } - - private SpinnerModel buildAdventureCountSpinnerModel() { - return new NumberSpinnerModelAdapter(this.buildAdventureCountAdapter()); - } - - private WritablePropertyValueModel buildAdventureCountAdapter() { - return new PropertyAspectAdapter(this.selectedPersonHolder, Person.ADVENTURE_COUNT_PROPERTY) { - @Override - protected Number buildValue_() { - return new Integer(this.subject.getAdventureCount()); - } - @Override - protected void setValue_(Number value) { - this.subject.setAdventureCount(value.intValue()); - } - }; - } - - - // ********** queries ********** - - private Crowd crowd() { - return this.crowdHolder.getValue(); - } - - private Person selectedPerson() { - if (this.rowSelectionModel.isSelectionEmpty()) { - return null; - } - return (Person) this.rowSelectionModel.selectedValue(); - } - - private void setSelectedPerson(Person person) { - this.rowSelectionModel.setSelectedValue(person); - } - - - // ********** custom renderer ********** - - /** - * This is simply an example of a renderer for the embedded combo-box. - * It does nothing special unless you uncomment the code below.... - */ - private class EyeColorRenderer extends DefaultListCellRenderer { - EyeColorRenderer() { - super(); - } - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - // just do something to show the renderer is working... - // value = ">" + value; - return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java deleted file mode 100644 index 77d6ac00d8..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java +++ /dev/null @@ -1,812 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.StringWriter; -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; - -import javax.swing.Icon; -import javax.swing.JTree; -import javax.swing.event.TreeModelEvent; -import javax.swing.event.TreeModelListener; -import javax.swing.tree.TreeModel; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.IndentingPrintWriter; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterators.ReadOnlyIterator; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.value.AbstractTreeNodeValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.CollectionAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.ItemPropertyListValueModelAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.NullListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; -import org.eclipse.jpt.common.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.SortedListValueModelWrapper; -import org.eclipse.jpt.common.utility.internal.model.value.StaticPropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.TransformationListValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.TreeModelAdapter; -import org.eclipse.jpt.common.utility.internal.swing.Displayable; -import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.common.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.common.utility.model.listener.StateChangeListener; -import org.eclipse.jpt.common.utility.model.value.CollectionValueModel; -import org.eclipse.jpt.common.utility.model.value.ListValueModel; -import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.common.utility.model.value.TreeNodeValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; - -@SuppressWarnings("nls") -public class TreeModelAdapterTests extends TestCase { - boolean eventFired; - - public TreeModelAdapterTests(String name) { - super(name); - } - - public void testGetRoot() { - TreeModel treeModel = this.buildSortedTreeModel(); - treeModel.addTreeModelListener(new TestTreeModelListener()); - TestNode rootNode = (TestNode) treeModel.getRoot(); - TestModel root = rootNode.getTestModel(); - assertEquals("root", root.getName()); -// root.dump(); -// rootNode.dump(); - } - - public void testGetChild() { - TreeModel treeModel = this.buildSortedTreeModel(); - treeModel.addTreeModelListener(new TestTreeModelListener()); - TestNode rootNode = (TestNode) treeModel.getRoot(); - - TestNode expected = rootNode.childNamed("node 1"); - TestNode actual = (TestNode) treeModel.getChild(rootNode, 1); - assertEquals(expected, actual); - - expected = rootNode.childNamed("node 2"); - actual = (TestNode) treeModel.getChild(rootNode, 2); - assertEquals(expected, actual); - } - - public void testGetChildCount() { - TreeModel treeModel = this.buildSortedTreeModel(); - treeModel.addTreeModelListener(new TestTreeModelListener()); - TestNode rootNode = (TestNode) treeModel.getRoot(); - - assertEquals(5, treeModel.getChildCount(rootNode)); - - TestNode node = rootNode.childNamed("node 1"); - assertEquals(1, treeModel.getChildCount(node)); - } - - public void testGetIndexOfChild() { - TreeModel treeModel = this.buildSortedTreeModel(); - treeModel.addTreeModelListener(new TestTreeModelListener()); - TestNode rootNode = (TestNode) treeModel.getRoot(); - - TestNode child = rootNode.childNamed("node 0"); - assertEquals(0, treeModel.getIndexOfChild(rootNode, child)); - - child = rootNode.childNamed("node 1"); - assertEquals(1, treeModel.getIndexOfChild(rootNode, child)); - - child = rootNode.childNamed("node 2"); - assertEquals(2, treeModel.getIndexOfChild(rootNode, child)); - TestNode grandchild = child.childNamed("node 2.2"); - assertEquals(2, treeModel.getIndexOfChild(child, grandchild)); - } - - public void testIsLeaf() { - TreeModel treeModel = this.buildSortedTreeModel(); - treeModel.addTreeModelListener(new TestTreeModelListener()); - TestNode rootNode = (TestNode) treeModel.getRoot(); - assertFalse(treeModel.isLeaf(rootNode)); - TestNode node = rootNode.childNamed("node 1"); - assertFalse(treeModel.isLeaf(node)); - node = rootNode.childNamed("node 3"); - assertTrue(treeModel.isLeaf(node)); - } - - - public void testTreeNodesChanged() { - // the only way to trigger a "node changed" event is to use an unsorted tree; - // a sorted tree will will trigger only "node removed" and "node inserted" events - TreeModel treeModel = this.buildUnsortedTreeModel(); - this.eventFired = false; - treeModel.addTreeModelListener(new TestTreeModelListener() { - @Override - public void treeNodesChanged(TreeModelEvent e) { - TreeModelAdapterTests.this.eventFired = true; - } - }); - TestNode rootNode = (TestNode) treeModel.getRoot(); - TestNode node = rootNode.childNamed("node 1"); - TestModel tm = node.getTestModel(); - tm.setName("node 1++"); - assertTrue(this.eventFired); - - this.eventFired = false; - node = node.childNamed("node 1.1"); - tm = node.getTestModel(); - tm.setName("node 1.1++"); - assertTrue(this.eventFired); - } - - public void testTreeNodesInserted() { - // use an unsorted tree so the nodes are not re-shuffled... - TreeModel treeModel = this.buildUnsortedTreeModel(); - this.eventFired = false; - treeModel.addTreeModelListener(new TestTreeModelListener() { - @Override - public void treeNodesInserted(TreeModelEvent e) { - TreeModelAdapterTests.this.eventFired = true; - } - }); - TestNode rootNode = (TestNode) treeModel.getRoot(); - TestNode node = rootNode.childNamed("node 1"); - TestModel tm = node.getTestModel(); - tm.addChild("new child..."); - assertTrue(this.eventFired); - - this.eventFired = false; - node = node.childNamed("node 1.1"); - tm = node.getTestModel(); - tm.addChild("another new child..."); - assertTrue(this.eventFired); - } - - public void testTreeNodesRemoved() { - TreeModel treeModel = this.buildUnsortedTreeModel(); - this.eventFired = false; - treeModel.addTreeModelListener(new TestTreeModelListener() { - @Override - public void treeNodesRemoved(TreeModelEvent e) { - TreeModelAdapterTests.this.eventFired = true; - } - }); - TestNode rootNode = (TestNode) treeModel.getRoot(); - TestModel root = rootNode.getTestModel(); - root.removeChild(root.childNamed("node 3")); - assertTrue(this.eventFired); - - this.eventFired = false; - TestNode node = rootNode.childNamed("node 2"); - TestModel tm = node.getTestModel(); - tm.removeChild(tm.childNamed("node 2.2")); - assertTrue(this.eventFired); - } - - public void testTreeStructureChanged() { - WritablePropertyValueModel> nodeHolder = new SimplePropertyValueModel>(this.buildSortedRootNode()); - TreeModel treeModel = this.buildTreeModel(nodeHolder); - this.eventFired = false; - treeModel.addTreeModelListener(new TestTreeModelListener() { - @Override - public void treeNodesInserted(TreeModelEvent e) { - // do nothing - } - @Override - public void treeNodesRemoved(TreeModelEvent e) { - // do nothing - } - @Override - public void treeStructureChanged(TreeModelEvent e) { - TreeModelAdapterTests.this.eventFired = true; - } - }); - nodeHolder.setValue(this.buildUnsortedRootNode()); - assertTrue(this.eventFired); - } - - /** - * test a problem we had where removing a child from a tree would cause - * the JTree to call #equals(Object) on each node removed (actually, it was - * TreePath, but that was because its own #equals(Object) was called by - * JTree); and since we had already removed the last listener from the - * aspect adapter, the aspect adapter would say its value was null; this - * would cause a NPE until we tweaked TreeModelAdapter to remove its - * listeners from a node only *after* the node had been completely - * removed from the JTree - * @see TreeModelAdapter#removeNode(Object[], int, TreeNodeValueModel) - * @see TreeModelAdapter#addNode(Object[], int, TreeNodeValueModel) - */ - public void testLazyInitialization() { - TreeModel treeModel = this.buildSpecialTreeModel(); - JTree jTree = new JTree(treeModel); - TestNode rootNode = (TestNode) treeModel.getRoot(); - TestModel root = rootNode.getTestModel(); - // this would cause a NPE: - root.removeChild(root.childNamed("node 3")); - assertEquals(treeModel, jTree.getModel()); - } - - - private TreeModel buildSortedTreeModel() { - return this.buildTreeModel(this.buildSortedRootNode()); - } - - private TestNode buildSortedRootNode() { - return new SortedTestNode(this.buildRoot()); - } - - private TreeModel buildUnsortedTreeModel() { - return this.buildTreeModel(this.buildUnsortedRootNode()); - } - - private TestNode buildUnsortedRootNode() { - return new UnsortedTestNode(this.buildRoot()); - } - - private TreeModel buildSpecialTreeModel() { - return this.buildTreeModel(this.buildSpecialRootNode()); - } - - private TestNode buildSpecialRootNode() { - return new SpecialTestNode(this.buildRoot()); - } - - private TestModel buildRoot() { - TestModel root = new TestModel("root"); - /*Node node_0 = */root.addChild("node 0"); - TestModel node_1 = root.addChild("node 1"); - TestModel node_1_1 = node_1.addChild("node 1.1"); - /*Node node_1_1_1 = */node_1_1.addChild("node 1.1.1"); - TestModel node_2 = root.addChild("node 2"); - /*Node node_2_0 = */node_2.addChild("node 2.0"); - /*Node node_2_1 = */node_2.addChild("node 2.1"); - /*Node node_2_2 = */node_2.addChild("node 2.2"); - /*Node node_2_3 = */node_2.addChild("node 2.3"); - /*Node node_2_4 = */node_2.addChild("node 2.4"); - /*Node node_2_5 = */node_2.addChild("node 2.5"); - /*Node node_3 = */root.addChild("node 3"); - /*Node node_4 = */root.addChild("node 4"); - return root; - } - - - // ********** member classes ********** - - /** - * This is a typical model class with the typical change notifications - * for #name and #children. - */ - public static class TestModel extends AbstractModel { - - // the parent is immutable; the root's parent is null - private final TestModel parent; - - // the name is mutable; so I guess it isn't the "primary key" :-) - private String name; - public static final String NAME_PROPERTY = "name"; - - private final Collection children; - public static final String CHILDREN_COLLECTION = "children"; - - - public TestModel(String name) { // root ctor - this(null, name); - } - private TestModel(TestModel parent, String name) { - super(); - this.parent = parent; - this.name = name; - this.children = new HashBag(); - } - - public TestModel getParent() { - return this.parent; - } - - public String getName() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - - public Iterator children() { - return new ReadOnlyIterator(this.children); - } - public int childrenSize() { - return this.children.size(); - } - public TestModel addChild(String childName) { - TestModel child = new TestModel(this, childName); - this.addItemToCollection(child, this.children, CHILDREN_COLLECTION); - return child; - } - public TestModel[] addChildren(String[] childNames) { - TestModel[] newChildren = new TestModel[childNames.length]; - for (int i = 0; i < childNames.length; i++) { - newChildren[i] = new TestModel(this, childNames[i]); - } - this.addItemsToCollection(newChildren, this.children, CHILDREN_COLLECTION); - return newChildren; - } - public void removeChild(TestModel child) { - this.removeItemFromCollection(child, this.children, CHILDREN_COLLECTION); - } - public void removeChildren(TestModel[] testModels) { - this.removeItemsFromCollection(testModels, this.children, CHILDREN_COLLECTION); - } - public void clearChildren() { - this.clearCollection(this.children, CHILDREN_COLLECTION); - } - public TestModel childNamed(String childName) { - for (TestModel child : this.children) { - if (child.getName().equals(childName)) { - return child; - } - } - throw new RuntimeException("child not found: " + childName); - } - - public String dumpString() { - StringWriter sw = new StringWriter(); - IndentingPrintWriter ipw = new IndentingPrintWriter(sw); - this.dumpOn(ipw); - return sw.toString(); - } - public void dumpOn(IndentingPrintWriter writer) { - writer.println(this); - writer.indent(); - for (TestModel child : this.children) { - child.dumpOn(writer); - } - writer.undent(); - } - public void dumpOn(OutputStream stream) { - IndentingPrintWriter writer = new IndentingPrintWriter(new OutputStreamWriter(stream)); - this.dumpOn(writer); - writer.flush(); - } - public void dump() { - this.dumpOn(System.out); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.name); - } - - } - - - /** - * This Node wraps a TestModel and converts into something that can - * be used by TreeModelAdapter. It converts changes to the TestModel's - * name into "state changes" to the Node; and converts the - * TestModel's children into a ListValueModel of Nodes whose order is - * determined by subclass implementations. - */ - public static abstract class TestNode extends AbstractTreeNodeValueModel implements Displayable, Comparable { - /** the model object wrapped by this node */ - private final TestModel testModel; - /** this node's parent node; null for the root node */ - private final TestNode parent; - /** this node's child nodes */ - private final ListValueModel> childrenModel; - /** a listener that notifies us when the model object's "internal state" changes */ - private final PropertyChangeListener testModelListener; - - - // ********** constructors/initialization ********** - - /** - * root node constructor - */ - public TestNode(TestModel testModel) { - this(null, testModel); - } - - /** - * branch or leaf node constructor - */ - public TestNode(TestNode parent, TestModel testModel) { - super(); - this.parent = parent; - this.testModel = testModel; - this.childrenModel = this.buildChildrenModel(testModel); - this.testModelListener = this.buildTestModelListener(); - } - - private PropertyChangeListener buildTestModelListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - TestNode.this.testModelChanged(e); - } - }; - } - - /** - * subclasses decide the order of the child nodes - */ - protected abstract ListValueModel> buildChildrenModel(TestModel model); - - /** - * used by subclasses; - * transform the test model children into nodes - */ - protected ListValueModel> buildNodeAdapter(TestModel model) { - return new TransformationListValueModel>(this.buildChildrenAdapter(model)) { - @Override - protected TestNode transformItem(TestModel item) { - return TestNode.this.buildChildNode(item); - } - }; - } - - /** - * subclasses must build a concrete node for the specified test model - */ - protected abstract TestNode buildChildNode(TestModel childTestModel); - - /** - * return a collection value model on the specified model's children - */ - protected CollectionValueModel buildChildrenAdapter(TestModel model) { - return new CollectionAspectAdapter(TestModel.CHILDREN_COLLECTION, model) { - @Override - protected Iterator iterator_() { - return this.subject.children(); - } - @Override - protected int size_() { - return this.subject.childrenSize(); - } - }; - } - - - // ********** TreeNodeValueModel implementation ********** - - public TestModel getValue() { - return this.testModel; - } - - public TreeNodeValueModel parent() { - return this.parent; - } - - public ListValueModel> childrenModel() { - return this.childrenModel; - } - - - // ********** AbstractTreeNodeValueModel implementation ********** - - @Override - protected void engageValue() { - this.testModel.addPropertyChangeListener(TestModel.NAME_PROPERTY, this.testModelListener); - } - - @Override - protected void disengageValue() { - this.testModel.removePropertyChangeListener(TestModel.NAME_PROPERTY, this.testModelListener); - } - - - // ********** Displayable implementation ********** - - public String displayString() { - return this.testModel.getName(); - } - - public Icon icon() { - return null; - } - - - // ********** debugging support ********** - - public String dumpString() { - StringWriter sw = new StringWriter(); - IndentingPrintWriter ipw = new IndentingPrintWriter(sw); - this.dumpOn(ipw); - return sw.toString(); - } - - public void dumpOn(IndentingPrintWriter writer) { - writer.println(this); - writer.indent(); - for (Iterator> stream = this.childrenModel.iterator(); stream.hasNext(); ) { - // cast to a TestNode (i.e. this won't work with a NameTestNode in the tree) - ((TestNode) stream.next()).dumpOn(writer); - } - writer.undent(); - } - - public void dumpOn(OutputStream stream) { - IndentingPrintWriter writer = new IndentingPrintWriter(new OutputStreamWriter(stream)); - this.dumpOn(writer); - writer.flush(); - } - - public void dump() { - this.dumpOn(System.out); - } - - - // ********** behavior ********** - - /** - * the model's name has changed, forward the event to our listeners - */ - protected void testModelChanged(PropertyChangeEvent e) { - // we need to notify listeners that our "internal state" has changed - this.fireStateChanged(); - // our display string stays in synch with the model's name - this.firePropertyChanged(DISPLAY_STRING_PROPERTY, e.getOldValue(), e.getNewValue()); - } - - - // ********** queries ********** - - public TestModel getTestModel() { - return this.testModel; - } - - /** - * testing convenience method - */ - public TestNode childNamed(String name) { - for (Iterator> stream = this.childrenModel.iterator(); stream.hasNext(); ) { - TreeNodeValueModel childNode = stream.next(); - if (childNode instanceof TestNode) { - if (((TestNode) childNode).getTestModel().getName().equals(name)) { - return (TestNode) childNode; - } - } - } - throw new IllegalArgumentException("child not found: " + name); - } - - - // ********** standard methods ********** - - public int compareTo(TestNode o) { - return this.displayString().compareTo(o.displayString()); - } - - @Override - public String toString() { - return "Node(" + this.testModel + ")"; - } - - } - - /** - * concrete implementation that keeps its children sorted - */ - public static class SortedTestNode extends TestNode { - - // ********** constructors ********** - public SortedTestNode(TestModel testModel) { - super(testModel); - } - public SortedTestNode(TestNode parent, TestModel testModel) { - super(parent, testModel); - } - - // ********** initialization ********** - /** the list should be sorted */ - @Override - protected ListValueModel> buildChildrenModel(TestModel testModel) { - return new SortedListValueModelWrapper>(this.buildDisplayStringAdapter(testModel)); - } - /** the display string (name) of each node can change */ - protected ListValueModel> buildDisplayStringAdapter(TestModel testModel) { - return new ItemPropertyListValueModelAdapter>(this.buildNodeAdapter(testModel), DISPLAY_STRING_PROPERTY); - } - /** children are also sorted nodes */ - @Override - protected TestNode buildChildNode(TestModel childNode) { - return new SortedTestNode(this, childNode); - } - - } - - - /** - * concrete implementation that leaves its children unsorted - */ - public static class UnsortedTestNode extends TestNode { - - // ********** constructors ********** - public UnsortedTestNode(TestModel testModel) { - super(testModel); - } - public UnsortedTestNode(TestNode parent, TestModel testModel) { - super(parent, testModel); - } - - // ********** initialization ********** - /** the list should NOT be sorted */ - @Override - protected ListValueModel> buildChildrenModel(TestModel testModel) { - return this.buildNodeAdapter(testModel); - } - /** children are also unsorted nodes */ - @Override - protected TestNode buildChildNode(TestModel childNode) { - return new UnsortedTestNode(this, childNode); - } - - } - - - /** - * concrete implementation that leaves its children unsorted - * and has a special set of children for "node 3" - */ - public static class SpecialTestNode extends UnsortedTestNode { - - // ********** constructors ********** - public SpecialTestNode(TestModel testModel) { - super(testModel); - } - public SpecialTestNode(TestNode parent, TestModel testModel) { - super(parent, testModel); - } - - // ********** initialization ********** - /** return a different list of children for "node 3" */ - @Override - protected ListValueModel> buildChildrenModel(TestModel testModel) { - if (testModel.getName().equals("node 3")) { - return this.buildSpecialChildrenModel(); - } - return super.buildChildrenModel(testModel); - } - protected ListValueModel> buildSpecialChildrenModel() { - TreeNodeValueModel[] children = new NameTestNode[1]; - children[0] = new NameTestNode(this); - return new SimpleListValueModel>(Arrays.asList(children)); - } - /** children are also special nodes */ - @Override - protected TestNode buildChildNode(TestModel childNode) { - return new SpecialTestNode(this, childNode); - } - - } - - - public static class NameTestNode extends AbstractTreeNodeValueModel { - private final WritablePropertyValueModel nameAdapter; - private final SpecialTestNode specialNode; // parent node - private final PropertyChangeListener nameListener; - private final ListValueModel> childrenModel; - - // ********** construction/initialization ********** - - public NameTestNode(SpecialTestNode specialNode) { - super(); - this.nameListener = this.buildNameListener(); - this.specialNode = specialNode; - this.nameAdapter = this.buildNameAdapter(); - this.childrenModel = new NullListValueModel>(); - } - protected PropertyChangeListener buildNameListener() { - return new PropertyChangeListener() { - public void propertyChanged(PropertyChangeEvent e) { - NameTestNode.this.nameChanged(e); - } - }; - } - protected WritablePropertyValueModel buildNameAdapter() { - return new PropertyAspectAdapter(TestModel.NAME_PROPERTY, this.getTestModel()) { - @Override - protected String buildValue_() { - return this.subject.getName(); - } - @Override - protected void setValue_(String value) { - this.subject.setName(value); - } - }; - } - - public TestModel getTestModel() { - return this.specialNode.getTestModel(); - } - - // ********** TreeNodeValueModel implementation ********** - - public String getValue() { - return this.nameAdapter.getValue(); - } - @Override - public void setValue(Object value) { - this.nameAdapter.setValue((String) value); - } - public TreeNodeValueModel parent() { - return this.specialNode; - } - public ListValueModel> childrenModel() { - return this.childrenModel; - } - - // ********** AbstractTreeNodeValueModel implementation ********** - - @Override - protected void engageValue() { - this.nameAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.nameListener); - } - @Override - protected void disengageValue() { - this.nameAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.nameListener); - } - - // ********** behavior ********** - - protected void nameChanged(PropertyChangeEvent e) { - // we need to notify listeners that our "value" has changed - this.firePropertyChanged(VALUE, e.getOldValue(), e.getNewValue()); - } - } - - private TreeModel buildTreeModel(TestNode root) { - return this.buildTreeModel(new StaticPropertyValueModel>(root)); - } - - private TreeModel buildTreeModel(PropertyValueModel> rootHolder) { - return new TreeModelAdapter(rootHolder) { - @Override - protected ListChangeListener buildChildrenListener() { - return this.buildChildrenListener_(); - } - @Override - protected StateChangeListener buildNodeStateListener() { - return this.buildNodeStateListener_(); - } - @Override - protected PropertyChangeListener buildNodeValueListener() { - return this.buildNodeValueListener_(); - } - @Override - protected PropertyChangeListener buildRootListener() { - return this.buildRootListener_(); - } - }; - } - - - - /** - * listener that will blow up with any event; - * override and implement expected event methods - */ - public class TestTreeModelListener implements TreeModelListener { - public void treeNodesChanged(TreeModelEvent e) { - fail("unexpected event"); - } - public void treeNodesInserted(TreeModelEvent e) { - fail("unexpected event"); - } - public void treeNodesRemoved(TreeModelEvent e) { - fail("unexpected event"); - } - public void treeStructureChanged(TreeModelEvent e) { - fail("unexpected event"); - } - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TreeModelAdapterUITest.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TreeModelAdapterUITest.java deleted file mode 100644 index 967a02783e..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/model/value/swing/TreeModelAdapterUITest.java +++ /dev/null @@ -1,425 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.model.value.swing; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.TextField; -import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.util.Collection; -import java.util.Collections; -import java.util.Enumeration; -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTree; -import javax.swing.WindowConstants; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; -import javax.swing.tree.DefaultTreeSelectionModel; -import javax.swing.tree.TreeModel; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterators.EnumerationIterator; -import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.common.utility.internal.model.value.swing.TreeModelAdapter; -import org.eclipse.jpt.common.utility.internal.swing.Displayable; -import org.eclipse.jpt.common.utility.model.value.TreeNodeValueModel; -import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; -import org.eclipse.jpt.common.utility.tests.internal.model.value.swing.TreeModelAdapterTests.SortedTestNode; -import org.eclipse.jpt.common.utility.tests.internal.model.value.swing.TreeModelAdapterTests.TestModel; -import org.eclipse.jpt.common.utility.tests.internal.model.value.swing.TreeModelAdapterTests.TestNode; -import org.eclipse.jpt.common.utility.tests.internal.model.value.swing.TreeModelAdapterTests.UnsortedTestNode; - -/** - * an example UI for testing the TreeModelAdapter - */ -@SuppressWarnings("nls") -public class TreeModelAdapterUITest { - - // hold the tree so we can restore its expansion state - private JTree tree; - private WritablePropertyValueModel> rootNodeHolder; - private boolean sorted; - private TreeModel treeModel; - private TreeSelectionModel treeSelectionModel; - private TextField nameTextField; - - public static void main(String[] args) throws Exception { - new TreeModelAdapterUITest().exec(); - } - - private TreeModelAdapterUITest() { - super(); - } - - private void exec() throws Exception { - this.rootNodeHolder = this.buildRootNodeHolder(); - this.sorted = this.rootNodeHolder.getValue() instanceof SortedTestNode; - this.treeModel = this.buildTreeModel(); - this.treeSelectionModel = this.buildTreeSelectionModel(); - this.nameTextField = new TextField(); - this.openWindow(); - } - - private WritablePropertyValueModel> buildRootNodeHolder() { - return new SimplePropertyValueModel>(this.buildSortedRootNode()); - } - - private TestNode buildSortedRootNode() { - return new SortedTestNode(this.buildRoot()); - } - - private TestNode buildUnsortedRootNode() { - return new UnsortedTestNode(this.buildRoot()); - } - - private TestModel buildRoot() { - TestModel root = new TestModel("root"); - - TestModel node_1 = root.addChild("node 1"); - /*Node node_1_1 = */node_1.addChild("node 1.1"); - - TestModel node_2 = root.addChild("node 2"); - /*Node node_2_1 = */node_2.addChild("node 2.1"); - TestModel node_2_2 = node_2.addChild("node 2.2"); - /*Node node_2_2_1 = */node_2_2.addChild("node 2.2.1"); - /*Node node_2_2_2 = */node_2_2.addChild("node 2.2.2"); - /*Node node_2_3 = */node_2.addChild("node 2.3"); - /*Node node_2_4 = */node_2.addChild("node 2.4"); - /*Node node_2_5 = */node_2.addChild("node 2.5"); - - TestModel node_3 = root.addChild("node 3"); - TestModel node_3_1 = node_3.addChild("node 3.1"); - TestModel node_3_1_1 = node_3_1.addChild("node 3.1.1"); - /*Node node_3_1_1_1 = */node_3_1_1.addChild("node 3.1.1.1"); - - /*Node node_4 = */root.addChild("node 4"); - - return root; - } - - private TreeModel buildTreeModel() { - return new TreeModelAdapter(this.rootNodeHolder); - } - - private TreeSelectionModel buildTreeSelectionModel() { - TreeSelectionModel tsm = new DefaultTreeSelectionModel(); - tsm.addTreeSelectionListener(this.buildTreeSelectionListener()); - tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); - return tsm; - } - - private TreeSelectionListener buildTreeSelectionListener() { - return new TreeSelectionListener() { - public void valueChanged(TreeSelectionEvent e) { - TreeModelAdapterUITest.this.treeSelectionChanged(e); - } - }; - } - - void treeSelectionChanged(@SuppressWarnings("unused") TreeSelectionEvent e) { - TestModel selectedTestModel = this.selectedTestModel(); - if (selectedTestModel != null) { - this.nameTextField.setText(selectedTestModel.getName()); - } - } - - private void openWindow() { - JFrame window = new JFrame(this.getClass().getName()); - window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - window.addWindowListener(this.buildWindowListener()); - window.getContentPane().add(this.buildMainPanel(), "Center"); - window.setLocation(300, 300); - window.setSize(400, 400); - window.setVisible(true); - } - - private WindowListener buildWindowListener() { - return new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - e.getWindow().setVisible(false); - System.exit(0); - } - }; - } - - private Component buildMainPanel() { - JPanel mainPanel = new JPanel(new BorderLayout()); - mainPanel.add(this.buildTreePane(), BorderLayout.CENTER); - mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH); - return mainPanel; - } - - private Component buildTreePane() { - return new JScrollPane(this.buildTree()); - } - - private JTree buildTree() { - this.tree = new JTree(this.treeModel) { - @Override - public String convertValueToText(Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { - return ((Displayable) value).displayString(); - } - }; - this.tree.setSelectionModel(this.treeSelectionModel); - this.tree.setRootVisible(true); - this.tree.setShowsRootHandles(true); - this.tree.setRowHeight(20); - this.tree.setDoubleBuffered(true); - return this.tree; - } - - private Component buildControlPanel() { - JPanel controlPanel = new JPanel(new GridLayout(0, 1)); - controlPanel.add(this.buildAddRenameNodePanel()); - controlPanel.add(this.buildMiscPanel()); - return controlPanel; - } - - private Component buildAddRenameNodePanel() { - JPanel addRenameNodePanel = new JPanel(new BorderLayout()); - addRenameNodePanel.add(this.buildAddButton(), BorderLayout.WEST); - addRenameNodePanel.add(this.nameTextField, BorderLayout.CENTER); - addRenameNodePanel.add(this.buildRenameButton(), BorderLayout.EAST); - return addRenameNodePanel; - } - - private Component buildMiscPanel() { - JPanel miscPanel = new JPanel(new GridLayout(1, 0)); - miscPanel.add(this.buildClearChildrenButton()); - miscPanel.add(this.buildRemoveButton()); - miscPanel.add(this.buildResetButton()); - return miscPanel; - } - - private String getName() { - return this.nameTextField.getText(); - } - - // ********** queries ********** - private TestNode selectedNode() { - if (this.treeSelectionModel.isSelectionEmpty()) { - return null; - } - return (TestNode) this.treeSelectionModel.getSelectionPath().getLastPathComponent(); - } - - private TestModel selectedTestModel() { - if (this.treeSelectionModel.isSelectionEmpty()) { - return null; - } - return this.selectedNode().getValue(); - } - - private TestNode rootNode() { - return (TestNode) this.treeModel.getRoot(); - } - - private TestModel root() { - return this.rootNode().getValue(); - } - - private Collection expandedPaths() { - Enumeration stream = this.tree.getExpandedDescendants(new TreePath(this.rootNode())); - if (stream == null) { - return Collections.emptyList(); - } - return CollectionTools.list(new EnumerationIterator(stream)); - } - - // ********** behavior ********** - private void setSelectedNode(TestNode selectedNode) { - this.treeSelectionModel.setSelectionPath(new TreePath(selectedNode.path())); - } - - private void expandPaths(Collection paths) { - for (TreePath path : paths) { - this.tree.expandPath(path); - } - } - - // ********** add ********** - private JButton buildAddButton() { - return new JButton(this.buildAddAction()); - } - - private Action buildAddAction() { - Action action = new AbstractAction("add") { - public void actionPerformed(ActionEvent event) { - TreeModelAdapterUITest.this.addNode(); - } - }; - action.setEnabled(true); - return action; - } - - /** - * adding causes the tree to be sorted and nodes to be - * removed and re-added; so we have to fiddle with the expansion state - */ - void addNode() { - TestModel selectedTestModel = this.selectedTestModel(); - if (selectedTestModel != null) { - String name = this.getName(); - // save the expansion state and restore it after the add - Collection paths = this.expandedPaths(); - - selectedTestModel.addChild(name); - - this.expandPaths(paths); - this.setSelectedNode(this.selectedNode().childNamed(name)); - } - } - - // ********** remove ********** - private JButton buildRemoveButton() { - return new JButton(this.buildRemoveAction()); - } - - private Action buildRemoveAction() { - Action action = new AbstractAction("remove") { - public void actionPerformed(ActionEvent event) { - TreeModelAdapterUITest.this.removeNode(); - } - }; - action.setEnabled(true); - return action; - } - - /** - * we need to figure out which node to select after - * the selected node is deleted - */ - void removeNode() { - TestModel selectedTestModel = this.selectedTestModel(); - // do not allow the root to be removed - if ((selectedTestModel != null) && (selectedTestModel != this.root())) { - // save the parent and index, so we can select another, nearby, node - // once the selected node is removed - TestNode parentNode = (TestNode) this.selectedNode().parent(); - int childIndex = parentNode.indexOfChild(this.selectedNode()); - - selectedTestModel.getParent().removeChild(selectedTestModel); - - int childrenSize = parentNode.childrenSize(); - if (childIndex < childrenSize) { - // select the child that moved up and replaced the just-deleted child - this.setSelectedNode((TestNode) parentNode.child(childIndex)); - } else { - if (childrenSize == 0) { - // if there are no more children, select the parent - this.setSelectedNode(parentNode); - } else { - // if the child at the bottom of the list was deleted, select the next child up - this.setSelectedNode((TestNode) parentNode.child(childIndex - 1)); - } - } - } - } - - // ********** rename ********** - private JButton buildRenameButton() { - return new JButton(this.buildRenameAction()); - } - - private Action buildRenameAction() { - Action action = new AbstractAction("rename") { - public void actionPerformed(ActionEvent event) { - TreeModelAdapterUITest.this.renameNode(); - } - }; - action.setEnabled(true); - return action; - } - - /** - * renaming causes the tree to be sorted and nodes to be - * removed and re-added; so we have to fiddle with the expansion state - */ - void renameNode() { - TestModel selectedTestModel = this.selectedTestModel(); - if (selectedTestModel != null) { - // save the node and re-select it after the rename - TestNode selectedNode = this.selectedNode(); - // save the expansion state and restore it after the rename - Collection paths = this.expandedPaths(); - - selectedTestModel.setName(this.getName()); - - this.expandPaths(paths); - this.setSelectedNode(selectedNode); - } - } - - // ********** clear children ********** - private JButton buildClearChildrenButton() { - return new JButton(this.buildClearChildrenAction()); - } - - private Action buildClearChildrenAction() { - Action action = new AbstractAction("clear children") { - public void actionPerformed(ActionEvent event) { - TreeModelAdapterUITest.this.clearChildren(); - } - }; - action.setEnabled(true); - return action; - } - - /** - * nothing special, we just want to test #fireCollectionChanged(String) - */ - void clearChildren() { - TestModel selectedTestModel = this.selectedTestModel(); - if (selectedTestModel != null) { - selectedTestModel.clearChildren(); - } - } - - // ********** reset ********** - private JButton buildResetButton() { - return new JButton(this.buildResetAction()); - } - - private Action buildResetAction() { - Action action = new AbstractAction("reset") { - public void actionPerformed(ActionEvent event) { - TreeModelAdapterUITest.this.reset(); - } - }; - action.setEnabled(true); - return action; - } - - /** - * test the adapter's root node holder; - * toggle between sorted and unsorted lists - */ - void reset() { - this.sorted = ! this.sorted; - if (this.sorted) { - this.rootNodeHolder.setValue(this.buildSortedRootNode()); - } else { - this.rootNodeHolder.setValue(this.buildUnsortedRootNode()); - } - this.tree.expandPath(new TreePath(this.rootNode())); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/node/AbstractNodeTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/node/AbstractNodeTests.java deleted file mode 100644 index 74cd629a88..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/node/AbstractNodeTests.java +++ /dev/null @@ -1,495 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.node; - -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.HashBag; -import org.eclipse.jpt.common.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.common.utility.internal.node.AbstractNode; -import org.eclipse.jpt.common.utility.internal.node.Node; -import org.eclipse.jpt.common.utility.internal.node.Problem; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class AbstractNodeTests extends TestCase { - private TestWorkbenchModel root; - - public AbstractNodeTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.root = this.buildRoot(); - } - - private TestWorkbenchModel buildRoot() { - TestWorkbenchModel r = new RootTestWorkbenchModel("root"); - TestWorkbenchModel node1 = r.addTestChildNamed("node 1"); - TestWorkbenchModel node1_1 = node1.addTestChildNamed("node 1.1"); - node1_1.addTestChildNamed("node 1.1.1"); - node1_1.addTestChildNamed("node 1.1.2"); - node1_1.addTestChildNamed("node 1.1.3"); - node1.addTestChildNamed("node 1.2"); - TestWorkbenchModel node2 = r.addTestChildNamed("node 2"); - node2.addTestChildNamed("node 2.1"); - node2.addTestChildNamed("node 2.2"); - r.addTestChildNamed("node 3"); - r.addTestChildNamed("node 4"); - - // mark the entire tree clean - r.markEntireBranchClean(); - return r; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testTestWorkbenchModel() { - // make sure our test class works OK... - assertNull(this.root.testChildNamed("")); - assertNotNull(this.root.testChildNamed("node 1")); - assertTrue(this.root.testChildNamed("node 1").isClean()); - assertTrue(this.root.testChildNamed("node 1").isCleanBranch()); - assertNotNull(this.root.testChildNamed("node 2")); - assertTrue(this.root.testChildNamed("node 2").isClean()); - assertTrue(this.root.testChildNamed("node 2").isCleanBranch()); - assertNull(this.root.testChildNamed("node 2.1")); - - assertNull(this.root.testDescendantNamed("")); - assertNotNull(this.root.testDescendantNamed("node 1")); - assertNotNull(this.root.testDescendantNamed("node 2")); - assertNotNull(this.root.testDescendantNamed("node 2.1")); - assertTrue(this.root.testDescendantNamed("node 2.1").isClean()); - assertTrue(this.root.testDescendantNamed("node 2.1").isCleanBranch()); - assertNotNull(this.root.testDescendantNamed("node 1.1.3")); - assertTrue(this.root.testDescendantNamed("node 1.1.3").isClean()); - assertTrue(this.root.testDescendantNamed("node 1.1.3").isCleanBranch()); - } - - public void testParentAndChildren() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - assertEquals("node 1.1.3", node.getName()); - assertEquals(0, CollectionTools.size(node.children())); - - node = (TestWorkbenchModel) node.getParent(); - assertEquals("node 1.1", node.getName()); - assertEquals(3, CollectionTools.size(node.children())); - - node = (TestWorkbenchModel) node.getParent(); - assertEquals("node 1", node.getName()); - assertEquals(2, CollectionTools.size(node.children())); - - node = (TestWorkbenchModel) node.getParent(); - assertEquals("root", node.getName()); - assertEquals(4, CollectionTools.size(node.children())); - - node = (TestWorkbenchModel) node.getParent(); - assertNull(node); - } - - public void testDirty() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - node.setSize(42); - assertTrue(node.isDirty()); - - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - assertTrue(parent.isClean()); - assertTrue(this.root.isClean()); - } - - public void testDirtyUnchangedAttribute() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - node.setSize(42); - assertTrue(node.isDirty()); - - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - assertTrue(parent.isClean()); - assertTrue(this.root.isClean()); - - this.root.markEntireBranchClean(); - // set size to same number - should stay clean - node.setSize(42); - assertTrue(node.isClean()); - assertTrue(parent.isClean()); - assertTrue(this.root.isClean()); - } - - public void testDirtyBranch() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - node.setSize(42); - assertTrue(node.isDirtyBranch()); - - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - assertTrue(parent.isDirtyBranch()); - assertTrue(this.root.isDirtyBranch()); - - parent.setSize(77); - assertTrue(parent.isDirty()); - assertTrue(parent.isDirtyBranch()); - - node.markEntireBranchClean(); - assertTrue(parent.isDirty()); - assertTrue(parent.isDirtyBranch()); - } - - public void testDirtyBranchCleanChildDirtyParent() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - node.setSize(42); - - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - parent.setSize(77); - assertTrue(parent.isDirty()); - assertTrue(parent.isDirtyBranch()); - - // now, clean the child, but leave the parent dirty - node.markEntireBranchClean(); - assertTrue(parent.isDirty()); - assertTrue(parent.isDirtyBranch()); - } - - public void testDirtyBranchCleanChildDirtyChild() { - TestWorkbenchModel node1 = this.root.testDescendantNamed("node 1.1.1"); - node1.setSize(41); - TestWorkbenchModel node2 = this.root.testDescendantNamed("node 1.1.2"); - node2.setSize(42); - - TestWorkbenchModel parent = (TestWorkbenchModel) node1.getParent(); - assertTrue(parent.isClean()); - assertTrue(parent.isDirtyBranch()); - - // now, clean the first child, but leave the second child dirty - node1.markEntireBranchClean(); - assertTrue(parent.isClean()); - assertTrue(parent.isDirtyBranch()); - } - - public void testDirtyBranchForced() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - - assertTrue(node.isClean()); - assertTrue(node.isCleanBranch()); - assertTrue(parent.isClean()); - assertTrue(parent.isCleanBranch()); - assertTrue(this.root.isClean()); - assertTrue(this.root.isCleanBranch()); - - this.root.markEntireBranchDirty(); - - assertTrue(node.isDirty()); - assertTrue(node.isDirtyBranch()); - assertTrue(parent.isDirty()); - assertTrue(parent.isDirtyBranch()); - assertTrue(this.root.isDirty()); - assertTrue(this.root.isDirtyBranch()); - } - - public void testDirtyTransientAttribute() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - node.setName("BOGUS"); - assertTrue(node.isDirty()); - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - assertTrue(parent.isClean()); - assertTrue(parent.isDirtyBranch()); - assertTrue(this.root.isClean()); - assertTrue(this.root.isDirtyBranch()); - - this.root.markEntireBranchClean(); - - this.root.validateBranch(); - - assertTrue(this.root.problemsSize() == 0); - assertTrue(node.branchProblems().hasNext()); - assertTrue(parent.problemsSize() == 0); - assertTrue(parent.branchProblems().hasNext()); - assertTrue(node.problemsSize() > 0); - - // since problems are transient, everything should still be clean - assertTrue(node.isClean()); - assertTrue(node.isCleanBranch()); - assertTrue(parent.isClean()); - assertTrue(parent.isCleanBranch()); - assertTrue(this.root.isClean()); - assertTrue(this.root.isCleanBranch()); - } - - public void testProblems() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - node.setName("BOGUS"); - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - - this.root.validateBranch(); - - assertEquals(0, this.root.problemsSize()); - assertTrue(node.branchProblems().hasNext()); - assertEquals(0, parent.problemsSize()); - assertTrue(parent.branchProblems().hasNext()); - assertEquals(1, node.problemsSize()); - Problem problem1 = node.problems().next(); - - // now create another problem that should remove the old problem - node.setName("STILL BOGUS"); - this.root.validateBranch(); - - assertEquals(0, this.root.problemsSize()); - assertTrue(node.branchProblems().hasNext()); - assertEquals(0, parent.problemsSize()); - assertTrue(parent.branchProblems().hasNext()); - assertEquals(1, node.problemsSize()); - Problem problem2 = node.problems().next(); - assertFalse(problem1 == problem2); - problem1 = problem2; - - // now create another problem that should replace the old problem - node.setName("STILL BOGUS"); - this.root.validateBranch(); - - assertEquals(0, this.root.problemsSize()); - assertTrue(node.branchProblems().hasNext()); - assertEquals(0, parent.problemsSize()); - assertTrue(parent.branchProblems().hasNext()); - assertEquals(1, node.problemsSize()); - problem2 = node.problems().next(); - // the same problem should be there - assertTrue(problem1.equals(problem2)); - } - - public void testBranchProblems() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - node.setName("BOGUS"); - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - parent.setName("BOGUS TOO"); - this.root.setName("BOGUS TOO TOO"); - - this.root.validateBranch(); - - assertEquals(1, this.root.problemsSize()); - assertEquals(3, this.root.branchProblemsSize()); - assertEquals(1, parent.problemsSize()); - assertEquals(2, parent.branchProblemsSize()); - assertEquals(1, node.problemsSize()); - assertEquals(1, node.branchProblemsSize()); - - node.setName("okie-dokie"); - - this.root.validateBranch(); - - assertEquals(1, this.root.problemsSize()); - assertEquals(2, this.root.branchProblemsSize()); - assertEquals(1, parent.problemsSize()); - assertEquals(1, parent.branchProblemsSize()); - assertEquals(0, node.problemsSize()); - assertEquals(0, node.branchProblemsSize()); - } - - public void testClearAllBranchProblems() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - node.setName("BOGUS"); - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - parent.setName("BOGUS TOO"); - this.root.setName("BOGUS TOO TOO"); - - this.root.validateBranch(); - - assertEquals(1, this.root.problemsSize()); - assertEquals(3, this.root.branchProblemsSize()); - assertEquals(1, parent.problemsSize()); - assertEquals(2, parent.branchProblemsSize()); - assertEquals(1, node.problemsSize()); - assertEquals(1, node.branchProblemsSize()); - - parent.clearAllBranchProblems(); - - assertEquals(1, this.root.problemsSize()); - assertEquals(1, this.root.branchProblemsSize()); - assertEquals(0, parent.problemsSize()); - assertEquals(0, parent.branchProblemsSize()); - assertEquals(0, node.problemsSize()); - assertEquals(0, CollectionTools.size(node.branchProblems())); - } - - public void testRemovedBranchProblems() { - TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3"); - node.setName("BOGUS"); - TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent(); - parent.setName("BOGUS TOO"); - this.root.setName("BOGUS TOO TOO"); - - this.root.validateBranch(); - - assertEquals(1, this.root.problemsSize()); - assertEquals(3, CollectionTools.size(this.root.branchProblems())); - assertEquals(1, parent.problemsSize()); - assertEquals(2, parent.branchProblemsSize()); - assertEquals(1, node.problemsSize()); - assertEquals(1, CollectionTools.size(node.branchProblems())); - - // completely remove a node that has problems - - // the entire tree should recalculate its "branch" problems - parent.removeTestChild(node); - - this.root.validateBranch(); - - assertEquals(1, this.root.problemsSize()); - assertEquals(2, CollectionTools.size(this.root.branchProblems())); - assertEquals(1, parent.problemsSize()); - assertEquals(1, parent.branchProblemsSize()); - } - - - // ********** inner classes ********** - - public class TestWorkbenchModel extends AbstractNode { - private String name; - public static final String NAME_PROPERTY = "name"; - private int size; - public static final String SIZE_PROPERTY = "size"; - private Collection testChildren; - public static final String TEST_CHILDREN_COLLECTION = "children"; - - // ********** construction/initialization ********** - public TestWorkbenchModel(TestWorkbenchModel parent, String name) { - super(parent); - if (name == null) { - throw new NullPointerException(); - } - this.name = name; - } - @Override - protected void initialize() { - super.initialize(); - this.size = 0; - this.testChildren = new HashBag(); - } - - @Override - protected void checkParent(Node parent) { - // do nothing - } - - - // ********** accessors ********** - public String getName() { - return this.name; - } - public void setName(String name) { - Object old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - - public int getSize() { - return this.size; - } - public void setSize(int size) { - int old = this.size; - this.size = size; - this.firePropertyChanged(SIZE_PROPERTY, old, size); - } - - public Iterator testChildren() { - return new CloneIterator(this.testChildren) { - @Override - protected void remove(TestWorkbenchModel current) { - TestWorkbenchModel.this.removeTestChild(current); - } - }; - } - public int testChildrenSize() { - return this.testChildren.size(); - } - private TestWorkbenchModel addTestChild(TestWorkbenchModel testChild) { - this.addItemToCollection(testChild, this.testChildren, TEST_CHILDREN_COLLECTION); - return testChild; - } - public TestWorkbenchModel addTestChildNamed(String childName) { - if (this.testChildNamed(childName) != null) { - throw new IllegalArgumentException(childName); - } - return this.addTestChild(new TestWorkbenchModel(this, childName)); - } - public void removeTestChild(TestWorkbenchModel testChild) { - this.removeItemFromCollection(testChild, this.testChildren, TEST_CHILDREN_COLLECTION); - } - - // ********** queries ********** - public String displayString() { - return this.name; - } - public TestWorkbenchModel testChildNamed(String childName) { - for (TestWorkbenchModel testChild : this.testChildren) { - if (testChild.getName().equals(childName)) { - return testChild; - } - } - return null; - } - public TestWorkbenchModel testDescendantNamed(String descendantName) { - for (TestWorkbenchModel testDescendant : this.testChildren) { - if (testDescendant.getName().equals(descendantName)) { - return testDescendant; - } - // recurse... - testDescendant = testDescendant.testDescendantNamed(descendantName); - if (testDescendant != null) { - return testDescendant; - } - } - return null; - } - - // ********** behavior ********** - @Override - protected void addChildrenTo(List children) { - super.addChildrenTo(children); - children.addAll(this.testChildren); - } - @Override - protected void addProblemsTo(List currentProblems) { - super.addProblemsTo(currentProblems); - // names must be all lowercase... - for (int i = this.name.length(); i-- > 0; ) { - char c = this.name.charAt(i); - if (Character.isLetter(c) && ! Character.isLowerCase(c)) { - currentProblems.add(this.buildProblem("NAME_MUST_BE_LOWERCASE", 3 ,this.name)); - return; - } - } - } - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - } - - - private class RootTestWorkbenchModel extends TestWorkbenchModel { - public RootTestWorkbenchModel(String name) { - super(null, name); - } - @Override - public Validator getValidator() { - return Node.NULL_VALIDATOR; - } - } - -} - diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/node/JptUtilityNodeTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/node/JptUtilityNodeTests.java deleted file mode 100644 index 16f6dce93d..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/node/JptUtilityNodeTests.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.node; - -import junit.framework.Test; -import junit.framework.TestSuite; - -public class JptUtilityNodeTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityNodeTests.class.getPackage().getName()); - - suite.addTestSuite(AbstractNodeTests.class); - - return suite; - } - - private JptUtilityNodeTests() { - super(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/AsynchronousSynchronizerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/AsynchronousSynchronizerTests.java deleted file mode 100644 index 3ddbadc460..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/AsynchronousSynchronizerTests.java +++ /dev/null @@ -1,443 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.synchronizers; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.CompositeException; -import org.eclipse.jpt.common.utility.internal.ConsumerThreadCoordinator; -import org.eclipse.jpt.common.utility.internal.ReflectionTools; -import org.eclipse.jpt.common.utility.internal.synchronizers.AsynchronousSynchronizer; -import org.eclipse.jpt.common.utility.synchronizers.Synchronizer; -import org.eclipse.jpt.common.utility.tests.internal.MultiThreadedTestCase; - -@SuppressWarnings("nls") -public class AsynchronousSynchronizerTests - extends MultiThreadedTestCase -{ - PrimaryModel1 primaryModel1; - SecondaryModel1 secondaryModel1; - Command command1; - Synchronizer synchronizer1; - - PrimaryModel2 primaryModel2; - SecondaryModel2 secondaryModel2; - Command command2; - Synchronizer synchronizer2; - - public AsynchronousSynchronizerTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.primaryModel1 = new PrimaryModel1(); - this.secondaryModel1 = new SecondaryModel1(this.primaryModel1); - this.command1 = new SynchronizeSecondaryModelCommand1(this.secondaryModel1); - this.synchronizer1 = new AsynchronousSynchronizer(this.command1, this.buildThreadFactory()); - this.primaryModel1.setSynchronizer(this.synchronizer1); - - this.primaryModel2 = new PrimaryModel2(); - this.secondaryModel2 = new SecondaryModel2(this.primaryModel2); - this.command2 = new SynchronizeSecondaryModelCommand2(this.primaryModel2, this.secondaryModel2); - this.synchronizer2 = new AsynchronousSynchronizer(this.command2, this.buildThreadFactory()); - this.primaryModel2.setSynchronizer(this.synchronizer2); - } - - @Override - protected void tearDown() throws Exception { - this.synchronizer1.stop(); - this.synchronizer2.stop(); - super.tearDown(); - } - - public void testInitialization() { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - } - - public void testToString() { - assertNotNull(this.synchronizer1.toString()); - } - - public void testChange() throws Exception { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.setCount(7); - - this.sleep(TICK); - this.synchronizer1.stop(); - this.sleep(TICK); - - assertEquals(14, this.secondaryModel1.getDoubleCount()); - - // re-start so tear-down works - this.synchronizer1.start(); - } - - public void testStart() throws Exception { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.setSynchronizer(Synchronizer.Null.instance()); - this.primaryModel1.setCount(7); - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.setSynchronizer(this.synchronizer1); - // the async synchronizer does not synchronize at start-up - assertEquals(4, this.secondaryModel1.getDoubleCount()); - - this.primaryModel1.setCount(8); - - this.sleep(TICK); - this.synchronizer1.stop(); - this.sleep(TICK); - - assertEquals(16, this.secondaryModel1.getDoubleCount()); - - // re-start so tear-down works - this.synchronizer1.start(); - } - - public void testStop() throws Exception { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.dispose(); - this.primaryModel1.setCount(7); - assertEquals(4, this.secondaryModel1.getDoubleCount()); - - // re-start so tear-down works - this.synchronizer1.start(); - } - - public void testDoubleStart() throws Exception { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - boolean exCaught = false; - try { - this.primaryModel1.startSynchronizer(); - fail(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - this.primaryModel1.setCount(7); - - this.sleep(TICK); - this.synchronizer1.stop(); - this.sleep(TICK); - - assertEquals(14, this.secondaryModel1.getDoubleCount()); - - // re-start so tear-down works - this.synchronizer1.start(); - } - - public void testDoubleStop() throws Exception { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.dispose(); - boolean exCaught = false; - try { - this.primaryModel1.dispose(); - fail(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - this.primaryModel1.setCount(7); - assertEquals(4, this.secondaryModel1.getDoubleCount()); - - // re-start so tear-down works - this.synchronizer1.start(); - } - - public void testRecursiveChange() throws Exception { - assertEquals(4, this.secondaryModel2.getDoubleCount()); - this.primaryModel2.setCount(7); - - this.sleep(TICK); - assertEquals(10, this.primaryModel2.getCountPlus3()); - assertEquals(14, this.secondaryModel2.getDoubleCount()); - - this.sleep(TICK); - assertEquals(20, this.secondaryModel2.getDoubleCountPlus3()); - } - - public void testNullCommand() { - boolean exCaught = false; - try { - Synchronizer s = new AsynchronousSynchronizer(null, this.buildThreadFactory()); - fail("bogus: " + s); - } catch (NullPointerException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testThreadName() { - Synchronizer s = new AsynchronousSynchronizer(this.command1, this.buildThreadFactory(), "sync"); - s.start(); - ConsumerThreadCoordinator ctc = (ConsumerThreadCoordinator) ReflectionTools.getFieldValue(s, "consumerThreadCoordinator"); - Thread t = (Thread) ReflectionTools.getFieldValue(ctc, "thread"); - assertEquals("sync", t.getName()); - s.stop(); - } - - public void testSynchronizeCalledBeforeStart() throws Exception { - SimpleCommand command = new SimpleCommand(); - Synchronizer synchronizer = new AsynchronousSynchronizer(command, this.buildThreadFactory()); - - synchronizer.synchronize(); - synchronizer.start(); - this.sleep(TICK); - synchronizer.stop(); - assertEquals(1, command.count); - } - - public class SimpleCommand implements Command { - int count = 0; - public void execute() { - this.count++; - } - } - - public void testException() throws Exception { - BogusCommand command = new BogusCommand(); - Synchronizer synchronizer = new AsynchronousSynchronizer(command, this.buildThreadFactory()); - synchronizer.start(); - - synchronizer.synchronize(); - this.sleep(TICK); - - synchronizer.synchronize(); - this.sleep(TICK); - - boolean exCaught = false; - try { - synchronizer.stop(); - fail(); - } catch (CompositeException ex) { - assertEquals(2, ex.getExceptions().length); - exCaught = true; - } - assertTrue(exCaught); - assertEquals(2, command.count); - } - - public class BogusCommand implements Command { - int count = 0; - public void execute() { - this.count++; - throw new NullPointerException(); - } - } - - - // ********** synchronize commands ********** - public static class SynchronizeSecondaryModelCommand1 implements Command { - private final SecondaryModel1 secondaryModel; - - public SynchronizeSecondaryModelCommand1(SecondaryModel1 secondaryModel) { - super(); - this.secondaryModel = secondaryModel; - } - - public void execute() { - this.secondaryModel.synchronize(); - } - - } - - /** - * the primary model (subclass) has to synchronize with itself (superclass) - */ - public static class SynchronizeSecondaryModelCommand2 extends SynchronizeSecondaryModelCommand1 { - private final PrimaryModel2 primaryModel; - - public SynchronizeSecondaryModelCommand2(PrimaryModel2 primaryModel, SecondaryModel2 secondaryModel) { - super(secondaryModel); - this.primaryModel = primaryModel; - } - - @Override - public void execute() { - super.execute(); - this.primaryModel.synchronize(); - } - - } - - // ********** primary models ********** - /** - * this object will call the synchronizer whenever its count changes, - * allowing interested parties to synchronize with the change - */ - public static class PrimaryModel1 { - protected Synchronizer synchronizer; - protected int count = 2; - - public PrimaryModel1() { - super(); - this.setSynchronizer_(Synchronizer.Null.instance()); - } - - public int getCount() { - return this.count; - } - public void setCount(int count) { - if (count != this.count) { - this.count = count; - this.stateChanged(); - } - } - - protected void stateChanged() { - this.synchronizer.synchronize(); - } - - public void setSynchronizer(Synchronizer synchronizer) { - if (synchronizer == null) { - throw new NullPointerException(); - } - this.synchronizer.stop(); - this.setSynchronizer_(synchronizer); - } - - protected void setSynchronizer_(Synchronizer synchronizer) { - this.synchronizer = synchronizer; - this.synchronizer.start(); - } - - public void startSynchronizer() { - this.synchronizer.start(); // this should cause an exception - } - public void dispose() { - this.synchronizer.stop(); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(this.getClass().getSimpleName()); - sb.append('('); - this.toString(sb); - sb.append(')'); - return sb.toString(); - } - public void toString(StringBuilder sb) { - sb.append("count="); - sb.append(this.count); - } - - } - - /** - * This model synchronizes with itself, triggering a recursive synchronization - * with the change. Whenever the [inherited] 'count' changes, 'countPlus3' - * is updated appropriately and another synchronize is initiated if appropriate. - */ - public static class PrimaryModel2 extends PrimaryModel1 { - private int countPlus3 = 0; - - public PrimaryModel2() { - super(); - this.countPlus3 = this.count + 3; - } - - public int getCountPlus3() { - return this.countPlus3; - } - protected void setCountPlus3(int countPlus3) { - if (countPlus3 != this.countPlus3) { - this.countPlus3 = countPlus3; - this.stateChanged(); - } - } - - // synchronize with itself, so to speak - public void synchronize() { - this.setCountPlus3(this.count + 3); - } - - @Override - public void toString(StringBuilder sb) { - super.toString(sb); - sb.append(", countPlus3="); - sb.append(this.countPlus3); - } - - } - - // ********** secondary models ********** - /** - * This dependent object updates its 'doubleCount' whenever the - * PrimaryModel1's 'count' changes, via the 'synchronizer'. - */ - public static class SecondaryModel1 { - protected final PrimaryModel1 primaryModel; - protected int doubleCount = 0; - - public SecondaryModel1(PrimaryModel1 primaryModel) { - super(); - this.primaryModel = primaryModel; - this.synchronize(); - } - - public void synchronize() { - this.doubleCount = this.primaryModel.getCount() * 2; - } - - public int getDoubleCount() { - return this.doubleCount; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(this.getClass().getSimpleName()); - sb.append('('); - this.toString(sb); - sb.append(')'); - return sb.toString(); - } - public void toString(StringBuilder sb) { - sb.append("doubleCount="); - sb.append(this.doubleCount); - } - - } - - public static class SecondaryModel2 extends SecondaryModel1 { - private int doubleCountPlus3 = 0; - - public SecondaryModel2(PrimaryModel2 extendedPrimaryModel) { - super(extendedPrimaryModel); - } - - protected PrimaryModel2 getExtendedPrimaryModel() { - return (PrimaryModel2) this.primaryModel; - } - - @Override - public void synchronize() { - super.synchronize(); - int temp = this.getExtendedPrimaryModel().getCountPlus3() * 2; - if (this.doubleCountPlus3 != temp) { - this.doubleCountPlus3 = temp; - } - } - - public int getDoubleCountPlus3() { - return this.doubleCountPlus3; - } - - @Override - public void toString(StringBuilder sb) { - super.toString(sb); - sb.append(", doubleCountPlus3="); - sb.append(this.doubleCountPlus3); - } - - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/JptUtilitySynchronizersTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/JptUtilitySynchronizersTests.java deleted file mode 100644 index 96acf3075b..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/JptUtilitySynchronizersTests.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.synchronizers; - -import junit.framework.Test; -import junit.framework.TestSuite; - -/** - * decentralize test creation code - */ -public class JptUtilitySynchronizersTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilitySynchronizersTests.class.getPackage().getName()); - - suite.addTestSuite(AsynchronousSynchronizerTests.class); - suite.addTestSuite(SynchronizerTests.class); - suite.addTestSuite(SynchronousSynchronizerTests.class); - - return suite; - } - - private JptUtilitySynchronizersTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/SynchronizerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/SynchronizerTests.java deleted file mode 100644 index 8f7c67bb69..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/SynchronizerTests.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.synchronizers; - -import junit.framework.TestCase; -import org.eclipse.jpt.common.utility.synchronizers.Synchronizer; - -public class SynchronizerTests extends TestCase { - - public SynchronizerTests(String name) { - super(name); - } - - public void testNullSynchronizerStart() { - Synchronizer synchronizer = Synchronizer.Null.instance(); - synchronizer.start(); // just make sure it doesn't blow up? - } - - public void testNullSynchronizerSynchronize() { - Synchronizer synchronizer = Synchronizer.Null.instance(); - synchronizer.synchronize(); // just make sure it doesn't blow up? - } - - public void testNullSynchronizerStop() { - Synchronizer synchronizer = Synchronizer.Null.instance(); - synchronizer.stop(); // just make sure it doesn't blow up? - } - - public void testNullSynchronizerToString() { - Synchronizer synchronizer = Synchronizer.Null.instance(); - assertNotNull(synchronizer.toString()); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/SynchronousSynchronizerTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/SynchronousSynchronizerTests.java deleted file mode 100644 index e7601bc657..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/synchronizers/SynchronousSynchronizerTests.java +++ /dev/null @@ -1,756 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.common.utility.tests.internal.synchronizers; - -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.CompositeException; -import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean; -import org.eclipse.jpt.common.utility.internal.synchronizers.SynchronousSynchronizer; -import org.eclipse.jpt.common.utility.synchronizers.Synchronizer; -import org.eclipse.jpt.common.utility.tests.internal.MultiThreadedTestCase; -import org.eclipse.jpt.common.utility.tests.internal.TestTools; - -@SuppressWarnings("nls") -public class SynchronousSynchronizerTests - extends MultiThreadedTestCase -{ - PrimaryModel1 primaryModel1; - SecondaryModel1 secondaryModel1; - Command command1; - Synchronizer synchronizer1; - - PrimaryModel2 primaryModel2; - SecondaryModel2 secondaryModel2; - Command command2; - Synchronizer synchronizer2; - - public SynchronousSynchronizerTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.primaryModel1 = new PrimaryModel1(); - this.secondaryModel1 = new SecondaryModel1(this.primaryModel1); - this.command1 = new SynchronizeSecondaryModelCommand1(this.secondaryModel1); - this.synchronizer1 = new SynchronousSynchronizer(this.command1); - this.primaryModel1.setSynchronizer(this.synchronizer1); - - this.primaryModel2 = new PrimaryModel2(); - this.secondaryModel2 = new SecondaryModel2(this.primaryModel2); - this.command2 = new SynchronizeSecondaryModelCommand2(this.primaryModel2, this.secondaryModel2); - this.synchronizer2 = new SynchronousSynchronizer(this.command2); - this.primaryModel2.setSynchronizer(this.synchronizer2); - } - - public void testInitialization() { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - } - - public void testToString() { - assertNotNull(this.synchronizer1.toString()); - } - - public void testChange() { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.setCount(7); - assertEquals(14, this.secondaryModel1.getDoubleCount()); - } - - public void testStart() { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.setSynchronizer(Synchronizer.Null.instance()); - this.primaryModel1.setCount(7); - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.setSynchronizer(this.synchronizer1); - assertEquals(14, this.secondaryModel1.getDoubleCount()); - } - - public void testStop() { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.dispose(); - this.primaryModel1.setCount(7); - assertEquals(4, this.secondaryModel1.getDoubleCount()); - } - - public void testDoubleStart() { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - boolean exCaught = false; - try { - this.primaryModel1.startSynchronizer(); - fail(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - this.primaryModel1.setCount(7); - assertEquals(14, this.secondaryModel1.getDoubleCount()); - } - - public void testDoubleStop() { - assertEquals(4, this.secondaryModel1.getDoubleCount()); - this.primaryModel1.dispose(); - boolean exCaught = false; - try { - this.primaryModel1.dispose(); - fail(); - } catch (IllegalStateException ex) { - exCaught = true; - } - assertTrue(exCaught); - this.primaryModel1.setCount(7); - assertEquals(4, this.secondaryModel1.getDoubleCount()); - } - - public void testRecursiveChange() { - assertEquals(4, this.secondaryModel2.getDoubleCount()); - this.primaryModel2.setCount(7); - assertEquals(10, this.primaryModel2.getCountPlus3()); - assertEquals(14, this.secondaryModel2.getDoubleCount()); - assertEquals(20, this.secondaryModel2.getDoubleCountPlus3()); - } - - /** - * Call #stop() from another thread. - * Verify that no further synchronizations occur. - * Verify the call to #stop() does not return until the pending - * synchronization is complete (must set {@link #DEBUG} to true and - * look at the console). - * - * ticks: - * 0 - start "sync" thread (which will sleep for 1 tick); - * start "stop" thread (which will sleep for 2 ticks) - * 1 - "sync" thread wakes up and calls PrimaryModel1.setCount(int) - * which triggers call to Synchronizer.synchronize() to begin - * synchronization of SecondaryModel (which will run for 2 ticks; - * i.e. it will finish on tick 3) - * 2 - "stop" thread wakes up and calls Synchronizer.stop() and should - * wait until synchronization is complete - * 3 - synchronization completes first execution and should stop; - * "stop" thread should run to completion once the synchronization has stopped - */ - public void testCallStopFromAnotherThread() throws Exception { - log("=====" + this.getName() + "====="); - PrimaryModel2 primaryModel3 = new PrimaryModel2(); - // a synchronize will occur here: - SecondaryModel3 secondaryModel3 = new SecondaryModel3(primaryModel3); - Command command3 = new SynchronizeSecondaryModelCommand2(primaryModel3, secondaryModel3); - Synchronizer synchronizer3 = new SynchronousSynchronizer(command3); - // another synchronize will occur here: - primaryModel3.setSynchronizer(synchronizer3); - secondaryModel3.setTicks(2); - - assertEquals(2, primaryModel3.getCount()); - assertEquals(5, primaryModel3.getCountPlus3()); - assertEquals(4, secondaryModel3.getDoubleCount()); - assertEquals(10, secondaryModel3.getDoubleCountPlus3()); - - Thread syncThread = this.buildTriggerSynchronizeThread(primaryModel3, 1); - Thread stopThread = this.buildStopThread(synchronizer3, 2); - - log("ALL threads start"); - stopThread.start(); - syncThread.start(); - - stopThread.join(); - syncThread.join(); - - // 'doubleCount' is synchronized; but the synchronization is stopped - // while that is happening (by the 'stopThread'), so 'doubleCountPlus3' - // does not get synchronized - assertEquals(7, primaryModel3.getCount()); - assertEquals(10, primaryModel3.getCountPlus3()); - assertEquals(14, secondaryModel3.getDoubleCount()); - - // this does not get updated because it would've been updated by the - // recursive call to #synchronize(), but by that time #stop() had been called - assertEquals(10, secondaryModel3.getDoubleCountPlus3()); - } - - private Thread buildTriggerSynchronizeThread(PrimaryModel2 primaryModel, long ticks) { - return this.buildThread(this.buildTriggerSynchronizeRunnable(primaryModel, ticks), "trigger sync"); - } - - private Runnable buildTriggerSynchronizeRunnable(final PrimaryModel2 primaryModel, final long ticks) { - return new Runnable() { - public void run() { - TestTools.sleep(ticks * TICK); - primaryModel.setCount(7); - } - }; - } - - private Thread buildStopThread(Synchronizer synchronizer, long ticks) { - return this.buildThread(this.buildStopRunnable(synchronizer, ticks), "stop"); - } - - private Runnable buildStopRunnable(final Synchronizer synchronizer, final long ticks) { - return new Runnable() { - public void run() { - TestTools.sleep(ticks * TICK); - log("STOP thread Synchronizer.stop()"); - synchronizer.stop(); - log("STOP thread stop"); - } - }; - } - - /** - * Code cloned from {@link #testStopCalledFromAnotherThread()}. - * - * Interrupt the "stop" thread while it is waiting for the "synch" thread to finish. - * Verify that no further synchronizations occur. - * Verify the call to #stop() returns *before* - * synchronization is complete (must set {@link #DEBUG} to true and - * look at the console). - * - * ticks: - * 0 - start "sync" thread (which will sleep for 1 tick); - * start "stop" thread (which will sleep for 2 ticks); - * start "interrupt" thread (which will sleep for 3 ticks) - * 1 - "sync" thread wakes up and calls PrimaryModel1.setCount(int) - * which triggers call to Synchronizer.synchronize() to begin - * synchronization of SecondaryModel (which will run for 3 ticks; - * i.e. it will finish on tick 4) - * 2 - "stop" thread wakes up and calls Synchronizer.stop() and should - * wait until it is interrupted - * 3 - "interrupt" thread wakes up and interrupts "stop" thread; - * both will run to completion at that point - * 4 - synchronization completes first execution and should stop since the - * "stop" thread, before it was interrupted, told the "synch" thread to stop - */ - public void testInterruptStopThread() throws Exception { - log("=====" + this.getName() + "====="); - PrimaryModel2 primaryModel3 = new PrimaryModel2(); - // a synchronize will occur here: - SecondaryModel3 secondaryModel3 = new SecondaryModel3(primaryModel3); - Command command3 = new SynchronizeSecondaryModelCommand2(primaryModel3, secondaryModel3); - Synchronizer synchronizer3 = new SynchronousSynchronizer(command3); - // another synchronize will occur here: - primaryModel3.setSynchronizer(synchronizer3); - secondaryModel3.setTicks(3); - - assertEquals(2, primaryModel3.getCount()); - assertEquals(5, primaryModel3.getCountPlus3()); - assertEquals(4, secondaryModel3.getDoubleCount()); - assertEquals(10, secondaryModel3.getDoubleCountPlus3()); - - Thread syncThread = this.buildTriggerSynchronizeThread(primaryModel3, 1); - Thread stopThread = this.buildStopThread(synchronizer3, 2); - Thread interruptThread = this.buildInterruptThread(stopThread, 3); - - log("ALL threads start"); - stopThread.start(); - syncThread.start(); - interruptThread.start(); - - stopThread.join(); - syncThread.join(); - interruptThread.join(); - - // 'doubleCount' is synchronized; but the synchronization is stopped - // while that is happening (by the 'stopThread'), so 'doubleCountPlus3' - // does not get synchronized - assertEquals(7, primaryModel3.getCount()); - assertEquals(10, primaryModel3.getCountPlus3()); - assertEquals(14, secondaryModel3.getDoubleCount()); - - // this does not get updated because it would've been updated by the - // recursive call to #synchronize(), but by that time #stop() had been called - assertEquals(10, secondaryModel3.getDoubleCountPlus3()); - } - - /** - * Code cloned from {@link #testStopCalledFromAnotherThread()}. - * - * Interrupt the "sync" thread while it is synchronizing, cutting short the synchronization. - * Verify that no further synchronizations occur. - * Verify the call to #stop() does not return until the pending - * synchronization is stops after it is interrupted (must set {@link #DEBUG} to true and - * look at the console). - * - * ticks: - * 0 - start "sync" thread (which will sleep for 1 tick) - * start "stop" thread (which will sleep for 2 ticks) - * start "interrupt" thread (which will sleep for 3 ticks) - * 1 - "sync" thread wakes up and calls PrimaryModel1.setCount(int) - * which triggers call to Synchronizer.synchronize() to begin - * synchronization of SecondaryModel (which will run for 4 ticks; - * i.e. it will finish on tick 5) - * 2 - "stop" thread wakes up and calls Synchronizer.stop() and should - * wait until the synchronization is interrupted - * 3 - "interrupt" thread wakes up and interrupts "sync" thread; - * the "interrupt" thread runs to completion, while the "sync" thread keeps - * going for another tick before it stops in "mid-synchronize" - * 4 - the "sync" thread acknowledges the interrupt and stops in - * "mid-synchronize"; it will stop since the "stop" thread told it to at tick 2; - * the "sync" and "stop" threads run to completion - */ - public void testInterruptSyncThread() throws Exception { - log("=====" + this.getName() + "====="); - PrimaryModel2 primaryModel3 = new PrimaryModel2(); - // a synchronize will occur here: - SecondaryModel3 secondaryModel3 = new SecondaryModel3(primaryModel3); - Command command3 = new SynchronizeSecondaryModelCommand2(primaryModel3, secondaryModel3); - Synchronizer synchronizer3 = new SynchronousSynchronizer(command3); - // another synchronize will occur here: - primaryModel3.setSynchronizer(synchronizer3); - secondaryModel3.setTicks(4); - - assertEquals(2, primaryModel3.getCount()); - assertEquals(5, primaryModel3.getCountPlus3()); - assertEquals(4, secondaryModel3.getDoubleCount()); - assertEquals(10, secondaryModel3.getDoubleCountPlus3()); - - Thread syncThread = this.buildTriggerSynchronizeThread(primaryModel3, 1); - Thread stopThread = this.buildStopThread(synchronizer3, 2); - Thread interruptThread = this.buildInterruptThread(syncThread, 3); - - log("ALL threads start"); - stopThread.start(); - syncThread.start(); - interruptThread.start(); - - stopThread.join(); - syncThread.join(); - interruptThread.join(); - - assertEquals(7, primaryModel3.getCount()); - assertEquals(10, primaryModel3.getCountPlus3()); - - // none of the secondary model is synchronized because the synchronize() - // method was interrupted before any synchronization had occurred - assertEquals(4, secondaryModel3.getDoubleCount()); - assertEquals(10, secondaryModel3.getDoubleCountPlus3()); - } - - private Thread buildInterruptThread(Thread thread, long ticks) { - return this.buildThread(this.buildInterruptRunnable(thread, ticks), "interrupt"); - } - - private Runnable buildInterruptRunnable(final Thread thread, final long ticks) { - return new Runnable() { - public void run() { - TestTools.sleep(ticks * TICK); - log("INTERRUPT thread Thread.interrupt()"); - thread.interrupt(); - } - }; - } - - /** - * Call #stop() during a long-running "synchronize"; then call #start() - * while the #stop() is waiting for the "synchronize" to complete. - * - * ticks: - * 0 - start "sync" thread (which will sleep for 1 tick) - * start "stop" thread (which will sleep for 2 ticks) - * start "start" thread (which will sleep for 3 ticks) - * 1 - "sync" thread wakes up and calls Synchronizer.synchronize() to begin - * synchronization (which will run for 3 ticks; i.e. it will finish on tick 4) - * 2 - "stop" thread wakes up and calls Synchronizer.stop() and should - * wait until the synchronization is finished (i.e. tick 4) - * 3 - "start" thread wakes up and calls Synchronizer.start() - * which will throw an exception - * 4 - the "sync" thread finishes execution; - * it will stop since the "stop" thread told it to at tick 2; - * the "sync" and "stop" threads run to completion - */ - public void testCallStartDuringStop() throws Exception { - log("=====" + this.getName() + "====="); - DelayCommand command = this.buildDelayCommand(3); - Synchronizer synchronizer = new SynchronousSynchronizer(command); - synchronizer.start(); - - Thread syncThread = this.buildSynchronizeThread(synchronizer, 1); - Thread stopThread = this.buildStopThread(synchronizer, 2); - SynchronizedBoolean exCaught = new SynchronizedBoolean(false); - Thread startThread = this.buildStartThread(synchronizer, 3, exCaught); - - log("ALL threads start"); - syncThread.start(); - stopThread.start(); - startThread.start(); - - syncThread.join(); - stopThread.join(); - startThread.join(); - - assertTrue(exCaught.getValue()); - assertEquals(2, command.count); - } - - private DelayCommand buildDelayCommand(int ticks) { - return new DelayCommand(ticks); - } - - class DelayCommand implements Command { - final long ticks; - boolean first = true; - int count = 0; - - DelayCommand(int ticks) { - super(); - this.ticks = ticks; - } - - public void execute() { - this.count++; - // do nothing for the first call (from #start()) - if (this.first) { - log("EXEC first"); - this.first = false; - return; - } - log("EXEC start " + this.count); - TestTools.sleep(this.ticks * TICK); - log("EXEC stop " + this.count); - } - - } - - private Thread buildStartThread(Synchronizer synchronizer, long ticks, SynchronizedBoolean exCaught) { - return this.buildThread(this.buildStartRunnable(synchronizer, ticks, exCaught), "start"); - } - - private Runnable buildStartRunnable(final Synchronizer synchronizer, final long ticks, final SynchronizedBoolean exCaught) { - return new Runnable() { - public void run() { - TestTools.sleep(ticks * TICK); - log("START thread Synchronizer.start()"); - try { - synchronizer.start(); - } catch (IllegalStateException ex) { - exCaught.setTrue(); - log("START thread exception"); - } - log("START thread stop"); - } - }; - } - - private Thread buildSynchronizeThread(Synchronizer synchronizer, long ticks) { - return this.buildThread(this.buildSynchronizeRunnable(synchronizer, ticks), "synchronize"); - } - - private Runnable buildSynchronizeRunnable(final Synchronizer synchronizer, final long ticks) { - return new Runnable() { - public void run() { - TestTools.sleep(ticks * TICK); - log("SYNC thread Synchronizer.synchronize()"); - synchronizer.synchronize(); - log("SYNC thread stop"); - } - }; - } - - public void testException() throws Exception { - BogusCommand command = new BogusCommand(); - Synchronizer synchronizer = new SynchronousSynchronizer(command); - synchronizer.start(); - - try { - synchronizer.synchronize(); - } catch (NullPointerException ex) { - // ignore - } - - boolean exCaught = false; - try { - // we used to hang here, before we began handling exceptions - synchronizer.stop(); - fail(); - } catch (CompositeException ex) { - assertEquals(1, ex.getExceptions().length); - exCaught = true; - } - assertTrue(exCaught); - // start + synchronize - assertEquals(2, command.count); - } - - public class BogusCommand implements Command { - int count = 0; - public void execute() { - this.count++; - if (this.count > 1) { - throw new NullPointerException(); - } - } - } - - - // ********** synchronize commands ********** - public static class SynchronizeSecondaryModelCommand1 implements Command { - private final SecondaryModel1 secondaryModel; - - public SynchronizeSecondaryModelCommand1(SecondaryModel1 secondaryModel) { - super(); - this.secondaryModel = secondaryModel; - } - - public void execute() { - this.secondaryModel.synchronize(); - } - - } - - /** - * the primary model (subclass) has to synchronize with itself (superclass) - */ - public static class SynchronizeSecondaryModelCommand2 extends SynchronizeSecondaryModelCommand1 { - private final PrimaryModel2 primaryModel; - - public SynchronizeSecondaryModelCommand2(PrimaryModel2 primaryModel, SecondaryModel2 secondaryModel) { - super(secondaryModel); - this.primaryModel = primaryModel; - } - - @Override - public void execute() { - super.execute(); - this.primaryModel.synchronize(); - } - - } - - // ********** primary models ********** - /** - * this object will call the synchronizer whenever its count changes, - * allowing interested parties to synchronize with the change - */ - public static class PrimaryModel1 { - protected Synchronizer synchronizer; - protected int count = 2; - - public PrimaryModel1() { - super(); - this.setSynchronizer_(Synchronizer.Null.instance()); - } - - public int getCount() { - return this.count; - } - public void setCount(int count) { - if (count != this.count) { - this.count = count; - this.stateChanged(); - } - } - - protected void stateChanged() { - this.synchronizer.synchronize(); - } - - public void setSynchronizer(Synchronizer synchronizer) { - if (synchronizer == null) { - throw new NullPointerException(); - } - this.synchronizer.stop(); - this.setSynchronizer_(synchronizer); - } - - protected void setSynchronizer_(Synchronizer synchronizer) { - this.synchronizer = synchronizer; - this.synchronizer.start(); - } - - public void startSynchronizer() { - this.synchronizer.start(); // this should cause an exception - } - public void dispose() { - this.synchronizer.stop(); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(this.getClass().getSimpleName()); - sb.append('('); - this.toString(sb); - sb.append(')'); - return sb.toString(); - } - public void toString(StringBuilder sb) { - sb.append("count="); - sb.append(this.count); - } - - } - - /** - * This model synchronizes with itself, triggering a recursive synchronization - * with the change. Whenever the [inherited] 'count' changes, 'countPlus3' - * is updated appropriately and another synchronize is initiated if appropriate. - */ - public static class PrimaryModel2 extends PrimaryModel1 { - private int countPlus3 = 0; - - public PrimaryModel2() { - super(); - this.countPlus3 = this.count + 3; - } - - public int getCountPlus3() { - return this.countPlus3; - } - protected void setCountPlus3(int countPlus3) { - if (countPlus3 != this.countPlus3) { - this.countPlus3 = countPlus3; - this.stateChanged(); - } - } - - // synchronize with itself, so to speak - public void synchronize() { - this.setCountPlus3(this.count + 3); - } - - @Override - public void toString(StringBuilder sb) { - super.toString(sb); - sb.append(", countPlus3="); - sb.append(this.countPlus3); - } - - } - - // ********** secondary models ********** - /** - * This dependent object updates its 'doubleCount' whenever the - * PrimaryModel1's 'count' changes, via the 'synchronizer'. - */ - public static class SecondaryModel1 { - protected final PrimaryModel1 primaryModel; - protected int doubleCount = 0; - - public SecondaryModel1(PrimaryModel1 primaryModel) { - super(); - this.primaryModel = primaryModel; - this.synchronize(); - } - - public void synchronize() { - this.doubleCount = this.primaryModel.getCount() * 2; - } - - public int getDoubleCount() { - return this.doubleCount; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(this.getClass().getSimpleName()); - sb.append('('); - this.toString(sb); - sb.append(')'); - return sb.toString(); - } - public void toString(StringBuilder sb) { - sb.append("doubleCount="); - sb.append(this.doubleCount); - } - - } - - public static class SecondaryModel2 extends SecondaryModel1 { - private int doubleCountPlus3 = 0; - - public SecondaryModel2(PrimaryModel2 extendedPrimaryModel) { - super(extendedPrimaryModel); - } - - protected PrimaryModel2 getExtendedPrimaryModel() { - return (PrimaryModel2) this.primaryModel; - } - - @Override - public void synchronize() { - super.synchronize(); - int temp = this.getExtendedPrimaryModel().getCountPlus3() * 2; - if (this.doubleCountPlus3 != temp) { - this.doubleCountPlus3 = temp; - } - } - - public int getDoubleCountPlus3() { - return this.doubleCountPlus3; - } - - @Override - public void toString(StringBuilder sb) { - super.toString(sb); - sb.append(", doubleCountPlus3="); - sb.append(this.doubleCountPlus3); - } - - } - - /** - * Allow the time required to synchronize to be specified. - * A (non-delayed) synchronize will execute before we have a chance to - * change the tick count. (It is called in the SecondaryModel1 constructor.) - */ - public static class SecondaryModel3 extends SecondaryModel2 { - private long delay = 0; - public SecondaryModel3(PrimaryModel2 primaryModel) { - super(primaryModel); - } - - public void setTicks(long ticks) { - this.delay = ticks * TICK; - } - - @Override - public void synchronize() { - // don't log anything until 'ticks' is set - if (this.delay == 0) { - super.synchronize(); - } else { - log("SYNC thread start - sync duration will be: " + (this.delay / TICK) + " ticks"); - try { - Thread.sleep(this.delay); - } catch (InterruptedException ex) { - log("SYNC thread interrupted"); - TestTools.sleep(TICK); - return; // stop synchronize (i.e. don't call super.synchronize()) - } - super.synchronize(); - log("SYNC thread stop"); - } - } - - } - - public void testDEBUG() { - assertFalse(DEBUG); - } - - public static final boolean DEBUG = false; - public static void log(String message) { - if (DEBUG) { - log_(message); - } - } - - private static void log_(String message) { - System.out.print(timestamp()); - System.out.print(' '); - System.out.print(message); - System.out.println(); - } - - public static String timestamp() { - return String.valueOf((System.currentTimeMillis() % 10000) / 1000f); - } - -} diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/test.xml b/common/tests/org.eclipse.jpt.common.utility.tests/test.xml deleted file mode 100644 index 14635f2af1..0000000000 --- a/common/tests/org.eclipse.jpt.common.utility.tests/test.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/.project b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/.project deleted file mode 100644 index 7064cbb9c5..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.dbws.eclipselink.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/build.properties deleted file mode 100644 index 7d721a4154..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/build.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -bin.includes = feature.xml,\ - eclipse_update_120.jpg,\ - feature.properties diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.properties deleted file mode 100644 index 25a00da574..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.properties +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - EclipseLink DBWS Support (Optional) - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - - -# "description" property - description of the feature -description=Dali Java Persistence Tools - EclipseLink DBWS Support - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006, 2011 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.xml b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.xml deleted file mode 100644 index 3f064c2128..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/feature.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.html deleted file mode 100644 index d4916df475..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -About - - - -

About This Content

- -

June 06, 2007

-

License

- -

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.

- -

Source Code

-

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.

- - - diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.ini b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.ini deleted file mode 100644 index 2dee36a2e2..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.ini +++ /dev/null @@ -1,31 +0,0 @@ -# about.ini -# contains information about a feature -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# "%key" are externalized strings defined in about.properties -# This file does not need to be translated. - -# Property "aboutText" contains blurb for "About" dialog (translated) -aboutText=%blurb - -# Property "windowImage" contains path to window icon (16x16) -# needed for primary features only - -# Property "featureImage" contains path to feature image (32x32) -featureImage=eclipse32.gif - -# Property "aboutImage" contains path to product image (500x330 or 115x164) -# needed for primary features only - -# Property "appName" contains name of the application (not 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/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.mappings b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.mappings deleted file mode 100644 index a28390a75e..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/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@ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.properties deleted file mode 100644 index 80f93d0255..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/about.properties +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################### -# Copyright (c) 2008, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# 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. -# -# Do not translate any values surrounded by {} - -blurb=Dali Java Persistence Tools - DBWS EclipseLink Support Source\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Eclipse contributors and others 2010, 2011. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools - diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/build.properties deleted file mode 100644 index 1c3e2eb73b..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/build.properties +++ /dev/null @@ -1,21 +0,0 @@ -############################################################################### -# Copyright (c) 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -bin.includes = \ - about.html,\ - about.ini,\ - about.mappings,\ - about.properties,\ - eclipse32.gif,\ - plugin.properties,\ - plugin.xml,\ - src/**,\ - META-INF/ -sourcePlugin = true diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.gif b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.gif deleted file mode 100644 index e6ad7ccd75..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.gif and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.png b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.png deleted file mode 100644 index 50ae49de24..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse32.png and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/epl-v10.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/epl-v10.html deleted file mode 100644 index 022ad2955b..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - Version 1.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.

- -

 

- -
- - - - diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/license.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/license.html deleted file mode 100644 index 5ad00ba719..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/license.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -Eclipse.org Software User Agreement - - - -

Eclipse Foundation Software User Agreement

-

March 17, 2005

- -

Usage Of Content

- -

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.

- -

Applicable Licenses

- -

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 structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").
  • - -
  • Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".
  • -
  • A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins - and/or Fragments associated with that Feature.
  • -
  • Features may also include other Features ("Included Features"). Within a Feature, 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:

- -
    -
  • The top-level (root) directory
  • - -
  • Plug-in and Fragment directories
  • -
  • Inside Plug-ins and Fragments packaged as JARs
  • -
  • Sub-directories of the directory named "src" of certain Plug-ins
  • -
  • Feature directories
  • -
- - -

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.

- -

Cryptography

- -

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/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/plugin.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/plugin.properties deleted file mode 100644 index 1429a53f4c..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateBundle/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools - DBWS EclipseLink Support -providerName = Eclipse Web Tools Platform diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/build.properties deleted file mode 100644 index 897839fcea..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/build.properties +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################### -# Copyright (c) 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -bin.includes = \ - eclipse_update_120.jpg,\ - feature.xml,\ - feature.properties diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/feature.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/feature.properties deleted file mode 100644 index e3c28509d8..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplateFeature/feature.properties +++ /dev/null @@ -1,48 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# feature.properties -# contains externalized strings for feature.xml -# "%foo" in feature.xml corresponds to the key "foo" in this file -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file should be translated. - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - DBWS EclipseLink Support (Optional) - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - - -# "description" property - description of the feature -description=Source code zips for Dali Java Persistence Tools EclipseLink Support - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006, 2011 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.html deleted file mode 100644 index d4916df475..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -About - - - -

About This Content

- -

June 06, 2007

-

License

- -

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.

- -

Source Code

-

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.

- - - diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.ini b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.ini deleted file mode 100644 index 2dee36a2e2..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.ini +++ /dev/null @@ -1,31 +0,0 @@ -# about.ini -# contains information about a feature -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# "%key" are externalized strings defined in about.properties -# This file does not need to be translated. - -# Property "aboutText" contains blurb for "About" dialog (translated) -aboutText=%blurb - -# Property "windowImage" contains path to window icon (16x16) -# needed for primary features only - -# Property "featureImage" contains path to feature image (32x32) -featureImage=eclipse32.gif - -# Property "aboutImage" contains path to product image (500x330 or 115x164) -# needed for primary features only - -# Property "appName" contains name of the application (not 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/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.mappings b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.mappings deleted file mode 100644 index a28390a75e..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.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@ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.properties deleted file mode 100644 index a8c9da3a8a..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/about.properties +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# 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. -# -# Do not translate any values surrounded by {} - -blurb=Dali Java Persistence Tools - DBWS EclipseLink Support Source\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Eclipse contributors and others 2010, 2011. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools - diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/build.properties deleted file mode 100644 index 6dcfcd6269..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/build.properties +++ /dev/null @@ -1,21 +0,0 @@ -############################################################################### -# Copyright (c) 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -bin.includes = \ - about.html,\ - about.ini,\ - about.mappings,\ - about.properties,\ - eclipse32.gif,\ - plugin.properties,\ - plugin.xml,\ - src/**,\ - META-INF/ -sourcePlugin = true diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif deleted file mode 100644 index e6ad7ccd75..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.png b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.png deleted file mode 100644 index 50ae49de24..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse32.png and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/epl-v10.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/epl-v10.html deleted file mode 100644 index 022ad2955b..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - Version 1.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.

- -

 

- -
- - - - diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/license.html b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/license.html deleted file mode 100644 index 5ad00ba719..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/license.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -Eclipse.org Software User Agreement - - - -

Eclipse Foundation Software User Agreement

-

March 17, 2005

- -

Usage Of Content

- -

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.

- -

Applicable Licenses

- -

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 structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").
  • - -
  • Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".
  • -
  • A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins - and/or Fragments associated with that Feature.
  • -
  • Features may also include other Features ("Included Features"). Within a Feature, 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:

- -
    -
  • The top-level (root) directory
  • - -
  • Plug-in and Fragment directories
  • -
  • Inside Plug-ins and Fragments packaged as JARs
  • -
  • Sub-directories of the directory named "src" of certain Plug-ins
  • -
  • Feature directories
  • -
- - -

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.

- -

Cryptography

- -

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/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/plugin.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/plugin.properties deleted file mode 100644 index 1429a53f4c..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink.feature/sourceTemplatePlugin/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools - DBWS EclipseLink Support -providerName = Eclipse Web Tools Platform diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.cvsignore b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.cvsignore deleted file mode 100644 index 9d0e114f67..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -feature.temp.folder -build.xml diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.project b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.project deleted file mode 100644 index b4ba97299c..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.dbws.eclipselink_sdk.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/build.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/build.properties deleted file mode 100644 index 931945e37c..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/build.properties +++ /dev/null @@ -1,5 +0,0 @@ -bin.includes = feature.xml,\ - feature.properties,\ - eclipse_update_120.jpg - -generate.feature@org.eclipse.jpt.dbws.eclipselink.feature.source=org.eclipse.jpt.dbws.eclipselink.feature diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.properties b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.properties deleted file mode 100644 index 49b3a27013..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.properties +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - EclipseLink DBWS Support SDK (Optional) - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - - -# "description" property - description of the feature -description=Source code archives for Dali Java Persistence - EclipseLink DBWS Support - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2010, 2011 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.xml b/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.xml deleted file mode 100644 index 22657bbfee..0000000000 --- a/jaxb/features/org.eclipse.jpt.dbws.eclipselink_sdk.feature/feature.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/.project deleted file mode 100644 index b3f1d9bfe7..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.jaxb.eclipselink.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/build.properties deleted file mode 100644 index e29906deb9..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/build.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -bin.includes = feature.xml,\ - eclipse_update_120.jpg,\ - feature.properties diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.properties deleted file mode 100644 index bb215e844d..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.properties +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - EclipseLink MOXy (JAXB) Support (Optional) - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - - -# "description" property - description of the feature -description=Dali Java Persistence Tools - EclipseLink MOXy (JAXB) Support - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006, 2011 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.xml deleted file mode 100644 index 978bf41f41..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/feature.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - - - - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.html deleted file mode 100644 index d4916df475..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -About - - - -

About This Content

- -

June 06, 2007

-

License

- -

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.

- -

Source Code

-

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.

- - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.ini b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.ini deleted file mode 100644 index 2dee36a2e2..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.ini +++ /dev/null @@ -1,31 +0,0 @@ -# about.ini -# contains information about a feature -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# "%key" are externalized strings defined in about.properties -# This file does not need to be translated. - -# Property "aboutText" contains blurb for "About" dialog (translated) -aboutText=%blurb - -# Property "windowImage" contains path to window icon (16x16) -# needed for primary features only - -# Property "featureImage" contains path to feature image (32x32) -featureImage=eclipse32.gif - -# Property "aboutImage" contains path to product image (500x330 or 115x164) -# needed for primary features only - -# Property "appName" contains name of the application (not 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/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.mappings b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.mappings deleted file mode 100644 index a28390a75e..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/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@ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.properties deleted file mode 100644 index e21f19415d..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/about.properties +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################### -# Copyright (c) 2008, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# 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. -# -# Do not translate any values surrounded by {} - -blurb=Dali Java Persistence Tools - JAXB EclipseLink Support Source\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Eclipse contributors and others 2005. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/build.properties deleted file mode 100644 index 6dcfcd6269..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/build.properties +++ /dev/null @@ -1,21 +0,0 @@ -############################################################################### -# Copyright (c) 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -bin.includes = \ - about.html,\ - about.ini,\ - about.mappings,\ - about.properties,\ - eclipse32.gif,\ - plugin.properties,\ - plugin.xml,\ - src/**,\ - META-INF/ -sourcePlugin = true diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.gif b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.gif deleted file mode 100644 index e6ad7ccd75..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.gif and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.png b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.png deleted file mode 100644 index 50ae49de24..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse32.png and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/epl-v10.html deleted file mode 100644 index 022ad2955b..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - Version 1.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.

- -

 

- -
- - - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/license.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/license.html deleted file mode 100644 index 5ad00ba719..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/license.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -Eclipse.org Software User Agreement - - - -

Eclipse Foundation Software User Agreement

-

March 17, 2005

- -

Usage Of Content

- -

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.

- -

Applicable Licenses

- -

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 structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").
  • - -
  • Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".
  • -
  • A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins - and/or Fragments associated with that Feature.
  • -
  • Features may also include other Features ("Included Features"). Within a Feature, 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:

- -
    -
  • The top-level (root) directory
  • - -
  • Plug-in and Fragment directories
  • -
  • Inside Plug-ins and Fragments packaged as JARs
  • -
  • Sub-directories of the directory named "src" of certain Plug-ins
  • -
  • Feature directories
  • -
- - -

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.

- -

Cryptography

- -

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/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/plugin.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/plugin.properties deleted file mode 100644 index 57daebf248..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateBundle/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2008, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools - JAXB EclipseLink Support -providerName = Eclipse Web Tools Platform diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/build.properties deleted file mode 100644 index 897839fcea..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/build.properties +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################### -# Copyright (c) 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -bin.includes = \ - eclipse_update_120.jpg,\ - feature.xml,\ - feature.properties diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/feature.properties deleted file mode 100644 index d278ed7ceb..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplateFeature/feature.properties +++ /dev/null @@ -1,48 +0,0 @@ -############################################################################### -# Copyright (c) 2008, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# feature.properties -# contains externalized strings for feature.xml -# "%foo" in feature.xml corresponds to the key "foo" in this file -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file should be translated. - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - JAXB EclipseLink Support (Optional) - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - - -# "description" property - description of the feature -description=Source code zips for Dali Java Persistence Tools EclipseLink Support - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006, 2010 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.html deleted file mode 100644 index d4916df475..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -About - - - -

About This Content

- -

June 06, 2007

-

License

- -

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.

- -

Source Code

-

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.

- - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.ini b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.ini deleted file mode 100644 index 2dee36a2e2..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.ini +++ /dev/null @@ -1,31 +0,0 @@ -# about.ini -# contains information about a feature -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# "%key" are externalized strings defined in about.properties -# This file does not need to be translated. - -# Property "aboutText" contains blurb for "About" dialog (translated) -aboutText=%blurb - -# Property "windowImage" contains path to window icon (16x16) -# needed for primary features only - -# Property "featureImage" contains path to feature image (32x32) -featureImage=eclipse32.gif - -# Property "aboutImage" contains path to product image (500x330 or 115x164) -# needed for primary features only - -# Property "appName" contains name of the application (not 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/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.mappings b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.mappings deleted file mode 100644 index a28390a75e..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.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@ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.properties deleted file mode 100644 index e21f19415d..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/about.properties +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################### -# Copyright (c) 2008, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# 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. -# -# Do not translate any values surrounded by {} - -blurb=Dali Java Persistence Tools - JAXB EclipseLink Support Source\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Eclipse contributors and others 2005. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/build.properties deleted file mode 100644 index 6dcfcd6269..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/build.properties +++ /dev/null @@ -1,21 +0,0 @@ -############################################################################### -# Copyright (c) 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -bin.includes = \ - about.html,\ - about.ini,\ - about.mappings,\ - about.properties,\ - eclipse32.gif,\ - plugin.properties,\ - plugin.xml,\ - src/**,\ - META-INF/ -sourcePlugin = true diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif deleted file mode 100644 index e6ad7ccd75..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.gif and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.png b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.png deleted file mode 100644 index 50ae49de24..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse32.png and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/epl-v10.html deleted file mode 100644 index 022ad2955b..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - Version 1.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.

- -

 

- -
- - - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/license.html b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/license.html deleted file mode 100644 index 5ad00ba719..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/license.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -Eclipse.org Software User Agreement - - - -

Eclipse Foundation Software User Agreement

-

March 17, 2005

- -

Usage Of Content

- -

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.

- -

Applicable Licenses

- -

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 structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").
  • - -
  • Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".
  • -
  • A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins - and/or Fragments associated with that Feature.
  • -
  • Features may also include other Features ("Included Features"). Within a Feature, 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:

- -
    -
  • The top-level (root) directory
  • - -
  • Plug-in and Fragment directories
  • -
  • Inside Plug-ins and Fragments packaged as JARs
  • -
  • Sub-directories of the directory named "src" of certain Plug-ins
  • -
  • Feature directories
  • -
- - -

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.

- -

Cryptography

- -

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/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/plugin.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/plugin.properties deleted file mode 100644 index 57daebf248..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink.feature/sourceTemplatePlugin/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2008, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools - JAXB EclipseLink Support -providerName = Eclipse Web Tools Platform diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.cvsignore b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.cvsignore deleted file mode 100644 index 9d0e114f67..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -feature.temp.folder -build.xml diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.project deleted file mode 100644 index a51d4183a3..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.jaxb.eclipselink_sdk.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/build.properties deleted file mode 100644 index c8dc8260e0..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/build.properties +++ /dev/null @@ -1,5 +0,0 @@ -bin.includes = feature.xml,\ - feature.properties,\ - eclipse_update_120.jpg - -generate.feature@org.eclipse.jpt.jaxb.eclipselink.feature.source=org.eclipse.jpt.jaxb.eclipselink.feature diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.properties deleted file mode 100644 index fee1a56e99..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.properties +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################### -# Copyright (c) 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - EclipseLink MOXy (JAXB) Support SDK (Optional) - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - - -# "description" property - description of the feature -description=Source code archives for Dali Java Persistence - EclipseLink MOXy (JAXB) Support - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2010, 2011 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.xml deleted file mode 100644 index 4ecfd40242..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.eclipselink_sdk.feature/feature.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb.feature/.project deleted file mode 100644 index 6b7e145cd1..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.jaxb.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/build.properties deleted file mode 100644 index e29906deb9..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/build.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -bin.includes = feature.xml,\ - eclipse_update_120.jpg,\ - feature.properties diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.properties deleted file mode 100644 index f62f24df03..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.properties +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - JAXB Support (Optional) - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - - -# "description" property - description of the feature -description=Dali Java Persistence Tools - JAXB Support - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006, 2010 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.xml deleted file mode 100644 index e4e52a6f4c..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/feature.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - - - - - - - - - - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.html deleted file mode 100644 index d4916df475..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -About - - - -

About This Content

- -

June 06, 2007

-

License

- -

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.

- -

Source Code

-

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.

- - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.ini b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.ini deleted file mode 100644 index 2dee36a2e2..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.ini +++ /dev/null @@ -1,31 +0,0 @@ -# about.ini -# contains information about a feature -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# "%key" are externalized strings defined in about.properties -# This file does not need to be translated. - -# Property "aboutText" contains blurb for "About" dialog (translated) -aboutText=%blurb - -# Property "windowImage" contains path to window icon (16x16) -# needed for primary features only - -# Property "featureImage" contains path to feature image (32x32) -featureImage=eclipse32.gif - -# Property "aboutImage" contains path to product image (500x330 or 115x164) -# needed for primary features only - -# Property "appName" contains name of the application (not 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/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.mappings b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.mappings deleted file mode 100644 index a28390a75e..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/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@ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.properties deleted file mode 100644 index 5bc4b671f1..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/about.properties +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# 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. -# -# Do not translate any values surrounded by {} - -blurb=Dali Java Persistence Tools Source - JAXB Support\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Eclipse contributors and others 2008. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/build.properties deleted file mode 100644 index ce9529be74..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/build.properties +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/ -sourcePlugin = true diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.gif b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.gif deleted file mode 100644 index e6ad7ccd75..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.gif and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.png b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.png deleted file mode 100644 index 50ae49de24..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse32.png and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/epl-v10.html deleted file mode 100644 index 022ad2955b..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - Version 1.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.

- -

 

- -
- - - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/license.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/license.html deleted file mode 100644 index 5ad00ba719..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/license.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -Eclipse.org Software User Agreement - - - -

Eclipse Foundation Software User Agreement

-

March 17, 2005

- -

Usage Of Content

- -

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.

- -

Applicable Licenses

- -

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 structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").
  • - -
  • Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".
  • -
  • A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins - and/or Fragments associated with that Feature.
  • -
  • Features may also include other Features ("Included Features"). Within a Feature, 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:

- -
    -
  • The top-level (root) directory
  • - -
  • Plug-in and Fragment directories
  • -
  • Inside Plug-ins and Fragments packaged as JARs
  • -
  • Sub-directories of the directory named "src" of certain Plug-ins
  • -
  • Feature directories
  • -
- - -

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.

- -

Cryptography

- -

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/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/plugin.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/plugin.properties deleted file mode 100644 index 86c4916ad2..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateBundle/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools - JAXB Support -providerName = Eclipse Web Tools Platform diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/build.properties deleted file mode 100644 index fba3ef0266..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/build.properties +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -bin.includes = \ - eclipse_update_120.jpg,\ - feature.xml,\ - feature.properties diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/feature.properties deleted file mode 100644 index 66ee9e3b16..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplateFeature/feature.properties +++ /dev/null @@ -1,48 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# feature.properties -# contains externalized strings for feature.xml -# "%foo" in feature.xml corresponds to the key "foo" in this file -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file should be translated. - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - JAXB Support (Optional) - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - - -# "description" property - description of the feature -description=Source code zips for Dali Java Persistence Tools - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006, 2010 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.html deleted file mode 100644 index d4916df475..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -About - - - -

About This Content

- -

June 06, 2007

-

License

- -

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.

- -

Source Code

-

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.

- - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.ini b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.ini deleted file mode 100644 index 2dee36a2e2..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.ini +++ /dev/null @@ -1,31 +0,0 @@ -# about.ini -# contains information about a feature -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# "%key" are externalized strings defined in about.properties -# This file does not need to be translated. - -# Property "aboutText" contains blurb for "About" dialog (translated) -aboutText=%blurb - -# Property "windowImage" contains path to window icon (16x16) -# needed for primary features only - -# Property "featureImage" contains path to feature image (32x32) -featureImage=eclipse32.gif - -# Property "aboutImage" contains path to product image (500x330 or 115x164) -# needed for primary features only - -# Property "appName" contains name of the application (not 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/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.mappings b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.mappings deleted file mode 100644 index a28390a75e..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.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@ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.properties deleted file mode 100644 index 6f32073796..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/about.properties +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# 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. -# -# Do not translate any values surrounded by {} - -blurb=Dali Java Persistence Tools Source - JAXB Support\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Eclipse contributors and others 2008, 2010. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/build.properties deleted file mode 100644 index ce9529be74..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/build.properties +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/ -sourcePlugin = true diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.gif b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.gif deleted file mode 100644 index e6ad7ccd75..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.gif and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.png b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.png deleted file mode 100644 index 50ae49de24..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse32.png and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/epl-v10.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/epl-v10.html deleted file mode 100644 index 022ad2955b..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/epl-v10.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - -Eclipse Public License - Version 1.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.

- -

 

- -
- - - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/license.html b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/license.html deleted file mode 100644 index 5ad00ba719..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/license.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -Eclipse.org Software User Agreement - - - -

Eclipse Foundation Software User Agreement

-

March 17, 2005

- -

Usage Of Content

- -

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.

- -

Applicable Licenses

- -

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 structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").
  • - -
  • Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".
  • -
  • A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins - and/or Fragments associated with that Feature.
  • -
  • Features may also include other Features ("Included Features"). Within a Feature, 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:

- -
    -
  • The top-level (root) directory
  • - -
  • Plug-in and Fragment directories
  • -
  • Inside Plug-ins and Fragments packaged as JARs
  • -
  • Sub-directories of the directory named "src" of certain Plug-ins
  • -
  • Feature directories
  • -
- - -

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.

- -

Cryptography

- -

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/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/plugin.properties b/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/plugin.properties deleted file mode 100644 index 86c4916ad2..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.feature/sourceTemplatePlugin/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools - JAXB Support -providerName = Eclipse Web Tools Platform diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.cvsignore b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.cvsignore deleted file mode 100644 index c14487ceac..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -build.xml diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.project deleted file mode 100644 index d48dee7bd4..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.jaxb.tests.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/build.properties deleted file mode 100644 index da6de749f9..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/build.properties +++ /dev/null @@ -1,7 +0,0 @@ -bin.includes = feature.xml,\ - eclipse_update_120.jpg,\ - feature.properties -src.includes = \ - feature.xml,\ - eclipse_update_120.jpg,\ - build.properties diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.properties deleted file mode 100644 index 918f79e94d..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.properties +++ /dev/null @@ -1,51 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -# feature.properties -# contains externalized strings for feature.xml -# "%foo" in feature.xml corresponds to the key "foo" in this file -# java.io.Properties file (ISO 8859-1 with "\" escapes) -# This file should be translated. - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools - JAXB Core JUnit Tests - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - -# "updateSiteName" property - label for the update site -# TOREVIEW - updateSiteName -updateSiteName=Web Tools Platform (WTP) Updates - -# "description" property - description of the feature -description=Dali Java Persistence Tools JAXB JUnit Tests - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2006, 2010 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.xml deleted file mode 100644 index b8ebee0ea0..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb.tests.feature/feature.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.cvsignore b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.cvsignore deleted file mode 100644 index 9d0e114f67..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -feature.temp.folder -build.xml diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.project b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.project deleted file mode 100644 index dbf60be032..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - org.eclipse.jpt.jaxb_sdk.feature - - - - - - org.eclipse.pde.FeatureBuilder - - - - - - org.eclipse.pde.FeatureNature - - diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/build.properties b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/build.properties deleted file mode 100644 index cb9672db24..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/build.properties +++ /dev/null @@ -1,5 +0,0 @@ -bin.includes = feature.xml,\ - feature.properties,\ - eclipse_update_120.jpg - -generate.feature@org.eclipse.jpt.jaxb.feature.source=org.eclipse.jpt.jaxb.feature diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/eclipse_update_120.jpg b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/eclipse_update_120.jpg deleted file mode 100644 index bfdf708ad6..0000000000 Binary files a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/eclipse_update_120.jpg and /dev/null differ diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.properties b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.properties deleted file mode 100644 index 8929673dce..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.properties +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################### -# Copyright (c) 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -# "featureName" property - name of the feature -featureName=Dali Java Persistence Tools SDK - JAXB Support SDK (Optional) - -# "providerName" property - name of the company that provides the feature -providerName=Eclipse Web Tools Platform - - -# "description" property - description of the feature -description=Source code archives for Dali Java Persistence Tools - JAXB Support - -# "copyright" property - text of the "Feature Update Copyright" -copyright=\ -Copyright (c) 2010, 2011 Oracle Corporation.\n\ -All rights reserved. This program and the accompanying materials\n\ -are made available under the terms of the Eclipse Public License v1.0\n\ -which accompanies this distribution, and is available at\n\ -http://www.eclipse.org/legal/epl-v10.html\n\ -\n\ -Contributors:\n\ - Oracle - initial API and implementation\n -################ end of copyright property #################################### - -# "licenseURL" property - URL of the "Feature License" -# do not translate value - just change to point to a locale-specific HTML page -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. - -# "license" property - text of the "Feature Update License" -# should be plain text version of license agreement pointed to be "licenseURL" -# license and licenseURL properties were removed as a result to migrating to new PDE license support. -# Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. -########### end of license property ########################################## diff --git a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.xml b/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.xml deleted file mode 100644 index f4ddad3bdb..0000000000 --- a/jaxb/features/org.eclipse.jpt.jaxb_sdk.feature/feature.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - %description - - - - %copyright - - - - %license - - - - - - - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.cvsignore b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.cvsignore deleted file mode 100644 index c14487ceac..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -build.xml diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.project b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.project deleted file mode 100644 index de731ab893..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/.project +++ /dev/null @@ -1,22 +0,0 @@ - - - org.eclipse.jpt.dbws.eclipselink.branding - - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/META-INF/MANIFEST.MF deleted file mode 100644 index c6c16f392a..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/META-INF/MANIFEST.MF +++ /dev/null @@ -1,7 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.jpt.dbws.eclipselink.branding;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Localization: plugin -Bundle-Vendor: %providerName diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.html b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.html deleted file mode 100644 index ca606b1bb5..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

June 06, 2007

- -

License

- -

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/.

- - - \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.ini b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.ini deleted file mode 100644 index 6c107d466d..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.ini +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -# 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=icons/WTP_icon_x32_v2.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 - -# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page -# optional -tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm - - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.mappings b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.mappings deleted file mode 100644 index bddaab4310..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/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/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.properties deleted file mode 100644 index 7ed9bf2fc2..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/about.properties +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################### -# Copyright (c) 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -# 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=Dali Java Persistence Tools - EclipseLink DBWS Support\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Oracle contributors and others 2011. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/build.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/build.properties deleted file mode 100644 index 6c20e3b027..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/build.properties +++ /dev/null @@ -1,17 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -bin.includes = META-INF/,\ - about.ini,\ - about.html,\ - about.mappings,\ - about.properties,\ - icons/,\ - plugin.properties diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/component.xml b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/component.xml deleted file mode 100644 index 434ae90d00..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/component.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/icons/WTP_icon_x32_v2.png b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/icons/WTP_icon_x32_v2.png deleted file mode 100644 index 6f09c2a700..0000000000 Binary files a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/icons/WTP_icon_x32_v2.png and /dev/null differ diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/plugin.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/plugin.properties deleted file mode 100644 index cdf657e329..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.branding/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools - EclipseLink DBWS Support -providerName = Eclipse Web Tools Platform diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.classpath b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.classpath deleted file mode 100644 index ad32c83a78..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.cvsignore b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.cvsignore deleted file mode 100644 index c5e82d7458..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -bin \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.project b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.project deleted file mode 100644 index 4c657b1ec5..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.dbws.eclipselink.core.gen - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/META-INF/MANIFEST.MF deleted file mode 100644 index 8e395f6bac..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/META-INF/MANIFEST.MF +++ /dev/null @@ -1,11 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.dbws.eclipselink.core.gen;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Require-Bundle: org.eclipse.persistence.dbws.builder;bundle-version="[2.3.0,3.0.0)", - javax.wsdl;bundle-version="[1.6.2,2.0.0)" -Export-Package: org.eclipse.jpt.dbws.eclipselink.core.gen diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/about.html b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/about.html deleted file mode 100644 index 071f586b21..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/about.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/.

- -

Third Party Content

-

The Content includes items that have been sourced from third parties as set - out below. If you did not receive this Content directly from the Eclipse Foundation, - the following is provided for informational purposes only, and you should look - to the Redistributor’s license for terms and conditions of use.

- -

Java Persistence API (JPA) v1.0

- -
-

The Java Persistence API (JPA) which is distributed under CDDL - v1.0 is required by the Dali Java Persistence Tools Project in order - to support this standard.

-
- - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/build.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/build.properties deleted file mode 100644 index a00641b71c..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2010, 2011 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -javacSource=1.6 -javacTarget=1.6 -source.. = src/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - about.html,\ - plugin.properties -jars.compile.order = . diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/plugin.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/plugin.properties deleted file mode 100644 index 5d537fcf12..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/plugin.properties +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName = Dali Java Persistence Tools - DBWS Support - Web Services Generation -providerName = Eclipse Web Tools Platform diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/Main.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/Main.java deleted file mode 100644 index 4f6f4451a6..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/Main.java +++ /dev/null @@ -1,241 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.core.gen; - -import static java.util.logging.Level.INFO; -import static java.util.logging.Level.SEVERE; -import static org.eclipse.persistence.tools.dbws.DBWSPackager.ArchiveUse.ignore; - -import java.io.File; -import java.util.logging.Level; - -import javax.wsdl.WSDLException; - -import org.eclipse.jpt.dbws.eclipselink.core.gen.internal.JptDbwsCoreMessages; -import org.eclipse.jpt.dbws.eclipselink.core.gen.internal.Tools; -import org.eclipse.persistence.oxm.XMLContext; -import org.eclipse.persistence.oxm.XMLUnmarshaller; -import org.eclipse.persistence.tools.dbws.DBWSBuilder; -import org.eclipse.persistence.tools.dbws.DBWSBuilderModel; -import org.eclipse.persistence.tools.dbws.DBWSBuilderModelProject; -import org.eclipse.persistence.tools.dbws.DBWSPackager; -import org.eclipse.persistence.tools.dbws.EclipsePackager; - -/** - * Generate DBWS content - * - * Current command-line arguments: - * [-builderFile dbws-builder.xml] - specifies source builder file - * [-stageDir .\Output_Dir] - specifies destination directory - * [-packageAs eclipse] - specifies the source package - */ -public class Main -{ - private String builderFile; - private String stageDir; - private String packageAs; - @SuppressWarnings("unused") - private boolean isDebugMode; - - // ********** static methods ********** - - public static void main(String[] args) { - new Main().execute(args); - } - - // ********** constructors ********** - - private Main() { - super(); - } - - // ********** behavior ********** - - protected void execute(String[] args) { - - this.initializeWith(args); - - this.generate(); - } - - private void generate() { - - DBWSBuilder builder = new DBWSBuilder(); - - DBWSBuilderModel model = this.buildBuilderModel(this.builderFile); - if(model == null) { - this.logMessage(INFO, JptDbwsCoreMessages.NO_GENERATION_PERFORMED); - return; - } - - builder.setProperties(model.properties); - builder.setOperations(model.operations); - - if( ! this.jdbcDriverIsOnClasspath(builder.getDriver())) { - return; - } - - DBWSPackager packager = this.buildEclipsePackager(); - - this.initializePackager(packager, builder, this.buildStageDir(this.stageDir)); - builder.setPackager(packager); - - try { - builder.start(); - } - catch(WSDLException e) { - this.logMessage(SEVERE, JptDbwsCoreMessages.WSDL_EXCEPTION, e.getMessage()); - return; - } - catch(Exception e) { - //TODO Clean-up Stage dir. ? - this.logMessage(SEVERE, JptDbwsCoreMessages.GENERATION_FAILED, e.getMessage()); - e.printStackTrace(); - return; - } - this.logMessage(INFO, JptDbwsCoreMessages.GENERATION_COMPLETED); - return; - - } - - // ********** internal methods ********** - - private void initializeWith(String[] args) { - - this.builderFile = this.getArgumentBuilderFile(args); - this.stageDir = this.getArgumentStageDir(args); - this.packageAs = this.getArgumentPackageAs(args); - - this.isDebugMode = this.getArgumentDebugMode(args); - } - - private void initializePackager(DBWSPackager packager, DBWSBuilder builder, File stageDir) { - - packager.setDBWSBuilder(builder); - packager.setArchiveUse(ignore); - packager.setAdditionalArgs(null); - packager.setStageDir(stageDir); - packager.setSessionsFileName(builder.getSessionsFileName()); - } - - private DBWSBuilderModel buildBuilderModel(String builderFileName) { - - File builderFile = this.getBuilderFile(builderFileName); - return this.unmarshal(builderFile); - } - - private DBWSBuilderModel unmarshal(File builderFile) { - if((builderFile == null) || ( ! builderFile.exists())) { - return null; - } - XMLContext context = new XMLContext(new DBWSBuilderModelProject()); - XMLUnmarshaller unmarshaller = context.createUnmarshaller(); - - DBWSBuilderModel model = (DBWSBuilderModel)unmarshaller.unmarshal(builderFile); - if(model.properties.size() == 0) { - this.logMessage(SEVERE, JptDbwsCoreMessages.NO_OPERATIONS_SPECIFIED); - return null; - } - return model; - } - - private File getBuilderFile(String builderFileName) { - - File builderFile = new File(builderFileName); - if( ! (builderFile.exists() && builderFile.isFile())) { - this.logMessage(SEVERE, - JptDbwsCoreMessages.UNABLE_TO_LOCATE_BUILDER_XML, builderFileName); //$NON-NLS-1$ - return null; - } - return builderFile; - } - - private File buildStageDir(String stageDirName) { - File dir = new File(stageDirName); - if(( ! dir.exists()) || ( ! dir.isDirectory())) { - dir = Tools.buildDirectory(stageDirName); - } - return dir; - } - - private EclipsePackager buildEclipsePackager() { - return new EclipsePackager() { - @Override - public void start() { - // no need to check for the existence of stageDir, everything is in-memory - } - }; - } - - private boolean jdbcDriverIsOnClasspath(String jdbcDriverName) { - try { - Class.forName(jdbcDriverName); - } - catch (ClassNotFoundException cnfe) { - this.logMessage(SEVERE, JptDbwsCoreMessages.DRIVER_NOT_ON_CLASSPATH, jdbcDriverName); - return false; - } - return true; - } - - private void logMessage(Level level, String key, Object argument) { - Tools.logMessage(level, Tools.bind(key, argument)); - } - - private void logMessage(Level level, String key) { - Tools.logMessage(level, Tools.getString(key)); - } - - // ********** argument queries ********** - - private String getArgumentBuilderFile(String[] args) { - - return this.getArgumentValue("-builderFile", args); //$NON-NLS-1$ - } - - private String getArgumentStageDir(String[] args) { - - return this.getArgumentValue("-stageDir", args); //$NON-NLS-1$ - } - - private String getArgumentPackageAs(String[] args) { - - return this.getArgumentValue("-packageAs", args); //$NON-NLS-1$ - } - - private boolean getArgumentDebugMode(String[] args) { - - return this.argumentExists("-debug", args); //$NON-NLS-1$ - } - - private String getArgumentValue(String argName, String[] args) { - for (int i = 0; i < args.length; i++) { - String arg = args[i]; - if (arg.equals(argName)) { - int j = i + 1; - if (j < args.length) { - return args[j]; - } - } - } - return null; - } - - private boolean argumentExists(String argName, String[] args) { - for (int i = 0; i < args.length; i++) { - String arg = args[i]; - if (arg.toLowerCase().equals(argName)) { - return true; - } - } - return false; - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/JptDbwsCoreMessages.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/JptDbwsCoreMessages.java deleted file mode 100644 index ff3fa9b9fb..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/JptDbwsCoreMessages.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.core.gen.internal; - -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -/** - * Localized messages used by Dali DBWS generation core. - */ -public class JptDbwsCoreMessages -{ - - public static final String GENERATION_COMPLETED = "GENERATION_COMPLETED"; - public static final String GENERATION_FAILED = "GENERATION_FAILED"; - public static final String NO_GENERATION_PERFORMED = "NO_GENERATION_PERFORMED"; - public static final String WSDL_EXCEPTION = "WSDL_EXCEPTION"; - public static final String NO_OPERATIONS_SPECIFIED = "NO_OPERATIONS_SPECIFIED"; - public static final String UNABLE_TO_LOCATE_BUILDER_XML = "UNABLE_TO_LOCATE_BUILDER_XML"; - public static final String DRIVER_NOT_ON_CLASSPATH = "DRIVER_NOT_ON_CLASSPATH"; - - - private static final String BUNDLE_NAME = "org.eclipse.jpt.dbws.eclipselink.core.gen.internal.jpt_dbws_core"; //$NON-NLS-1$ - private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); - - private JptDbwsCoreMessages() { - } - - public static String getString(String key) { - try { - return RESOURCE_BUNDLE.getString(key); - } - catch (MissingResourceException e) { - return '!' + key + '!'; - } - } -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/Tools.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/Tools.java deleted file mode 100644 index 7a49d7aaae..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/Tools.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.core.gen.internal; - -import static java.util.logging.Level.SEVERE; - -import java.io.File; -import java.text.MessageFormat; -import java.util.logging.Level; - -/** - * Tools - */ -public final class Tools -{ - /** empty string */ - public static final String EMPTY_STRING = ""; //$NON-NLS-1$ - - private static final String USER_DIRECTORY = System.getProperty("user.dir"); //$NON-NLS-1$ - - // ********** queries ********** - - /** - * Return whether the specified string is null, empty, or contains - * only whitespace characters. - */ - public static boolean stringIsEmpty(String string) { - if (string == null) { - return true; - } - int len = string.length(); - if (len == 0) { - return true; - } - return stringIsEmpty_(string.toCharArray(), len); - } - - private static boolean stringIsEmpty_(char[] s, int len) { - for (int i = len; i-- > 0; ) { - if ( ! Character.isWhitespace(s[i])) { - return false; - } - } - return true; - } - - // ********** short name manipulation ********** - - - public static File buildDirectory(String dirName) { - File currentDir = currentWorkingDirectory(); - File dir = new File(currentDir, dirName); - dir.mkdir(); - return dir; - } - - /** - * Return a file representing the current working directory. - */ - public static File currentWorkingDirectory() { - return new File(USER_DIRECTORY); //$NON-NLS-1$ - } - - /** - * Strip the extension from the specified file name - * and return the result. If the file name has no - * extension, it is returned unchanged - * File#basePath() - */ - public static String stripExtension(String fileName) { - int index = fileName.lastIndexOf('.'); - if (index == -1) { - return fileName; - } - return fileName.substring(0, index); - } - - public static String extractDirectory(String path) { - if( ! path.contains(File.separator)) { - return EMPTY_STRING; - } - return path.substring(0, path.lastIndexOf(File.separator)); - } - - public static void logMessage(Level level, String message) { - if(level == SEVERE) { - System.err.println('\n' + message); - } - else { - System.out.println('\n' + message); - } - } - - // ********** NLS utilities ********** - - public static String getString(String key) { - return JptDbwsCoreMessages.getString(key); - } - - public static String bind(String key, Object argument) { - return MessageFormat.format(getString(key), argument); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/jpt_dbws_core.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/jpt_dbws_core.properties deleted file mode 100644 index c49d70feb4..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.core.gen/src/org/eclipse/jpt/dbws/eclipselink/core/gen/internal/jpt_dbws_core.properties +++ /dev/null @@ -1,17 +0,0 @@ -################################################################################ -# Copyright (c) 2010, 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ - -GENERATION_COMPLETED = DBWSBuilder generation completed -GENERATION_FAILED = DBWSBuilder generation failed: {0} -NO_GENERATION_PERFORMED = DBWSBuilder no generation performed -WSDL_EXCEPTION = WSDLException: {0} -NO_OPERATIONS_SPECIFIED = No operations specified -UNABLE_TO_LOCATE_BUILDER_XML = DBWSBuilder unable to locate builder XML file: {0} -DRIVER_NOT_ON_CLASSPATH = JDBC driver not on classpath: {0} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.classpath b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.classpath deleted file mode 100644 index 958e1de112..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.classpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.cvsignore b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.cvsignore deleted file mode 100644 index a196dd7686..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -bin -@dot -temp.folder -build.xml -javaCompiler...args -javaCompiler...args.* \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.project b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.project deleted file mode 100644 index 7d3b57f9f6..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.dbws.eclipselink.ui - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.settings/org.eclipse.jdt.core.prefs b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 76e5cf8f44..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -#Mon Jan 03 02:49:56 EST 2011 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.5 diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/META-INF/MANIFEST.MF deleted file mode 100644 index e39cd76e36..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/META-INF/MANIFEST.MF +++ /dev/null @@ -1,31 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.dbws.eclipselink.ui;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Activator: org.eclipse.jpt.dbws.eclipselink.ui.JptDbwsUiPlugin -Bundle-ActivationPolicy: lazy -Bundle-ClassPath: . -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Require-Bundle: org.eclipse.debug.core;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jpt.common.core;bundle-version="[1.0.0,2.0.0)", - org.eclipse.jpt.common.ui;bundle-version="[1.0.0,2.0.0)", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jpt.dbws.eclipselink.core.gen;bundle-version="[1.0.0,2.0.0)", - org.eclipse.persistence.core;bundle-version="[2.3.0,3.0.0)", - org.eclipse.persistence.dbws.builder;bundle-version="[2.3.0,3.0.0)", - org.eclipse.wst.common.modulecore;bundle-version="[1.1.200,2.0.0)", - org.eclipse.wst.common.project.facet.ui;bundle-version="[1.3.0,2.0.0)", - org.eclipse.wst.common.ui;bundle-version="[1.1.500,2.0.0)", - org.eclipse.wst.common.uriresolver;bundle-version="[1.1.401,2.0.0)", - org.eclipse.wst.xml.core;bundle-version="[1.1.500,2.0.0)" -Export-Package: org.eclipse.jpt.dbws.eclipselink.core.internal.gen;x-internal:=true, - org.eclipse.jpt.dbws.eclipselink.ui, - org.eclipse.jpt.dbws.eclipselink.ui.internal;x-internal:=true, - org.eclipse.jpt.dbws.eclipselink.ui.internal.actions;x-internal:=true, - org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen;x-internal:=true -Import-Package: com.ibm.icu.text;version="4.0.1" diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/about.html b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/build.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/build.properties deleted file mode 100644 index 0ed30c451a..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/build.properties +++ /dev/null @@ -1,20 +0,0 @@ -################################################################################ -# Copyright (c) 2010, 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ -javacSource = 1.6 -javacTarget = 1.6 -source.. = src/,\ - property_files/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - about.html,\ - plugin.xml,\ - plugin.properties -jars.compile.order = . diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/component.xml b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/component.xml deleted file mode 100644 index 4bf2db832f..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/component.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/etool16/newclient_webserv_wiz.gif b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/etool16/newclient_webserv_wiz.gif deleted file mode 100644 index 1ee05fa2e5..0000000000 Binary files a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/etool16/newclient_webserv_wiz.gif and /dev/null differ diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/XSDFile.gif b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/XSDFile.gif deleted file mode 100644 index cc0eeb7196..0000000000 Binary files a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/XSDFile.gif and /dev/null differ diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/dtdfile.gif b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/dtdfile.gif deleted file mode 100644 index 3c0acadd2d..0000000000 Binary files a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/dtdfile.gif and /dev/null differ diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/text.gif b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/text.gif deleted file mode 100644 index efa7a38014..0000000000 Binary files a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/obj16/text.gif and /dev/null differ diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/ovr16/error_ovr.gif b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/ovr16/error_ovr.gif deleted file mode 100644 index 119dcccd5a..0000000000 Binary files a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/ovr16/error_ovr.gif and /dev/null differ diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/wizban/webservicesclient_wiz.gif b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/wizban/webservicesclient_wiz.gif deleted file mode 100644 index 77c16a0f87..0000000000 Binary files a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/icons/full/wizban/webservicesclient_wiz.gif and /dev/null differ diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/plugin.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/plugin.properties deleted file mode 100644 index efab1b2e17..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/plugin.properties +++ /dev/null @@ -1,31 +0,0 @@ -############################################################################### -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### - -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== -pluginName= Dali Java Persistence Tools - DBWS UI -providerName=Eclipse Web Tools Platform - -generateDBWS = Generate Database Web Services - -dbwsWizardCategoryName = Database Web Services - -generateDbwsFromXmlName = Web Services from Builder XML -generateDbwsFromXmlDesc = Generate Web Services from Builder XML - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/plugin.xml b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/plugin.xml deleted file mode 100644 index 5c52d864fe..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/plugin.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - %generateDbwsFromXmlDesc - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/property_files/jpt_dbws_ui.properties b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/property_files/jpt_dbws_ui.properties deleted file mode 100644 index 0d62c677d0..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/property_files/jpt_dbws_ui.properties +++ /dev/null @@ -1,49 +0,0 @@ -################################################################################ -# Copyright (c) 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ - - -# DbwsGenerator -DbwsGeneratorWizard_title = New Database Web Services from Builder XML -DbwsGeneratorWizard_generatingDbws = Generating Database Web Services - -WebDynamicProjectWizardPage_title = Web Dynamic Project -WebDynamicProjectWizardPage_desc = Specify project for Database Web Services -WebDynamicProjectWizardPage_destinationProject = Select destination project: - -BuilderXmlWizardPage_title = Select Builder XML File -BuilderXmlWizardPage_desc = Specify XML file to generate Database Web Services from - -BuilderXmlWizardPage_errorUriCannotBeLocated = The selected catalog entry specifies a URI that can not be located. - -JdbcDriverWizardPage_title = Driver files -JdbcDriverWizardPage_desc = Specify driver JAR files - -JdbcDriverWizardPage_driverFiles = Driver files: - -JdbcDriverWizardPage_addButton = Add... -JdbcDriverWizardPage_removeButton = Remove - -JdbcDriverWizardPage_chooseADriverFile = Driver File Selection - -DbwsGeneratorUi_runningDbwsWarningTitle = Generating Database Web Services -DbwsGeneratorUi_runningDbwsWarningMessage = \ - Warning: Running DBWS Builder will overwrite existing files in your project.\ - \n\nAre you sure you want to continue? - -DbwsGeneratorUi_dbwsNotOnClasspathMessage = \ - Warning: DBWS Builder is not on your project classpath.\ - \n\nAre you sure you want to continue? - -DbwsGeneratorUi_notJavaProject = Not a java project -DbwsGeneratorUi_notWebDynamicProject = Not a WebDynamic project - -BuilderXmlWizardPage_xmlCatalogTableTitle = XML Catalog -BuilderXmlWizardPage_xmlCatalogKeyColumn = Key -BuilderXmlWizardPage_xmlCatalogUriColumn = URI \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/core/internal/gen/DbwsGenerator.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/core/internal/gen/DbwsGenerator.java deleted file mode 100644 index 16c1e6c586..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/core/internal/gen/DbwsGenerator.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.core.internal.gen; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.Path; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; -import org.eclipse.jdt.launching.IRuntimeClasspathEntry; -import org.eclipse.jpt.common.core.internal.gen.AbstractJptGenerator; -import org.eclipse.jpt.common.utility.internal.StringTools; - -/** - * DbwsGenerator - */ -public class DbwsGenerator extends AbstractJptGenerator -{ - static public String LAUNCH_CONFIG_NAME = "DBWS Gen Run Config"; //$NON-NLS-1$ - static public String DBWS_GEN_PACKAGE_NAME = "org.eclipse.jpt.dbws.eclipselink.core.gen"; //$NON-NLS-1$ - static public String DBWS_GEN_CLASS = DBWS_GEN_PACKAGE_NAME + ".Main"; //$NON-NLS-1$ - - static public String DBWS_GEN_JAR_PREFIX = DBWS_GEN_PACKAGE_NAME + "_"; //$NON-NLS-1$ - - private final String builderFileName; - private final String stageDirName; - private final String driverJarList; - - // ********** static methods ********** - - public static void generate( - IJavaProject javaProject, - String builderFileName, - String stageDirName, - String driverJarList, - IProgressMonitor monitor) { - if (javaProject == null) { - throw new NullPointerException(); - } - new DbwsGenerator(javaProject, - builderFileName, - stageDirName, - driverJarList).generate(monitor); - } - - // ********** constructors ********** - - private DbwsGenerator( - IJavaProject javaProject, - String builderFileName, - String stageDirName, - String driverJarList) { - super(javaProject); - this.builderFileName = builderFileName; - this.stageDirName = stageDirName; - this.driverJarList = driverJarList; - } - - // ********** overrides ********** - - @Override - protected String getMainType() { - return DBWS_GEN_CLASS; - } - - @Override - protected String getLaunchConfigName() { - return LAUNCH_CONFIG_NAME; - } - - @Override - protected String getBootstrapJarPrefix() { - return DBWS_GEN_JAR_PREFIX; - } - - @Override - protected void preGenerate(IProgressMonitor monitor) { - // do nothing - - } - - @Override - protected void postGenerate() { - super.postGenerate(); - try { - this.getProject().refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); - } - catch (CoreException e) { - throw new RuntimeException(e); - } - } - - // ********** Launch Configuration Setup ********** - - @Override - protected List buildClasspath() throws CoreException { - List classpath = new ArrayList(); - // DBWS_Gen jar - classpath.add(this.getBootstrapJarClasspathEntry().getMemento()); - // Default Project classpath - classpath.add(this.getDefaultProjectClasspathEntry().getMemento()); - // JDBC jar - if( ! StringTools.stringIsEmpty(this.driverJarList)) { - classpath.add(this.getJdbcJarClasspathEntry().getMemento()); - } - // System Library - classpath.add(this.getSystemLibraryClasspathEntry().getMemento()); - return classpath; - } - - @Override - protected void specifyProgramArguments() { - - StringBuffer programArguments = new StringBuffer(); - - // builderFile - programArguments.append(" -builderFile \""); //$NON-NLS-1$ - programArguments.append(this.builderFileName); - programArguments.append('"'); - - // stageDir - programArguments.append(" -stageDir \""); //$NON-NLS-1$ - programArguments.append(this.stageDirName); - programArguments.append('"'); - - // packageAs - programArguments.append(" -packageAs eclipse"); //$NON-NLS-1$ - - this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, programArguments.toString()); - } - - // ********** private methods ********** - - private IRuntimeClasspathEntry getJdbcJarClasspathEntry() { - return getArchiveClasspathEntry(this.buildJdbcJarPath()); - } - - private IPath buildJdbcJarPath() { - return new Path(this.driverJarList); - } - - -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/JptDbwsUiPlugin.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/JptDbwsUiPlugin.java deleted file mode 100644 index 25b0f74546..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/JptDbwsUiPlugin.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.resource.ImageRegistry; -import org.eclipse.swt.graphics.Image; -import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.eclipse.wst.xml.core.internal.XMLCorePlugin; -import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog; - -/** - * The activator class controls the plug-in life cycle - * - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -@SuppressWarnings("nls") -public class JptDbwsUiPlugin extends AbstractUIPlugin { - - // The plug-in ID - public static final String PLUGIN_ID = "org.eclipse.jpt.dbws.eclipselink.ui"; //$NON-NLS-1$ - - public static final String USER_CATALOG_ID = XMLCorePlugin.USER_CATALOG_ID; //$NON-NLS-1$ - public static final String DEFAULT_CATALOG_ID = XMLCorePlugin.DEFAULT_CATALOG_ID; //$NON-NLS-1$ - public static final String SYSTEM_CATALOG_ID = XMLCorePlugin.SYSTEM_CATALOG_ID; //$NON-NLS-1$ - - // ********** singleton ********** - private static JptDbwsUiPlugin INSTANCE; - - /** - * Returns the singleton Plugin - */ - public static JptDbwsUiPlugin instance() { - return INSTANCE; - } - - public static void log(IStatus status) { - INSTANCE.getLog().log(status); - } - - public static void log(String msg) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null)); - } - - public static void log(Throwable throwable) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable)); - } - - // ********** Image API ********** - /** - * This gets a .gif from the icons folder. - */ - public static ImageDescriptor getImageDescriptor(String key) { - if (! key.startsWith("icons/")) { - key = "icons/" + key; - } - if (! key.endsWith(".gif")) { - key = key + ".gif"; - } - return imageDescriptorFromPlugin(PLUGIN_ID, key); - } - - /** - * This returns an image for a .gif from the icons folder - */ - //TODO we are using the ImageRegistry here and storing all our icons for the life of the plugin, - //which means until the workspace is closed. This is better than before where we constantly - //created new images. Bug 306437 is about cleaning this up and using Local Resource Managers - //on our views so that closing the JPA perspective would mean our icons are disposed. - public static Image getImage(String key) { - ImageRegistry imageRegistry = instance().getImageRegistry(); - Image image = imageRegistry.get(key); - if (image == null) { - imageRegistry.put(key, getImageDescriptor(key)); - image = imageRegistry.get(key); - } - return image; - } - - - // ********** XMLCorePlugin API ********** - - public ICatalog getDefaultXMLCatalog() { - return XMLCorePlugin.getDefault().getDefaultXMLCatalog(); - } - - - // ********** constructors ********** - - public JptDbwsUiPlugin() { - super(); - if(INSTANCE != null) { - throw new IllegalStateException(); - } - INSTANCE = this; - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/DbwsGeneratorUi.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/DbwsGeneratorUi.java deleted file mode 100644 index 8000bf3b6c..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/DbwsGeneratorUi.java +++ /dev/null @@ -1,275 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal; - -import java.io.File; -import java.util.Map; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.WorkspaceJob; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.window.Window; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.jpt.dbws.eclipselink.core.internal.gen.DbwsGenerator; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen.DbwsGeneratorWizard; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.persistence.oxm.XMLContext; -import org.eclipse.persistence.oxm.XMLUnmarshaller; -import org.eclipse.persistence.tools.dbws.DBWSBuilderModel; -import org.eclipse.persistence.tools.dbws.DBWSBuilderModelProject; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.wst.common.componentcore.ComponentCore; -import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; -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; - -/** - * DbwsGeneratorUi - */ -public class DbwsGeneratorUi -{ - private final IJavaProject javaProject; - private final String builderXmlFile; - - private static final String WEB_FACET_ID = "jst.web"; //$NON-NLS-1$ - private static final String DRIVER_PROPERTY = "driver"; //$NON-NLS-1$ - private static final String DBWS_BUILDER_CLASS_NAME = "org.eclipse.persistence.tools.dbws.DBWSBuilder"; //$NON-NLS-1$ - - // ********** static methods ********** - - public static void generate(IFile xmlFile) { - IProject project = xmlFile.getProject(); - - if( ! projectIsWebDynamic(project)) { - throw new RuntimeException(JptDbwsUiMessages.DbwsGeneratorUi_notWebDynamicProject); - } - IPath xmlPath = xmlFile.getProjectRelativePath(); - - new DbwsGeneratorUi(project, xmlPath.toOSString()).generate(); - } - - public static boolean projectIsWebDynamic(IProject project) { - - IProjectFacet projectFacet = ProjectFacetsManager.getProjectFacet(WEB_FACET_ID); - IFacetedProject facetedProject = null; - try { - facetedProject = ProjectFacetsManager.create(project); - } - catch (CoreException e) { - return false; - } - return (facetedProject == null) ? false : facetedProject.hasProjectFacet(projectFacet); - } - - public static IPath getWebContentPath(IProject project){ - IVirtualComponent component = ComponentCore.createComponent(project); - IPath modulePath = component.getRootFolder().getProjectRelativePath(); - return modulePath; - } - - public static boolean displayDBWSNotOnClasspathWarning(Shell shell) { - - String msg = JptDbwsUiMessages.DbwsGeneratorUi_dbwsNotOnClasspathMessage; - - return MessageDialog.openQuestion( - shell, - JptDbwsUiMessages.DbwsGeneratorUi_runningDbwsWarningTitle, - msg); - } - - public static boolean displayOverridingWebContentWarning(Shell shell) { - - String msg = JptDbwsUiMessages.DbwsGeneratorUi_runningDbwsWarningMessage; - - return MessageDialog.openQuestion( - shell, - JptDbwsUiMessages.DbwsGeneratorUi_runningDbwsWarningTitle, - msg); - } - - // ********** constructors ********** - - private DbwsGeneratorUi(IProject webProject, String builderXmlFile) { - super(); - if(webProject == null || StringTools.stringIsEmpty(builderXmlFile)) { - throw new NullPointerException(); - } - this.javaProject = this.getJavaProjectFrom(webProject); - if(this.javaProject == null) { - throw new RuntimeException(JptDbwsUiMessages.DbwsGeneratorUi_notJavaProject); - } - this.builderXmlFile = builderXmlFile; - } - - // ********** generate ********** - /** - * prompt the user with a wizard - */ - protected void generate() { - - if( ! this.dbwsIsOnClasspath()) { - if( ! displayDBWSNotOnClasspathWarning(this.getCurrentShell())) { - return; - } - } - if(this.classIsOnProjectsClasspath( - this.getDriverNameFrom(this.builderXmlFile))) { - - if(displayOverridingWebContentWarning(this.getCurrentShell())) { - this.scheduleGenerateDbwsJob(); - } - return; - } - this.openWizardDialog(); - return; - } - - // ********** internal methods ********** - - private void openWizardDialog() { - - DbwsGeneratorWizard wizard = new DbwsGeneratorWizard(this.javaProject, this.builderXmlFile); - wizard.setWindowTitle(JptDbwsUiMessages.DbwsGeneratorWizard_title); - WizardDialog dialog = new WizardDialog(this.getCurrentShell(), wizard); - dialog.create(); - int returnCode = dialog.open(); - if(returnCode != Window.OK) { - return; - } - } - - private String getDriverNameFrom(String builderXmlFile) { - try { - DBWSBuilderModel model = this.buildBuilderModel(builderXmlFile); - Map properties = model.getProperties(); - return properties.get(DRIVER_PROPERTY); - } - catch(Exception e) { - return null; - } - } - - private DBWSBuilderModel buildBuilderModel(String builderFileName) { - String projectDirName = this.javaProject.getProject().getLocation().toOSString(); - File builderFile = this.getBuilderFile(projectDirName + File.separator + builderFileName); - return this.unmarshal(builderFile); - } - - private DBWSBuilderModel unmarshal(File builderFile) { - if((builderFile == null) || ( ! builderFile.exists())) { - return null; - } - XMLContext context = new XMLContext(new DBWSBuilderModelProject()); - XMLUnmarshaller unmarshaller = context.createUnmarshaller(); - - DBWSBuilderModel model = (DBWSBuilderModel)unmarshaller.unmarshal(builderFile); - if(model == null || model.properties.size() == 0) { - return null; - } - return model; - } - - private File getBuilderFile(String builderFileName) { - - File builderFile = new File(builderFileName); - if( ! (builderFile.exists() && builderFile.isFile())) { - return null; - } - return builderFile; - } - - /** - * Test if the given class is on the project's classpath. - */ - private boolean classIsOnProjectsClasspath(String driverName) { - try { - if(StringTools.stringIsEmpty(driverName)) { - return false; - } - IType genClass = this.javaProject.findType(driverName); - return (genClass != null); - } - catch (JavaModelException e) { - throw new RuntimeException(e); - } - } - - /** - * Test if the DBWS builder is on the project's classpath. - */ - private boolean dbwsIsOnClasspath() { - try { - IType genClass = this.javaProject.findType(DBWS_BUILDER_CLASS_NAME); - return (genClass != null); - } - catch (JavaModelException e) { - throw new RuntimeException(e); - } - } - - private IJavaProject getJavaProjectFrom(IProject project) { - return (IJavaProject)((IJavaElement)((IAdaptable)project).getAdapter(IJavaElement.class)); - } - - private Shell getCurrentShell() { - return Display.getCurrent().getActiveShell(); - } - - private void scheduleGenerateDbwsJob() { - - String stageDirName = this.javaProject.getProject().getLocation().toOSString(); - - WorkspaceJob generateJob = new GenerateDbwsJob( - this.javaProject, - this.builderXmlFile, - stageDirName, - null // driverJarList - ); - generateJob.schedule(); - } - - // ********** generate DBWS job ********** - - public static class GenerateDbwsJob extends WorkspaceJob { - private final IJavaProject project; - final String builderFileName; - final String stageDirName; - final String driverJarList; - - public GenerateDbwsJob(IJavaProject project, String builderFileName, String stageDirName, String driverJarList) { - super(JptDbwsUiMessages.DbwsGeneratorWizard_generatingDbws); - - this.project = project ; - this.builderFileName = builderFileName; - this.stageDirName = stageDirName; - this.driverJarList = driverJarList; - } - - @Override - public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { - DbwsGenerator.generate(this.project, this.builderFileName, this.stageDirName, this.driverJarList, monitor); - return Status.OK_STATUS; - } - - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/JptDbwsUiIcons.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/JptDbwsUiIcons.java deleted file mode 100644 index 38beda8da7..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/JptDbwsUiIcons.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal; - -@SuppressWarnings("nls") -public class JptDbwsUiIcons -{ - // **************** Wizard icons ******************************************* - - public static final String DBWS_GEN_WIZ_BANNER = "full/wizban/webservicesclient_wiz"; -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/JptDbwsUiMessages.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/JptDbwsUiMessages.java deleted file mode 100644 index 1610eac2a3..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/JptDbwsUiMessages.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal; - -import org.eclipse.osgi.util.NLS; - -/** - * Localized messages used by Dali DBWS UI. - * - * @version 2.3 - */ -public class JptDbwsUiMessages { - - // DbwsGenerator - public static String DbwsGeneratorWizard_title; - public static String DbwsGeneratorWizard_generatingDbws; - - public static String WebDynamicProjectWizardPage_title; - public static String WebDynamicProjectWizardPage_desc; - public static String WebDynamicProjectWizardPage_destinationProject; - - public static String BuilderXmlWizardPage_title; - public static String BuilderXmlWizardPage_desc; - - public static String BuilderXmlWizardPage_errorUriCannotBeLocated; - - public static String JdbcDriverWizardPage_title; - public static String JdbcDriverWizardPage_desc; - - public static String JdbcDriverWizardPage_driverFiles; - - public static String JdbcDriverWizardPage_addButton; - public static String JdbcDriverWizardPage_removeButton; - - public static String JdbcDriverWizardPage_chooseADriverFile; - - public static String DbwsGeneratorUi_runningDbwsWarningTitle; - public static String DbwsGeneratorUi_runningDbwsWarningMessage; - public static String DbwsGeneratorUi_dbwsNotOnClasspathMessage; - - public static String DbwsGeneratorUi_notJavaProject; - public static String DbwsGeneratorUi_notWebDynamicProject; - - public static String BuilderXmlWizardPage_xmlCatalogTableTitle; - public static String BuilderXmlWizardPage_xmlCatalogKeyColumn; - public static String BuilderXmlWizardPage_xmlCatalogUriColumn; - - - - - private static final String BUNDLE_NAME = "jpt_dbws_ui"; //$NON-NLS-1$ - private static final Class BUNDLE_CLASS = JptDbwsUiMessages.class; - static { - NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS); - } - - private JptDbwsUiMessages() { - throw new UnsupportedOperationException(); - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/actions/GenerateDbwsAction.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/actions/GenerateDbwsAction.java deleted file mode 100644 index 1dfee6b4b4..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/actions/GenerateDbwsAction.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.actions; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.DbwsGeneratorUi; - -/** - * GenerateDbwsAction - */ -public class GenerateDbwsAction extends ObjectAction -{ - - @Override - protected void execute(IFile xmlFile) { - - DbwsGeneratorUi.generate(xmlFile); - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/actions/ObjectAction.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/actions/ObjectAction.java deleted file mode 100644 index 5c90f1e584..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/actions/ObjectAction.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.actions; - -import java.util.Iterator; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ITreeSelection; -import org.eclipse.ui.IObjectActionDelegate; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.actions.ActionDelegate; - -/** - * GenerateEntitiesAction - */ -public abstract class ObjectAction extends ActionDelegate implements IObjectActionDelegate -{ - private ISelection currentSelection; - - public ObjectAction() { - super(); - } - - public void setActivePart(IAction action, IWorkbenchPart targetPart) { - // do nothing - } - - @Override - public void selectionChanged(IAction action, ISelection selection) { - this.currentSelection = selection; - } - - @Override - public void run(IAction action) { - if (this.currentSelection instanceof ITreeSelection) { - for (Iterator stream = ((ITreeSelection) this.currentSelection).iterator(); stream.hasNext(); ) { - this.execute(stream.next()); - } - } - } - - protected void execute(Object selection) { - - if(selection instanceof IFile) { - this.execute((IFile)selection); - } - } - - @SuppressWarnings("unused") - protected void execute(IFile file) { - throw new UnsupportedOperationException(); - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/BuilderXmlWizardPage.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/BuilderXmlWizardPage.java deleted file mode 100644 index 5eb23fc72e..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/BuilderXmlWizardPage.java +++ /dev/null @@ -1,186 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen; - -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.jface.dialogs.Dialog; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.wizard.IWizardPage; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.jpt.common.ui.internal.wizards.JavaProjectWizardPage; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.JptDbwsUiMessages; -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.wst.common.uriresolver.internal.util.URIHelper; - -/** - * BuilderXmlWizardPage - */ -public class BuilderXmlWizardPage extends WizardPage { - - private final IStructuredSelection initialSelection; - private IProject targetProject; - - protected SelectFileOrXMLCatalogIdPanel selectSourcePanel; - - protected static final String[] browseXMLFilterExtensions = {".xml"}; //$NON-NLS-1$ - - // ********** static method ********** - - public static IFile getBuilderXmlFromSelection(IStructuredSelection selection) { - Object firstElement = selection.getFirstElement(); - if(firstElement instanceof IFile) { - String elementExtension = ((IFile)firstElement).getFileExtension(); - if(elementExtension != null) { - if(browseXMLFilterExtensions[0].endsWith(elementExtension)) { - return ((IFile)firstElement); - } - } - } - return null; - } - - // ********** constructor ********** - - BuilderXmlWizardPage(IStructuredSelection selection) { - super("BuilderXmlWizardPage"); //$NON-NLS-1$ - - this.initialSelection = selection; - } - - // ********** IDialogPage implementation ********** - - public void createControl(Composite parent) { - Composite composite = new Composite(parent, SWT.NONE); -// PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, HELP_CONTEXT_ID); - composite.setLayout(new GridLayout()); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - this.setControl(composite); - - this.selectSourcePanel = new SelectFileOrXMLCatalogIdPanel(composite, this.initialSelection); - this.selectSourcePanel.setLayoutData(new GridData(GridData.FILL_BOTH)); - - SelectFileOrXMLCatalogIdPanel.PanelListener listener = new SelectFileOrXMLCatalogIdPanel.PanelListener() { - public void completionStateChanged() { - selectFileOrXMLCatalogIdPanelChanged(); - } - }; - this.selectSourcePanel.setListener(listener); - Dialog.applyDialogFont(parent); - } - - @Override - public void setVisible(boolean visible) { - super.setVisible(visible); - if(visible) { - - if(this.getBuilderXml() != null) { - this.selectSourcePanel.setSingleFileViewDefaultSelection(new StructuredSelection(this.getBuilderXml())); - } - else { - this.updateTargetProject(); - IFile schema = getBuilderXmlFromSelection(this.initialSelection); - if(schema != null) { - this.selectSourcePanel.setSingleFileViewDefaultSelection(new StructuredSelection(schema)); - } - else { - this.selectSourcePanel.setSingleFileViewDefaultSelection(new StructuredSelection(this.targetProject)); - } - } - this.selectSourcePanel.update(); - - this.setTitle(JptDbwsUiMessages.BuilderXmlWizardPage_title); - this.setDescription(JptDbwsUiMessages.BuilderXmlWizardPage_desc); - this.selectSourcePanel.setFilterExtensions(browseXMLFilterExtensions); - } - this.selectSourcePanel.setVisibleHelper(visible); - } - - // ********** IWizardPage implementation ********** - - @Override - public boolean isPageComplete() { - - return this.schemaOrUriSelected() && (this.getErrorMessage() == null); - } - - // ********** intra-wizard methods ********** - - public IFile getBuilderXml() { - return this.selectSourcePanel.getFile(); - } - - public String getSourceURI() { - String uri = this.selectSourcePanel.getXMLCatalogURI(); - if(uri == null) { - IFile file = this.selectSourcePanel.getFile(); - if(file != null) { - uri = URIHelper.getPlatformURI(file); - } - } - return uri; - } - - // ********** internal methods ********** - - private void updateTargetProject() { - IWizardPage previousPage = this.getPreviousPage(); - - if(previousPage instanceof JavaProjectWizardPage) { - // get project from previousPage - this.targetProject = (((JavaProjectWizardPage)previousPage).getJavaProject()).getProject(); - } - else if(initialSelection != null && ! this.initialSelection.isEmpty()) { - // no previousPage - get project from initialSelection - this.targetProject = this.getProjectFromInitialSelection(); - } - } - - private IProject getProjectFromInitialSelection() { - Object firstElement = initialSelection.getFirstElement(); - if(firstElement instanceof IProject) { - return (IProject)firstElement; - } - else if(firstElement instanceof IResource) { - return ((IResource) firstElement).getProject(); - } - else if(firstElement instanceof IJavaElement) { - return ((IJavaElement)firstElement).getJavaProject().getProject(); - } - return null; - } - - private boolean schemaOrUriSelected() { - return ((this.getBuilderXml() != null) || (this.getSourceURI() != null)); - } - - private String computeErrorMessage() { - String errorMessage = null; - String uri = this.getSourceURI(); - if(uri != null) { - if( ! URIHelper.isReadableURI(uri, false)) { - errorMessage = JptDbwsUiMessages.BuilderXmlWizardPage_errorUriCannotBeLocated; - } - } - return errorMessage; - } - - private void selectFileOrXMLCatalogIdPanelChanged() { - String errorMessage = this.computeErrorMessage(); - this.setErrorMessage(errorMessage); - this.setPageComplete(this.isPageComplete()); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/DbwsGeneratorWizard.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/DbwsGeneratorWizard.java deleted file mode 100644 index a0c798a854..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/DbwsGeneratorWizard.java +++ /dev/null @@ -1,216 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.WorkspaceJob; -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.core.runtime.IPath; -import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jface.dialogs.IDialogSettings; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.wizard.Wizard; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.jpt.dbws.eclipselink.ui.JptDbwsUiPlugin; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.DbwsGeneratorUi; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.JptDbwsUiIcons; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.JptDbwsUiMessages; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchWizard; - -/** - * DbwsGeneratorWizard - */ -public class DbwsGeneratorWizard extends Wizard implements IWorkbenchWizard { - - private IJavaProject javaProject; - private String builderXmlFile; - private IStructuredSelection selection; - - private WebDynamicProjectWizardPage projectWizardPage; - private BuilderXmlWizardPage builderXmlWizardPage; - - // Dialog store id constant - private static final String WIZARD_NAME = DbwsGeneratorWizard.class.getName(); - private static final String DBWS_SECTION_NAME = "DbwsSettings"; //$NON-NLS-1$ - - private JdbcDriverWizardPage jdbcDriversPage; - - // ********** constructor ********** - - public DbwsGeneratorWizard() { - super(); - - this.initialize(); - } - - public DbwsGeneratorWizard(IJavaProject javaProject, String builderXmlFile) { - super(); - - this.javaProject = javaProject; - this.builderXmlFile = builderXmlFile; - - this.initialize(); - } - - private void initialize() { - if(this.getDialogSettings() == null) { - IDialogSettings dbwsSettings = JptDbwsUiPlugin.instance().getDialogSettings(); - IDialogSettings wizardSettings = dbwsSettings.getSection(DBWS_SECTION_NAME); - if(wizardSettings == null) { - wizardSettings = dbwsSettings.addNewSection(DBWS_SECTION_NAME); - } - this.setDialogSettings(wizardSettings); - } - } - - // ********** IWorkbenchWizard implementation ********** - - public void init(IWorkbench workbench, IStructuredSelection selection) { - this.selection = selection; - - this.setWindowTitle(JptDbwsUiMessages.DbwsGeneratorWizard_title); - - this.setDefaultPageImageDescriptor(JptDbwsUiPlugin.getImageDescriptor(JptDbwsUiIcons.DBWS_GEN_WIZ_BANNER)); - this.setNeedsProgressMonitor(true); - } - - // ********** IWizard implementation ********** - - @Override - public void addPages() { - super.addPages(); - - if(this.selection != null) { - // WebDynamicProjectWizardPage - this.javaProject = this.getJavaProjectFromSelection(this.selection); - - this.projectWizardPage = this.buildWebDynamicProjectPage(this.javaProject); - this.addPage(this.projectWizardPage); - - // BuilderXmlWizardPage - IFile builderXmlSelected = BuilderXmlWizardPage.getBuilderXmlFromSelection(this.selection); - if(builderXmlSelected == null) { - this.builderXmlWizardPage = this.buildBuilderXmlPage(this.selection); - this.addPage(this.builderXmlWizardPage); - } - else { - this.builderXmlFile = this.makeRelativeToProjectPath(builderXmlSelected.getFullPath()); - } - } - // JdbcDriverWizardPage - this.jdbcDriversPage = this.buildJdbcDriversPage(); - this.addPage(this.jdbcDriversPage); - } - - @Override - public boolean performFinish() { - - WizardPage currentPage = (WizardPage)getContainer().getCurrentPage(); - if(currentPage != null) { - if( ! currentPage.isPageComplete()) { - return false; - } - } - - String driverJarList = this.jdbcDriversPage.getDriverJarList(); - this.jdbcDriversPage.finish(); // persist settings - - if(DbwsGeneratorUi.displayOverridingWebContentWarning(this.getShell())) { - this.generateDbws(driverJarList); - } - return true; - } - - // ********** intra-wizard methods ********** - - public IJavaProject getJavaProject() { - if(this.projectWizardPage != null) { - this.javaProject = this.projectWizardPage.getJavaProject(); - } - return this.javaProject; - } - - public String getBuilderXmlPathOrUri() { - if(this.builderXmlWizardPage != null) { - IFile xmlFile = this.builderXmlWizardPage.getBuilderXml(); - if(xmlFile != null) { - return this.makeRelativeToProjectPath(xmlFile.getFullPath()); - } - else { - return this.builderXmlWizardPage.getSourceURI(); - } - } - return this.builderXmlFile; - } - - // ********** internal methods ********** - - private WebDynamicProjectWizardPage buildWebDynamicProjectPage(IJavaProject javaProject) { - - WebDynamicProjectWizardPage projectWizardPage = new WebDynamicProjectWizardPage(javaProject); - projectWizardPage.setTitle(JptDbwsUiMessages.WebDynamicProjectWizardPage_title); - projectWizardPage.setDescription(JptDbwsUiMessages.WebDynamicProjectWizardPage_desc); - projectWizardPage.setDestinationLabel(JptDbwsUiMessages.WebDynamicProjectWizardPage_destinationProject); - - return projectWizardPage; - } - - private BuilderXmlWizardPage buildBuilderXmlPage(IStructuredSelection selection) { - return new BuilderXmlWizardPage(selection); - } - - private JdbcDriverWizardPage buildJdbcDriversPage() { - return new JdbcDriverWizardPage(WIZARD_NAME); - } - - private String makeRelativeToProjectPath(IPath path) { - IPath relativePath = path.makeRelativeTo(this.getJavaProject().getProject().getFullPath()); - return relativePath.toOSString(); - } - - private void generateDbws(String driverJarList) { - - String stageDirName = this.getJavaProject().getProject().getLocation().toOSString(); - - WorkspaceJob generateJob = new DbwsGeneratorUi.GenerateDbwsJob( - this.getJavaProject(), - this.getBuilderXmlPathOrUri(), - stageDirName, - driverJarList - ); - generateJob.schedule(); - } - - private IJavaProject getJavaProjectFromSelection(IStructuredSelection selection) { - if(selection == null) { - return null; - } - Object firstElement = selection.getFirstElement(); - if(firstElement instanceof IJavaProject) { - return (IJavaProject)firstElement; - } - else if(firstElement instanceof IResource) { - IProject project = ((IResource) firstElement).getProject(); - return getJavaProjectFrom(project); - } - else if(firstElement instanceof IJavaElement) { - return ((IJavaElement)firstElement).getJavaProject(); - } - return null; - } - - private IJavaProject getJavaProjectFrom(IProject project) { - return (IJavaProject)((IJavaElement)((IAdaptable)project).getAdapter(IJavaElement.class)); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/JdbcDriverWizardPage.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/JdbcDriverWizardPage.java deleted file mode 100644 index 8f5c9d1f07..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/JdbcDriverWizardPage.java +++ /dev/null @@ -1,355 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collection; - -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jface.dialogs.IDialogSettings; -import org.eclipse.jface.viewers.ColumnWeightData; -import org.eclipse.jface.viewers.IBaseLabelProvider; -import org.eclipse.jface.viewers.IContentProvider; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.wizard.IWizard; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.jpt.common.ui.internal.util.SWTUtil; -import org.eclipse.jpt.common.ui.internal.util.TableLayoutComposite; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.dbws.eclipselink.ui.JptDbwsUiPlugin; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.JptDbwsUiIcons; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.JptDbwsUiMessages; -import org.eclipse.swt.SWT; -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.FileDialog; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; - -/** - * JdbcDriversWizardPage - */ -public class JdbcDriverWizardPage extends WizardPage -{ - private final String storedDriverClasspathId; - private ArrayList jarPaths; - - public static String BINDINGS_FILE_FILTER = "*.jar;*.zip"; //$NON-NLS-1$ - // dialog store id constants - private static final String PAGE_ID = "DRIVER_CLASSPATH_ID"; //$NON-NLS-1$ - private static final String PATH_SEPARATOR = System.getProperty("path.separator"); //$NON-NLS-1$ - - // ********** constructor ********** - - protected JdbcDriverWizardPage(String wizardName) { - super("Jdbc Driver"); //$NON-NLS-1$ - - this.initialize(); - - this.jarPaths = new ArrayList(); - this.storedDriverClasspathId = wizardName + "." + PAGE_ID; //$NON-NLS-1$ - } - - protected void initialize() { - this.setTitle(JptDbwsUiMessages.JdbcDriverWizardPage_title); - this.setDescription(JptDbwsUiMessages.JdbcDriverWizardPage_desc); - this.setImageDescriptor(JptDbwsUiPlugin.getImageDescriptor(JptDbwsUiIcons.DBWS_GEN_WIZ_BANNER)); - } - - // ********** intra-wizard methods ********** - - public void finish() { - this.saveWidgetValues(); - } - - public String getDriverJarList() { - return this.buildDriverJarListString(); - } - - // ********** internal methods ********** - - /** - * Initializes the JAR package from last used wizard page values. - */ - private void initializeJarPaths() { - IDialogSettings settings= this.getDialogSettings(); - if(settings != null) { - // destination - String[] driverPaths = settings.getArray(this.storedDriverClasspathId); - if(driverPaths == null) { - return; // ie.- no settings stored - } - this.jarPaths = new ArrayList(); - - CollectionTools.addAll(this.jarPaths, driverPaths); - } - } - - private void saveWidgetValues() { - IDialogSettings settings= this.getDialogSettings(); - - if(settings != null) { - String[] driverPaths = this.jarPaths.toArray(new String[0]); - settings.put(this.storedDriverClasspathId, driverPaths); - } - } - - private String buildDriverJarListString() { - if(this.jarPaths.isEmpty()) { - return StringTools.EMPTY_STRING; - } - StringBuffer result = new StringBuffer(); - for(String jar : this.jarPaths) { - result.append(jar).append(PATH_SEPARATOR); - } - result.deleteCharAt(result.length() - 1); // remove last separator - return result.toString(); - } - - // ********** UI components ********** - - public void createControl(Composite parent) { - this.initializeJarPaths(); - this.setPageComplete(true); - this.setControl(this.buildTopLevelControl(parent)); - } - - private Control buildTopLevelControl(Composite parent) { - Composite composite = new Composite(parent, SWT.NULL); - composite.setLayout(new GridLayout()); - - new JarsGroup(composite); - - return composite; - } - - // ********** private methods ********** - - private void removeJarFile(String filePath) { - this.jarPaths.remove(filePath); - } - - private void addJarFile(String filePath) { - if( ! this.jarPaths.contains(filePath)) { - this.jarPaths.add(filePath); - } - } - - // ********** JarsGroup class ********** - - private class JarsGroup { - - - // ********** constructor ********** - - private JarsGroup(Composite parent) { - super(); - Composite composite = new Composite(parent, SWT.NONE); - GridLayout layout = new GridLayout(2, false); //must be 4 for the package controls - layout.marginHeight = 0; - layout.marginWidth = 0; - composite.setLayout(layout); - composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - // TODO PlatformUI.getWorkbench().getHelpSystem().setHelp(this.group, HELP_CONTEXT_ID); - - this.buildLabel(composite, 2, JptDbwsUiMessages.JdbcDriverWizardPage_driverFiles); - - this.buildDriverFilesTable(composite); - } - - // ********** intra-wizard methods ********** - - public IJavaProject getJavaProject() { - IWizard wizard = getWizard(); - - if( ! (wizard instanceof DbwsGeneratorWizard)) { - throw new NullPointerException(); - } - return ((DbwsGeneratorWizard)wizard).getJavaProject(); - } - - private ArrayList getJarPaths() { - return jarPaths; - } - - // ********** private methods ********** - - private TableViewer buildDriverFilesTable(Composite parent) { - - TableViewer tableViewer = this.buildTableViewer(parent, this.getJarPaths()); - - this.buildAddRemoveButtons(parent, tableViewer); - return tableViewer; - } - - private TableViewer buildTableViewer(Composite parent, ArrayList tableDataModel) { - - TableLayoutComposite tableLayout = new TableLayoutComposite(parent, SWT.NONE); - this.addColumnsData(tableLayout); - - final Table table = new Table(tableLayout, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER); - table.setLinesVisible(false); - - TableColumn column = new TableColumn(table, SWT.NONE, 0); - column.setResizable(true); - - GridData gridData= new GridData(GridData.FILL_BOTH); - gridData.horizontalSpan = 1; - gridData.heightHint= SWTUtil.getTableHeightHint(table, 7); - tableLayout.setLayoutData(gridData); - - TableViewer tableViewer = new TableViewer(table); - tableViewer.setUseHashlookup(true); - tableViewer.setLabelProvider(this.buildLabelProvider()); - tableViewer.setContentProvider(this.buildContentProvider()); - - tableViewer.setInput(tableDataModel); - tableViewer.refresh(); - return tableViewer; - } - - private void buildAddRemoveButtons(Composite parent, final TableViewer tableViewer) { - - Composite buttonComposite = new Composite(parent, SWT.NULL); - GridLayout buttonLayout = new GridLayout(1, false); - buttonComposite.setLayout(buttonLayout); - GridData gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.verticalAlignment = GridData.BEGINNING; - buttonComposite.setLayoutData(gridData); - // Add buttons - Button addButton = new Button(buttonComposite, SWT.PUSH); - addButton.setText(JptDbwsUiMessages.JdbcDriverWizardPage_addButton); - gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace= true; - addButton.setLayoutData(gridData); - addButton.addSelectionListener(new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) {} - - public void widgetSelected(SelectionEvent e) { - - ArrayList jarFiles = promptJarFiles(); - for(String jarFile : jarFiles) { - addJarFile(jarFile); - } - tableViewer.refresh(); - } - }); - // Remove buttons - Button removeButton = new Button(buttonComposite, SWT.PUSH); - removeButton.setText(JptDbwsUiMessages.JdbcDriverWizardPage_removeButton); - gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace= true; - removeButton.setLayoutData(gridData); - removeButton.addSelectionListener(new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) {} - - public void widgetSelected(SelectionEvent e) { - StructuredSelection selection = (StructuredSelection)tableViewer.getSelection(); - if(selection.isEmpty()) { - return; - } - String jarFile = (String)selection.getFirstElement(); - removeJarFile(jarFile); - - tableViewer.refresh(); - } - }); - addButton.setFocus(); - } - - private IBaseLabelProvider buildLabelProvider() { - return new TableLabelProvider(); - } - - private IContentProvider buildContentProvider() { - return new TableContentProvider(); - } - - private ArrayList promptJarFiles() { - String projectPath= this.getJavaProject().getProject().getLocation().toString(); - - FileDialog dialog = new FileDialog(getShell(), SWT.MULTI); - dialog.setText(JptDbwsUiMessages.JdbcDriverWizardPage_chooseADriverFile); - dialog.setFilterPath(projectPath); - dialog.setFilterExtensions(new String[] {BINDINGS_FILE_FILTER}); - - dialog.open(); - String path = dialog.getFilterPath(); - String[] fileNames = dialog.getFileNames(); - ArrayList results = new ArrayList(fileNames.length); - for(String fileName : fileNames) { - results.add(path + File.separator + fileName); - } - return results; - } - - private void addColumnsData(TableLayoutComposite layout) { - layout.addColumnData(new ColumnWeightData(50, true)); - } - - /** - * Build and return a label - */ - private Label buildLabel(Composite parent, int span, String text) { - Label label = new Label(parent, SWT.NONE); - label.setText(text); - GridData gd = new GridData(); - gd.horizontalSpan = span; - label.setLayoutData(gd); - return label; - } - - // ********** inner class ********** - - private class TableLabelProvider extends LabelProvider implements ITableLabelProvider { - - public Image getColumnImage(Object element, int columnIndex) { - return null; - } - - public String getColumnText(Object element, int columnIndex) { - return (String)element; - } - } - - private class TableContentProvider implements IStructuredContentProvider { - - TableContentProvider() { - super(); - } - - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {} - - public void dispose() {} - - public Object[] getElements(Object inputElement) { - return ((Collection) inputElement).toArray(); - } - } - } - -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectFileOrXMLCatalogIdPanel.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectFileOrXMLCatalogIdPanel.java deleted file mode 100644 index 7f36cc306f..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectFileOrXMLCatalogIdPanel.java +++ /dev/null @@ -1,142 +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 - * Code originate from org.eclipse.wst.xml.ui.internal.dialogs - *******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jpt.dbws.eclipselink.ui.JptDbwsUiPlugin; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.ui.part.PageBook; -import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog; - - -public class SelectFileOrXMLCatalogIdPanel extends Composite implements SelectionListener { - - public interface PanelListener { - void completionStateChanged(); - } - - protected PanelListener listener; - protected PageBook pageBook; - - protected SelectFilePanel selectFilePanel; - protected SelectXMLCatalogIdPanel selectXMLCatalogIdPanel; - - // ********** constructor ********** - - public SelectFileOrXMLCatalogIdPanel(Composite parent, IStructuredSelection selection) { - super(parent, SWT.NONE); - - // container group - setLayout(new GridLayout()); - GridData gd = new GridData(GridData.FILL_BOTH); - gd.heightHint = 400; - gd.widthHint = 400; - setLayoutData(gd); - - pageBook = new PageBook(this, SWT.NONE); - pageBook.setLayoutData(new GridData(GridData.FILL_BOTH)); - - selectFilePanel = new SelectFilePanel(pageBook, selection); - this.setSingleFileViewDefaultSelection(selection); - - // Catalog - ICatalog xmlCatalog = JptDbwsUiPlugin.instance().getDefaultXMLCatalog(); - selectXMLCatalogIdPanel = new SelectXMLCatalogIdPanel(pageBook, xmlCatalog); - selectXMLCatalogIdPanel.getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - updateCompletionStateChange(); - } - }); - Dialog.applyDialogFont(parent); - pageBook.showPage(selectFilePanel.getControl()); - } - - public void setSingleFileViewDefaultSelection(ISelection selection) { - this.selectFilePanel.setDefaultSelection(selection); - } - - public IFile getFile() { - return selectFilePanel.getFile(); - } - - public String getXMLCatalogURI() { - return null; // XMLCatalog not supported - } - - public void setCatalogEntryType(int catalogEntryType) { - selectXMLCatalogIdPanel.setCatalogEntryType(catalogEntryType); - } - - public void setFilterExtensions(String[] filterExtensions) { - selectFilePanel.resetFilters(); - selectFilePanel.addFilterExtensions(filterExtensions); - - selectXMLCatalogIdPanel.getTableViewer().setFilterExtensions(filterExtensions); - } - - public void setListener(PanelListener listener) { - this.listener = listener; - } - - public void setVisibleHelper(boolean isVisible) { - selectFilePanel.setVisibleHelper(isVisible); - } - - public void updateCompletionStateChange() { - if (listener != null) { - listener.completionStateChanged(); - } - } - - public void widgetDefaultSelected(SelectionEvent e) { - } - - public void widgetSelected(SelectionEvent e) { - pageBook.showPage(selectFilePanel.getControl()); - - updateCompletionStateChange(); - } - - // ********** inner class ********** - - protected class SelectFilePanel extends SelectSingleFileViewFacade implements SelectSingleFileViewFacade.Listener { - protected Control control; - - public SelectFilePanel(Composite parent, IStructuredSelection selection) { - super(selection, true); - // String[] ext = {".dtd"}; - // addFilterExtensions(ext); - control = createControl(parent); - control.setLayoutData(new GridData(GridData.FILL_BOTH)); - SelectFilePanel.this.setListener(this); - } - - public Control getControl() { - return control; - } - - public void setControlComplete(boolean isComplete) { - updateCompletionStateChange(); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectSingleFileViewFacade.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectSingleFileViewFacade.java deleted file mode 100644 index c5363d54e6..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectSingleFileViewFacade.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.swt.widgets.Composite; - -/** - * SelectSingleFileView - * - * Façade class to change accessibility of SelectSingleFileView. - */ -@SuppressWarnings("restriction") -public class SelectSingleFileViewFacade extends org.eclipse.wst.common.ui.internal.viewers.SelectSingleFileView { - - public static interface Listener extends org.eclipse.wst.common.ui.internal.viewers.SelectSingleFileView.Listener - {} - - public SelectSingleFileViewFacade(IStructuredSelection selection, boolean isFileMandatory) { - super(selection, isFileMandatory); - } - - public void addFilterExtensions(String[] filterExtensions) { - super.addFilterExtensions(filterExtensions); - } - - public Composite createControl(Composite parent) { - return super.createControl(parent); - } - - public IFile getFile() { - return super.getFile(); - } - - public void resetFilters() { - super.resetFilters(); - } - - public void setVisibleHelper(boolean isVisible) { - super.setVisibleHelper(isVisible); - } - - public void setDefaultSelection(ISelection selection) { - super.setDefaultSelection(selection); - } - - public void setListener(Listener listener) { - super.setListener(listener); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectXMLCatalogIdPanel.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectXMLCatalogIdPanel.java deleted file mode 100644 index 3e1ec46a64..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/SelectXMLCatalogIdPanel.java +++ /dev/null @@ -1,146 +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 - * Code originate from org.eclipse.wst.xml.ui.internal.dialogs - *******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen; - -import java.util.Collection; -import java.util.List; -import java.util.Vector; - -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jpt.dbws.eclipselink.ui.JptDbwsUiPlugin; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.JptDbwsUiMessages; -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.swt.widgets.Label; -import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog; -import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry; -import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog; - - -public class SelectXMLCatalogIdPanel extends Composite { - protected int catalogEntryType; - protected boolean doTableSizeHack = false; - - protected XMLCatalogTableViewer tableViewer; - protected ICatalog fXmlCatalog; - - public SelectXMLCatalogIdPanel(Composite parent, ICatalog xmlCatalog) { - super(parent, SWT.NONE); - this.fXmlCatalog = xmlCatalog; - - GridLayout gridLayout = new GridLayout(); - this.setLayout(gridLayout); - GridData gd = new GridData(GridData.FILL_BOTH); - gd.heightHint = 200; - gd.widthHint = 700; - this.setLayoutData(gd); - - Label label = new Label(this, SWT.NONE); - label.setText(JptDbwsUiMessages.BuilderXmlWizardPage_xmlCatalogTableTitle); - - tableViewer = createTableViewer(this); - tableViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); - tableViewer.setInput("dummy"); //$NON-NLS-1$ - } - - protected XMLCatalogTableViewer createTableViewer(Composite parent) { - String headings[] = new String[2]; - headings[0] = JptDbwsUiMessages.BuilderXmlWizardPage_xmlCatalogKeyColumn; - headings[1] = JptDbwsUiMessages.BuilderXmlWizardPage_xmlCatalogUriColumn; - - XMLCatalogTableViewer theTableViewer = new XMLCatalogTableViewer(parent, headings) { - - protected void addXMLCatalogEntries(List list, ICatalogEntry[] entries) { - for (int i = 0; i < entries.length; i++) { - ICatalogEntry entry = entries[i]; - if (catalogEntryType == 0) { - list.add(entry); - } - else if (catalogEntryType == entry.getEntryType()) { - list.add(entry); - } - } - } - - public Collection getXMLCatalogEntries() { - List result = null; - - if ((fXmlCatalog == null) || doTableSizeHack) { - // this lets us create a table with an initial height of - // 10 rows - // otherwise we get stuck with 0 row heigh table... that's - // too small - doTableSizeHack = false; - result = new Vector(); - for (int i = 0; i < 6; i++) { - result.add(""); //$NON-NLS-1$ - } - } - else { - result = new Vector(); - INextCatalog[] nextCatalogs = fXmlCatalog.getNextCatalogs(); - for (int i = 0; i < nextCatalogs.length; i++) { - INextCatalog catalog = nextCatalogs[i]; - ICatalog referencedCatalog = catalog.getReferencedCatalog(); - if (referencedCatalog != null) { - if (JptDbwsUiPlugin.SYSTEM_CATALOG_ID.equals(referencedCatalog.getId())) { - ICatalog systemCatalog = referencedCatalog; - addXMLCatalogEntries(result, systemCatalog.getCatalogEntries()); - - } - else if (JptDbwsUiPlugin.USER_CATALOG_ID.equals(referencedCatalog.getId())) { - ICatalog userCatalog = referencedCatalog; - addXMLCatalogEntries(result, userCatalog.getCatalogEntries()); - - } - } - } - } - return result; - } - }; - return theTableViewer; - } - - - public String getId() { - ICatalogEntry entry = getXMLCatalogEntry(); - return entry != null ? entry.getKey() : null; - } - - public XMLCatalogTableViewer getTableViewer() { - return tableViewer; - } - - public String getURI() { - ICatalogEntry entry = getXMLCatalogEntry(); - return entry != null ? entry.getURI() : null; - } - - public ICatalogEntry getXMLCatalogEntry() { - ICatalogEntry result = null; - ISelection selection = tableViewer.getSelection(); - Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null; - if (selectedObject instanceof ICatalogEntry) { - result = (ICatalogEntry) selectedObject; - } - return result; - } - - public void setCatalogEntryType(int catalogEntryType) { - this.catalogEntryType = catalogEntryType; - tableViewer.refresh(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/WebDynamicProjectWizardPage.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/WebDynamicProjectWizardPage.java deleted file mode 100644 index 0e32bfda55..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/WebDynamicProjectWizardPage.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen; - -import org.eclipse.core.resources.IProject; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jpt.common.ui.internal.wizards.JavaProjectWizardPage; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.dbws.eclipselink.ui.internal.DbwsGeneratorUi; - -/** - * WebDynamicProjectWizardPage - */ -public class WebDynamicProjectWizardPage extends JavaProjectWizardPage { - - public WebDynamicProjectWizardPage(IJavaProject javaProject) { - super(javaProject); - } - - @Override - protected Iterable getJavaProjects() { - return new FilteringIterable(CollectionTools.collection(this.getProjects())) { - @Override - protected boolean accept(IProject next) { - return DbwsGeneratorUi.projectIsWebDynamic(next); - } - }; - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/XMLCatalogTableViewer.java b/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/XMLCatalogTableViewer.java deleted file mode 100644 index c556561adf..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.dbws.eclipselink.ui/src/org/eclipse/jpt/dbws/eclipselink/ui/internal/wizards/gen/XMLCatalogTableViewer.java +++ /dev/null @@ -1,195 +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 - * Code originate from org.eclipse.wst.xml.ui.internal.dialogs - *******************************************************************************/ -package org.eclipse.jpt.dbws.eclipselink.ui.internal.wizards.gen; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Comparator; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.viewers.ColumnWeightData; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.TableLayout; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.jpt.dbws.eclipselink.ui.JptDbwsUiPlugin; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.wst.common.uriresolver.internal.util.URIHelper; -import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry; - -import com.ibm.icu.text.Collator; - -public class XMLCatalogTableViewer extends TableViewer { - - protected static String ERROR_STATE_KEY = "errorstatekey"; //$NON-NLS-1$ - - protected static Image dtdFileImage = JptDbwsUiPlugin.getImage("icons/full/obj16/dtdfile.gif"); //$NON-NLS-1$ - protected static Image unknownFileImage = JptDbwsUiPlugin.getImage("icons/full/obj16/text.gif"); //$NON-NLS-1$ - protected static Image xsdFileImage = JptDbwsUiPlugin.getImage("icons/full/obj16/XSDFile.gif"); //$NON-NLS-1$ - protected static Image errorImage = JptDbwsUiPlugin.getImage("icons/full/ovr16/error_ovr.gif"); //$NON-NLS-1$ - - // ********** constructor ********** - - public XMLCatalogTableViewer(Composite parent, String[] columnProperties) { - super(parent, SWT.FULL_SELECTION); - - Table table = getTable(); - table.setLinesVisible(true); - table.setHeaderVisible(true); - table.setLinesVisible(true); - - TableLayout layout = new TableLayout(); - for (int i = 0; i < columnProperties.length; i++) { - TableColumn column = new TableColumn(table, i); - column.setText(columnProperties[i]); - column.setAlignment(SWT.LEFT); - layout.addColumnData(new ColumnWeightData(50, true)); - } - table.setLayout(layout); - table.setLinesVisible(false); - - setColumnProperties(columnProperties); - - setContentProvider(new CatalogEntryContentProvider()); - setLabelProvider(new CatalogEntryLabelProvider()); - } - - public Collection getXMLCatalogEntries() { - return null; - } - - public void menuAboutToShow(IMenuManager menuManager) { - Action action = new Action("hello") { //$NON-NLS-1$ - public void run() { - System.out.println("run!"); //$NON-NLS-1$ - } - }; - menuManager.add(action); - } - - public void setFilterExtensions(String[] extensions) { - resetFilters(); - addFilter(new XMLCatalogTableViewerFilter(extensions)); - } - - // ********** inner class ********** - - public class CatalogEntryContentProvider implements IStructuredContentProvider { - - public void dispose() { - } - - public Object[] getElements(Object element) { - Object[] array = getXMLCatalogEntries().toArray(); - Comparator comparator = new Comparator() { - public int compare(Object o1, Object o2) { - int result = 0; - if ((o1 instanceof ICatalogEntry) && (o2 instanceof ICatalogEntry)) { - ICatalogEntry mappingInfo1 = (ICatalogEntry) o1; - ICatalogEntry mappingInfo2 = (ICatalogEntry) o2; - result = Collator.getInstance().compare(mappingInfo1.getKey(), mappingInfo2.getKey()); - } - return result; - } - }; - Arrays.sort(array, comparator); - return array; - } - - public void inputChanged(Viewer viewer, Object old, Object newobj) { - } - - public boolean isDeleted(Object object) { - return false; - } - } - - public class CatalogEntryLabelProvider extends LabelProvider implements ITableLabelProvider { - - public Image getColumnImage(Object object, int columnIndex) { - Image result = null; - if (columnIndex == 0) { - Image base = null; - if (object instanceof ICatalogEntry) { - ICatalogEntry catalogEntry = (ICatalogEntry) object; - String uri = catalogEntry.getURI(); - if (uri.endsWith("dtd")) { //$NON-NLS-1$ - base = dtdFileImage; - } - else if (uri.endsWith("xsd")) { //$NON-NLS-1$ - base = xsdFileImage; - } - else { - base = unknownFileImage; - } - - if (base != null) { - if (URIHelper.isReadableURI(uri, false)) { - result = base; - } - else { - // TODO... SSE port - result = base;// imageFactory.createCompositeImage(base, - // errorImage, - // ImageFactory.BOTTOM_LEFT); - } - } - } - } - return result; - } - - public String getColumnText(Object object, int columnIndex) { - String result = null; - if (object instanceof ICatalogEntry) { - ICatalogEntry catalogEntry = (ICatalogEntry) object; - result = columnIndex == 0 ? catalogEntry.getKey() : catalogEntry.getURI(); - result = URIHelper.removePlatformResourceProtocol(result); - } - return result != null ? result : ""; //$NON-NLS-1$ - } - } - - class XMLCatalogTableViewerFilter extends ViewerFilter { - protected String[] extensions; - - public XMLCatalogTableViewerFilter(String[] extensions) { - this.extensions = extensions; - } - - public boolean isFilterProperty(Object element, Object property) { - return false; - } - - public boolean select(Viewer viewer, Object parent, Object element) { - boolean result = false; - if (element instanceof ICatalogEntry) { - ICatalogEntry catalogEntry = (ICatalogEntry) element; - for (int i = 0; i < extensions.length; i++) { - if (catalogEntry.getURI().endsWith(extensions[i])) { - result = true; - break; - } - } - } - return result; - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.cvsignore b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.cvsignore deleted file mode 100644 index c14487ceac..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -build.xml diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.project b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.project deleted file mode 100644 index 98560920c2..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/.project +++ /dev/null @@ -1,22 +0,0 @@ - - - org.eclipse.jpt.jaxb.branding - - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - - diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/META-INF/MANIFEST.MF deleted file mode 100644 index 1eae124537..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/META-INF/MANIFEST.MF +++ /dev/null @@ -1,7 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.jpt.jaxb.branding;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Localization: plugin -Bundle-Vendor: %providerName diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.html b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.html deleted file mode 100644 index ca606b1bb5..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

June 06, 2007

- -

License

- -

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/.

- - - \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.ini b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.ini deleted file mode 100644 index 7d88b9d396..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.ini +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2009 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -# 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=icons/WTP_icon_x32_v2.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 - -# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page -# optional -tipsAndTricksHref=/org.eclipse.jpt.doc.user/tips_and_tricks.htm - - diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.mappings b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.mappings deleted file mode 100644 index bddaab4310..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/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/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.properties deleted file mode 100644 index 9bd22c769c..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/about.properties +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################### -# Copyright (c) 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -# 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=Dali Java Persistence Tools - JAXB Support\n\ -\n\ -Version: {featureVersion}\n\ -Build id: {0}\n\ -\n\ -(c) Copyright Oracle contributors and others 2010, 2011. All rights reserved.\n\ -Visit http://www.eclipse.org/webtools diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/build.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/build.properties deleted file mode 100644 index 11a4e44db6..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/build.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -bin.includes = META-INF/,\ - about.ini,\ - about.html,\ - about.mappings,\ - about.properties,\ - icons/,\ - plugin.properties,\ - component.xml diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/component.xml b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/component.xml deleted file mode 100644 index bc275a758e..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/component.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/icons/WTP_icon_x32_v2.png b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/icons/WTP_icon_x32_v2.png deleted file mode 100644 index 6f09c2a700..0000000000 Binary files a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/icons/WTP_icon_x32_v2.png and /dev/null differ diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/plugin.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.branding/plugin.properties deleted file mode 100644 index fbe477feb2..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.branding/plugin.properties +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################### -# Copyright (c) 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools - JAXB Support -providerName = Eclipse Web Tools Platform diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.classpath b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.classpath deleted file mode 100644 index 304e86186a..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.cvsignore b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.cvsignore deleted file mode 100644 index c5e82d7458..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -bin \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project deleted file mode 100644 index 025cb3b6fa..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.jaxb.core.schemagen - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/META-INF/MANIFEST.MF deleted file mode 100644 index 74056248bf..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/META-INF/MANIFEST.MF +++ /dev/null @@ -1,11 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.jaxb.core.schemagen;singleton:=true -Bundle-Version: 1.0.100.qualifier -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Import-Package: javax.xml.bind -Export-Package: org.eclipse.jpt.jaxb.core.schemagen, - org.eclipse.jpt.jaxb.core.schemagen.internal;x-internal:=true diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/about.html b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/about.html deleted file mode 100644 index 071f586b21..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/about.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/.

- -

Third Party Content

-

The Content includes items that have been sourced from third parties as set - out below. If you did not receive this Content directly from the Eclipse Foundation, - the following is provided for informational purposes only, and you should look - to the Redistributor’s license for terms and conditions of use.

- -

Java Persistence API (JPA) v1.0

- -
-

The Java Persistence API (JPA) which is distributed under CDDL - v1.0 is required by the Dali Java Persistence Tools Project in order - to support this standard.

-
- - diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/build.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/build.properties deleted file mode 100644 index 8ac4a493cc..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2010 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -javacSource=1.5 -javacTarget=1.5 -source.. = src/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - about.html,\ - plugin.properties -jars.compile.order = . diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/plugin.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/plugin.properties deleted file mode 100644 index 2e7dfca4c9..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/plugin.properties +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2008 Oracle. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle. - initial API and implementation -############################################################################### -# ==================================================================== -# To code developer: -# Do NOT change the properties between this line and the -# "%%% END OF TRANSLATED PROPERTIES %%%" line. -# Make a new property name, append to the end of the file and change -# the code to use the new property. -# ==================================================================== - -# ==================================================================== -# %%% END OF TRANSLATED PROPERTIES %%% -# ==================================================================== - -pluginName = Dali Java Persistence Tools - JAXB Support - Schema Generation -providerName = Eclipse Web Tools Platform diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/Main.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/Main.java deleted file mode 100644 index 9f6a922785..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/Main.java +++ /dev/null @@ -1,287 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.jaxb.core.schemagen; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.SchemaOutputResolver; -import javax.xml.transform.Result; -import javax.xml.transform.stream.StreamResult; - -import org.eclipse.jpt.jaxb.core.schemagen.internal.JptJaxbCoreMessages; -import org.eclipse.jpt.jaxb.core.schemagen.internal.Tools; - -/** - * Generate a JAXB Schema - * - * Current command-line arguments: - * [-s schema.xsd] - specifies the target schema - * [-c className] - specifies the fully qualified class name - * - * [-p packageName] - specifies the source package // @deprecated - */ -public class Main -{ - private String[] sourceClassNames; - private String targetSchemaName; - @SuppressWarnings("unused") - private boolean isDebugMode; - - static public String NO_FACTORY_CLASS = "doesnt contain ObjectFactory.class"; //$NON-NLS-1$ - - // ********** static methods ********** - - public static void main(String[] args) { - new Main().execute(args); - } - - // ********** constructors ********** - - private Main() { - super(); - } - - // ********** behavior ********** - - protected void execute(String[] args) { - - this.initializeWith(args); - - this.generate(); - } - - // ********** internal methods ********** - - private void initializeWith(String[] args) { - this.sourceClassNames = this.getSourceClassNames(args); - this.targetSchemaName = this.getTargetSchemaName(args); - - this.isDebugMode = this.getDebugMode(args); - } - - private void generate() { - // Create the JAXBContext - JAXBContext jaxbContext = this.buildJaxbContext(); - - // Generate an XML Schema - if(jaxbContext != null) { - this.generateSchema(jaxbContext); - } - else { - System.out.println(Tools.bind(JptJaxbCoreMessages.SCHEMA_NOT_CREATED, this.targetSchemaName)); - } - } - - private JAXBContext buildJaxbContext() { - System.out.println(Tools.getString(JptJaxbCoreMessages.LOADING_CLASSES)); - JAXBContext jaxbContext = null; - try { - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - - Class[] sourceClasses = this.buildSourceClasses(this.sourceClassNames, loader); - - jaxbContext = JAXBContext.newInstance(sourceClasses); - } - catch(JAXBException ex) { - this.handleException(ex); - } - return jaxbContext; - } - - private void generateSchema(JAXBContext jaxbContext) { - System.out.println(Tools.getString(JptJaxbCoreMessages.GENERATING_SCHEMA)); - System.out.flush(); - - SchemaOutputResolver schemaOutputResolver = - new JptSchemaOutputResolver(this.targetSchemaName); - - try { - jaxbContext.generateSchema(schemaOutputResolver); - } - catch (IOException e) { - e.printStackTrace(); - } - } - - private Class[] buildSourceClasses(String[] classNames, ClassLoader loader) { - - ArrayList sourceClasses = new ArrayList(classNames.length); - for(String className: classNames) { - try { - sourceClasses.add(loader.loadClass(className)); - System.out.println(className); - } - catch (ClassNotFoundException e) { - System.err.println(Tools.bind(JptJaxbCoreMessages.NOT_FOUND, className)); - } - } - System.out.flush(); - return sourceClasses.toArray(new Class[0]); - } - - private void handleException(JAXBException ex) { - String message = ex.getMessage(); - Throwable linkedEx = ex.getLinkedException(); - if(message != null && message.indexOf(NO_FACTORY_CLASS) > -1) { - System.err.println(message); - } - else if(linkedEx != null && linkedEx instanceof ClassNotFoundException) { - String errorMessage = Tools.bind(JptJaxbCoreMessages.CONTEXT_FACTORY_NOT_FOUND, linkedEx.getMessage()); - System.err.println(errorMessage); - } - else { - ex.printStackTrace(); - } - } - - // ********** argument queries ********** - - private String[] getSourceClassNames(String[] args) { - - return this.getAllArgumentValue("-c", args); //$NON-NLS-1$ - } - - private String getTargetSchemaName(String[] args) { - - return this.getArgumentValue("-s", args); //$NON-NLS-1$ - } - - private boolean getDebugMode(String[] args) { - - return this.argumentExists("-debug", args); //$NON-NLS-1$ - } - - // ********** private methods ********** - - private String getArgumentValue(String argName, String[] args) { - for (int i = 0; i < args.length; i++) { - String arg = args[i]; - if (arg.toLowerCase().equals(argName)) { - int j = i + 1; - if (j < args.length) { - return args[j]; - } - } - } - return null; - } - - private String[] getAllArgumentValue(String argName, String[] args) { - List argValues = new ArrayList(); - for (int i = 0; i < args.length; i++) { - String arg = args[i]; - if (arg.toLowerCase().equals(argName)) { - int j = i + 1; - if (j < args.length) { - argValues.add(args[j]); - i++; - } - } - } - return argValues.toArray(new String[0]); - } - - private boolean argumentExists(String argName, String[] args) { - for (int i = 0; i < args.length; i++) { - String arg = args[i]; - if (arg.toLowerCase().equals(argName)) { - return true; - } - } - return false; - } - -} - -// ********** inner class ********** - -class JptSchemaOutputResolver extends SchemaOutputResolver { - - private final String defaultSchemaName; - - // ********** constructor ********** - - protected JptSchemaOutputResolver(String defaultSchemaName) { - this.defaultSchemaName = defaultSchemaName; - } - - // ********** overrides ********** - - @Override - public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { - - String filePath = (Tools.stringIsEmpty(namespaceURI)) ? - this.buildFileNameFrom(this.defaultSchemaName, suggestedFileName) : - this.modifyFileName(namespaceURI); - - filePath = this.canonicalFileName(filePath); - File file = new File(filePath); - StreamResult result = new StreamResult(file); - result.setSystemId(file.toURL().toExternalForm()); - - System.out.print(Tools.bind(JptJaxbCoreMessages.SCHEMA_GENERATED, file)); - return result; - } - - // ********** private methods ********** - - private String buildFileNameFrom(String fileName, String suggestedFileName) { - - fileName = Tools.stripExtension(fileName); - - if(Tools.stringIsEmpty(fileName)) { - return suggestedFileName; - } - String number = Tools.extractFileNumber(suggestedFileName); - - fileName = this.buildFileName(fileName, number); - return Tools.appendXsdExtension(fileName); - } - - private String buildFileName(String fileName, String number) { - - if(Tools.stringIsEmpty(number)) { - return fileName; - } - return (number.equals("0")) ? fileName : fileName + number; //$NON-NLS-1$ - } - - private String modifyFileName(String namespaceURI) throws IOException { - - String dir = Tools.extractDirectory(this.defaultSchemaName); - - String fileName = Tools.stripProtocol(namespaceURI); - fileName = fileName.replaceAll("/", "_"); //$NON-NLS-1$ - fileName = Tools.appendXsdExtension(fileName); - - String result = (Tools.stringIsEmpty(dir)) ? fileName : dir + File.separator + fileName; - - return result; - } - - private String canonicalFileName(String fileName) { - return this.canonicalFile(new File(fileName)).getAbsolutePath(); - } - - private File canonicalFile(File file) { - try { - return file.getCanonicalFile(); - } - catch (IOException ioexception) { - return file.getAbsoluteFile(); - } - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/JptJaxbCoreMessages.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/JptJaxbCoreMessages.java deleted file mode 100644 index 49170533dd..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/JptJaxbCoreMessages.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.jaxb.core.schemagen.internal; - -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -/** - * Localized messages used by Dali JAXB core. - */ -public class JptJaxbCoreMessages -{ - - public static final String LOADING_CLASSES = "LOADING_CLASSES"; - public static final String GENERATING_SCHEMA = "GENERATING_SCHEMA"; - public static final String SCHEMA_GENERATED = "SCHEMA_GENERATED"; - public static final String SCHEMA_NOT_CREATED = "SCHEMA_NOT_CREATED"; - public static final String NOT_FOUND = "NOT_FOUND"; - public static final String CONTEXT_FACTORY_NOT_FOUND = "CONTEXT_FACTORY_NOT_FOUND"; - - - private static final String BUNDLE_NAME = "org.eclipse.jpt.jaxb.core.schemagen.internal.jpt_jaxb_core"; //$NON-NLS-1$ - private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); - - private JptJaxbCoreMessages() { - } - - public static String getString(String key) { - try { - return RESOURCE_BUNDLE.getString(key); - } - catch (MissingResourceException e) { - return '!' + key + '!'; - } - } -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/Tools.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/Tools.java deleted file mode 100644 index 6427661dcd..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/Tools.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.jaxb.core.schemagen.internal; - -import java.io.File; -import java.text.MessageFormat; - -/** - * Tools - */ -public final class Tools -{ - /** default file name used by the schemagen */ - static public String GEN_DEFAULT_NAME = "schema"; //$NON-NLS-1$ - - /** empty string */ - public static final String EMPTY_STRING = ""; //$NON-NLS-1$ - - // ********** queries ********** - - /** - * Return whether the specified string is null, empty, or contains - * only whitespace characters. - */ - public static boolean stringIsEmpty(String string) { - if (string == null) { - return true; - } - int len = string.length(); - if (len == 0) { - return true; - } - return stringIsEmpty_(string.toCharArray(), len); - } - - private static boolean stringIsEmpty_(char[] s, int len) { - for (int i = len; i-- > 0; ) { - if ( ! Character.isWhitespace(s[i])) { - return false; - } - } - return true; - } - - // ********** short name manipulation ********** - - /** - * Strip the extension from the specified file name - * and return the result. If the file name has no - * extension, it is returned unchanged - * File#basePath() - */ - public static String stripExtension(String fileName) { - int index = fileName.lastIndexOf('.'); - if (index == -1) { - return fileName; - } - return fileName.substring(0, index); - } - - public static String stripProtocol(String uri) { - - return uri.replaceFirst("http://", EMPTY_STRING); - } - - - public static String appendXsdExtension(String name) { - - return name + ".xsd"; //$NON-NLS-1$ - } - - public static String extractFileNumber(String fileName) { - - String result = stripExtension(fileName); - if(Tools.stringIsEmpty(result)) { - return EMPTY_STRING; - } - return result.replaceFirst(GEN_DEFAULT_NAME, EMPTY_STRING); - } - - public static String extractDirectory(String path) { - if( ! path.contains(File.separator)) { - return EMPTY_STRING; - } - return path.substring(0, path.lastIndexOf(File.separator)); - } - - // ********** NLS utilities ********** - - public static String getString(String key) { - return JptJaxbCoreMessages.getString(key); - } - - public static String bind(String key, Object argument) { - return MessageFormat.format(getString(key), argument); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/jpt_jaxb_core.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/jpt_jaxb_core.properties deleted file mode 100644 index b9112cd725..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core.schemagen/src/org/eclipse/jpt/jaxb/core/schemagen/internal/jpt_jaxb_core.properties +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Copyright (c) 2010 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ - -LOADING_CLASSES = loading... -GENERATING_SCHEMA = \ngenerating schema... -SCHEMA_GENERATED = \nSchema {0} generated -SCHEMA_NOT_CREATED = \nSchema {0} not created -NOT_FOUND = \n\tNot found: {0} -CONTEXT_FACTORY_NOT_FOUND = \nThe JAXBContextFactory {0} \n\ -specified in the jaxb.properties file could not be located on the project classpath. \n\ -The JAXB provider that defines this factory should be added to the project classpath, \n\ -or the jaxb.properties file should be removed to use the default provider. diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/.classpath b/jaxb/plugins/org.eclipse.jpt.jaxb.core/.classpath deleted file mode 100644 index 934fb38085..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/.classpath +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/.cvsignore b/jaxb/plugins/org.eclipse.jpt.jaxb.core/.cvsignore deleted file mode 100644 index 31362a7d19..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -bin -@dot -temp.folder -build.xml -javaCompiler...args -javaCompiler...args.* diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/.project b/jaxb/plugins/org.eclipse.jpt.jaxb.core/.project deleted file mode 100644 index 54ea9292fc..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.eclipse.jpt.jaxb.core - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.jaxb.core/META-INF/MANIFEST.MF deleted file mode 100644 index e49484abc0..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,50 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-SymbolicName: org.eclipse.jpt.jaxb.core;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-Activator: org.eclipse.jpt.jaxb.core.JptJaxbCorePlugin -Bundle-ActivationPolicy: lazy -Bundle-ClassPath: . -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.200,4.0.0)", - org.eclipse.core.runtime;bundle-version="[3.6.100,4.0.0)", - org.eclipse.debug.core;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jdt.core;bundle-version="[3.7.0,4.0.0)", - org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jpt.common.core;bundle-version="[1.0.0,2.0.0)", - org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)", - org.eclipse.jst.common.project.facet.core;bundle-version="[1.4.200,2.0.0)", - org.eclipse.jst.j2ee;bundle-version="[1.1.402,2.0.0)", - org.eclipse.jst.j2ee.core;bundle-version="[1.2.100,2.0.0)", - org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,2.0.0)", - org.eclipse.wst.common.project.facet.core;bundle-version="[1.4.200,2.0.0)", - org.eclipse.wst.common.uriresolver;bundle-version="[1.1.401,2.0.0)", - org.eclipse.wst.validation;bundle-version="[1.2.200,2.0.0)", - org.eclipse.wst.xml.core;bundle-version="[1.1.600,2.0.0)", - org.eclipse.wst.xsd.core;bundle-version="[1.1.600,2.0.0)", - org.eclipse.xsd;bundle-version="[2.6.0,3.0.0)" -Export-Package: org.eclipse.jpt.jaxb.core, - org.eclipse.jpt.jaxb.core.context, - org.eclipse.jpt.jaxb.core.context.java, - org.eclipse.jpt.jaxb.core.internal;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.context;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.context.java;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.facet;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.gen;x-friends:="org.eclipse.jpt.jaxb.ui", - org.eclipse.jpt.jaxb.core.internal.jaxb21;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.jaxb22;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.libprov;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.libval;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.operations;x-friends:="org.eclipse.jpt.jaxb.ui", - org.eclipse.jpt.jaxb.core.internal.platform;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.resource.java;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.resource.java.binary;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.resource.java.source;x-internal:=true, - org.eclipse.jpt.jaxb.core.internal.validation;x-internal:=true, - org.eclipse.jpt.jaxb.core.libprov, - org.eclipse.jpt.jaxb.core.platform, - org.eclipse.jpt.jaxb.core.resource.java, - org.eclipse.jpt.jaxb.core.xsd diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/about.html b/jaxb/plugins/org.eclipse.jpt.jaxb.core/about.html deleted file mode 100644 index be534ba44f..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/about.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -About - - - - - -

About This Content

- -

May 02, 2008

- -

License

- -

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/jaxb/plugins/org.eclipse.jpt.jaxb.core/build.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core/build.properties deleted file mode 100644 index 93b16b88ae..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/build.properties +++ /dev/null @@ -1,20 +0,0 @@ -############################################################################### -# Copyright (c) 2010 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### -javacSource=1.5 -javacTarget=1.5 -source.. = src/,\ - property_files/ -output.. = bin/ -bin.includes = .,\ - META-INF/,\ - about.html,\ - plugin.xml,\ - plugin.properties -jars.compile.order = . diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/component.xml b/jaxb/plugins/org.eclipse.jpt.jaxb.core/component.xml deleted file mode 100644 index 1bf3de57da..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/component.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/plugin.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core/plugin.properties deleted file mode 100644 index 6f814334bb..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/plugin.properties +++ /dev/null @@ -1,31 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -############################################################################### - -pluginName = Dali Java Persistence Tools - JAXB Core -providerName = Eclipse Web Tools Platform - -JAXB_PLATFORMS = JAXB Platforms - -JAXB_PROBLEM_MARKER = JAXB Problem - -GENERIC_PLATFORM_GROUP_LABEL = Generic JAXB -GENERIC_2_2_PLATFORM_LABEL = Generic JAXB 2.2 -GENERIC_2_1_PLATFORM_LABEL = Generic JAXB 2.1 - -JAXB_FACET_LABEL = JAXB -JAXB_FACET_DESCRIPTION = Adds support for data binding using the Java Architecture for XML Binding (JAXB). -JAXB_TEMPLATE_LABEL = JAXB Project - -JAXB_NO_OP_LIBRARY_PROVIDER_MESSAGE = The JAXB facet requires a JAXB implementation library to be present on the project classpath. By disabling library configuration, the user takes on the responsibility of ensuring that the classpath is configured appropriately via alternate means. - -JAXB_JRE_LIBRARY_PROVIDER_LABEL = JRE -JAXB_JRE_LIBRARY_PROVIDER_MESSAGE = The project JRE provides the annotations and implementation to support the chosen JAXB version. - -JAXB_VALIDATOR = JAXB Validator diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/plugin.xml b/jaxb/plugins/org.eclipse.jpt.jaxb.core/plugin.xml deleted file mode 100644 index cda3f8216d..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/plugin.xml +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 900 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %JAXB_FACET_DESCRIPTION - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/property_files/jaxb_validation.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core/property_files/jaxb_validation.properties deleted file mode 100644 index 321b87376d..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/property_files/jaxb_validation.properties +++ /dev/null @@ -1,33 +0,0 @@ -################################################################################ -# Copyright (c) 2010, 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ - -NO_JAXB_PROJECT = This project has the JAXB facet, but no JAXB content could be created. See the error log for more details. -PROJECT_INVALID_LIBRARY_PROVIDER=The currently selected JAXB library provider is invalid. - -PACKAGE_NO_SCHEMA_FOR_NAMESPACE = There is no schema specified on the project for the namespace ''{0}'' on the package ''{1}''. No schema-specific validation will be performed. -PACKAGE_XML_JAVA_TYPE_ADAPTER_TYPE_NOT_SPECIFIED = The type must be specified for an XML Java type adapter on a package - -XML_TYPE_UNMATCHING_NAMESPACE_FOR_ANONYMOUS_TYPE = The namespace for an anonymous type should not be different from its package -XML_TYPE_UNRESOLVED_SCHEMA_TYPE = The type definition with name ''{0}'' and namespace ''{1}'' cannot be resolved - -XML_ROOT_ELEMENT_UNRESOLVED_SCHEMA_ELEMENT = The element declaration with name ''{0}'' and namespace ''{1}'' cannot be resolved -XML_ROOT_ELEMENT_TYPE_CONFLICTS_WITH_XML_TYPE = The xml type of the element declaration with name ''{0}'' and namespace ''{1}'' conflicts with the xml type of the associated class - -ATTRIBUTE_MAPPING_XML_JAVA_TYPE_ADAPTER_TYPE_NOT_DEFINED = The type for XML Java type adapter is not defined -XML_ELEMENT_WRAPPER_DEFINED_ON_NON_ARRAY_NON_COLLECTION = XmlElementWrapper is only allowed on a collection or array property -XML_LIST_DEFINED_ON_NON_ARRAY_NON_COLLECTION = XmlList is only allowed on a collection or array property -MULTIPLE_XML_ANY_ELEMENT_MAPPINGS_DEFINED = Attribute ''{0}'' cannot be mapped as XmlAnyElement because attribute ''{1}'' is already mapped as XmlAnyElement, cannot define multiple XmlAnyElement mappings -MULTIPLE_XML_ANY_ATTRIBUTE_MAPPINGS_DEFINED = Attribute ''{0}'' cannot be mapped as XmlAnyAttribute because attribute ''{1}'' is already mapped as XmlAnyAttribute, cannot define multiple XmlAnyAttribute mappings -MULTIPLE_XML_VALUE_MAPPINGS_DEFINED = Attribute ''{0}'' cannot be mapped as XmlValue because attribute ''{1}'' is already mapped as XmlValue, cannot define multiple XmlValue mappings -XML_VALUE_MAPPING_WITH_NON_XML_ATTRIBUTE_MAPPING_DEFINED = Attribute ''{0}'' must be mapped as XmlAttribute because another attribute ''{1}'' is mapped as XmlValue -XML_ANY_ATTRIBUTE_MAPPING_DEFINED_ON_NON_MAP = XmlAnyAttribute is only allowed on a property assignable to java.util.Map -XML_ID_DEFINED_ON_NON_STRING = XmlID is only allowed on a java.lang.String property -MULTIPLE_XML_IDS_DEFINED = Attribute ''{0}'' cannot have an XmlID because attribute ''{1}'' already has an XmlID, cannot define multiple mappings with XmlID -XML_IDREF_TYPE_DOES_NOT_CONTAIN_XML_ID = Attribute ''{0}'' is an XmlIDREF, type ''{1}'' must contain a property or field annotated with @XmlId \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/property_files/jpt_jaxb_core.properties b/jaxb/plugins/org.eclipse.jpt.jaxb.core/property_files/jpt_jaxb_core.properties deleted file mode 100644 index 0688655614..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/property_files/jpt_jaxb_core.properties +++ /dev/null @@ -1,22 +0,0 @@ -################################################################################ -# Copyright (c) 2010, 2011 Oracle. All rights reserved. -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0, which accompanies this distribution -# and is available at http://www.eclipse.org/legal/epl-v10.html. -# -# Contributors: -# Oracle - initial API and implementation -################################################################################ - -SchemaGenerator_creatingJAXBPropertiesFileTask = Creating jaxb.properties file - -ClassesGenerator_generatingClasses = Generating JAXB Classes from Schema -ClassesGenerator_generatingClassesTask = Generating classes - -JaxbFacetConfig_validatePlatformNotSpecified = Platform must be specified -JaxbFacetConfig_validatePlatformDoesNotSupportFacetVersion = Platform does not support the current JAXB facet version - -JreLibraryValidator_invalidPlatform = Project JRE does not support the current JAXB platform. -JreLibraryValidator_invalidJreJaxbVersion = Project JRE does not support the current JAXB version. - -PREFERENCES_FLUSH_JOB_NAME=Flush Preferences: {0} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/schema/jaxbPlatforms.exsd b/jaxb/plugins/org.eclipse.jpt.jaxb.core/schema/jaxbPlatforms.exsd deleted file mode 100644 index 92b9195c13..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/schema/jaxbPlatforms.exsd +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - This is used for defining JAXB platforms and JAXB platform versions. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Declares a JAXB platform group. Acts as a sort of "super" platform. Most useful for enabling functionality for a set of platforms without having to enable the functionality for each platform separately. - - - - - - - The unique identifier for a JAXB platform group. - - - - - - - A translatable string representation of the JAXB platform group. - - - - - - - - - - - - - Declares a JAXB platform. One JAXB platform will be selected per JAXB-faceted project. See <samp>org.eclipse.jpt.jaxb.core.JaxbPlatform</samp> for more information on JAXB platforms. Also see the org.eclipse.jpt.jaxb.ui.jaxbPlatformUis extension point. - - - - - - - - - - - - - - A translatable string representation of the platform. - - - - - - - - - - The class that implements <samp>org.eclipse.jpt.jaxb.core.JaxbPlatformDefinitionFactory</samp>. - - - - - - - - - - Declares which JAXB platform group this platform belongs to. If none is specified, this platform will be assumed to belong to its own group with the same id. - - - - - - - Declares the JAXB facet version for which this platform may be used. If no facet version is specified, this platform is available for all JAXB facet versions. - - - - - - - Declares whether this platform should be used as a default JAXB platform for new JAXB project content. Note that if a workspace contains more than one default platform for a JAXB facet version, one of them will be chosen at random. By default, a platform is not a default platform. - - - - - - - - - - - - JPT 3.0 - - - - - - - - - <br> -<p> -The following example is the included generic JAXB 2.2 platform and its platform group -<p> -<pre> -<extension point="org.eclipse.jpt.jaxb.core.jaxbPlatforms"> - - <jaxbPlatformGroup - id="generic" - label="%GENERIC_PLATFORM_GROUP_LABEL"/> - - <jaxbPlatform - id="generic_2_2" - label="%GENERIC_2_2_PLATFORM_LABEL" - factoryClass="org.eclipse.jpt.jaxb.core.internal.jaxb22.GenericJaxb_2_2_PlatformDefinitionFactory" - group="generic" - jaxbFacetVersion="2.2" - default="false"/> - - </extension> - - - - - - - - - <br> -Provisional API: This interface is part of an interim API that is still -under development and expected to change significantly before reaching -stability. It is available at this early stage to solicit feedback from -pioneering adopters on the understanding that any code that uses this API -will almost certainly be broken (repeatedly) as the API evolves. - - - - - - - - - <br> -<p>The org.eclipse.jpt.jaxb.core plug-in provides the following jaxb platforms: -<ul> -<li>generic_2_2</li> -</ul> -</p> -<p>and the following jaxb platform groups: -<ul> -<li>generic</li> -</ul> -</p> - - - - - - - - - Copyright (c) 2010 Oracle. All rights reserved. -This program and the accompanying materials are made available under the -terms of the Eclipse Public License v1.0, which accompanies this distribution -and is available at http://www.eclipse.org/legal/epl-v10.html. - -Contributors: -Oracle - initial API and implementation - - - - diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/AnnotationProvider.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/AnnotationProvider.java deleted file mode 100644 index 034e5615e9..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/AnnotationProvider.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import org.eclipse.jdt.core.IAnnotation; -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement; -import org.eclipse.jpt.jaxb.core.resource.java.Annotation; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAnnotatedElement; -import org.eclipse.jpt.jaxb.core.resource.java.NestableAnnotation; - -/** - * This is used to provide type and attribute annotations. - * Also provides list of supported annotation names, check the appropriate list - * before trying to build an annotation with that name. An exception will - * be thrown on an attempt to build an annotation that does not exist. - * - * This interface is not intended to be implemented. Instead implement - * AnnotationDefinitionProvider to extend the list of supported annotation definitions. - * - * @see AnnotationDefinitionProvider - * @version 3.0 - * @since 3.0 - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface AnnotationProvider { - - /** - * Return the names of the annotations. - */ - Iterable getAnnotationNames(); - - Iterable getContainerAnnotationNames(); - - Iterable getNestableAnnotationNames(); - - String getNestableAnnotationName(String containerAnnotationName); - - String getNestableElementName(String nestableAnnotationName); - - /** - * Build an annotation with the specified name. - * Throw an IllegalArgumentException if the specified name is unsupported. - * @see #getAnnotationNames() - */ - Annotation buildAnnotation(JavaResourceAnnotatedElement parent, AnnotatedElement element, String annotationName); - - /** - * Build a nestable annotation with the specified name and index. - * Throw an IllegalArgumentException if the specified name is unsupported. - * @see #getNestableAnnotationNames() - */ - NestableAnnotation buildAnnotation(JavaResourceAnnotatedElement parent, AnnotatedElement element, String annotationName, int index); - - /** - * Build an annotation for the specified JDT annotation. - * Throw an IllegalArgumentException if the specified annotation is unsupported. - * @see #getAnnotationNames() - */ - Annotation buildAnnotation(JavaResourceAnnotatedElement parent, IAnnotation jdtAnnotation); - - /** - * Build a null annotation with the specified name. - * Throw an IllegalArgumentException if the specified annotation is unsupported. - * @see #getAnnotationNames() - */ - Annotation buildNullAnnotation(JavaResourceAnnotatedElement parent, String annotationName); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbPlatform.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbPlatform.java deleted file mode 100644 index a6cda374d8..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbPlatform.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDescription; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformGroupDescription; - -/** - * Constants pertaining to the Generic JAXB platforms and their group. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public class GenericJaxbPlatform { - - public static final JaxbPlatformGroupDescription GROUP - = JptJaxbCorePlugin.getJaxbPlatformManager().getJaxbPlatformGroup("generic"); //$NON-NLS-1$ - - public static final JaxbPlatformDescription VERSION_2_1 - = JptJaxbCorePlugin.getJaxbPlatformManager().getJaxbPlatform("generic_2_1"); //$NON-NLS-1$ - - public static final JaxbPlatformDescription VERSION_2_2 - = JptJaxbCorePlugin.getJaxbPlatformManager().getJaxbPlatform("generic_2_2"); //$NON-NLS-1$ - - - /** - * Not for instantiation - */ - private GenericJaxbPlatform() {} -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbProjectManager.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbProjectManager.java deleted file mode 100644 index c4056c7bd5..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/GenericJaxbProjectManager.java +++ /dev/null @@ -1,1038 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import java.util.Vector; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IResourceChangeEvent; -import org.eclipse.core.resources.IResourceChangeListener; -import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.resources.IResourceProxy; -import org.eclipse.core.resources.IResourceProxyVisitor; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.IncrementalProjectBuilder; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.jobs.IJobManager; -import org.eclipse.core.runtime.jobs.ILock; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.jdt.core.ElementChangedEvent; -import org.eclipse.jdt.core.IElementChangedListener; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jpt.common.core.internal.JptCommonCoreMessages; -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.internal.AsynchronousCommandExecutor; -import org.eclipse.jpt.common.utility.internal.SimpleCommandExecutor; -import org.eclipse.jpt.common.utility.internal.StatefulCommandExecutor; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.SynchronizedBoolean; -import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.jaxb.core.internal.SimpleJaxbProjectConfig; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDefinition; -import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework; -import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent; -import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener; -import org.eclipse.wst.common.project.facet.core.events.IProjectFacetActionEvent; -import org.osgi.framework.BundleContext; - -/** - * The JAXB project manager maintains a list of all JAXB projects in the workspace. - * It keeps the list (and the state of the JAXB projects themselves) - * synchronized with the workspace by listening for various - * changes:
    - *
  • Resource - *
  • Java - *
  • Faceted Project - *
- * We use an Eclipse {@link ILock lock} to synchronize access to the JAXB - * projects when dealing with these events. In an effort to reduce deadlocks, - * the simple Resource and Java change events are dispatched to a background - * thread, allowing us to handle the events outside of the workspace lock held - * during resource and Java change notifications. - *

- * Events that trigger either the adding or removing of a JAXB project (e.g. - * {@link IResourceChangeEvent#POST_CHANGE}) are handled "synchronously" - * by allowing the background thread to handle any outstanding events before - * updating the list of JAXB projects and returning execution to the event - * source. - *

- * Various things that cause us to add or remove a JAXB project:

    - *
  • The {@link JptJaxbCorePlugin} will "lazily" instantiate and {@link #start() start} - * a JAXB project manager as appropriate. This will trigger the manager - * to find and add all pre-existing JAXB projects. - * - *
  • Project created and facet installed

    - * {@link IResourceChangeEvent#POST_CHANGE} - *

  • Project facet uninstalled

    - * {@link IFacetedProjectEvent.Type#PRE_UNINSTALL} - * - *

  • Project opened

    - * {@link IResourceChangeEvent#POST_CHANGE} - * -> {@link IResource#FILE} - * -> {@link IResourceDelta#ADDED} facet settings file - * (/.settings/org.eclipse.wst.common.project.facet.core.xml) - *

  • Project closed

    - * {@link IResourceChangeEvent#POST_CHANGE} - * -> {@link IResource#FILE} - * -> {@link IResourceDelta#REMOVED} facet settings file - * - *

  • Pre-existing project imported from directory or archive (created and opened)

    - * {@link IResourceChangeEvent#POST_CHANGE} - * -> {@link IResource#FILE} - * -> {@link IResourceDelta#ADDED} facet settings file - *

  • Project renamed

    - * {@link IResourceChangeEvent#POST_CHANGE} - * -> {@link IResource#FILE} - * -> {@link IResourceDelta#REMOVED} facet settings file of old project - * -> {@link IResourceDelta#ADDED} facet settings file of new project - *

  • Project deleted

    - * {@link IResourceChangeEvent#POST_CHANGE} - * -> {@link IResource#FILE} - * -> {@link IResourceDelta#REMOVED} facet settings file - * - *

  • Project facet installed by editing the facets settings file directly

    - * {@link IResourceChangeEvent#POST_CHANGE} - * -> {@link IResource#FILE} - * -> {@link IResourceDelta#CHANGED} facet settings file - *

  • Project facet uninstalled by editing the facets settings file directly

    - * {@link IResourceChangeEvent#POST_CHANGE} - * -> {@link IResource#FILE} - * -> {@link IResourceDelta#CHANGED} facet settings file - *

- */ -//TODO Still need to look at faceted project listener for facet uninstall -class GenericJaxbProjectManager - extends AbstractModel - implements JaxbProjectManager { - - /** - * All the JAXB projects in the workspace. - */ - private final Vector jaxbProjects = new Vector(); - - /** - * Synchronize access to the JAXB projects. - */ - /* private */ final ILock lock = this.getJobManager().newLock(); - - /** - * Determine how Resource and Java change events are - * handled (i.e. synchronously or asynchronously). - */ - private volatile StatefulCommandExecutor eventHandler = new AsynchronousCommandExecutor(JptCommonCoreMessages.DALI_EVENT_HANDLER_THREAD_NAME); - - /** - * Listen for
    - *
  • changes to projects and files - *
  • clean builds - *
- */ - private final IResourceChangeListener resourceChangeListener = new ResourceChangeListener(); - - /** - * The types of resource change events that interest - * {@link #resourceChangeListener}. - */ - private static final int RESOURCE_CHANGE_EVENT_TYPES = - IResourceChangeEvent.POST_CHANGE | - IResourceChangeEvent.POST_BUILD; - - /** - * Listen for changes to this file to determine when the JAXB facet is - * added to or removed from a "faceted" project. - */ - private static final String FACETED_PROJECT_FRAMEWORK_SETTINGS_FILE_NAME = FacetedProjectFramework.PLUGIN_ID + ".xml"; //$NON-NLS-1$ - - /** - * Listen for the JAXB facet being added to or removed from a "faceted" project. - */ - private final IFacetedProjectListener facetedProjectListener = new FacetedProjectListener(); - - /** - * The types of faceted project events that interest - * {@link #facetedProjectListener}. - */ - private static final IFacetedProjectEvent.Type[] FACETED_PROJECT_EVENT_TYPES = new IFacetedProjectEvent.Type[] { - IFacetedProjectEvent.Type.PRE_UNINSTALL - }; - - /** - * Listen for Java changes (unless the Dali UI is active). - * @see #javaElementChangeListenerIsActive() - */ - private final JavaElementChangeListener javaElementChangeListener = new JavaElementChangeListener(); - - /** - * The types of resource change events that interest - * {@link #javaElementChangeListener}. - */ - private static final int JAVA_CHANGE_EVENT_TYPES = - ElementChangedEvent.POST_CHANGE | - ElementChangedEvent.POST_RECONCILE; - - - // ********** constructor ********** - - /** - * Internal: called by {@link JptJUaxbCorePlugin Dali plug-in}. - */ - GenericJaxbProjectManager() { - super(); - } - - - // ********** plug-in controlled life-cycle ********** - - /** - * Internal: called by {@link JptJaxbCorePlugin Dali plug-in}. - */ - void start() { - try { - this.lock.acquire(); - this.start_(); - } finally { - this.lock.release(); - } - } - - private void start_() { - debug("*** JAXB project manager START ***"); //$NON-NLS-1$ - try { - this.buildJaxbProjects(); - this.eventHandler.start(); - this.getWorkspace().addResourceChangeListener(this.resourceChangeListener, RESOURCE_CHANGE_EVENT_TYPES); - FacetedProjectFramework.addListener(this.facetedProjectListener, FACETED_PROJECT_EVENT_TYPES); - JavaCore.addElementChangedListener(this.javaElementChangeListener, JAVA_CHANGE_EVENT_TYPES); - } catch (RuntimeException ex) { - JptJaxbCorePlugin.log(ex); - this.stop_(); - } - } - - /** - * Side-effect: {@link #jaxbProjects} populated. - */ - private void buildJaxbProjects() { - try { - this.buildJaxbProjects_(); - } catch (CoreException ex) { - // if we have a problem, leave the currently built JAXB projects in - // place and keep executing (should be OK...) - JptJaxbCorePlugin.log(ex); - } - } - - private void buildJaxbProjects_() throws CoreException { - this.getWorkspace().getRoot().accept(new ResourceProxyVisitor(), IResource.NONE); - } - - /** - * Internal: called by {@link JptJaxbCorePlugin Dali plug-in}. - */ - void stop() throws Exception { - try { - this.lock.acquire(); - this.stop_(); - } finally { - this.lock.release(); - } - } - - private void stop_() { - debug("*** JAXB project manager STOP ***"); //$NON-NLS-1$ - JavaCore.removeElementChangedListener(this.javaElementChangeListener); - FacetedProjectFramework.removeListener(this.facetedProjectListener); - this.getWorkspace().removeResourceChangeListener(this.resourceChangeListener); - this.eventHandler.stop(); - this.clearJaxbProjects(); - } - - private void clearJaxbProjects() { - // clone to prevent concurrent modification exceptions - for (JaxbProject jaxbProject : this.getJaxbProjects_()) { - this.removeJaxbProject(jaxbProject); - } - } - - - // ********** JaxbProjectManager implementation ********** - - public Iterable getJaxbProjects() { - try { - this.lock.acquire(); - return this.getJaxbProjects_(); - } finally { - this.lock.release(); - } - } - - private Iterable getJaxbProjects_() { - return new LiveCloneIterable(this.jaxbProjects); - } - - public int getJaxbProjectsSize() { - return this.jaxbProjects.size(); - } - - public JaxbProject getJaxbProject(IProject project) { - try { - this.lock.acquire(); - return this.getJaxbProject_(project); - } finally { - this.lock.release(); - } - } - - private JaxbProject getJaxbProject_(IProject project) { - for (JaxbProject jaxbProject : this.jaxbProjects) { - if (jaxbProject.getProject().equals(project)) { - return jaxbProject; - } - } - return null; - } - - public JaxbFile getJaxbFile(IFile file) { - JaxbProject jaxbProject = this.getJaxbProject(file.getProject()); - return (jaxbProject == null) ? null : jaxbProject.getJaxbFile(file); - } - - public void rebuildJaxbProject(IProject project) { - try { - this.lock.acquire(); - this.rebuildJaxbProject_(project); - } finally { - this.lock.release(); - } - } - - /** - * assumption: the JAXB project holder exists - */ - private void rebuildJaxbProject_(IProject project) { - this.removeJaxbProject(this.getJaxbProject_(project)); - this.addJaxbProject(project); - } - - public boolean javaElementChangeListenerIsActive() { - return this.javaElementChangeListener.isActive(); - } - - public void setJavaElementChangeListenerIsActive(boolean javaElementChangeListenerIsActive) { - this.javaElementChangeListener.setActive(javaElementChangeListenerIsActive); - } - - public IWorkspace getWorkspace() { - return ResourcesPlugin.getWorkspace(); - } - - public IJobManager getJobManager() { - return Job.getJobManager(); - } - - - // ********** adding/removing JAXB projects ********** - - /* private */ void addJaxbProject(IProject project) { - this.addJaxbProject(this.buildJaxbProject(project)); - } - - private void addJaxbProject(JaxbProject jaxbProject) { - // figure out exactly when JAXB projects are added - dumpStackTrace("add: ", jaxbProject); //$NON-NLS-1$ - // the JAXB project will be null if we have any problems building it... - // (e.g. if we have problems getting the JAXB platform) - if (jaxbProject != null) { - this.addItemToCollection(jaxbProject, this.jaxbProjects, JAXB_PROJECTS_COLLECTION); - } - } - - /** - * return null if we have any problems... - */ - private JaxbProject buildJaxbProject(IProject project) { - return this.buildJaxbProject(this.buildJaxbProjectConfig(project)); - } - - /** - * return null if we have any problems... - */ - private JaxbProject buildJaxbProject(JaxbProject.Config config) { - JaxbPlatformDefinition platformDefinition = config.getPlatformDefinition(); - if (platformDefinition == null) { - return null; - } - JaxbProject jaxbProject = this.buildJaxbProject(platformDefinition, config); - if (jaxbProject == null) { - return null; - } -// jaxbProject.setUpdateSynchronizer(new CallbackAsynchronousSynchronizer()); - return jaxbProject; - } - - /** - * return null if we have any problems... - */ - private JaxbProject buildJaxbProject(JaxbPlatformDefinition platformDefinition, JaxbProject.Config config) { - try { - return platformDefinition.getFactory().buildJaxbProject(config); - } - catch (RuntimeException ex) { - JptJaxbCorePlugin.log(ex); - return null; - } - } - - private JaxbProject.Config buildJaxbProjectConfig(IProject project) { - SimpleJaxbProjectConfig config = new SimpleJaxbProjectConfig(); - config.setProject(project); - config.setPlatformDefinition(JptJaxbCorePlugin.getJaxbPlatformManager().buildJaxbPlatformDefinition(project)); - return config; - } - - /* private */ void removeJaxbProject(JaxbProject jaxbProject) { - // figure out exactly when JAXB projects are removed - dumpStackTrace("remove: ", jaxbProject); //$NON-NLS-1$ - this.removeItemFromCollection(jaxbProject, this.jaxbProjects, JAXB_PROJECTS_COLLECTION); - jaxbProject.dispose(); - } - - - // ********** Project POST_CHANGE ********** - - /* private */ void projectChanged(IResourceDelta delta) { - this.eventHandler.execute(this.buildProjectChangedCommand(delta)); - } - - private Command buildProjectChangedCommand(final IResourceDelta delta) { - return new EventHandlerCommand("Project POST_CHANGE Command") { //$NON-NLS-1$ - @Override - void execute_() { - GenericJaxbProjectManager.this.projectChanged_(delta); - } - }; - } - - /** - * Forward the specified resource delta to all our JAXB projects; - * they will each determine whether the event is significant. - */ - /* private */ void projectChanged_(IResourceDelta delta) { - for (JaxbProject jaxbProject : this.jaxbProjects) { - jaxbProject.projectChanged(delta); - } - } - - - // ********** Project POST_BUILD (CLEAN_BUILD) ********** - - /* private */ void projectPostCleanBuild(IProject project) { - this.executeAfterEventsHandled(this.buildProjectPostCleanBuildCommand(project)); - } - - private Command buildProjectPostCleanBuildCommand(final IProject project) { - return new EventHandlerCommand("Project POST_BUILD (CLEAN_BUILD) Command") { //$NON-NLS-1$ - @Override - void execute_() { - GenericJaxbProjectManager.this.projectPostCleanBuild_(project); - } - }; - } - - /* private */ void projectPostCleanBuild_(IProject project) { - JaxbProject jaxbProject = this.getJaxbProject_(project); - if (jaxbProject != null) { - this.removeJaxbProject(jaxbProject); - this.addJaxbProject(project); - } - } - - - // ********** File POST_CHANGE ********** - - /** - * The Faceted Project settings file has changed in some fashion, check - * whether the JAXB facet has been added to or removed from the specified - * project. - */ - /* private */ void checkForJaxbFacetTransition(IProject project) { - JaxbProject jaxbProject = this.getJaxbProject_(project); - - if (JaxbFacet.isInstalled(project)) { - if (jaxbProject == null) { // JAXB facet added - this.executeAfterEventsHandled(this.buildAddJaxbProjectCommand(project)); - } - } else { - if (jaxbProject != null) { // JAXB facet removed - this.executeAfterEventsHandled(this.buildRemoveJaxbProjectCommand(jaxbProject)); - } - } - } - - private Command buildAddJaxbProjectCommand(final IProject project) { - return new EventHandlerCommand("Add JAXB Project Command") { //$NON-NLS-1$ - @Override - void execute_() { - GenericJaxbProjectManager.this.addJaxbProject(project); - } - }; - } - - private Command buildRemoveJaxbProjectCommand(final JaxbProject jaxbProject) { - return new EventHandlerCommand("Remove JAXB Project Command") { //$NON-NLS-1$ - @Override - void execute_() { - GenericJaxbProjectManager.this.removeJaxbProject(jaxbProject); - } - }; - } - - // ********** FacetedProject PRE_UNINSTALL ********** - - /* private */ void jaxbFacetedProjectPreUninstall(IProjectFacetActionEvent event) { - IProject project = event.getProject().getProject(); - this.executeAfterEventsHandled(this.buildJaxbFacetedProjectPreUninstallCommand(project)); - } - - private Command buildJaxbFacetedProjectPreUninstallCommand(final IProject project) { - return new EventHandlerCommand("Faceted Project PRE_UNINSTALL Command") { //$NON-NLS-1$ - @Override - void execute_() { - GenericJaxbProjectManager.this.jaxbFacetedProjectPreUninstall_(project); - } - }; - } - - /* private */ void jaxbFacetedProjectPreUninstall_(IProject project) { - // assume(?) this is the first event to indicate we need to remove the JAXB project from the JAXB project manager - this.removeJaxbProject(this.getJaxbProject_(project)); - } - - - // ********** Java element changed ********** - - /* private */ void javaElementChanged(ElementChangedEvent event) { - this.eventHandler.execute(this.buildJavaElementChangedCommand(event)); - } - - private Command buildJavaElementChangedCommand(final ElementChangedEvent event) { - return new EventHandlerCommand("Java element changed Command") { //$NON-NLS-1$ - @Override - void execute_() { - GenericJaxbProjectManager.this.javaElementChanged_(event); - } - }; - } - - /** - * Forward the Java element changed event to all the JAXB projects - * because the event could affect multiple projects. - */ - /* private */ void javaElementChanged_(ElementChangedEvent event) { - for (JaxbProject jaxbProject : this.jaxbProjects) { - jaxbProject.javaElementChanged(event); - } - } - - - // ********** miscellaneous ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(this.jaxbProjects); - } - - - // ********** event handler ********** - - /** - * If the event handler is executing asynchronously:
- * Allow all the commands currently on the command executor's queue to execute. - * Once they have executed, suspend the command executor and process the - * specified command (on this thread, not the command - * executor thread). Once the specified command is finished, allow the - * command executor to resume processing its command queue. - *

- * If the event handler is executing synchronously:
- * All the events have already been handled synchronously, so we simply - * execute the specified command [sorta] directly. - */ - private void executeAfterEventsHandled(Command command) { - SynchronizedBoolean flag = new SynchronizedBoolean(false); - this.eventHandler.execute(new PauseCommand(flag)); - try { - flag.waitUntilTrue(); - } catch (InterruptedException ex) { - // ignore - not sure why this thread would be interrupted - } - try { - command.execute(); - } finally { - flag.setFalse(); - } - } - - /** - * If this "pause" command is executing (asynchronously) on a different - * thread than the JAXB project manager:

    - *
  1. it will set the flag to true, allowing the JAXB project - * manager to resume executing on its own thread - *
  2. then it will suspend its command executor until the JAXB project - * manager sets the flag back to false. - *
- * If this "pause" command is executing (synchronously) on the same thread - * as the JAXB project manager, it will simply set the flag to - * true and return. - */ - private static class PauseCommand - implements Command - { - private final Thread producerThread; - private final SynchronizedBoolean flag; - - PauseCommand(SynchronizedBoolean flag) { - this(Thread.currentThread(), flag); - } - - PauseCommand(Thread producerThread, SynchronizedBoolean flag) { - super(); - this.producerThread = producerThread; - this.flag = flag; - } - - public void execute() { - this.flag.setTrue(); - if (Thread.currentThread() != this.producerThread) { - try { - this.flag.waitUntilFalse(); - } catch (InterruptedException ex) { - // ignore - the command executor will check for interruptions - } - } - } - } - - /** - * This method is called (via reflection) when the test plug-in is loaded. - * @see JptCoreTestsPlugin#start(BundleContext) - */ - public void handleEventsSynchronously() { - try { - this.lock.acquire(); - this.handleEventsSynchronously_(); - } finally { - this.lock.release(); - } - } - - private void handleEventsSynchronously_() { - this.eventHandler.stop(); - this.eventHandler = new SimpleCommandExecutor(); - this.eventHandler.start(); - } - - - // ********** resource proxy visitor ********** - - /** - * Visit the workspace resource tree, adding a JAXB project to the - * JAXB project manager for each open Eclipse project that has a JAXB facet. - */ - private class ResourceProxyVisitor implements IResourceProxyVisitor { - ResourceProxyVisitor() { - super(); - } - - public boolean visit(IResourceProxy resourceProxy) { - switch (resourceProxy.getType()) { - case IResource.ROOT : - return true; // all projects are in the "root" - case IResource.PROJECT : - this.processProject(resourceProxy); - return false; // no nested projects - case IResource.FOLDER : - return false; // ignore - case IResource.FILE : - return false; // ignore - default : - return false; - } - } - - private void processProject(IResourceProxy resourceProxy) { - if (resourceProxy.isAccessible()) { // the project exists and is open - IProject project = (IProject) resourceProxy.requestResource(); - if (JaxbFacet.isInstalled(project)) { - GenericJaxbProjectManager.this.addJaxbProject(project); - } - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - } - - - // ********** event handler command ********** - - /** - * Command that holds the JAXB project manager lock while - * executing. - */ - private abstract class EventHandlerCommand - implements Command - { - private final String name; - - EventHandlerCommand(String name) { - super(); - this.name = name; - } - - public final void execute() { - try { - GenericJaxbProjectManager.this.lock.acquire(); - this.execute_(); - } catch (RuntimeException ex) { - JptJaxbCorePlugin.log(ex); - } finally { - GenericJaxbProjectManager.this.lock.release(); - } - } - - abstract void execute_(); - - @Override - public String toString() { - return this.name; - } - } - - - // ********** resource change listener ********** - - private class ResourceChangeListener implements IResourceChangeListener { - - ResourceChangeListener() { - super(); - } - - /** - * PRE_UNINSTALL is the only facet event we use for - * removing JAXB projects. These are the cases where we listen for resource events. - *

- * Check for:

    - *
  • facet settings file added/removed/changed - * (/.settings/org.eclipse.wst.common.project.facet.core.xml) - *
  • file add/remove - forwarded to the individual JAXB projects - *
  • project clean - *
- */ - public void resourceChanged(IResourceChangeEvent event) { - switch (event.getType()) { - case IResourceChangeEvent.POST_CHANGE : - this.processPostChangeEvent(event); - break; - - // workspace or project events - case IResourceChangeEvent.PRE_REFRESH : - break; // ignore - case IResourceChangeEvent.PRE_BUILD : - break; // ignore - case IResourceChangeEvent.POST_BUILD : - this.processPostBuildEvent(event); - break; - - // project-only events - case IResourceChangeEvent.PRE_CLOSE : - break; // ignore - case IResourceChangeEvent.PRE_DELETE : - break; // ignore - default : - break; - } - } - - private void processPostChangeEvent(IResourceChangeEvent event) { - debug("Resource POST_CHANGE"); //$NON-NLS-1$ - this.processPostChangeDelta(event.getDelta()); - } - - private void processPostChangeDelta(IResourceDelta delta) { - IResource resource = delta.getResource(); - switch (resource.getType()) { - case IResource.ROOT : - this.processPostChangeRootDelta(delta); - break; - case IResource.PROJECT : - this.processPostChangeProjectDelta(delta); - break; - case IResource.FOLDER : - this.processPostChangeFolderDelta((IFolder) resource, delta); - break; - case IResource.FILE : - this.processPostChangeFileDelta((IFile) resource, delta); - break; - default : - break; - } - } - - // ***** POST_CHANGE ROOT - private void processPostChangeRootDelta(IResourceDelta delta) { - this.processPostChangeDeltaChildren(delta); - } - - // ***** POST_CHANGE PROJECT - /** - * Process the project first for the Opening project case. - * The JAXB project will not be built until the children are processed - * and we see that the facet metadata file is added. - * Otherwise the JAXB project would be built and then we would process - * the ADDED deltas for all the files in the project. - */ - private void processPostChangeProjectDelta(IResourceDelta delta) { - GenericJaxbProjectManager.this.projectChanged(delta); - this.processPostChangeDeltaChildren(delta); - } - - // ***** POST_CHANGE FOLDER - private void processPostChangeFolderDelta(IFolder folder, IResourceDelta delta) { - if (folder.getName().equals(".settings")) { //$NON-NLS-1$ - this.processPostChangeDeltaChildren(delta); - } - } - - // ***** POST_CHANGE FILE - private void processPostChangeFileDelta(IFile file, IResourceDelta delta) { - if (file.getName().equals(FACETED_PROJECT_FRAMEWORK_SETTINGS_FILE_NAME)) { - this.checkForFacetFileChanges(file, delta); - } - } - - private void checkForFacetFileChanges(IFile file, IResourceDelta delta) { - switch (delta.getKind()) { - case IResourceDelta.ADDED : - case IResourceDelta.REMOVED : - case IResourceDelta.CHANGED : - GenericJaxbProjectManager.this.checkForJaxbFacetTransition(file.getProject()); - break; - case IResourceDelta.ADDED_PHANTOM : - break; // ignore - case IResourceDelta.REMOVED_PHANTOM : - break; // ignore - default : - break; - } - } - - private void processPostChangeDeltaChildren(IResourceDelta delta) { - for (IResourceDelta child : delta.getAffectedChildren()) { - this.processPostChangeDelta(child); // recurse - } - } - - /** - * A post build event has occurred. - * Check for whether the build was a "clean" build and trigger project update. - */ - // ***** POST_BUILD - private void processPostBuildEvent(IResourceChangeEvent event) { - debug("Resource POST_BUILD: ", event.getResource()); //$NON-NLS-1$ - if (event.getBuildKind() == IncrementalProjectBuilder.CLEAN_BUILD) { - this.processPostCleanBuildDelta(event.getDelta()); - } - } - - private void processPostCleanBuildDelta(IResourceDelta delta) { - IResource resource = delta.getResource(); - switch (resource.getType()) { - case IResource.ROOT : - this.processPostCleanBuildDeltaChildren(delta); - break; - case IResource.PROJECT : - this.processProjectPostCleanBuild((IProject) resource); - break; - case IResource.FOLDER : - break; // ignore - case IResource.FILE : - break; // ignore - default : - break; - } - } - - private void processPostCleanBuildDeltaChildren(IResourceDelta delta) { - for (IResourceDelta child : delta.getAffectedChildren()) { - this.processPostCleanBuildDelta(child); // recurse - } - } - - private void processProjectPostCleanBuild(IProject project) { - debug("\tProject CLEAN: ", project.getName()); //$NON-NLS-1$ - GenericJaxbProjectManager.this.projectPostCleanBuild(project); - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - } - - - // ********** faceted project listener ********** - - /** - * Forward the Faceted project change event back to the JAXB project manager. - */ - private class FacetedProjectListener implements IFacetedProjectListener { - - FacetedProjectListener() { - super(); - } - - /** - * Check for:
    - *
  • un-install of JAXB facet - *
- */ - public void handleEvent(IFacetedProjectEvent event) { - switch (event.getType()) { - case PRE_UNINSTALL : - this.processPreUninstallEvent((IProjectFacetActionEvent) event); - break; - default : - break; - } - } - - private void processPreUninstallEvent(IProjectFacetActionEvent event) { - debug("Facet PRE_UNINSTALL: ", event.getProjectFacet()); //$NON-NLS-1$ - if (event.getProjectFacet().equals(JaxbFacet.FACET)) { - GenericJaxbProjectManager.this.jaxbFacetedProjectPreUninstall(event); - } - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - } - - - // ********** Java element change listener ********** - - /** - * Forward the Java element change event back to the JAXB project manager. - */ - private class JavaElementChangeListener implements IElementChangedListener { - /** - * A flag to activate/deactivate the listener - * so we can ignore Java events whenever Dali is manipulating the Java - * source code via the Dali model. We do this because the 0.5 sec delay - * between the Java source being changed and the corresponding event - * being fired causes us no end of pain. - */ - private volatile boolean active = true; - - JavaElementChangeListener() { - super(); - } - - public void elementChanged(ElementChangedEvent event) { - if (this.active) { - GenericJaxbProjectManager.this.javaElementChanged(event); - } - } - - void setActive(boolean active) { - this.active = active; - } - - boolean isActive() { - return this.active; - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this); - } - - } - - - // ********** DEBUG ********** - - // @see JaxbProjectManagerTests#testDEBUG() - private static final boolean DEBUG = false; - - /** - * trigger #toString() call and string concatenation only if DEBUG is true - */ - /* private */ static void debug(String message, Object object) { - if (DEBUG) { - debug_(message + object); - } - } - - /* private */ static void debug(String message) { - if (DEBUG) { - debug_(message); - } - } - - private static void debug_(String message) { - System.out.println(Thread.currentThread().getName() + ": " + message); //$NON-NLS-1$ - } - - /* private */ static void dumpStackTrace() { - dumpStackTrace(null); - } - - /* private */ static void dumpStackTrace(String message, Object object) { - if (DEBUG) { - dumpStackTrace_(message + object); - } - } - - /* private */ static void dumpStackTrace(String message) { - if (DEBUG) { - dumpStackTrace_(message); - } - } - - private static void dumpStackTrace_(String message) { - // lock System.out so the stack elements are printed out contiguously - synchronized (System.out) { - if (message != null) { - debug_(message); - } - StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); - // skip the first 3 elements - those are this method and 2 methods in Thread - for (int i = 3; i < stackTrace.length; i++) { - StackTraceElement element = stackTrace[i]; - if (element.getMethodName().equals("invoke0")) { //$NON-NLS-1$ - break; // skip all elements outside of the JUnit test - } - System.out.println("\t" + element); //$NON-NLS-1$ - } - } - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFacet.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFacet.java deleted file mode 100644 index 1f647ca770..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFacet.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework; -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; - -/** - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public class JaxbFacet { - - public static final String ID = "jpt.jaxb"; //$NON-NLS-1$ - - public static final IProjectFacet FACET = ProjectFacetsManager.getProjectFacet(ID); - - public static final IProjectFacetVersion VERSION_2_1 = FACET.getVersion("2.1"); //$NON-NLS-1$ - - public static final IProjectFacetVersion VERSION_2_2 = FACET.getVersion("2.2"); //$NON-NLS-1$ - - - public static boolean isInstalled(final IProject project) { - try { - return FacetedProjectFramework.hasProjectFacet(project, ID); - } - catch (CoreException e) { - JptJaxbCorePlugin.log(e); - return false; - } - } - - - /** - * Not for instantiation - */ - private JaxbFacet() {} -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFactory.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFactory.java deleted file mode 100644 index 1a91dc7acb..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFactory.java +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jpt.common.core.JptResourceModel; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbElementFactoryMethod; -import org.eclipse.jpt.jaxb.core.context.JaxbEnumConstant; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentEnum; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentField; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentProperty; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentType; -import org.eclipse.jpt.jaxb.core.context.JaxbRegistry; -import org.eclipse.jpt.jaxb.core.context.JaxbTransientClass; -import org.eclipse.jpt.jaxb.core.context.XmlAnyAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.XmlAnyElementMapping; -import org.eclipse.jpt.jaxb.core.context.XmlAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.XmlElementMapping; -import org.eclipse.jpt.jaxb.core.context.XmlNs; -import org.eclipse.jpt.jaxb.core.context.XmlRootElement; -import org.eclipse.jpt.jaxb.core.context.XmlSchema; -import org.eclipse.jpt.jaxb.core.context.XmlValueMapping; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnum; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnumConstant; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; -import org.eclipse.jpt.jaxb.core.resource.java.XmlNsAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlRootElementAnnotation; - -/** - * Use a JAXB factory to build any core (e.g. {@link JaxbProject}) - * model object or any Java (e.g. {@link JavaEntity}), ORM (e.g. - * {@link EntityMappings}), or persistence (e.g. {@link PersistenceUnit}) - * context model objects. - *

- * Assumes a base JAXB project context structure - * corresponding to the JAXB spec: - *

- *     RootContext
- *      |- persistence.xml
- *          |- persistence unit(s)
- *               |- mapping file(s)  (e.g. orm.xml)
- *               |   |- persistent type mapping(s)  (e.g. Entity)
- *               |       |- persistent attribute mapping(s)  (e.g. Basic)
- *               |- persistent type mapping(s)
- * 
- * ... and associated objects. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @see org.eclipse.jpt.jaxb.core.internal.jaxb21.GenericJaxb_2_1_Factory - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbFactory { - - // ********** Core Model ********** - - /** - * Construct a JaxbProject for the specified config, to be - * added to the specified JAXB project. Return null if unable to create - * the JAXB file (e.g. the content type is unrecognized). - */ - JaxbProject buildJaxbProject(JaxbProject.Config config); - - /** - * Construct a JAXB file for the specified JAXB project, file, content type, - * and resource model. - */ - JaxbFile buildJaxbFile(JaxbProject jaxbProject, IFile file, IContentType contentType, JptResourceModel resourceModel); - - - // ********** Non-resource-specific context nodes ********** - - /** - * Build a (/an updated) root context node to be associated with the given - * JAXB project. - * The root context node will be built once, but updated many times. - * @see JaxbProject#update(org.eclipse.core.runtime.IProgressMonitor) - */ - JaxbContextRoot buildContextRoot(JaxbProject jaxbProject); - - JaxbPackage buildPackage(JaxbContextRoot parent, String packageName); - - - // ********** Java context nodes ********** - - JaxbPackageInfo buildJavaPackageInfo(JaxbPackage parent, JavaResourcePackage resourcePackage); - - JaxbRegistry buildRegistry(JaxbContextRoot parent, JavaResourceType resourceType); - - JaxbTransientClass buildJavaTransientClass(JaxbContextRoot parent, JavaResourceType resourceType); - - JaxbPersistentClass buildJavaPersistentClass(JaxbContextRoot parent, JavaResourceType resourceType); - - JaxbPersistentEnum buildJavaPersistentEnum(JaxbContextRoot parent, JavaResourceEnum resourceEnum); - - XmlSchema buildJavaXmlSchema(JaxbPackageInfo parent); - - XmlNs buildJavaXmlNs(XmlSchema parent, XmlNsAnnotation xmlNsAnnotation); - - XmlRootElement buildJavaXmlRootElement(JaxbPersistentType parent, XmlRootElementAnnotation xmlRootElementAnnotation); - - JaxbEnumConstant buildJavaEnumConstant(JaxbPersistentEnum parent, JavaResourceEnumConstant resourceEnumConstant); - - JaxbElementFactoryMethod buildJavaElementFactoryMethod(JaxbRegistry parent, JavaResourceMethod resourceMethod); - - JaxbPersistentField buildJavaPersistentField(JaxbPersistentClass parent, JavaResourceField resourceField); - - JaxbPersistentProperty buildJavaPersistentProperty(JaxbPersistentClass parent, JavaResourceMethod resourceGetter, JavaResourceMethod resourceSetter); - - JaxbAttributeMapping buildJavaNullAttributeMapping(JaxbPersistentAttribute parent); - - XmlAnyAttributeMapping buildJavaXmlAnyAttributeMapping(JaxbPersistentAttribute parent); - - XmlAnyElementMapping buildJavaXmlAnyElementMapping(JaxbPersistentAttribute parent); - - XmlAttributeMapping buildJavaXmlAttributeMapping(JaxbPersistentAttribute parent); - - XmlElementMapping buildJavaXmlElementMapping(JaxbPersistentAttribute parent); - - JaxbAttributeMapping buildJavaXmlTransientMapping(JaxbPersistentAttribute parent); - - XmlValueMapping buildJavaXmlValueMapping(JaxbPersistentAttribute parent); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFile.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFile.java deleted file mode 100644 index a3e133a33d..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbFile.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jpt.common.core.JptResourceModel; - -/** - * A JAXB Project contains JAXB files for all files in the project that - * are relevant to the JAXB spec. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbFile - extends JaxbNode -{ - /** - * Return the JAXB file's Eclipse file. - */ - IFile getFile(); - - /**JAXB - * Return the JPA file's content type. - */ - IContentType getContentType(); - - /** - * Return the resource model corresponding to the JPA file; typically a JPA - * compilation unit, a JPA XML resource, or a JPA package fragment root (JAR). - */ - JptResourceModel getResourceModel(); - - /** - * Convenience method. Return the resource model corresponding to the JPA - * file if the file's content is a "kind-of" the specified content type; - * otherwise, return null. This is useful when a client has looked up the - * JPA file via a file name [and assumed content type]. - * @see #getResourceModel() - */ - JptResourceModel getResourceModel(IContentType contentType); - - - // ********** root structure nodes ********** - -// /** -// * Return the JPA file's root structure nodes. -// */ -// Iterator rootStructureNodes(); -// String ROOT_STRUCTURE_NODES_COLLECTION = "rootStructureNodes"; //$NON-NLS-1$ -// -// /** -// * Return the count of the JPA file's root context model objects. -// */ -// int rootStructureNodesSize(); -// -// /** -// * Add a root structure node. -// * There is the potential for multiple root structure nodes -// * for a particular key. For example, a Java file that is listed -// * both as a in the persistence.xml and as an in -// * an orm.xml file. In this case the orm.xml file needs to set -// * the root structure node after the Java class reference. -// * Last one in during project "update" wins. -// */ -// void addRootStructureNode(Object key, JpaStructureNode rootStructureNode); -// -// /** -// * @see #addRootStructureNode(Object, JpaStructureNode) -// */ -// void removeRootStructureNode(Object key); -// -// /** -// * Return the structure node best corresponding to the location in the file. -// */ -// JpaStructureNode getStructureNode(int textOffset); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbNode.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbNode.java deleted file mode 100644 index a4eb6c5099..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbNode.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.jpt.common.core.IResourcePart; -import org.eclipse.jpt.common.utility.model.Model; - -/** - * JAXB-specific protocol. All JAXB objects belong to a JAXB project, are - * associated with a resource, and have a parent (excepting the JAXB project). - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbNode - extends Model, IAdaptable, IResourcePart -{ - /** - * Return the JAXB project the node belongs to. - */ - JaxbProject getJaxbProject(); - - /** - * Return the JAXB node's parent. The JAXB project will not have a parent. - */ - JaxbNode getParent(); - - void stateChanged(); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbProject.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbProject.java deleted file mode 100644 index 0845231e37..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbProject.java +++ /dev/null @@ -1,373 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.jdt.core.ElementChangedEvent; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jpt.common.utility.CommandExecutor; -import org.eclipse.jpt.common.utility.synchronizers.CallbackSynchronizer; -import org.eclipse.jpt.common.utility.synchronizers.Synchronizer; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatform; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * A JAXB project is associated with an Eclipse project (and its corresponding - * Java project). It holds the "resource" model that corresponds to the various - * JPA-related resources (the persistence.xml file, its mapping files - * [orm.xml], - * and the Java source files). It also holds the "context" model that represents - * the JPA metadata, as derived from spec-defined defaults, Java source code - * annotations, and XML descriptors. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbProject - extends JaxbNode -{ - - // ********** general ********** - - /** - * Return the JAXB project's name, which is the same as the associated - * Eclipse project's name. - */ - String getName(); - - /** - * Return the Eclipse project associated with the JAXB project. - */ - IProject getProject(); - - /** - * Return the Java project associated with the JAXB project. - */ - IJavaProject getJavaProject(); - - /** - * Return the vendor-specific JAXB platform that builds the JAXB project - * and its contents. - */ - JaxbPlatform getPlatform(); - - /** - * Return the schema library used for validating and user assist - */ - SchemaLibrary getSchemaLibrary(); - - /** - * The JAXB project has been removed from the JJAXBPA model. Clean up any - * hooks to external resources etc. - */ - void dispose(); - - - // ********** JAXB files ********** - - /** - * ID string used when the JAXB project's collection of JAXB files changes. - * @see #addCollectionChangeListener(String, org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener) - */ - String JAXB_FILES_COLLECTION = "jaxbFiles"; //$NON-NLS-1$ - - /** - * Return the JAXB project's JAXB files. - */ - Iterable getJaxbFiles(); - - /** - * Return the size of the JAXB project's JAXB files. - */ - int getJaxbFilesSize(); - - /** - * Return the JAXB file corresponding to the specified file. - * Return null if there is no JAXB file associated with the specified file. - */ - JaxbFile getJaxbFile(IFile file); - - -// // ********** external Java resource compilation units ********** -// -// /** -// * ID string used when the JPA project's collection of external Java -// * resource compilation units changes. -// * @see #addCollectionChangeListener(String, org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener) -// */ -// String EXTERNAL_JAVA_RESOURCE_COMPILATION_UNITS_COLLECTION = "externalJavaResourceCompilationUnits"; //$NON-NLS-1$ -// -// /** -// * Return the JPA project's external Java resource compilation units. -// */ -// Iterator externalJavaResourceCompilationUnits(); -// -// /** -// * Return the size of the JPA project's external Java resource compilation units. -// */ -// int externalJavaResourceCompilationUnitsSize(); -// -// -// // ********** external Java resource persistent types ********** -// -// /** -// * Return the JPA project's external Java resource persistent type cache. -// */ -// JavaResourcePersistentTypeCache getExternalJavaResourcePersistentTypeCache(); -// - - // ********** Java resources ********** - - /** - * Return the Java resource packages for the project. - * Return null if invalid or absent. These correspond to package-info.java files - */ - Iterable getJavaResourcePackages(); - - /** - * Return the Java resource package for the specified package. - * Return null if invalid or absent. - */ - JavaResourcePackage getJavaResourcePackage(String packageName); - - /** - * Return the java resource packages that are annotated with - * 1 or more valid JAXB package annotations - */ - Iterable getAnnotatedJavaResourcePackages(); - - /** - * Return the java resource package for the specified package if and only if it has - * recognized annotations. - * Return null otherwise. - */ - JavaResourcePackage getAnnotatedJavaResourcePackage(String packageName); - -// /** -// * Return the Java resource package fragement root for the specified JAR. -// * Return null if absent. -// */ -// JavaResourcePackageFragmentRoot getJavaResourcePackageFragmentRoot(String jarFileName); - - /** - * Return all {@link JavaResourceAbstractType}s that are represented by java source within this project - */ - Iterable getJavaSourceResourceTypes(); - - /** - * Return all {@link JavaResourceAbstractType}s that are represented by java source within this project, - * that are also annotated with a recognized annotation (and are persistable) - */ - Iterable getAnnotatedJavaSourceResourceTypes(); - -// /** -// * Return the names of the JAXB project's annotated Java classes -// */ -// Iterable getAnnotatedJavaSourceClassNames(); - - /** - * Return the {@link JavaResourceAbstractType} with the specified type name, regardless of - * what kind it is. - * Return null if absent. - */ - JavaResourceAbstractType getJavaResourceType(String typeName); - - /** - * Return the {@link JavaResourceAbstractType} with the specified type name and kind. - * Return null if invalid or absent or if the kind does not match. - */ - JavaResourceAbstractType getJavaResourceType(String typeName, JavaResourceAbstractType.Kind kind); - - - // **************** context model ***************************************** - - /** - * Return the root of the JAXB project's context model. - */ - JaxbContextRoot getContextRoot(); - - /** - * Return all types/package infos that are primary context objects for the - * given compilation unit - */ - Iterable getPrimaryJavaNodes(ICompilationUnit cu); - - - // ********** model synchronization ********** - - /** - * Synchronize the JPA project with the specified project resource - * delta, watching for added and removed files in particular. - */ - void projectChanged(IResourceDelta delta); - - /** - * Synchronize the JPA project with the specified Java change. - */ - void javaElementChanged(ElementChangedEvent event); - - - - // ********** synchronize context model with resource model ********** - - /** - * Return the synchronizer that will synchronize the context model with - * the resource model whenever the resource model changes. - */ - Synchronizer getContextModelSynchronizer(); - - /** - * Set the synchronizer that will keep the context model synchronized with - * the resource model whenever the resource model changes. - * Before setting the synchronizer, clients should save the current - * synchronizer so it can be restored later. - * - * @see #getContextModelSynchronizer() - */ - void setContextModelSynchronizer(Synchronizer synchronizer); - - /** - * The JAXB project's resource model has changed; synchronize the JPA - * project's context model with it. This method is typically called when the - * resource model state has changed when it is synchronized with its - * underlying Eclipse resource as the result of an Eclipse resource change - * event. This method can also be called when a client (e.g. a JUnit test - * case) has manipulated the resource model via its API (as opposed to - * modifying the underlying Eclipse resource directly) and needs the context - * model to be synchronized accordingly (since manipulating the resource - * model via its API will not trigger this method). Whether the context - * model is synchronously (or asynchronously) depends on the current context - * model synchronizer. - * - * @see #synchronizeContextModelAndWait() - */ - void synchronizeContextModel(); - - /** - * Force the JAXB project's context model to synchronize with it resource - * model synchronously. - * - * @see #synchronizeContextModel() - * @see #updateAndWait() - */ - void synchronizeContextModelAndWait(); - - /** - * This is the callback used by the context model synchronizer to perform - * the actual "synchronize". - */ - IStatus synchronizeContextModel(IProgressMonitor monitor); - - // ********** project "update" ********** - - /** - * Return the synchronizer that will update the context model whenever - * it has any changes. This allows any intra-JAXB project dependencies to - * be updated. - */ - CallbackSynchronizer getUpdateSynchronizer(); - - /** - * Set the synchronizer that will update the context model whenever - * it has any changes. This allows any intra-JAXB project dependencies to - * be updated. - * Before setting the update synchronizer, clients should save the current - * synchronizer so it can be restored later. - * - * @see #getUpdateSynchronizer() - */ - void setUpdateSynchronizer(CallbackSynchronizer synchronizer); - - /** - * Force the JAXB project to "update" synchronously. - * - * @see #synchronizeContextModelAndWait() - */ - void updateAndWait(); - - /** - * This is the callback used by the update synchronizer to perform the - * actual "update". - */ - IStatus update(IProgressMonitor monitor); - - - - -// // ********** utility ********** -// -// /** -// * Return an {@link IFile} that best represents the given runtime location -// */ -// IFile getPlatformFile(IPath runtimePath); - - - // ********** validation ********** - - /** - * Return project's validation messages. - */ - Iterable getValidationMessages(IReporter reporter); - - - // ********** modifying shared documents ********** - - /** - * Set a thread-specific implementation of the {@link CommandExecutor} - * interface that will be used to execute a command to modify a shared - * document. If necessary, the command executor can be cleared by - * setting it to null. - * This allows background clients to modify documents that are - * already present in the UI. See implementations of {@link CommandExecutor}. - */ - void setThreadLocalModifySharedDocumentCommandExecutor(CommandExecutor commandExecutor); - - /** - * Return the project-wide implementation of the - * {@link CommandExecutor} interface. - */ - CommandExecutor getModifySharedDocumentCommandExecutor(); - - - // ********** construction config ********** - - /** - * The settings used to construct a JAXB project. - */ - interface Config { - - /** - * Return the Eclipse project to be associated with the new JAXB project. - */ - IProject getProject(); - - /** - * Return the JAXB platform definition to be associated with the new JAXB project. - */ - JaxbPlatformDefinition getPlatformDefinition(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbProjectManager.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbProjectManager.java deleted file mode 100644 index 68258577ae..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbProjectManager.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.jpt.common.utility.model.Model; - - -/** - * The JAXB project manager holds all the JAXB projects in the workspace. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbProjectManager - extends Model { - - /** - * Return the JAXB model's JAXB projects. - */ - Iterable getJaxbProjects(); - public static final String JAXB_PROJECTS_COLLECTION = "jaxbProjects"; //$NON-NLS-1$ - - /** - * Return the size of the JAXB model's list of JAXB projects. - */ - int getJaxbProjectsSize(); - - /** - * Return the JAXB project corresponding to the specified Eclipse project. - * Return null if unable to associate the specified Eclipse project - * with a JAXB project. - */ - JaxbProject getJaxbProject(IProject project); - - /** - * Return the JAXB file corresponding to the specified Eclipse file, - * or null if unable to associate the specified file with a JAXB file. - */ - JaxbFile getJaxbFile(IFile file); - - /** - * The JAXB settings associated with the specified Eclipse project - * have changed in such a way as to require the associated - * JPA project to be completely rebuilt - * (e.g. when the user changes a project's JAXB platform). - */ - void rebuildJaxbProject(IProject project); - - /** - * Return whether the model's Java change listener is active. - */ - boolean javaElementChangeListenerIsActive(); - - /** - * Set whether the model's Java change listener is active. - */ - void setJavaElementChangeListenerIsActive(boolean javaElementChangeListenerIsActive); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbResourceModelProvider.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbResourceModelProvider.java deleted file mode 100644 index 5a7c5eab5e..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JaxbResourceModelProvider.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jpt.common.core.JptResourceModel; - -/** - * Map a content type to a JAXB resource model. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbResourceModelProvider -{ - /** - * Return the file content type the provider is for. - */ - IContentType getContentType(); - - /** - * Build a JAXB resource model for the specified JAXB project and file. - * Use the specified factory for creation so extenders can simply override - * the appropriate creation method instead of building a provider for the - * same content. - */ - JptResourceModel buildResourceModel(JaxbProject jaxbProject, IFile file); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JptJaxbCorePlugin.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JptJaxbCorePlugin.java deleted file mode 100644 index acba0d5a92..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/JptJaxbCorePlugin.java +++ /dev/null @@ -1,464 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import java.util.HashMap; -import java.util.Map; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.core.runtime.preferences.DefaultScope; -import org.eclipse.core.runtime.preferences.IEclipsePreferences; -import org.eclipse.core.runtime.preferences.IScopeContext; -import org.eclipse.core.runtime.preferences.InstanceScope; -import org.eclipse.jpt.jaxb.core.internal.JptJaxbCoreMessages; -import org.eclipse.jpt.jaxb.core.internal.platform.JaxbPlatformManagerImpl; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDescription; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformManager; -import org.eclipse.osgi.util.NLS; -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; -import org.osgi.framework.BundleContext; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -/** - * The Dali JAXB core plug-in lifecycle implementation. - * A number of globally-available constants and methods. - *

- * Provisional API: This class is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public class JptJaxbCorePlugin - extends Plugin { - - private static volatile boolean flushPreferences = true; - - /** - * The plug-in identifier of Dali JAXB core - * (value "org.eclipse.jpt.jaxb.core"). - */ - public static final String PLUGIN_ID = "org.eclipse.jpt.jaxb.core"; //$NON-NLS-1$ - public static final String PLUGIN_ID_ = PLUGIN_ID + '.'; - - /** - * The node for storing a JAXB project's platform in the project's preferences. - */ - public static final String PLATFORM_PREF_NODE = "platform"; //$NON-NLS-1$ - - /** - * The key for storing the platform id - */ - public static final String PLATFORM_ID_PREF_KEY = "platform-id"; //$NON-NLS-1$ - - /** - * The node for storing a JAXB project's schemas in the project's preferences. - */ - public static final String SCHEMAS_PREF_NODE = "schemas"; //$NON-NLS-1$ - - /** - * The node prefix for storing a particular JAXB project schema in the project's preferences. - * Specific schema nodes are followed by integers ("schema-1", "schema-2", etc.) - */ - public static final String SCHEMA_PREF_NODE_PREFIX = "schema-"; //$NON-NLS-1$ - - /** - * The key for storing a schema namespace in the project's preferences - */ - public static final String SCHEMA_NAMESPACE_PREF_KEY = "namespace"; //$NON-NLS-1$ - - /** - * The key for storing a schema location (such as a uri or catalog key) in the project's preferences - */ - public static final String SCHEMA_LOCATION_PREF_KEY = "location"; //$NON-NLS-1$ - - /** - * The key for storing the default JAXB platform ID for JAXB 2.1 in the workspace preferences. - */ - public static final String DEFAULT_JAXB_PLATFORM_2_1_PREF_KEY = - "defaultJaxbPlatform_" + JaxbFacet.VERSION_2_1.getVersionString(); //$NON-NLS-1$ - - /** - * The key for storing the default JAXB platform ID for JAXB 2.2 in the workspace preferences. - */ - public static final String DEFAULT_JAXB_PLATFORM_2_2_PREF_KEY = - "defaultJaxbPlatform_" + JaxbFacet.VERSION_2_2.getVersionString(); //$NON-NLS-1$ - - /** - * The identifier for the JAXB validation marker - * (value "org.eclipse.jpt.jaxb.core.jaxbProblemMarker"). - */ - public static final String VALIDATION_MARKER_ID = PLUGIN_ID + ".jaxbProblemMarker"; //$NON-NLS-1$ - - - - // **************** fields ************************************************ - - private volatile GenericJaxbProjectManager projectManager; - - - // **************** singleton ********************************************* - - private static JptJaxbCorePlugin INSTANCE; - - /** - * Return the singleton plug-in - */ - public static JptJaxbCorePlugin instance() { - return INSTANCE; - } - - - // ********** public static methods ********** - - /** - * Return the singular JAXB project manager corresponding to the current workspace. - */ - public static JaxbProjectManager getProjectManager() { - return INSTANCE.getProjectManager_(); - } - - /** - * Return the JAXB project corresponding to the specified Eclipse project, - * or null if unable to associate the specified project with a - * JAXB project. - */ - public static JaxbProject getJaxbProject(IProject project) { - return getProjectManager().getJaxbProject(project); - } - - public static JaxbPlatformManager getJaxbPlatformManager() { - return JaxbPlatformManagerImpl.instance(); - } - - /** - * Return the default Dali preferences - * @see JpaPreferenceInitializer - */ - public static IEclipsePreferences getDefaultPreferences() { - return getPreferences(new DefaultScope()); - } - - /** - * Return the Dali preferences for the current workspace instance. - */ - public static IEclipsePreferences getWorkspacePreferences() { - return getPreferences(new InstanceScope()); - } - - /** - * Return the Dali preferences for the specified context. - */ - private static IEclipsePreferences getPreferences(IScopeContext context) { - return context.getNode(PLUGIN_ID); - } - - /** - * Set the workspace preference. - */ - public static void setWorkspacePreference(String preferenceKey, String preferenceValue) { - IEclipsePreferences prefs = getWorkspacePreferences(); - prefs.put(preferenceKey, preferenceValue); - flush(prefs); - } - - /** - * This method is called (via reflection) when the test plug-in is loaded. - * The preferences end up getting flushed after the test case has deleted - * its project, resulting in resource exceptions in the log, e.g. - *

-	 *     Resource '/JpaProjectManagerTests' is not open.
-	 * 
- * See JptJaxbCoreTestsPlugin.start(BundleContext) - */ - @SuppressWarnings("unused") - private static void doNotFlushPreferences() { - flushPreferences = false; - } - - /** - * Flush preferences in an asynchronous Job because the flush request will - * trigger a lock on the project, which can cause us some deadlocks (e.g. - * when deleting the metamodel source folder). - * Note: the flush will also remove the prefs node if it is empty - */ - private static void flush(IEclipsePreferences prefs) { - if (flushPreferences) { - new PreferencesFlushJob(prefs).schedule(); - } - } - - private static class PreferencesFlushJob extends Job { - private final IEclipsePreferences prefs; - PreferencesFlushJob(IEclipsePreferences prefs) { - super(NLS.bind(JptJaxbCoreMessages.PREFERENCES_FLUSH_JOB_NAME, prefs.absolutePath())); - this.prefs = prefs; - } - @Override - protected IStatus run(IProgressMonitor monitor) { - try { - prefs.flush(); - } catch(BackingStoreException ex) { - log(ex); - } - return Status.OK_STATUS; - } - } - - public static Preferences getProjectPreferences(IProject project) { - try { - IFacetedProject fproj = ProjectFacetsManager.create(project); - return fproj.getPreferences(JaxbFacet.FACET); - } - catch (BackingStoreException bse) { - log(bse); - } - catch (CoreException ce) { - log(ce); - } - return null; - } - - /** - * Set the default {@link JaxbPlatformDescription} for new JAXB projects with the given - * JAXB facet version. - */ - public static void setDefaultJaxbPlatform(IProjectFacetVersion jaxbFacetVersion, JaxbPlatformDescription platform) { - String preferenceKey = null; - if (JaxbFacet.VERSION_2_1.equals(jaxbFacetVersion)) { - preferenceKey = DEFAULT_JAXB_PLATFORM_2_1_PREF_KEY; - } - else if (JaxbFacet.VERSION_2_2.equals(jaxbFacetVersion)) { - preferenceKey = DEFAULT_JAXB_PLATFORM_2_2_PREF_KEY; - } - else { - throw new IllegalArgumentException("Illegal JAXB facet version: " + jaxbFacetVersion); //$NON-NLS-1$ - } - setWorkspacePreference(preferenceKey, platform.getId()); - } - - /** - * Return the default {@link JaxbPlatformDescription} for new JAXB projects with the given - * JAXB facet version. - */ - public static JaxbPlatformDescription getDefaultPlatform(IProjectFacetVersion jaxbFacetVersion) { - - JaxbPlatformDescription defaultPlatform = - getDefaultPlatform( - jaxbFacetVersion, - getWorkspacePreferences(), - getDefaultPreferences()); - if (defaultPlatform == null) { - // if the platform ID stored in the workspace prefs is invalid (i.e. null), look in the default prefs - defaultPlatform = getDefaultPlatform(jaxbFacetVersion, getDefaultPreferences()); - } - return defaultPlatform; - } - - private static JaxbPlatformDescription getDefaultPlatform( - IProjectFacetVersion jaxbFacetVersion, Preferences ... nodes) { - - JaxbPlatformDescription defaultDefaultPlatform; - String preferenceKey; - if (jaxbFacetVersion.equals(JaxbFacet.VERSION_2_1)) { - defaultDefaultPlatform = GenericJaxbPlatform.VERSION_2_1; - preferenceKey = DEFAULT_JAXB_PLATFORM_2_1_PREF_KEY; - } - else if (jaxbFacetVersion.equals(JaxbFacet.VERSION_2_2)) { - defaultDefaultPlatform = GenericJaxbPlatform.VERSION_2_2; - preferenceKey = DEFAULT_JAXB_PLATFORM_2_2_PREF_KEY; - } - else { - throw new IllegalArgumentException("Illegal JAXB facet version: " + jaxbFacetVersion); //$NON-NLS-1$ - } - return getDefaultPlatform(jaxbFacetVersion, preferenceKey, defaultDefaultPlatform, nodes); - } - - private static JaxbPlatformDescription getDefaultPlatform( - IProjectFacetVersion jaxbFacetVersion, String preferenceKey, - JaxbPlatformDescription defaultDefault, Preferences ... nodes) { - - String defaultDefaultId = (defaultDefault == null) ? null : defaultDefault.getId(); - String defaultPlatformId = Platform.getPreferencesService().get(preferenceKey, defaultDefaultId, nodes); - JaxbPlatformDescription defaultPlatform = getJaxbPlatformManager().getJaxbPlatform(defaultPlatformId); - if (defaultPlatform != null && defaultPlatform.supportsJaxbFacetVersion(jaxbFacetVersion)) { - return defaultPlatform; - } - else if (defaultDefault != null && defaultDefault.supportsJaxbFacetVersion(jaxbFacetVersion)) { - return defaultDefault; - } - return null; - } - - /** - * Return the JAXB platform ID associated with the specified Eclipse project. - */ - public static String getJaxbPlatformId(IProject project) { - Preferences prefs = getProjectPreferences(project); - Preferences platformPrefs = prefs.node(PLATFORM_PREF_NODE); - return platformPrefs.get(PLATFORM_ID_PREF_KEY, GenericJaxbPlatform.VERSION_2_1.getId()); - } - - /** - * Return the {@link JaxbPlatformDescription} associated with the specified Eclipse project. - */ - public static JaxbPlatformDescription getJaxbPlatformDescription(IProject project) { - String jpaPlatformId = getJaxbPlatformId(project); - return getJaxbPlatformManager().getJaxbPlatform(jpaPlatformId); - } - - /** - * Set the {@link JaxbPlatformDescription} associated with the specified Eclipse project. - */ - public static void setJaxbPlatform(IProject project, JaxbPlatformDescription platform) { - Preferences prefs = getProjectPreferences(project); - Preferences platformPrefs = prefs.node(PLATFORM_PREF_NODE); - platformPrefs.put(PLATFORM_ID_PREF_KEY, platform.getId()); - try { - platformPrefs.flush(); - } - catch (BackingStoreException bse) { - log(bse); - } - } - - public static Map getSchemaLocationMap(IProject project) { - Map schemaLocationMap = new HashMap(); - Preferences prefs = getProjectPreferences(project); - Preferences schemasPrefs = prefs.node(SCHEMAS_PREF_NODE); - try { - boolean checkAnotherNode = true; - for (int i = 1; checkAnotherNode; i++ ) { - String nodeName = SCHEMA_PREF_NODE_PREFIX + String.valueOf(i); - if (schemasPrefs.nodeExists(nodeName)) { - Preferences schemaPrefs = schemasPrefs.node(nodeName); - String namespace = schemaPrefs.get(SCHEMA_NAMESPACE_PREF_KEY, null); - String location = schemaPrefs.get(SCHEMA_LOCATION_PREF_KEY, null); - if (namespace != null) { - schemaLocationMap.put(namespace, location); - } - } - else { - checkAnotherNode = false; - } - } - } - catch (BackingStoreException bse) { - // this means that the prefs are corrupted, in which case reading anything is unlikely - JptJaxbCorePlugin.log(bse); - } - return schemaLocationMap; - } - - public static void setSchemaLocationMap(IProject project, Map schemaLocationMap) { - Preferences prefs = getProjectPreferences(project); - Preferences schemasPrefs = prefs.node(SCHEMAS_PREF_NODE); - try { - int i = 1; - for (String namespace : schemaLocationMap.keySet()) { - String nodeName = SCHEMA_PREF_NODE_PREFIX + String.valueOf(i); - Preferences schemaPref = schemasPrefs.node(nodeName); - schemaPref.put(SCHEMA_NAMESPACE_PREF_KEY, namespace); - schemaPref.put(SCHEMA_LOCATION_PREF_KEY, schemaLocationMap.get(namespace)); - i ++; - } - boolean checkAnotherNode = true; - for ( ; checkAnotherNode; i++ ) { - String nodeName = SCHEMA_PREF_NODE_PREFIX + String.valueOf(i); - if (schemasPrefs.nodeExists(nodeName)) { - schemasPrefs.node(nodeName).removeNode(); - } - else { - checkAnotherNode = false; - } - } - schemasPrefs.flush(); - } - catch (BackingStoreException bse) { - // this means that the prefs are corrupted, in which case reading anything is unlikely - JptJaxbCorePlugin.log(bse); - } - } - - /** - * Log the specified status. - */ - public static void log(IStatus status) { - INSTANCE.getLog().log(status); - } - - /** - * Log the specified message. - */ - public static void log(String msg) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null)); - } - - /** - * Log the specified exception or error. - */ - public static void log(Throwable throwable) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable)); - } - - - // ********** plug-in implementation ********** - - public JptJaxbCorePlugin() { - super(); - if (INSTANCE != null) { - throw new IllegalStateException(); - } - // this convention is *wack*... ~bjv - INSTANCE = this; - } - - @Override - public void start(BundleContext context) throws Exception { - super.start(context); - // nothing yet... - } - - @Override - public void stop(BundleContext context) throws Exception { - try { - if (this.projectManager != null) { - this.projectManager.stop(); - this.projectManager = null; - } - } finally { - super.stop(context); - } - } - - private synchronized GenericJaxbProjectManager getProjectManager_() { - if (this.projectManager == null) { - this.projectManager = this.buildProjectManager(); - this.projectManager.start(); - } - return this.projectManager; - } - - private GenericJaxbProjectManager buildProjectManager() { - return new GenericJaxbProjectManager(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/MappingKeys.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/MappingKeys.java deleted file mode 100644 index c004390a0a..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/MappingKeys.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -/** - * - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -@SuppressWarnings("nls") -public interface MappingKeys { - - String XML_ANY_ATTRIBUTE_ATTRIBUTE_MAPPING_KEY = "xml-any-attribute"; - String XML_ANY_ELEMENT_ATTRIBUTE_MAPPING_KEY = "xml-any-element"; - String XML_ATTRIBUTE_ATTRIBUTE_MAPPING_KEY = "xml-attribute"; - String XML_ELEMENT_ATTRIBUTE_MAPPING_KEY = "xml-element"; - String XML_TRANSIENT_ATTRIBUTE_MAPPING_KEY = "xml-transient"; - String XML_VALUE_ATTRIBUTE_MAPPING_KEY = "xml-value"; - String NULL_ATTRIBUTE_MAPPING_KEY = null; -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/SchemaLibrary.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/SchemaLibrary.java deleted file mode 100644 index fe52356cbc..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/SchemaLibrary.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core; - -import java.util.Map; -import org.eclipse.xsd.XSDSchema; - -/** - * Entry point for accessing project schema resources - * - * @version 3.0 - * @since 3.0 - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - */ -public interface SchemaLibrary { - - public XSDSchema getSchema(String namespace); - - /** - * Return the project settings that indicate how schema keys are mapped to actual - * resolvable schemas - */ - public Map getSchemaLocations(); - - /** - * Set the project settings that indicate how schema keys are mapped to actual - * resolvable schemas. - */ - public void setSchemaLocations(Map schemaLocations); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbAttributeMapping.java deleted file mode 100644 index 54202f9677..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbAttributeMapping.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute; - - -/** - * Represents a JAXB attribute mapping. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbAttributeMapping - extends JavaContextNode { - - JaxbPersistentAttribute getParent(); - - JavaResourceAttribute getJavaResourceAttribute(); - - String getKey(); - - /** - * Return whether the mapping is its attribute's default mapping - * (as opposed to its specified mapping). - */ - boolean isDefault(); - String DEFAULT_PROPERTY = "default"; //$NON-NLS-1$ - - void updateDefault(); - - /** - * Return all directly referenced types, fully qualified. - * (Used for constructing Jaxb context) - * Nulls and empty strings are to be expected. - */ - Iterable getDirectlyReferencedTypeNames(); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbAttributesContainer.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbAttributesContainer.java deleted file mode 100644 index aa3bf40d80..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbAttributesContainer.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; - -/** - * Holds the attributes represented by a particular JavaResourceType and XmlAccessType. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbAttributesContainer - extends JavaContextNode { - - /** - * Return true if this JaxbAtributesContainer contains attributes for the given JavaResourceType. - */ - boolean isFor(JavaResourceType javaResourceType); - - - /********** attributes **********/ - - Iterable getAttributes(); - int getAttributesSize(); - - interface Owner { - - /** - * Return the access type of the owner, to be used in determining which attributes to build - */ - XmlAccessType getAccessType(); - - /** - * fire property change event for the added attribute - */ - void fireAttributeAdded(JaxbPersistentAttribute attribute); - - /** - * fire property change event for the removed attribute - */ - void fireAttributeRemoved(JaxbPersistentAttribute attribute); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbClass.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbClass.java deleted file mode 100644 index a1269911c8..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbClass.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; - -/** - * Represents a JAXB class. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbClass - extends JaxbType, XmlAccessTypeHolder, XmlAccessOrderHolder { - - /** - * covariant override - */ - JavaResourceType getJavaResourceType(); - - JaxbClass getSuperClass(); - String SUPER_CLASS_PROPERTY = "superClass"; //$NON-NLS-1$ - - /** - * Return the persistent type's "persistence" inheritance hierarchy, - * including the persistent type itself. - * The returned iterator will return elements infinitely if the hierarchy - * has a loop. This includes classes annotated with @XmlTransient. - */ - Iterable getInheritanceHierarchy(); - - /** - * Return the persistent type's "persistence" inheritance hierarchy, - * excluding the persistent type itself. - * The returned iterator will return elements infinitely if the hierarchy - * has a loop. This includes classes annotated with @XmlTransient. - */ - Iterable getAncestors(); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContainmentMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContainmentMapping.java deleted file mode 100644 index 20097e7bc7..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContainmentMapping.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - - -/** - * Represents a JAXB containment mappings (xml element/attribute) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbContainmentMapping - extends JaxbAttributeMapping, XmlAdaptable { - - - String getName(); - String getDefaultName(); - String getSpecifiedName(); - void setSpecifiedName(String name); - String SPECIFIED_NAME_PROPERTY = "specifiedName"; //$NON-NLS-1$ - - boolean isRequired(); - boolean isDefaultRequired(); - boolean DEFAULT_REQUIRED = false; - Boolean getSpecifiedRequired(); - void setSpecifiedRequired(Boolean specifiedRequired); - String SPECIFIED_REQUIRED_PROPERTY = "specifiedRequired"; //$NON-NLS-1$ - - String getNamespace(); - String getDefaultNamespace(); - String getSpecifiedNamespace(); - void setSpecifiedNamespace(String namespace); - String SPECIFIED_NAMESPACE_PROPERTY = "specifiedNamespace"; //$NON-NLS-1$ - - - - // ********** xml schema type ************ - /** - * Return whether this class has an XmlSchemaType annotation) - */ - boolean hasXmlSchemaType(); - - /** - * Return the xml schema type or null. - */ - XmlSchemaType getXmlSchemaType(); - - XmlSchemaType addXmlSchemaType(); - void removeXmlSchemaType(); - String XML_SCHEMA_TYPE = "xmlSchemaType"; //$NON-NLS-1$ - - - /********** XmlList **********/ - XmlList getXmlList(); - XmlList addXmlList(); - void removeXmlList(); - String XML_LIST_PROPERTY = "xmlList"; //$NON-NLS-1$ - - - /********** XmlID **********/ - XmlID getXmlID(); - XmlID addXmlID(); - void removeXmlID(); - String XML_ID_PROPERTY = "xmlID"; //$NON-NLS-1$ - - - /********** XmlIDREF **********/ - XmlIDREF getXmlIDREF(); - XmlIDREF addXmlIDREF(); - void removeXmlIDREF(); - String XML_IDREF_PROPERTY = "xmlIDREF"; //$NON-NLS-1$ - - - /********** XmlAttachmentRef **********/ - XmlAttachmentRef getXmlAttachmentRef(); - XmlAttachmentRef addXmlAttachmentRef(); - void removeXmlAttachmentRef(); - String XML_ATTACHMENT_REF_PROPERTY = "xmlAttachmentRef"; //$NON-NLS-1$ - -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextNode.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextNode.java deleted file mode 100644 index 9918f02d62..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextNode.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.common.core.JptResourceType; -import org.eclipse.jpt.jaxb.core.JaxbNode; - -/** - * Common protocol for JAXB objects that have a context, as opposed to - * resource objects. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbContextNode - extends JaxbNode { - - /** - * Return the root of the context model - */ - JaxbContextRoot getContextRoot(); - - /** - * Return the resource type of the context node's resource. - */ - JptResourceType getResourceType(); - - - // ********** updating ********** - - void synchronizeWithResourceModel(); - - /** - * Update the context model with the content of the JAXB resource model. - */ - void update(); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextRoot.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextRoot.java deleted file mode 100644 index 65cdf850ce..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextRoot.java +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import java.util.List; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * Root of the JAXB context model. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbContextRoot - extends JaxbContextNode { - - /** - * The set of packages. Includes any package with any interesting JAXB content. - */ - Iterable getPackages(); - public final static String PACKAGES_COLLECTION = "packages"; //$NON-NLS-1$ - - int getPackagesSize(); - - /** - * Return the package with the given name - */ - JaxbPackage getPackage(String packageName); - - /** - * Return the set of all JAXB types within this context root. - */ - Iterable getTypes(); - public final static String TYPES_COLLECTION = "types"; //$NON-NLS-1$ - - int getTypesSize(); - - /** - * Return the type with the given name - */ - JaxbType getType(String typeName); - - /** - * Return the set of types that are in the given package - */ - Iterable getTypes(JaxbPackage jaxbPackage); - - /** - * The set of persistent classes. These may be explicitly or implicitly included. - */ - Iterable getPersistentClasses(); - - /** - * Return the set of persistent classes that are in the given package - */ - Iterable getPersistentClasses(JaxbPackage jaxbPackage); - - /** - * Return the persistent class with the given fully qualified name - */ - JaxbPersistentClass getPersistentClass(String fullyQualifiedTypeName); - - /** - * The set of persistent enums. These may be explicitly or implicitly included. - */ - Iterable getPersistentEnums(); - - /** - * Return the set of persistent enums that are in the given package - */ - Iterable getPersistentEnums(JaxbPackage jaxbPackage); - - /** - * Return the persistent enum with the given fully qualified name - */ - JaxbPersistentEnum getPersistentEnum(String fullyQualifiedTypeName); - - /** - * The set of registries. - */ - Iterable getRegistries(); - - /** - * Return the set of registries that are in the given package - * (There should typically be a max of 1, but there are invalid states ...) - */ - Iterable getRegistries(JaxbPackage jaxbPackage); - - /** - * The set of transient classes. - */ - Iterable getTransientClasses(); - - /** - * Return the set of transient classes that are in the given package - */ - Iterable getTransientClasses(JaxbPackage jaxbPackage); - - /** - * Return the transient class with the given fully qualified name - */ - JaxbTransientClass getTransientClass(String fullyQualifiedTypeName); - - - /** - * Return the persistent class or transient type with the given fully qualified name - */ - JaxbClass getClass(String fullyQualifiedTypeName); - - // **************** validation ******************************************** - - /** - * Add validation messages to the specified list. - */ - public void validate(List messages, IReporter reporter); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbElementFactoryMethod.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbElementFactoryMethod.java deleted file mode 100644 index c662f829cb..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbElementFactoryMethod.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; - -/** - * Represents a JAXB element factory method - * (A method inside an object factory (@XmlRegistry) with an explicit @XmlElementDecl annotation) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbElementFactoryMethod - extends JaxbContextNode { - - JavaResourceMethod getResourceMethod(); - - /** - * Return the method name - */ - String getName(); - - /** - * Corresponds to the XmlElementDecl annotation 'name' element - */ - String getElementName(); - void setElementName(String elementName); - String ELEMENT_NAME_PROPERTY = "elementName"; //$NON-NLS-1$ - - /** - * Corresponds to the XmlElementDecl annotation 'defaultValue' element - */ - String getDefaultValue(); - void setDefaultValue(String defaultValue); - String DEFAULT_VALUE_PROPERTY = "defaultValue"; //$NON-NLS-1$ - String DEFAULT_DEFAULT_VALUE = "\u0000"; //$NON-NLS-1$ - - /** - * Corresponds to the XmlElementDecl annotation 'namespace' element - */ - String getNamespace(); - void setNamespace(String namespace); - String NAMESPACE_PROPERTY = "namespace"; //$NON-NLS-1$ - String DEFAULT_NAMESPACE = "##default"; //$NON-NLS-1$ - - /** - * Corresponds to the XmlElementDecl annotation 'substitutionHeadName' element - */ - String getSubstitutionHeadName(); - void setSubstitutionHeadName(String substitutionHeadName); - String SUBSTIUTION_HEAD_NAME_PROPERTY = "substitutionHeadName"; //$NON-NLS-1$ - String DEFAULT_SUBSTIUTION_HEAD_NAME = ""; //$NON-NLS-1$ - - /** - * Corresponds to the XmlElementDecl annotation 'substitutionHeadNamespace' element - */ - String getSubstitutionHeadNamespace(); - void setSubstitutionHeadNamespace(String substitutionHeadNamespace); - String SUBSTIUTION_HEAD_NAMESPACE_PROPERTY = "substitutionHeadNamespace"; //$NON-NLS-1$ - String DEFAULT_SUBSTIUTION_HEAD_NAMESPACE = "##default"; //$NON-NLS-1$ - - - /** - * Corresponds to the XmlElementDecl annotation 'scope' element - */ - String getScope(); - void setScope(String scope); - String SCOPE_PROPERTY = "scope"; //$NON-NLS-1$ - String DEFAULT_SCOPE_CLASS_NAME = "javax.xml.bind.annotation.XmlElementDecl.GLOBAL"; //$NON-NLS-1$ -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbEnumConstant.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbEnumConstant.java deleted file mode 100644 index 71d8238701..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbEnumConstant.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnumConstant; - -/** - * Represents a JAXB enum constant. - * (A constant inside an enum with either an explicit or implicit @XmlEnumValue annotation) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbEnumConstant - extends JaxbContextNode { - - JavaResourceEnumConstant getResourceEnumConstant(); - - /** - * Return the name of the enum constant. This will not change, a - * new JaxbEnumConstant will be built if the name changes. - */ - String getName(); - - - /** - * Return the enum constant's value, whether specified or default. - */ - String getValue(); - - /** - * The default value will be the name of the enum constant. - * It will be used if the XmlEnumValue annotation is null. - * @see getName() - */ - String getDefaultValue(); - - /** - * Corresponds to the XmlEnumValue annotation 'value' element - */ - String getSpecifiedValue(); - void setSpecifiedValue(String value); - String SPECIFIED_VALUE_PROPERTY = "specifiedValue"; //$NON-NLS-1$ - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackage.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackage.java deleted file mode 100644 index e2cb4d80f1..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackage.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import java.util.List; -import org.eclipse.jpt.jaxb.core.xsd.XsdSchema; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbPackage - extends JaxbContextNode { - - /** - * The package name. - * This is unchanging in that, if a package name changes, a new JaxbPackage is created. - */ - String getName(); - - /** - * The optional package-info - */ - JaxbPackageInfo getPackageInfo(); - public final static String PACKAGE_INFO_PROPERTY = "package-info"; //$NON-NLS-1$ - - /** - * Return the namespace associated with this package, default or specified - */ - String getNamespace(); - - /** - * Return whether this package has no useful information. - * Useful information includes: - * - annotated package-info.java - * - jaxb.index - * - object factory - */ - boolean isEmpty(); - - /** - * Return the {@link XsdSchema} associated with this package, if there is one, null otherwise - */ - XsdSchema getXsdSchema(); - - - // **************** validation ******************************************** - - /** - * Add validation messages to the specified list. - */ - public void validate(List messages, IReporter reporter); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackageInfo.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackageInfo.java deleted file mode 100644 index fbf265e8d8..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackageInfo.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import java.util.List; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbPackageInfo - extends JavaContextNode, XmlAccessTypeHolder, XmlAccessOrderHolder { - - JavaResourcePackage getResourcePackage(); - - JaxbPackage getParent(); - - // ********** xml schema ********** - - /** - * Return the XML schema for this package info, this will not be null. - */ - XmlSchema getXmlSchema(); - - - // ********** xml schema types ********** - - ListIterable getXmlSchemaTypes(); - int getXmlSchemaTypesSize(); - XmlSchemaType addXmlSchemaType(int index); - void removeXmlSchemaType(int index); - void removeXmlSchemaType(XmlSchemaType xmlSchemaType); - void moveXmlSchemaType(int targetIndex, int sourceIndex); - String XML_SCHEMA_TYPES_LIST = "xmlSchemaTypes"; //$NON-NLS-1$ - - - // ********** xml java type adapters ********** - - ListIterable getXmlJavaTypeAdapters(); - int getXmlJavaTypeAdaptersSize(); - XmlJavaTypeAdapter addXmlJavaTypeAdapter(int index); - void removeXmlJavaTypeAdapter(int index); - void removeXmlJavaTypeAdapter(XmlJavaTypeAdapter xmlJavaTypeAdapter); - void moveXmlJavaTypeAdapter(int targetIndex, int sourceIndex); - String XML_JAVA_TYPE_ADAPTERS_LIST = "xmlJavaTypeAdapters"; //$NON-NLS-1$ - - - // **************** validation ******************************************** - - /** - * Add validation messages to the specified list. - */ - void validate(List messages, IReporter reporter); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentAttribute.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentAttribute.java deleted file mode 100644 index 9ff13cdf8f..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentAttribute.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; - -/** - * Represents a JAXB attribute (field/property). - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbPersistentAttribute - extends JavaContextNode { - - - JaxbPersistentClass getParent(); - - /** - * Return true if this JaxbPersistentAttribute is inherited from one of the - * superclasses of the parent JaxbPersistentClass. - */ - boolean isInherited(); - - /** - * Only ask this of inherited persistent attributes. Returns the simple - * type name of the attribute's resource type. - * - * @see JaxbPersistentAttribute#isInherited() - */ - String getInheritedJavaResourceAttributeOwningTypeName(); - - // ********** name ********** - - /** - * Return the name of the attribute. This will not change, a - * new JaxbPersistentAttribute will be built if the name changes. - */ - String getName(); - - boolean isFor(JavaResourceField resourceField); - - boolean isFor(JavaResourceMethod resourceGetter, JavaResourceMethod resourceSetter); - - JavaResourceAttribute getJavaResourceAttribute(); - - /** - * Return the type name of the java resource attribute - * This might not return the same thing as getJavaResourceAttribute().getTypeName(). - */ - String getJavaResourceAttributeTypeName(); - - /** - * Return whether the java resource attribute type is an array - * This might not return the same thing as getJavaResourceAttribute().typeIsArray(). - */ - boolean isJavaResourceAttributeTypeArray(); - - /** - * Return whether the java resource attribute type is a subtype of the given type - * This might not return the same thing as getJavaResourceAttribute().typeIsSubTypeOf(String). - */ - boolean isJavaResourceAttributeTypeSubTypeOf(String typeName); - - // ********** mapping ********** - - /** - * Return the attribute's mapping. This is never null - * (although, it may be a null mapping). - * Set the mapping via {@link PersistentAttribute#setMappingKey(String)}. - */ - JaxbAttributeMapping getMapping(); - String MAPPING_PROPERTY = "mapping"; //$NON-NLS-1$ - - /** - * Return the attribute's mapping key. - */ - String getMappingKey(); - - /** - * Set the attribute's mapping. - * If the specified key is null, clear the specified mapping, - * allowing the attribute's mapping to default (if appropriate). - * Return the new mapping (which may be a null mapping). - */ - JaxbAttributeMapping setMappingKey(String key); - - /** - * Return the key for the attribute's default mapping. - * This can be null (e.g. for specified - * orm.xml attributes). - * @see JaxbAttributeMapping#isDefault() - */ - String getDefaultMappingKey(); - String DEFAULT_MAPPING_KEY_PROPERTY = "defaultMappingKey"; //$NON-NLS-1$ -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentClass.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentClass.java deleted file mode 100644 index f52f029740..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentClass.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -/** - * Represents a JAXB persistent class. - * (A class with either an explicit or implicit @XmlType annotation) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbPersistentClass - extends JaxbPersistentType, JaxbClass, XmlAdaptable { - - // ******** see also ************ - - String XML_SEE_ALSO_PROPERTY = "xmlSeeAlso"; //$NON-NLS-1$ - - XmlSeeAlso getXmlSeeAlso(); - - XmlSeeAlso addXmlSeeAlso(); - - void removeXmlSeeAlso(); - - - /********** attributes **********/ - - Iterable getAttributes(); - int getAttributesSize(); - String ATTRIBUTES_COLLECTION = "attributes"; //$NON-NLS-1$ - - - /********** inherited attributes **********/ - - /** - * Inherited attributes come from any superclasses that are mapped as @XmlTransient. - * @see JaxbClass#getSuperClass() - * @see JaxbClass#getInheritanceHierarchy() - */ - Iterable getInheritedAttributes(); - int getInheritedAttributesSize(); - String INHERITED_ATTRIBUTES_COLLECTION = "inheritedAttributes"; //$NON-NLS-1$ - - - /** - * Return true if the given attribute is one of the inherited attributes. - */ - boolean isInherited(JaxbPersistentAttribute attribute); - - /** - * Only ask this of inherited persistent attributes. Returns the simple - * type name of the attribute's resource type. - * - * @see JaxbPersistentAttribute#isInherited() - */ - String getJavaResourceAttributeOwningTypeName(JaxbPersistentAttribute attribute); - - /** - * Return true if 1 or more attributes include the @XmlId annotation - */ - boolean containsXmlId(); - - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentEnum.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentEnum.java deleted file mode 100644 index 3d047e3f98..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentEnum.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnum; - - -/** - * Represents a JAXB persistent enum. - * (A enum with either an explicit or implicit @XmlEnum annotation) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbPersistentEnum - extends JaxbPersistentType { - - /** - * covariant override - */ - JavaResourceEnum getJavaResourceType(); - - /**************** enum type *****************/ - - /** - * enum type corresponds to the XmlEnum annotation value element - */ - String getEnumType(); - void setEnumType(String enumType); - String ENUM_TYPE_PROPERTY = "enumType"; //$NON-NLS-1$ - String DEFAULT_ENUM_TYPE = "java.lang.String"; //$NON-NLS-1$ - - - /********** enum constants **********/ - - Iterable getEnumConstants(); - int getEnumConstantsSize(); - String ENUM_CONSTANTS_COLLECTION = "enumConstants"; //$NON-NLS-1$ - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentField.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentField.java deleted file mode 100644 index e87e68feae..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentField.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField; - -/** - * Represents a JAXB field. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbPersistentField - extends JaxbPersistentAttribute { - - JavaResourceField getResourceField(); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentProperty.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentProperty.java deleted file mode 100644 index 329d44807e..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentProperty.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; - -/** - * Represents a JAXB property (getter/setter pair) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbPersistentProperty - extends JaxbPersistentAttribute { - - JavaResourceMethod getResourceGetterMethod(); - - JavaResourceMethod getResourceSetterMethod(); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentType.java deleted file mode 100644 index 9f9397967c..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPersistentType.java +++ /dev/null @@ -1,146 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.jaxb.core.xsd.XsdTypeDefinition; - -/** - * Represents a JAXB persistent type (class or enum). - * (A class with either an explicit or implicit @XmlType annotation) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbPersistentType - extends JaxbType { - - /**************** factory class *****************/ - - /** - * factory class corresponds to the XmlType annotation factoryClass element - */ - String getFactoryClass(); - void setFactoryClass(String factoryClass); - String FACTORY_CLASS_PROPERTY = "factoryClass"; //$NON-NLS-1$ - - - /**************** factory method *****************/ - - /** - * factory method corresponds to the XmlType annotation factoryMethod element - */ - String getFactoryMethod(); - void setFactoryMethod(String factoryMethod); - String FACTORY_METHOD_PROPERTY = "factoryMethod"; //$NON-NLS-1$ - - - /**************** name *****************/ - - /** - * Return the specified xml type name or the default type name if it is not specified - */ - String getXmlTypeName(); - - /** - * Return the specified xml type name or null if it is not specified - */ - String getSpecifiedXmlTypeName(); - - /** - * Set the xml type name, null to unspecify (use the default) - */ - void setSpecifiedXmlTypeName(String xmlTypeName); - - /** - * String constant associated with changes to the specified xml type name - */ - String SPECIFIED_XML_TYPE_NAME_PROPERTY = "specifiedXmlTypeName"; //$NON-NLS-1$ - - /** - * Return the default xml type name - */ - String getDefaultXmlTypeName(); - - - /**************** namespace *****************/ - - /** - * Return the specified xml type namespace or the default namespace if it is not specified - */ - String getNamespace(); - - /** - * Return the specified xml type namespace or null if it is not specified - */ - String getSpecifiedNamespace(); - - /** - * Set the xml type namespace, null to unspecify (use the default) - */ - void setSpecifiedNamespace(String namespace); - - /** - * String constant associated with changes to the specified xml type namespace - */ - String SPECIFIED_NAMESPACE_PROPERTY = "specifiedNamespace"; //$NON-NLS-1$ - - /** - * Return the default namespace - */ - String getDefaultNamespace(); - - - /********** propOrder **********/ - - /** - * propOrder corresponds to the XmlType annotation propOrder element - */ - ListIterable getPropOrder(); - int getPropOrderSize(); - void addProp(int index, String prop); - void removeProp(int index); - void removeProp(String prop); - void moveProp(int targetIndex, int sourceIndex); - String PROP_ORDER_LIST = "propOrder"; //$NON-NLS-1$ - - // ********** root element ************ - /** - * Return whether this class is a root element (has the XmlRootElement annotation) - */ - boolean isRootElement(); - - /** - * Return the root element or null if it is not a root element. - */ - XmlRootElement getRootElement(); - - /** - * Set the root element name, this will add the XmlRootElement annotation - * and set its name to the specified name. - * To remove the XmlRootElement annotation, pass in null. - * To set the name when the class is already a root element, - * set it directly on the XmlRootElement. - */ - XmlRootElement setRootElement(String name); - String ROOT_ELEMENT = "rootElement"; //$NON-NLS-1$ - - - // **************** misc ************************************************** - - XsdTypeDefinition getXsdTypeDefinition(); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbRegistry.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbRegistry.java deleted file mode 100644 index 2e187c89ff..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbRegistry.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; - -/** - * Represents a JAXB registry - * (A class with an explicit @XmlRegistry annotation) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbRegistry extends JaxbType { - - /** - * covariant override - */ - JavaResourceType getJavaResourceType(); - - - /********** element factory methods **********/ - - Iterable getElementFactoryMethods(); - int getElementFactoryMethodsSize(); - String ELEMENT_FACTORY_METHODS_COLLECTION = "elementFactoryMethods"; //$NON-NLS-1$ - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbTransientClass.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbTransientClass.java deleted file mode 100644 index 4714a3e436..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbTransientClass.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -/** - * Represents a transient JAXB type - * (A class with an explicit @XmlTransient annotation) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbTransientClass extends JaxbClass { - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbType.java deleted file mode 100644 index 1c0dfc7671..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbType.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import java.util.List; -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * Represents a java class (or enum or interface) with JAXB metadata (specified or implied). - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JaxbType - extends JavaContextNode { - - /** - * Return the kind of JaxbType this represents - */ - Kind getKind(); - - /** - * Return the associated java resource type - */ - JavaResourceAbstractType getJavaResourceType(); - - /** - * Returns the fully qualified name of this type, including qualification for any - * enclosing types and packages. - */ - String getFullyQualifiedName(); - - /** - * Returns the type-qualified name of this type, including qualification for any - * enclosing types, but not including package qualification. - */ - String getTypeQualifiedName(); - - /** - * Return the name of the type without any package or type qualifiers - */ - String getSimpleName(); - - /** - * Return the name of the type's package. Empty string if none. - */ - String getPackageName(); - - /** - * Return the {@link JaxbPackage} associated with this type - */ - JaxbPackage getJaxbPackage(); - - /** - * Return all directly referenced types, fully qualified. - * (Used for constructing Jaxb context) - */ - Iterable getDirectlyReferencedTypeNames(); - - - // **************** validation ******************************************** - - /** - * Add to the list of current validation messages - */ - void validate(List messages, IReporter reporter); - - - /** - * The kind of metadata specified on the java type. - */ - public static enum Kind { - - /** - * A JaxbType of {@link Kind} PERSISTENT_CLASS may safely be cast as a {@link JaxbPersistentClass} - */ - PERSISTENT_CLASS, - - /** - * A JaxbType of {@link Kind} PERSISTENT_ENUM may safely be cast as a {@link JaxbPersistentEnum} - */ - PERSISTENT_ENUM, - - /** - * A JaxbType of {@link Kind} REGISTRY may safely be cast as a {@link JaxbRegistry} - */ - REGISTRY, - - /** - * A JaxbType of {@link Kind} TRANSIENT may safely be cast as a {@link JaxbTransientClass} - */ - TRANSIENT - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessOrder.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessOrder.java deleted file mode 100644 index 7c3a887420..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessOrder.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -/** - * Access Order - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public enum XmlAccessOrder { - - ALPHABETICAL( - org.eclipse.jpt.jaxb.core.resource.java.XmlAccessOrder.ALPHABETICAL - ), - UNDEFINED( - org.eclipse.jpt.jaxb.core.resource.java.XmlAccessOrder.UNDEFINED - ); - - - private org.eclipse.jpt.jaxb.core.resource.java.XmlAccessOrder javaAccessOrder; - - XmlAccessOrder(org.eclipse.jpt.jaxb.core.resource.java.XmlAccessOrder javaAccessOrder) { - if (javaAccessOrder == null) { - throw new NullPointerException(); - } - this.javaAccessOrder = javaAccessOrder; - } - - public org.eclipse.jpt.jaxb.core.resource.java.XmlAccessOrder getJavaAccessOrder() { - return this.javaAccessOrder; - } - - - // ********** static methods ********** - - public static XmlAccessOrder fromJavaResourceModel(org.eclipse.jpt.jaxb.core.resource.java.XmlAccessOrder javaAccessOrder) { - return (javaAccessOrder == null) ? null : fromJavaResourceModel_(javaAccessOrder); - } - - private static XmlAccessOrder fromJavaResourceModel_(org.eclipse.jpt.jaxb.core.resource.java.XmlAccessOrder javaAccessOrder) { - for (XmlAccessOrder accessOrder : XmlAccessOrder.values()) { - if (accessOrder.getJavaAccessOrder() == javaAccessOrder) { - return accessOrder; - } - } - return null; - } - - public static org.eclipse.jpt.jaxb.core.resource.java.XmlAccessOrder toJavaResourceModel(XmlAccessOrder accessOrder) { - return (accessOrder == null) ? null : accessOrder.getJavaAccessOrder(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessOrderHolder.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessOrderHolder.java deleted file mode 100644 index 8110846e90..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessOrderHolder.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - - -/** - * - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlAccessOrderHolder - extends JaxbContextNode -{ - /** - * Return the access order, whether specified or defaulted. - * This should never return null since at least the default will be set - */ - XmlAccessOrder getAccessOrder(); - - /** - * Return the default access order, never null - */ - XmlAccessOrder getDefaultAccessOrder(); - - /** - * String constant associated with changes to the default access order - */ - String DEFAULT_ACCESS_ORDER_PROPERTY = "defaultAccessOrder"; //$NON-NLS-1$ - - /** - * Return the specified access order; - */ - XmlAccessOrder getSpecifiedAccessOrder(); - - /** - * Set the specified access order. - */ - void setSpecifiedAccessOrder(XmlAccessOrder newSpecifiedAccessOrder); - - /** - * String constant associated with changes to the specified access order - */ - String SPECIFIED_ACCESS_ORDER_PROPERTY = "specifiedAccessOrder"; //$NON-NLS-1$ - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessType.java deleted file mode 100644 index b2c8fd639a..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessType.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -/** - * Access Type - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public enum XmlAccessType { - - FIELD( - org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType.FIELD - ), - NONE( - org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType.NONE - ), - PROPERTY( - org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType.PROPERTY - ), - PUBLIC_MEMBER( - org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType.PUBLIC_MEMBER - ); - - - private org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType javaAccessType; - - XmlAccessType(org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType javaAccessType) { - if (javaAccessType == null) { - throw new NullPointerException(); - } - this.javaAccessType = javaAccessType; - } - - public org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType getJavaAccessType() { - return this.javaAccessType; - } - - - // ********** static methods ********** - - public static XmlAccessType fromJavaResourceModel(org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType javaAccessType) { - return (javaAccessType == null) ? null : fromJavaResourceModel_(javaAccessType); - } - - private static XmlAccessType fromJavaResourceModel_(org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType javaAccessType) { - for (XmlAccessType accessType : XmlAccessType.values()) { - if (accessType.getJavaAccessType() == javaAccessType) { - return accessType; - } - } - return null; - } - - public static org.eclipse.jpt.jaxb.core.resource.java.XmlAccessType toJavaResourceModel(XmlAccessType accessType) { - return (accessType == null) ? null : accessType.getJavaAccessType(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessTypeHolder.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessTypeHolder.java deleted file mode 100644 index 986195e690..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAccessTypeHolder.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - - -/** - * - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlAccessTypeHolder - extends JaxbContextNode -{ - /** - * Return the access type, whether specified or defaulted. - * This should never return null since at least the default will be set - */ - XmlAccessType getAccessType(); - - /** - * Return the default access type, never null - */ - XmlAccessType getDefaultAccessType(); - - /** - * String constant associated with changes to the default access type - */ - String DEFAULT_ACCESS_TYPE_PROPERTY = "defaultAccessType"; //$NON-NLS-1$ - - /** - * Return the specified access type; - */ - XmlAccessType getSpecifiedAccessType(); - - /** - * Set the specified access type. - */ - void setSpecifiedAccessType(XmlAccessType newSpecifiedAccessType); - - /** - * String constant associated with changes to the specified access type - */ - String SPECIFIED_ACCESS_TYPE_PROPERTY = "specifiedAccessType"; //$NON-NLS-1$ - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAdaptable.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAdaptable.java deleted file mode 100644 index d0d03b92c1..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAdaptable.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAnnotatedElement; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; - -public interface XmlAdaptable - extends JavaContextNode -{ - /********** XmlJavaTypeAdapter **********/ - XmlJavaTypeAdapter getXmlJavaTypeAdapter(); - XmlJavaTypeAdapter addXmlJavaTypeAdapter(); - void removeXmlJavaTypeAdapter(); - String XML_JAVA_TYPE_ADAPTER_PROPERTY = "xmlJavaTypeAdapter"; //$NON-NLS-1$ - - interface Owner { - JavaResourceAnnotatedElement getResource(); - XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation adapterAnnotation); - void fireXmlAdapterChanged(XmlJavaTypeAdapter oldAdapter, XmlJavaTypeAdapter newAdapter); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAnyAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAnyAttributeMapping.java deleted file mode 100644 index ee6cddc2e5..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAnyAttributeMapping.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - - -/** - * Represents a JAXB xml any attribute mapping (@XmlAnyAttribute) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlAnyAttributeMapping - extends JaxbAttributeMapping, XmlAdaptable { - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAnyElementMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAnyElementMapping.java deleted file mode 100644 index 1e2b502648..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAnyElementMapping.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - - -/** - * Represents a JAXB xml any element mapping (@XmlAnyElement) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlAnyElementMapping - extends JaxbAttributeMapping, XmlAdaptable { - - - boolean isLax(); - boolean isDefaultLax(); - boolean DEFAULT_LAX = false; - Boolean getSpecifiedLax(); - void setSpecifiedLax(Boolean specifiedLax); - String SPECIFIED_LAX_PROPERTY = "specifiedLax"; //$NON-NLS-1$ - - /**************** value *****************/ - - String getValue(); - String getDefaultValue(); - String DEFAULT_TYPE_PROPERTY = "defaultValue"; //$NON-NLS-1$ - String getSpecifiedValue(); - void setSpecifiedValue(String value); - String SPECIFIED_VALUE_PROPERTY = "specifiedValue"; //$NON-NLS-1$ - String DEFAULT_VALUE = "javax.xml.bind.annotation.W3CDomHandler"; //$NON-NLS-1$ - - /********** XmlMixed **********/ - XmlMixed getXmlMixed(); - XmlMixed addXmlMixed(); - void removeXmlMixed(); - String XML_MIXED_PROPERTY = "xmlMixed"; //$NON-NLS-1$ - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAttachmentRef.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAttachmentRef.java deleted file mode 100644 index 903e3c246f..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAttachmentRef.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; - - -/** - * Represents a JAXB XmlAttachmentRef - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlAttachmentRef - extends JavaContextNode { - - -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAttributeMapping.java deleted file mode 100644 index 63b5648f61..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlAttributeMapping.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - - -/** - * Represents a JAXB xml attribute mapping (@XmlAttribute) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlAttributeMapping - extends JaxbContainmentMapping { - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlElementMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlElementMapping.java deleted file mode 100644 index c34a8ee7e1..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlElementMapping.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - - -/** - * Represents a JAXB xml element mapping (@XmlElement) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlElementMapping - extends JaxbContainmentMapping { - - - boolean isNillable(); - boolean isDefaultNillable(); - boolean DEFAULT_NILLABLE = false; - Boolean getSpecifiedNillable(); - void setSpecifiedNillable(Boolean specifiedNillable); - String SPECIFIED_NILLABLE_PROPERTY = "specifiedNillable"; //$NON-NLS-1$ - - String getDefaultValue(); - void setDefaultValue(String defaultValue); - String DEFAULT_VALUE_PROPERTY = "defaultValue"; //$NON-NLS-1$ - - String getType(); - String getDefaultType(); - String getSpecifiedType(); - void setSpecifiedType(String type); - String SPECIFIED_TYPE_PROPERTY = "specifiedType"; //$NON-NLS-1$ - - - /********** XmlElementWrapper **********/ - XmlElementWrapper getXmlElementWrapper(); - XmlElementWrapper addXmlElementWrapper(); - void removeXmlElementWrapper(); - String XML_ELEMENT_WRAPPER_PROPERTY = "xmlElementWrapper"; //$NON-NLS-1$ - -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlElementWrapper.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlElementWrapper.java deleted file mode 100644 index 527cd593ad..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlElementWrapper.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; - - -/** - * Represents a JAXB XML element wrapper - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlElementWrapper - extends JavaContextNode { - - - String getName(); - String getDefaultName(); - String getSpecifiedName(); - void setSpecifiedName(String name); - String SPECIFIED_NAME_PROPERTY = "specifiedName"; //$NON-NLS-1$ - - String getNamespace(); - String getDefaultNamespace(); - String getSpecifiedNamespace(); - void setSpecifiedNamespace(String namespace); - String SPECIFIED_NAMESPACE_PROPERTY = "specifiedNamespace"; //$NON-NLS-1$ - - boolean isNillable(); - boolean isDefaultNillable(); - boolean DEFAULT_NILLABLE = false; - Boolean getSpecifiedNillable(); - void setSpecifiedNillable(Boolean specifiedNillable); - String SPECIFIED_NILLABLE_PROPERTY = "specifiedNillable"; //$NON-NLS-1$ - - boolean isRequired(); - boolean isDefaultRequired(); - boolean DEFAULT_REQUIRED = false; - Boolean getSpecifiedRequired(); - void setSpecifiedRequired(Boolean specifiedRequired); - String SPECIFIED_REQUIRED_PROPERTY = "specifiedRequired"; //$NON-NLS-1$ -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlID.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlID.java deleted file mode 100644 index d5f9db3d99..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlID.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; - - -/** - * Represents a JAXB XmlID - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlID - extends JavaContextNode { - - -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlIDREF.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlIDREF.java deleted file mode 100644 index 72581acdc0..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlIDREF.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; - - -/** - * Represents a JAXB XmlIDREF - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlIDREF - extends JavaContextNode { - - -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlJavaTypeAdapter.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlJavaTypeAdapter.java deleted file mode 100644 index ed84284df4..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlJavaTypeAdapter.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; - -/** - * - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlJavaTypeAdapter - extends JavaContextNode { - - XmlJavaTypeAdapterAnnotation getResourceXmlJavaTypeAdapter(); - - /**************** value *****************/ - - String getValue(); - - void setValue(String value); - String VALUE_PROPERTY = "value"; //$NON-NLS-1$ - - /**************** type *****************/ - - String getType(); - String getDefaultType(); - String DEFAULT_TYPE_PROPERTY = "defaultType"; //$NON-NLS-1$ - String getSpecifiedType(); - void setSpecifiedType(String type); - String SPECIFIED_TYPE_PROPERTY = "specifiedType"; //$NON-NLS-1$ - String DEFAULT_TYPE = "javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT"; //$NON-NLS-1$ - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlList.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlList.java deleted file mode 100644 index 70e1fc55e3..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlList.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; - - -/** - * Represents a JAXB XML list - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlList - extends JavaContextNode { - - -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlMixed.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlMixed.java deleted file mode 100644 index 859a755a0c..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlMixed.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; - -/** - * - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlMixed - extends - JavaContextNode -{ - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlNs.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlNs.java deleted file mode 100644 index c83049ccc9..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlNs.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.resource.java.XmlNsAnnotation; - -/** - * - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlNs - extends - JaxbContextNode -{ - XmlNsAnnotation getResourceXmlNs(); - - // ********** namespaceURI ********** - String getNamespaceURI(); - void setNamespaceURI(String namespaceURI); - String NAMESPACE_URI_PROPERTY = "namespaceURI"; //$NON-NLS-1$ - - // ********** prefix ********** - String getPrefix(); - void setPrefix(String prefix); - String PREFIX_PROPERTY = "prefix"; //$NON-NLS-1$ -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlNsForm.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlNsForm.java deleted file mode 100644 index 25b8ebc374..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlNsForm.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -/** - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public enum XmlNsForm { - - QUALIFIED( - org.eclipse.jpt.jaxb.core.resource.java.XmlNsForm.QUALIFIED - ), - UNQUALIFIED( - org.eclipse.jpt.jaxb.core.resource.java.XmlNsForm.UNQUALIFIED - ), - UNSET( - org.eclipse.jpt.jaxb.core.resource.java.XmlNsForm.UNSET - ); - - - private org.eclipse.jpt.jaxb.core.resource.java.XmlNsForm javaNsForm; - - XmlNsForm(org.eclipse.jpt.jaxb.core.resource.java.XmlNsForm javaNsForm) { - if (javaNsForm == null) { - throw new NullPointerException(); - } - this.javaNsForm = javaNsForm; - } - - public org.eclipse.jpt.jaxb.core.resource.java.XmlNsForm getJavaNsForm() { - return this.javaNsForm; - } - - - // ********** static methods ********** - - public static XmlNsForm fromJavaResourceModel(org.eclipse.jpt.jaxb.core.resource.java.XmlNsForm javaNsForm) { - return (javaNsForm == null) ? null : fromJavaResourceModel_(javaNsForm); - } - - private static XmlNsForm fromJavaResourceModel_(org.eclipse.jpt.jaxb.core.resource.java.XmlNsForm javaNsForm) { - for (XmlNsForm nsForm : XmlNsForm.values()) { - if (nsForm.getJavaNsForm() == javaNsForm) { - return nsForm; - } - } - return null; - } - - public static org.eclipse.jpt.jaxb.core.resource.java.XmlNsForm toJavaResourceModel(XmlNsForm nsForm) { - return (nsForm == null) ? null : nsForm.getJavaNsForm(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlRootElement.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlRootElement.java deleted file mode 100644 index 12870d5571..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlRootElement.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; - -/** - * Represents a JAXB xml root element. - * (A class with either an explicit @XmlRootElement annotation) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlRootElement - extends JavaContextNode { - - /**************** name *****************/ - - /** - * Return the specified name or the default type name if it is not specified - */ - String getName(); - - /** - * Return the specified name or null if it is not specified - */ - String getSpecifiedName(); - - /** - * Set the name, null to unspecify (use the default) - */ - void setSpecifiedName(String name); - - /** - * String constant associated with changes to the specified name - */ - String SPECIFIED_NAME_PROPERTY = "specifiedName"; //$NON-NLS-1$ - - /** - * Return the default name - */ - String getDefaultName(); - - - /**************** namespace *****************/ - - /** - * Return the specified namespace or the default namespace if it is not specified - */ - String getNamespace(); - - /** - * Return the specified namespace or null if it is not specified - */ - String getSpecifiedNamespace(); - - /** - * Set the namespace, null to unspecify (use the default) - */ - void setSpecifiedNamespace(String namespace); - - /** - * String constant associated with changes to the specified namespace - */ - String SPECIFIED_NAMESPACE_PROPERTY = "specifiedNamespace"; //$NON-NLS-1$ - - /** - * Return the default namespace - */ - String getDefaultNamespace(); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSchema.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSchema.java deleted file mode 100644 index 6bf74005b9..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSchema.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; - -/** - * - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlSchema - extends JavaContextNode { - - /** - * Return the specified namespace or "" (default value) - */ - String getNamespace(); - - /** - * Return the specified namespace, null if it is not specified - */ - String getSpecifiedNamespace(); - - /** - * Set the namespace, null to unspecify - */ - void setSpecifiedNamespace(String namespace); - - /** - * String constant associated with changes to the specified namespace - */ - String SPECIFIED_NAMESPACE_PROPERTY = "specifiedNamespace"; //$NON-NLS-1$ - - - /** - * Corresponds to the XmlSchema annotation location element - */ - String getLocation(); - void setLocation(String location); - String LOCATION_PROPERTY = "location"; //$NON-NLS-1$ - String DEFAULT_LOCATION = "##generate"; //$NON-NLS-1$ - - - /** - * Corresponds to the XmlSchema annotation 'attributeFormDefault' element - */ - XmlNsForm getAttributeFormDefault(); - void setAttributeFormDefault(XmlNsForm newAttributeFormDefault); - String ATTRIBUTE_FROM_DEFAULT_PROPERTY = "atributeFormDefault"; //$NON-NLS-1$ - XmlNsForm DEFAULT_ATTRIBUTE_FORM_DEFAULT = XmlNsForm.UNSET; - - - /** - * Corresponds to the XmlSchema annotation 'elementFormDefault' element - */ - XmlNsForm getElementFormDefault(); - void setElementFormDefault(XmlNsForm newElementFormDefault); - String ELEMENT_FROM_DEFAULT_PROPERTY = "elementFormDefault"; //$NON-NLS-1$ - XmlNsForm DEFAULT_ELEMENT_FORM_DEFAULT = XmlNsForm.UNSET; - - - // ********** xml namespace prefixes ********** - - ListIterable getXmlNsPrefixes(); - int getXmlNsPrefixesSize(); - XmlNs addXmlNsPrefix(int index); - void removeXmlNsPrefix(int index); - void removeXmlNsPrefix(XmlNs xmlNsPrefix); - void moveXmlNsPrefix(int targetIndex, int sourceIndex); - String XML_NS_PREFIXES_LIST = "xmlNsPrefixes"; //$NON-NLS-1$ - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSchemaType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSchemaType.java deleted file mode 100644 index f2fb6625ab..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSchemaType.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation; - -/** - * - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlSchemaType - extends - JavaContextNode -{ - - XmlSchemaTypeAnnotation getResourceXmlSchemaType(); - - - /**************** name *****************/ - - String getName(); - void setName(String name); - String NAME_PROPERTY = "name"; //$NON-NLS-1$ - - - /**************** namespace *****************/ - - /** - * Corresponds to the XmlSchemaType annotation 'namespace' element - */ - String getNamespace(); - String getDefaultNamespace(); - String getSpecifiedNamespace(); - void setSpecifiedNamespace(String namespace); - String SPECIFIED_NAMESPACE_PROPERTY = "namespace"; //$NON-NLS-1$ - String DEFAULT_NAMESPACE = "http://www.w3.org/2001/XMLSchema"; //$NON-NLS-1$ - - - /**************** type *****************/ - - /** - * Corresponds to the XmlSchemaType annotation 'type' element - */ - String getType(); - void setType(String type); - String TYPE_PROPERTY = "type"; //$NON-NLS-1$ - String DEFAULT_TYPE = "javax.xml.bind.annotation.XmlSchemaType.DEFAULT"; //$NON-NLS-1$ -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSeeAlso.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSeeAlso.java deleted file mode 100644 index 7a02e5f6d9..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlSeeAlso.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; - -/** - * Maintains a list of classes (class names here) to be added to the JAXB context. - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ - -public interface XmlSeeAlso - extends JavaContextNode { - - // **************** value ************************************************* - - public static final String CLASSES_LIST = "classes"; - - ListIterable getClasses(); - - int getClassesSize(); - - void addClass(int index, String clazz); - - void removeClass(int index); - - void moveClass(int targetIndex, int sourceIndex); - - - // **************** misc ************************************************** - - Iterable getDirectlyReferencedTypeNames(); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlValueMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlValueMapping.java deleted file mode 100644 index 49b7509633..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/XmlValueMapping.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context; - - -/** - * Represents a JAXB xml value mapping (@XmlValue) - *

- * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface XmlValueMapping - extends JaxbAttributeMapping, XmlAdaptable { - -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/DefaultJavaAttributeMappingDefinition.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/DefaultJavaAttributeMappingDefinition.java deleted file mode 100644 index ff6fdc4ac3..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/DefaultJavaAttributeMappingDefinition.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; - - - -/** - * Map a string key to an attribute mapping and its corresponding - * Java annotation. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface DefaultJavaAttributeMappingDefinition extends JavaAttributeMappingDefinition -{ - - /** - * Return whether this mapping provider should be used for the given {@link JaxbPersistentAttribute} - * in the default (ignoring all mapping annotations) case. - */ - boolean isDefault(JaxbPersistentAttribute persistentAttribute); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/JavaAttributeMappingDefinition.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/JavaAttributeMappingDefinition.java deleted file mode 100644 index d427d8eb01..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/JavaAttributeMappingDefinition.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context.java; - -import org.eclipse.jpt.jaxb.core.JaxbFactory; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; - - -/** - * Map a string key to an attribute mapping and its corresponding - * Java annotation. - * - * Provisional API: This interface is part of an interim API that is still - * under development and expected to change significantly before reaching - * stability. It is available at this early stage to solicit feedback from - * pioneering adopters on the understanding that any code that uses this API - * will almost certainly be broken (repeatedly) as the API evolves. - * - * @version 3.0 - * @since 3.0 - */ -public interface JavaAttributeMappingDefinition -{ - /** - * Return the attribute mapping's key. - */ - String getKey(); - - /** - * Return the attribute mapping's Java annotation name. - */ - String getAnnotationName(); - - /** - * Build a Java attribute mapping for the specified attribute. Use the specified - * factory for creation so extenders can simply override the appropriate - * creation method instead of building a provider for the same key. - */ - JaxbAttributeMapping buildMapping(JaxbPersistentAttribute attribute, JaxbFactory factory); - - /** - * Return all fully qualified annotation names that are supported with this mapping type. - * This includes all possible annotations, not just the ones that currently exist on the attribute. - */ - Iterable getSupportingAnnotationNames(); - - /** - * Return whether this mapping provider should be used for the given {@link PersistentAttribute} - * in the specified (observing all mapping annotations) case. - */ - boolean isSpecified(JaxbPersistentAttribute persistentAttribute); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/JavaContextNode.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/JavaContextNode.java deleted file mode 100644 index b2859f03dd..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/java/JavaContextNode.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.jaxb.core.context.JaxbContextNode; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - - -public interface JavaContextNode - extends JaxbContextNode { - - // **************** content assist **************************************** - - /** - * Return the Java code-completion proposals for the specified position in the source code. - */ - Iterable getJavaCompletionProposals(int pos, Filter filter, CompilationUnit astRoot); - - - // ******************** validation **************************************** - - /** - * Adds to the list of current validation messages - */ - void validate(List messages, IReporter reporter, CompilationUnit astRoot); - - /** - * Return the text range for highlighting errors for this object - */ - TextRange getValidationTextRange(CompilationUnit astRoot); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbFactory.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbFactory.java deleted file mode 100644 index d1266ee1bd..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbFactory.java +++ /dev/null @@ -1,182 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jpt.common.core.JptResourceModel; -import org.eclipse.jpt.jaxb.core.JaxbFactory; -import org.eclipse.jpt.jaxb.core.JaxbFile; -import org.eclipse.jpt.jaxb.core.JaxbProject; -import org.eclipse.jpt.jaxb.core.JaxbProject.Config; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbElementFactoryMethod; -import org.eclipse.jpt.jaxb.core.context.JaxbEnumConstant; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentEnum; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentField; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentProperty; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentType; -import org.eclipse.jpt.jaxb.core.context.JaxbRegistry; -import org.eclipse.jpt.jaxb.core.context.JaxbTransientClass; -import org.eclipse.jpt.jaxb.core.context.XmlAnyAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.XmlAnyElementMapping; -import org.eclipse.jpt.jaxb.core.context.XmlAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.XmlElementMapping; -import org.eclipse.jpt.jaxb.core.context.XmlNs; -import org.eclipse.jpt.jaxb.core.context.XmlRootElement; -import org.eclipse.jpt.jaxb.core.context.XmlSchema; -import org.eclipse.jpt.jaxb.core.context.XmlValueMapping; -import org.eclipse.jpt.jaxb.core.internal.context.GenericContextRoot; -import org.eclipse.jpt.jaxb.core.internal.context.GenericPackage; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaElementFactoryMethod; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaEnumConstant; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaNullAttributeMapping; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaPackageInfo; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaPersistentClass; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaPersistentEnum; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaPersistentField; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaPersistentProperty; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaRegistry; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaTransientClass; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlAnyAttributeMapping; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlAnyElementMapping; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlAttributeMapping; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlElementMapping; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlNs; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlRootElement; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlSchema; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlTransientMapping; -import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlValueMapping; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnum; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnumConstant; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; -import org.eclipse.jpt.jaxb.core.resource.java.XmlNsAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlRootElementAnnotation; - -/** - * Central class that allows extenders to easily replace implementations of - * various Dali interfaces. - */ -public abstract class AbstractJaxbFactory - implements JaxbFactory { - - protected AbstractJaxbFactory() { - super(); - } - - - // ********** Core Model ********** - - public JaxbProject buildJaxbProject(Config config) { - return new GenericJaxbProject(config); - } - - public JaxbFile buildJaxbFile(JaxbProject jaxbProject, IFile file, IContentType contentType, JptResourceModel resourceModel) { - return new GenericJaxbFile(jaxbProject, file, contentType, resourceModel); - } - - - // ********** Non-resource-specific context nodes ********** - - public JaxbContextRoot buildContextRoot(JaxbProject parent) { - return new GenericContextRoot(parent); - } - - public JaxbPackage buildPackage(JaxbContextRoot parent, String packageName) { - return new GenericPackage(parent, packageName); - } - - - // ********** Java context nodes ********** - - public JaxbPackageInfo buildJavaPackageInfo(JaxbPackage parent, JavaResourcePackage resourcePackage) { - return new GenericJavaPackageInfo(parent, resourcePackage); - } - - public JaxbRegistry buildRegistry(JaxbContextRoot parent, JavaResourceType resourceType) { - return new GenericJavaRegistry(parent, resourceType); - } - - public JaxbTransientClass buildJavaTransientClass(JaxbContextRoot parent, JavaResourceType resourceType) { - return new GenericJavaTransientClass(parent, resourceType); - } - - public JaxbPersistentClass buildJavaPersistentClass(JaxbContextRoot parent, JavaResourceType resourceType) { - return new GenericJavaPersistentClass(parent, resourceType); - } - - public JaxbPersistentEnum buildJavaPersistentEnum(JaxbContextRoot parent, JavaResourceEnum resourceEnum) { - return new GenericJavaPersistentEnum(parent, resourceEnum); - } - - public XmlSchema buildJavaXmlSchema(JaxbPackageInfo parent) { - return new GenericJavaXmlSchema(parent); - } - - public JaxbEnumConstant buildJavaEnumConstant(JaxbPersistentEnum parent, JavaResourceEnumConstant resourceEnumConstant) { - return new GenericJavaEnumConstant(parent, resourceEnumConstant); - } - - public XmlNs buildJavaXmlNs(XmlSchema parent, XmlNsAnnotation xmlNsAnnotation) { - return new GenericJavaXmlNs(parent, xmlNsAnnotation); - } - - public XmlRootElement buildJavaXmlRootElement(JaxbPersistentType parent, XmlRootElementAnnotation xmlRootElementAnnotation) { - return new GenericJavaXmlRootElement(parent, xmlRootElementAnnotation); - } - - public JaxbElementFactoryMethod buildJavaElementFactoryMethod(JaxbRegistry parent, JavaResourceMethod resourceMethod) { - return new GenericJavaElementFactoryMethod(parent, resourceMethod); - } - - public JaxbPersistentField buildJavaPersistentField(JaxbPersistentClass parent, JavaResourceField resourceField) { - return new GenericJavaPersistentField(parent, resourceField); - } - - public JaxbPersistentProperty buildJavaPersistentProperty(JaxbPersistentClass parent, JavaResourceMethod resourceGetter, JavaResourceMethod resourceSetter) { - return new GenericJavaPersistentProperty(parent, resourceGetter, resourceSetter); - } - - public JaxbAttributeMapping buildJavaNullAttributeMapping(JaxbPersistentAttribute parent) { - return new GenericJavaNullAttributeMapping(parent); - } - - public JaxbAttributeMapping buildJavaXmlTransientMapping(JaxbPersistentAttribute parent) { - return new GenericJavaXmlTransientMapping(parent); - } - - public XmlAnyAttributeMapping buildJavaXmlAnyAttributeMapping(JaxbPersistentAttribute parent) { - return new GenericJavaXmlAnyAttributeMapping(parent); - } - - public XmlAnyElementMapping buildJavaXmlAnyElementMapping(JaxbPersistentAttribute parent) { - return new GenericJavaXmlAnyElementMapping(parent); - } - - public XmlAttributeMapping buildJavaXmlAttributeMapping(JaxbPersistentAttribute parent) { - return new GenericJavaXmlAttributeMapping(parent); - } - - public XmlElementMapping buildJavaXmlElementMapping(JaxbPersistentAttribute parent) { - return new GenericJavaXmlElementMapping(parent); - } - - public XmlValueMapping buildJavaXmlValueMapping(JaxbPersistentAttribute parent) { - return new GenericJavaXmlValueMapping(parent); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbNode.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbNode.java deleted file mode 100644 index 84dcf57c39..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbNode.java +++ /dev/null @@ -1,498 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import java.util.Vector; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jpt.common.core.internal.utility.jdt.JDTModifiedDeclaration.Adapter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.Tools; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable; -import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneListIterable; -import org.eclipse.jpt.common.utility.internal.model.AbstractModel; -import org.eclipse.jpt.common.utility.internal.model.AspectChangeSupport; -import org.eclipse.jpt.common.utility.internal.model.ChangeSupport; -import org.eclipse.jpt.jaxb.core.JaxbFactory; -import org.eclipse.jpt.jaxb.core.JaxbFile; -import org.eclipse.jpt.jaxb.core.JaxbNode; -import org.eclipse.jpt.jaxb.core.JaxbProject; -import org.eclipse.jpt.jaxb.core.context.JaxbContextNode; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatform; - -/** - * Some common Dali behavior:

    - *
  • containment hierarchy - *
  • Eclipse adaptable - *
  • update triggers - *
- */ -public abstract class AbstractJaxbNode - extends AbstractModel - implements JaxbNode -{ - private final JaxbNode parent; - - - // ********** constructor/initialization ********** - - protected AbstractJaxbNode(JaxbNode parent) { - super(); - this.checkParent(parent); - this.parent = parent; - } - - protected void checkParent(JaxbNode p) { - if (p == null) { - if (this.requiresParent()) { - throw new IllegalArgumentException("'parent' cannot be null"); //$NON-NLS-1$ - } - } else { - if (this.forbidsParent()) { - throw new IllegalArgumentException("'parent' must be null"); //$NON-NLS-1$ - } - } - } - - protected boolean requiresParent() { - return true; - } - - protected boolean forbidsParent() { - return ! this.requiresParent(); // assume 'parent' is not optional - } - - @Override - protected ChangeSupport buildChangeSupport() { - return new AspectChangeSupport(this, this.buildChangeSupportListener()); - } - - protected AspectChangeSupport.Listener buildChangeSupportListener() { - return new AspectChangeSupport.Listener() { - public void aspectChanged(String aspectName) { - AbstractJaxbNode.this.aspectChanged(aspectName); - } - }; - } - - - // ********** IAdaptable implementation ********** - - @SuppressWarnings("rawtypes") - public Object getAdapter(Class adapter) { - return Platform.getAdapterManager().getAdapter(this, adapter); - } - - - // ********** JaxbNode implementation ********** - - public JaxbNode getParent() { - return this.parent; - } - - public IResource getResource() { - return this.parent.getResource(); - } - - public JaxbProject getJaxbProject() { - return this.parent.getJaxbProject(); - } - - - // ********** convenience methods ********** - - protected JaxbPlatform getPlatform() { - return this.getJaxbProject().getPlatform(); - } - -// protected JaxbPlatform.Version getJaxbPlatformVersion() { -// return this.getJaxbPlatform().getJaxbPlatformVersion(); -// } - - protected JaxbFactory getFactory() { - return this.getPlatform().getFactory(); - } - - protected JaxbFile getJaxbFile(IFile file) { - return this.getJaxbProject().getJaxbFile(file); - } - - - // ********** CallbackChangeSupport.Listener support ********** - - protected void aspectChanged(String aspectName) { - if (this.aspectTriggersUpdate(aspectName)) { -// String msg = Thread.currentThread() + " aspect change: " + this + ": " + aspectName; -// System.out.println(msg); -// new Exception(msg).printStackTrace(System.out); - this.stateChanged(); - } - } - - private boolean aspectTriggersUpdate(String aspectName) { - return ! this.aspectDoesNotTriggerUpdate(aspectName); - } - - protected boolean aspectDoesNotTriggerUpdate(String aspectName) { - // ignore state changes so we don't get a stack overflow :-) - // (and we don't use state changes except here) - return (aspectName == null) || - this.nonUpdateAspectNames().contains(aspectName); - } - - protected final Set nonUpdateAspectNames() { - synchronized (nonUpdateAspectNameSets) { - HashSet nonUpdateAspectNames = nonUpdateAspectNameSets.get(this.getClass()); - if (nonUpdateAspectNames == null) { - nonUpdateAspectNames = new HashSet(); - this.addNonUpdateAspectNamesTo(nonUpdateAspectNames); - nonUpdateAspectNameSets.put(this.getClass(), nonUpdateAspectNames); - } - return nonUpdateAspectNames; - } - } - - private static final HashMap, HashSet> nonUpdateAspectNameSets = new HashMap, HashSet>(); - - protected void addNonUpdateAspectNamesTo(@SuppressWarnings("unused") Set nonUpdateAspectNames) { - // when you override this method, don't forget to include: - // super.addNonUpdateAspectNamesTo(nonUpdateAspectNames); - } - - public void stateChanged() { - this.fireStateChanged(); - if (this.parent != null) { - this.parent.stateChanged(); - } - } - - - /** - * Adapter used to synchronize a context collection container with its corresponding - * resource container. - * @param the type of context elements - * @param the type of resource elements - */ - protected abstract class CollectionContainer { - - protected final Vector contextElements = new Vector(); - - protected CollectionContainer() { - super(); - this.initializeContextElements(); - } - - /** - * Return the container's current set of resource elements. - * These are what the context elements will be synchronized to. - */ - protected abstract Iterable getResourceElements(); - - /** - * Return the resource element corresponding to the specified context - * element. - */ - protected abstract R getResourceElement(C contextElement); - - /** - * Build and return a context element for the given resource element - */ - protected abstract C buildContextElement(R resourceElement); - - /** - * Return the property name for event notification when the collection is changed. - */ - protected abstract String getContextElementsPropertyName(); - - protected void initializeContextElements() { - for (R resourceElement : this.getResourceElements()) { - this.contextElements.add(this.buildContextElement(resourceElement)); - } - } - - /** - * Return an Iterable of the context elements - */ - public Iterable getContextElements() { - return new LiveCloneIterable(this.contextElements); - } - - /** - * Return the size of the context elements collection - */ - public int getContextElementsSize() { - return this.contextElements.size(); - } - - /** - * Add a context element for the specified resource element at the - * specified index. - */ - public C addContextElement(int index, R resourceElement) { - return this.addContextElement_(index, this.buildContextElement(resourceElement)); - } - - /** - * Add the specified context element to the collection ignoring - * the specified index as we only have a collection - */ - protected C addContextElement_(@SuppressWarnings("unused") int index, C contextElement) { - AbstractJaxbNode.this.addItemToCollection(contextElement, this.contextElements, this.getContextElementsPropertyName()); - return contextElement; - } - - /** - * Remove the specified context element from the container. - */ - public void removeContextElement(C element) { - AbstractJaxbNode.this.removeItemFromCollection(element, this.contextElements, this.getContextElementsPropertyName()); - } - - @SuppressWarnings("unused") - protected void moveContextElement(int index, C element) { - //no-op, not a list - } - } - - /** - * Adapter used to synchronize a context collection container with its corresponding - * resource container. - * @param the type of context elements - * @param the type of resource elements - */ - protected abstract class ContextCollectionContainer extends CollectionContainer { - - protected ContextCollectionContainer() { - super(); - } - - /** - * Using the specified adapter, synchronize a context container with its - * corresponding resource container: moving, removing, and adding elements - * as necessary. - *

- * We can do this because:

    - *
  • the XML translators will move the EMF elements when - * appropriate (as opposed to simply rebuilding them in place). - *
  • the Java resource model will re-use existing annotations when - * appropriate (as opposed to simply rebuilding them in place). - *
- */ - public void synchronizeWithResourceModel() { - sync(true); // true = sync - } - - /** - * @see #synchronizeWithResourceModel(Adapter) - */ - public void update() { - sync(false); // false = update - } - - /** - * The specified sync flag controls whether any surviving - * context nodes are either synchronized (true) or - * updated (false). - */ - protected void sync(boolean sync) { - HashSet contextElements = CollectionTools.set(this.getContextElements()); - int resourceIndex = 0; - - for (R resourceElement : this.getResourceElements()) { - boolean match = false; - for (Iterator stream = contextElements.iterator(); stream.hasNext(); ) { - C contextElement = stream.next(); - if (Tools.valuesAreEqual(this.getResourceElement(contextElement), resourceElement)) { - // we don't know the source index because the element has been moved by previously moved elements - this.moveContextElement(resourceIndex, contextElement); - stream.remove(); - if (sync) { - contextElement.synchronizeWithResourceModel(); - } else { - contextElement.update(); - } - match = true; - break; - } - } - if ( ! match) { - // added elements are sync'ed during construction or will be - // updated during the next "update" (which is triggered by - // their addition to the model) - this.addContextElement(resourceIndex, resourceElement); - } - resourceIndex++; - } - // remove any leftover context elements - for (C contextElement : contextElements) { - this.removeContextElement(contextElement); - } - } - } - - /** - * Adapter used to synchronize a context list container with its corresponding - * resource container. - * @param the type of context elements - * @param the type of resource elements - */ - protected abstract class ListContainer - extends CollectionContainer { - - protected ListContainer() { - super(); - } - - @Override - public ListIterable getContextElements() { - return new LiveCloneListIterable(this.contextElements); - } - - @Override - protected abstract ListIterable getResourceElements(); - - /** - * Return the index of the specified context element. - */ - public int indexOfContextElement(C contextElement) { - return this.contextElements.indexOf(contextElement); - } - - public C contextElementAt(int index) { - return this.contextElements.elementAt(index); - } - - /** - * Add a context element for the specified resource element at the - * specified index. - */ - @Override - protected C addContextElement_(int index, C contextElement) { - AbstractJaxbNode.this.addItemToList(index, contextElement, this.contextElements, this.getContextElementsPropertyName()); - return contextElement; - } - - /** - * Move the context element at the specified target index to the - * specified source index. - */ - public void moveContextElement(int targetIndex, int sourceIndex) { - this.moveContextElement(targetIndex, this.contextElements.get(sourceIndex)); - } - - /** - * Move the specified context element to the specified index. - */ - @Override - public void moveContextElement(int index, C element) { - AbstractJaxbNode.this.moveItemInList(index, element, this.contextElements, this.getContextElementsPropertyName()); - } - - /** - * Remove the context element at the specified index from the container. - */ - public void removeContextElement(int index) { - AbstractJaxbNode.this.removeItemFromList(index, this.contextElements, this.getContextElementsPropertyName()); - } - - public void synchronizeWithResourceModel() { - ListIterable resourceElements = getResourceElements(); - - int index = 0; - for (R resourceElement : resourceElements) { - if (this.getContextElementsSize() > index) { - if (this.contextElementAt(index) != resourceElement) { - this.addContextElement(index, resourceElement); - } - } - else { - this.addContextElement(index, resourceElement); - } - index++; - } - - for ( ; index < this.getContextElementsSize(); ) { - this.removeContextElement(index); - } - } - } - - /** - * Adapter used to synchronize a context list container with its corresponding - * resource container. - * @param the type of context elements - * @param the type of resource elements - */ - protected abstract class ContextListContainer - extends ContextCollectionContainer { - - protected ContextListContainer() { - super(); - } - - @Override - public ListIterable getContextElements() { - return new LiveCloneListIterable(this.contextElements); - } - - @Override - protected abstract ListIterable getResourceElements(); - - /** - * Return the index of the specified context element. - */ - public int indexOfContextElement(C contextElement) { - return this.contextElements.indexOf(contextElement); - } - - public C contextElementAt(int index) { - return this.contextElements.elementAt(index); - } - - /** - * Add a context element for the specified resource element at the - * specified index. - */ - @Override - protected C addContextElement_(int index, C contextElement) { - AbstractJaxbNode.this.addItemToList(index, contextElement, this.contextElements, this.getContextElementsPropertyName()); - return contextElement; - } - - /** - * Move the context element at the specified target index to the - * specified source index. - */ - public void moveContextElement(int targetIndex, int sourceIndex) { - this.moveContextElement(targetIndex, this.contextElements.get(sourceIndex)); - } - - /** - * Move the specified context element to the specified index. - */ - @Override - public void moveContextElement(int index, C element) { - AbstractJaxbNode.this.moveItemInList(index, element, this.contextElements, this.getContextElementsPropertyName()); - } - - /** - * Remove the context element at the specified index from the container. - */ - public void removeContextElement(int index) { - AbstractJaxbNode.this.removeItemFromList(index, this.contextElements, this.getContextElementsPropertyName()); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbPlatformDefinition.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbPlatformDefinition.java deleted file mode 100644 index 738774eaa7..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbPlatformDefinition.java +++ /dev/null @@ -1,149 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import java.util.ArrayList; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.jaxb.core.JaxbResourceModelProvider; -import org.eclipse.jpt.jaxb.core.context.java.DefaultJavaAttributeMappingDefinition; -import org.eclipse.jpt.jaxb.core.context.java.JavaAttributeMappingDefinition; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.NestableAnnotationDefinition; - -/** - * All the state in the JAXB platform definition should be "static" - * (i.e. unchanging once it is initialized). - */ -public abstract class AbstractJaxbPlatformDefinition - implements JaxbPlatformDefinition { - - private AnnotationDefinition[] annotationDefinitions; - - private NestableAnnotationDefinition[] nestableAnnotationDefinitions; - - private JaxbResourceModelProvider[] resourceModelProviders; - - private ArrayList defaultJavaAttributeMappingDefinitions; - - private ArrayList specifiedJavaAttributeMappingDefinitions; - -// private ResourceDefinition[] resourceDefinitions; - - - /** - * zero-argument constructor - */ - protected AbstractJaxbPlatformDefinition() { - super(); - } - - - // ********** annotation definitions ********** - - public AnnotationDefinition[] getAnnotationDefinitions() { - if (this.annotationDefinitions == null) { - this.annotationDefinitions = this.buildAnnotationDefinitions(); - } - return this.annotationDefinitions; - } - - protected abstract AnnotationDefinition[] buildAnnotationDefinitions(); - - - // ********** nestable annotation definitions ********** - - public NestableAnnotationDefinition[] getNestableAnnotationDefinitions() { - if (this.nestableAnnotationDefinitions == null) { - this.nestableAnnotationDefinitions = this.buildNestableAnnotationDefinitions(); - } - return this.nestableAnnotationDefinitions; - } - - protected abstract NestableAnnotationDefinition[] buildNestableAnnotationDefinitions(); - - - // ********** resource models ********** - - public ListIterable getResourceModelProviders() { - return new ArrayListIterable(getResourceModelProviders_()); - } - - protected synchronized JaxbResourceModelProvider[] getResourceModelProviders_() { - if (this.resourceModelProviders == null) { - this.resourceModelProviders = this.buildResourceModelProviders(); - } - return this.resourceModelProviders; - } - - protected abstract JaxbResourceModelProvider[] buildResourceModelProviders(); - - - // ********** Java attribute mappings ********** - - public synchronized Iterable getDefaultJavaAttributeMappingDefinitions() { - if (this.defaultJavaAttributeMappingDefinitions == null) { - this.defaultJavaAttributeMappingDefinitions = this.buildDefaultJavaAttributeMappingDefinitions(); - } - return this.defaultJavaAttributeMappingDefinitions; - } - - protected ArrayList buildDefaultJavaAttributeMappingDefinitions() { - ArrayList definitions = new ArrayList(); - this.addDefaultJavaAttributeMappingDefinitionsTo(definitions); - return definitions; - } - - /** - * To the specified list, add mapping definitions to use for analyzing the - * default mapping of an attribute. The order is important, - * as once a mapping definition tests positive for an attribute, - * all following mapping definitions are ignored. - */ - protected abstract void addDefaultJavaAttributeMappingDefinitionsTo(ArrayList definitions); - - public synchronized Iterable getSpecifiedJavaAttributeMappingDefinitions() { - if (this.specifiedJavaAttributeMappingDefinitions == null) { - this.specifiedJavaAttributeMappingDefinitions = this.buildSpecifiedJavaAttributeMappingDefinitions(); - } - return this.specifiedJavaAttributeMappingDefinitions; - } - - protected ArrayList buildSpecifiedJavaAttributeMappingDefinitions() { - ArrayList definitions = new ArrayList(); - this.addSpecifiedJavaAttributeMappingDefinitionsTo(definitions); - return definitions; - } - - /** - * To the specified list, add mapping definitions to use for analyzing the - * specified mapping of an attribute given all annotations on it. The order - * is important, as once a mapping definition tests positive for an - * attribute, all following mapping definitions are ignored. - */ - protected abstract void addSpecifiedJavaAttributeMappingDefinitionsTo(ArrayList definitions); - - -// // ********** Mapping Files ********** -// -// public ListIterator resourceDefinitions() { -// return new ArrayListIterator(getResourceDefinitions()); -// } -// -// protected synchronized ResourceDefinition[] getResourceDefinitions() { -// if (this.resourceDefinitions == null) { -// this.resourceDefinitions = this.buildResourceDefinitions(); -// } -// return this.resourceDefinitions; -// } -// -// protected abstract ResourceDefinition[] buildResourceDefinitions(); -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java deleted file mode 100644 index dd87607d47..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java +++ /dev/null @@ -1,1602 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import java.util.ArrayList; -import java.util.List; -import java.util.Vector; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.resources.IResourceDeltaVisitor; -import org.eclipse.core.resources.IResourceProxy; -import org.eclipse.core.resources.IResourceProxyVisitor; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jdt.core.ElementChangedEvent; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jdt.core.IJavaElementDelta; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.IPackageDeclaration; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.JptResourceModel; -import org.eclipse.jpt.common.core.JptResourceModelListener; -import org.eclipse.jpt.common.core.internal.utility.PlatformTools; -import org.eclipse.jpt.common.core.resource.ResourceLocator; -import org.eclipse.jpt.common.utility.Command; -import org.eclipse.jpt.common.utility.CommandExecutor; -import org.eclipse.jpt.common.utility.internal.BitTools; -import org.eclipse.jpt.common.utility.internal.NotNullFilter; -import org.eclipse.jpt.common.utility.internal.ThreadLocalCommandExecutor; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.internal.iterables.CompositeIterable; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable; -import org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneIterable; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; -import org.eclipse.jpt.common.utility.internal.synchronizers.CallbackSynchronousSynchronizer; -import org.eclipse.jpt.common.utility.internal.synchronizers.SynchronousSynchronizer; -import org.eclipse.jpt.common.utility.synchronizers.CallbackSynchronizer; -import org.eclipse.jpt.common.utility.synchronizers.Synchronizer; -import org.eclipse.jpt.jaxb.core.JaxbFacet; -import org.eclipse.jpt.jaxb.core.JaxbFile; -import org.eclipse.jpt.jaxb.core.JaxbProject; -import org.eclipse.jpt.jaxb.core.JptJaxbCorePlugin; -import org.eclipse.jpt.jaxb.core.SchemaLibrary; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.context.JaxbType; -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.internal.platform.JaxbPlatformImpl; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.libprov.JaxbLibraryProviderInstallOperationConfig; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatform; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType.Kind; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceCompilationUnit; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackageInfoCompilationUnit; -import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider; -import org.eclipse.jst.common.project.facet.core.libprov.LibraryInstallDelegate; -import org.eclipse.jst.j2ee.model.internal.validation.ValidationCancelledException; -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; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * JAXB project. Holds all the JAXB stuff. - * - * The JAXB platform provides the hooks for vendor-specific stuff. - * - * The JAXB files are the "resource" model (i.e. objects that correspond directly - * to Eclipse resources; e.g. Java source code files, XML files, JAR files). - * - * The root context node is the "context" model (i.e. objects that attempt to - * model the JAXB spec, using the "resource" model as an adapter to the Eclipse - * resources). - */ -public abstract class AbstractJaxbProject - extends AbstractJaxbNode - implements JaxbProject { - - /** - * The Eclipse project corresponding to the JAXB project. - */ - protected final IProject project; - - /** - * The vendor-specific JAXB platform that builds the JAXB project - * and all its contents. - */ - protected final JaxbPlatform jaxbPlatform; - - /** - * The library of schemas associated with this project - */ - protected final SchemaLibraryImpl schemaLibrary; - - /** - * The JAXB files associated with the JAXB project: - * java - * jaxb.index - * platform-specific files - */ - protected final Vector jaxbFiles = new Vector(); - -// /** -// * The "external" Java resource compilation units (source). Populated upon demand. -// */ -// protected final Vector externalJavaResourceCompilationUnits = new Vector(); -// -// /** -// * The "external" Java resource persistent types (binary). Populated upon demand. -// */ -// protected final JavaResourcePersistentTypeCache externalJavaResourcePersistentTypeCache; - - /** - * Resource models notify this listener when they change. A project update - * should occur any time a resource model changes. - */ - protected final JptResourceModelListener resourceModelListener; - - /** - * The root of the model representing the collated resources associated with - * the JAXB project. - */ - protected final JaxbContextRoot contextRoot; - - /** - * A pluggable synchronizer that keeps the JAXB - * project's context model synchronized with its resource model, either - * synchronously or asynchronously (or not at all). A synchronous synchronizer - * is the default. For performance reasons, a UI should - * immediately change this to an asynchronous synchronizer. A synchronous - * synchronizer can be used when the project is being manipulated by a "batch" - * (or non-UI) client (e.g. when testing "synchronization"). A null updater - * can used during tests that do not care whether "synchronization" occur. - * Clients will need to explicitly configure the synchronizer if they require - * an asynchronous synchronizer. - */ - protected volatile Synchronizer contextModelSynchronizer; - protected volatile boolean synchronizingContextModel = false; - - /** - * A pluggable synchronizer that "updates" the JAXB project, either - * synchronously or asynchronously (or not at all). A synchronous updater - * is the default, allowing a newly-constructed JAXB project to be "updated" - * upon return from the constructor. For performance reasons, a UI should - * immediately change this to an asynchronous updater. A synchronous - * updater can be used when the project is being manipulated by a "batch" - * (or non-UI) client (e.g. when testing the "update" behavior). A null - * updater can used during tests that do not care whether "synchronization" - * occur. - * Clients will need to explicitly configure the updater if they require - * an asynchronous updater. - */ - protected volatile CallbackSynchronizer updateSynchronizer; - protected final CallbackSynchronizer.Listener updateSynchronizerListener; - - /** - * Support for modifying documents shared with the UI. - */ - protected final ThreadLocalCommandExecutor modifySharedDocumentCommandExecutor; - - - // ********** constructor/initialization ********** - - protected AbstractJaxbProject(JaxbProject.Config config) { - super(null); // JPA project is the root of the containment tree - if ((config.getProject() == null) || (config.getPlatformDefinition() == null)) { - throw new NullPointerException(); - } - this.project = config.getProject(); - this.jaxbPlatform = new JaxbPlatformImpl(config.getPlatformDefinition()); - - this.schemaLibrary = new SchemaLibraryImpl(this); - - this.modifySharedDocumentCommandExecutor = this.buildModifySharedDocumentCommandExecutor(); - - this.resourceModelListener = this.buildResourceModelListener(); - // build the JPA files corresponding to the Eclipse project's files - InitialResourceProxyVisitor visitor = this.buildInitialResourceProxyVisitor(); - visitor.visitProject(this.project); - -// this.externalJavaResourcePersistentTypeCache = this.buildExternalJavaResourcePersistentTypeCache(); - - this.contextRoot = this.buildContextRoot(); - - // there *shouldn't* be any changes to the resource model... - this.setContextModelSynchronizer_(this.buildSynchronousContextModelSynchronizer()); - - this.updateSynchronizerListener = this.buildUpdateSynchronizerListener(); - // "update" the project before returning - this.setUpdateSynchronizer_(this.buildSynchronousUpdateSynchronizer()); - -// // start listening to this cache once the context model has been built -// // and all the external types are faulted in -// this.externalJavaResourcePersistentTypeCache.addResourceModelListener(this.resourceModelListener); - } - - @Override - protected boolean requiresParent() { - return false; - } - - @Override - public IResource getResource() { - return this.project; - } - - protected ThreadLocalCommandExecutor buildModifySharedDocumentCommandExecutor() { - return new ThreadLocalCommandExecutor(); - } - - protected InitialResourceProxyVisitor buildInitialResourceProxyVisitor() { - return new InitialResourceProxyVisitor(); - } -// -// protected JavaResourcePersistentTypeCache buildExternalJavaResourcePersistentTypeCache() { -// return new BinaryPersistentTypeCache(this.jpaPlatform.getAnnotationProvider()); -// } - - protected JaxbContextRoot buildContextRoot() { - return this.getFactory().buildContextRoot(this); - } - - // ***** inner class - protected class InitialResourceProxyVisitor implements IResourceProxyVisitor { - protected InitialResourceProxyVisitor() { - super(); - } - protected void visitProject(IProject p) { - try { - p.accept(this, IResource.NONE); - } catch (CoreException ex) { - // shouldn't happen - we don't throw any CoreExceptions - throw new RuntimeException(ex); - } - } - // add a JPA file for every [appropriate] file encountered by the visitor - public boolean visit(IResourceProxy resource) { - switch (resource.getType()) { - case IResource.ROOT : // shouldn't happen - return true; // visit children - case IResource.PROJECT : - return true; // visit children - case IResource.FOLDER : - return true; // visit children - case IResource.FILE : - AbstractJaxbProject.this.addJaxbFile_((IFile) resource.requestResource()); - return false; // no children - default : - return false; // no children - } - } - } - - -// // ********** miscellaneous ********** -// -// /** -// * Ignore changes to this collection. Adds can be ignored since they are triggered -// * by requests that will, themselves, trigger updates (typically during the -// * update of an object that calls a setter with the newly-created resource -// * type). Deletes will be accompanied by manual updates. -// */ -// @Override -// protected void addNonUpdateAspectNamesTo(Set nonUpdateAspectNames) { -// super.addNonUpdateAspectNamesTo(nonUpdateAspectNames); -// nonUpdateAspectNames.add(EXTERNAL_JAVA_RESOURCE_COMPILATION_UNITS_COLLECTION); -// } - - - // ********** general queries ********** - - @Override - public JaxbProject getJaxbProject() { - return this; - } - - public String getName() { - return this.project.getName(); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getName()); - } - - public IProject getProject() { - return this.project; - } - - public IJavaProject getJavaProject() { - return JavaCore.create(this.project); - } - - @Override - public JaxbPlatform getPlatform() { - return this.jaxbPlatform; - } - - public SchemaLibrary getSchemaLibrary() { - return this.schemaLibrary; - } - - @SuppressWarnings("unchecked") - protected Iterable getCombinedJavaResourceCompilationUnits() { - return this.getInternalJavaResourceCompilationUnits(); -// return new CompositeIterable( -// this.getInternalJavaResourceCompilationUnits(), -// this.getExternalJavaResourceCompilationUnits() -// ); - } - - - // ********** JAXB files ********** - - public Iterable getJaxbFiles() { - return new LiveCloneIterable(this.jaxbFiles); // read-only - } - - public int getJaxbFilesSize() { - return this.jaxbFiles.size(); - } - - protected Iterable getJaxbFiles(final IContentType contentType) { - return new FilteringIterable(this.getJaxbFiles()) { - @Override - protected boolean accept(JaxbFile jaxbFile) { - return jaxbFile.getContentType().isKindOf(contentType); - } - }; - } - - @Override - public JaxbFile getJaxbFile(IFile file) { - for (JaxbFile jaxbFile : this.getJaxbFiles()) { - if (jaxbFile.getFile().equals(file)) { - return jaxbFile; - } - } - return null; - } - - /** - * Add a JAXB file for the specified file, if appropriate. - * Return true if a JAXB File was created and added, false otherwise - */ - protected boolean addJaxbFile(IFile file) { - JaxbFile jaxbFile = this.addJaxbFile_(file); - if (jaxbFile != null) { - this.fireItemAdded(JAXB_FILES_COLLECTION, jaxbFile); - return true; - } - return false; - } - - /** - * Add a JAXB file for the specified file, if appropriate, without firing - * an event; useful during construction. - * Return the new JAXB file, null if it was not created. - */ - protected JaxbFile addJaxbFile_(IFile file) { - if (isJavaFile(file)) { - if (! getJavaProject().isOnClasspath(file)) { - // a java (.jar or .java) file must be on the Java classpath - return null; - } - } - else if (! isInAcceptableResourceLocation(file)) { - return null; - } - - JaxbFile jaxbFile = null; - try { - jaxbFile = this.getPlatform().buildJaxbFile(this, file); - } - catch (Exception e) { - //log any developer exceptions and don't build a JaxbFile rather - //than completely failing to build the JaxbProject - JptJaxbCorePlugin.log(e); - } - if (jaxbFile == null) { - return null; - } - jaxbFile.getResourceModel().addResourceModelListener(this.resourceModelListener); - this.jaxbFiles.add(jaxbFile); - return jaxbFile; - } - - /* file is .java or .jar */ - protected boolean isJavaFile(IFile file) { - IContentType contentType = PlatformTools.getContentType(file); - return contentType != null - && (contentType.isKindOf(JptCommonCorePlugin.JAVA_SOURCE_CONTENT_TYPE) - || contentType.isKindOf(JptCommonCorePlugin.JAR_CONTENT_TYPE)); - } - - /* (non-java resource) file is in acceptable resource location */ - protected boolean isInAcceptableResourceLocation(IFile file) { - ResourceLocator resourceLocator = JptCommonCorePlugin.getResourceLocator(getProject()); - return resourceLocator.acceptResourceLocation(getProject(), file.getParent()); - } - - /** - * Remove the JAXB file corresponding to the specified IFile, if it exists. - * Return true if a JAXB File was removed, false otherwise - */ - protected boolean removeJaxbFile(IFile file) { - JaxbFile jaxbFile = this.getJaxbFile(file); - if (jaxbFile != null) { // a JpaFile is not added for every IFile - this.removeJaxbFile(jaxbFile); - return true; - } - return false; - } - - /** - * Stop listening to the JAXB file and remove it. - */ - protected void removeJaxbFile(JaxbFile jaxbFile) { - jaxbFile.getResourceModel().removeResourceModelListener(this.resourceModelListener); - if ( ! this.removeItemFromCollection(jaxbFile, this.jaxbFiles, JAXB_FILES_COLLECTION)) { - throw new IllegalArgumentException(jaxbFile.toString()); - } - } - - -// // ********** external Java resource persistent types (source or binary) ********** -// -// protected JavaResourcePersistentType buildPersistableExternalJavaResourcePersistentType(String typeName) { -// IType jdtType = this.findType(typeName); -// return (jdtType == null) ? null : this.buildPersistableExternalJavaResourcePersistentType(jdtType); -// } -// -// protected IType findType(String typeName) { -// try { -// return this.getJavaProject().findType(typeName); -// } catch (JavaModelException ex) { -// return null; // ignore exception? -// } -// } -// -// protected JavaResourcePersistentType buildPersistableExternalJavaResourcePersistentType(IType jdtType) { -// JavaResourcePersistentType jrpt = this.buildExternalJavaResourcePersistentType(jdtType); -// return ((jrpt != null) && jrpt.isPersistable()) ? jrpt : null; -// } -// -// protected JavaResourcePersistentType buildExternalJavaResourcePersistentType(IType jdtType) { -// return jdtType.isBinary() ? -// this.buildBinaryExternalJavaResourcePersistentType(jdtType) : -// this.buildSourceExternalJavaResourcePersistentType(jdtType); -// } -// -// protected JavaResourcePersistentType buildBinaryExternalJavaResourcePersistentType(IType jdtType) { -// return this.externalJavaResourcePersistentTypeCache.addPersistentType(jdtType); -// } -// -// protected JavaResourcePersistentType buildSourceExternalJavaResourcePersistentType(IType jdtType) { -// JavaResourceCompilationUnit jrcu = this.getExternalJavaResourceCompilationUnit(jdtType.getCompilationUnit()); -// String jdtTypeName = jdtType.getFullyQualifiedName('.'); // JDT member type names use '$' -// for (Iterator stream = jrcu.persistentTypes(); stream.hasNext(); ) { -// JavaResourcePersistentType jrpt = stream.next(); -// if (jrpt.getQualifiedName().equals(jdtTypeName)) { -// return jrpt; -// } -// } -// // we can get here if the project JRE is removed; -// // see SourceCompilationUnit#getPrimaryType(CompilationUnit) -// // bug 225332 -// return null; -// } -// -// -// // ********** external Java resource persistent types (binary) ********** -// -// public JavaResourcePersistentTypeCache getExternalJavaResourcePersistentTypeCache() { -// return this.externalJavaResourcePersistentTypeCache; -// } -// -// -// // ********** external Java resource compilation units (source) ********** -// -// public Iterator externalJavaResourceCompilationUnits() { -// return this.getExternalJavaResourceCompilationUnits().iterator(); -// } -// -// protected Iterable getExternalJavaResourceCompilationUnits() { -// return new LiveCloneIterable(this.externalJavaResourceCompilationUnits); // read-only -// } -// -// public int externalJavaResourceCompilationUnitsSize() { -// return this.externalJavaResourceCompilationUnits.size(); -// } -// -// /** -// * Return the resource model compilation unit corresponding to the specified -// * JDT compilation unit. If it does not exist, build it. -// */ -// protected JavaResourceCompilationUnit getExternalJavaResourceCompilationUnit(ICompilationUnit jdtCompilationUnit) { -// for (JavaResourceCompilationUnit jrcu : this.getExternalJavaResourceCompilationUnits()) { -// if (jrcu.getCompilationUnit().equals(jdtCompilationUnit)) { -// // we will get here if the JRCU could not build its persistent type... -// return jrcu; -// } -// } -// return this.addExternalJavaResourceCompilationUnit(jdtCompilationUnit); -// } -// -// /** -// * Add an external Java resource compilation unit. -// */ -// protected JavaResourceCompilationUnit addExternalJavaResourceCompilationUnit(ICompilationUnit jdtCompilationUnit) { -// JavaResourceCompilationUnit jrcu = this.buildJavaResourceCompilationUnit(jdtCompilationUnit); -// this.addItemToCollection(jrcu, this.externalJavaResourceCompilationUnits, EXTERNAL_JAVA_RESOURCE_COMPILATION_UNITS_COLLECTION); -// jrcu.addResourceModelListener(this.resourceModelListener); -// return jrcu; -// } -// -// protected JavaResourceCompilationUnit buildJavaResourceCompilationUnit(ICompilationUnit jdtCompilationUnit) { -// return new SourceTypeCompilationUnit( -// jdtCompilationUnit, -// this.jpaPlatform.getAnnotationProvider(), -// this.jpaPlatform.getAnnotationEditFormatter(), -// this.modifySharedDocumentCommandExecutor -// ); -// } -// -// protected boolean removeExternalJavaResourceCompilationUnit(IFile file) { -// for (JavaResourceCompilationUnit jrcu : this.getExternalJavaResourceCompilationUnits()) { -// if (jrcu.getFile().equals(file)) { -// this.removeExternalJavaResourceCompilationUnit(jrcu); -// return true; -// } -// } -// return false; -// } -// -// protected void removeExternalJavaResourceCompilationUnit(JavaResourceCompilationUnit jrcu) { -// jrcu.removeResourceModelListener(this.resourceModelListener); -// this.removeItemFromCollection(jrcu, this.externalJavaResourceCompilationUnits, EXTERNAL_JAVA_RESOURCE_COMPILATION_UNITS_COLLECTION); -// } - - - // ********** context model ********** - - public JaxbContextRoot getContextRoot() { - return this.contextRoot; - } - - public Iterable getPrimaryJavaNodes(ICompilationUnit cu) { - IFile file = getCorrespondingResource(cu); - if (file == null) { - return EmptyIterable.instance(); - } - - IContentType contentType = PlatformTools.getContentType(file); - if (contentType == null) { - return EmptyIterable.instance(); - } - - if (contentType.isKindOf(JptCommonCorePlugin.JAVA_SOURCE_PACKAGE_INFO_CONTENT_TYPE)) { - try { - return new FilteringIterable( - new TransformationIterable( - new ArrayIterable(cu.getPackageDeclarations())) { - @Override - protected JaxbPackageInfo transform(IPackageDeclaration o) { - JaxbPackage jaxbPackage = getContextRoot().getPackage(o.getElementName()); - return (jaxbPackage != null) ? jaxbPackage.getPackageInfo() : null; - } - }, - NotNullFilter.instance()); - } - catch (JavaModelException jme) { - return EmptyIterable.instance(); - } - } - else if (contentType.isKindOf(JptCommonCorePlugin.JAVA_SOURCE_CONTENT_TYPE)) { - try { - return new FilteringIterable( - new TransformationIterable( - new ArrayIterable(cu.getAllTypes())) { - @Override - protected JaxbType transform(IType o) { - JaxbType jaxbType = getContextRoot().getType(o.getFullyQualifiedName('.')); - return jaxbType; - } - }, - NotNullFilter.instance()); - } - catch (JavaModelException jme) { - return EmptyIterable.instance(); - } - } - - return EmptyIterable.instance(); - } - - private IFile getCorrespondingResource(ICompilationUnit cu) { - try { - return (IFile) cu.getCorrespondingResource(); - } - catch (JavaModelException ex) { - JptJaxbCorePlugin.log(ex); - return null; - } - } - - -// // ********** utility ********** -// -// public IFile getPlatformFile(IPath runtimePath) { -// return JptCorePlugin.getPlatformFile(this.project, runtimePath); -// } - - -// -// /** -// * If the specified file exists, is significant to the JPA project, and its -// * content is a "kind of" the specified content type, return the JPA -// * resource model corresponding to the file; otherwise, return null. -// */ -// protected JpaResourceModel getResourceModel(IPath runtimePath, IContentType contentType) { -// IFile file = this.getPlatformFile(runtimePath); -// return file.exists() ? this.getResourceModel(file, contentType) : null; -// } -// -// /** -// * If the specified file is significant to the JPA project and its content -// * is a "kind of" the specified content type, return the JPA resource model -// * corresponding to the file; otherwise, return null. -// */ -// protected JpaResourceModel getResourceModel(IFile file, IContentType contentType) { -// JpaFile jpaFile = this.getJpaFile(file); -// return (jpaFile == null) ? null : jpaFile.getResourceModel(contentType); -// } - - - // ********** annotated Java source classes ********** - - public Iterable getJavaSourceResourceTypes() { - return new CompositeIterable(this.getInternalJavaSourceResourceTypeSets()); - } - - public Iterable getAnnotatedJavaSourceResourceTypes() { - return new FilteringIterable(getJavaSourceResourceTypes()) { - @Override - protected boolean accept(JavaResourceAbstractType type) { - return type.isAnnotated(); - } - }; - } - -// public Iterable getAnnotatedJavaSourceClassNames() { -// return new TransformationIterable(this.getInternalAnnotatedSourceJavaResourceTypes()) { -// @Override -// protected String transform(JavaResourceType type) { -// return type.getQualifiedName(); -// } -// }; -// } - - /* - * Return the sets of {@link JavaResourceType}s that are represented by java source within this project - */ - protected Iterable> getInternalJavaSourceResourceTypeSets() { - return new TransformationIterable>( - this.getInternalJavaResourceCompilationUnits()) { - @Override - protected Iterable transform(JavaResourceCompilationUnit compilationUnit) { - return compilationUnit.getTypes(); - } - }; - } - - protected Iterable getInternalJavaResourceCompilationUnits() { - return new TransformationIterable(this.getJavaSourceJaxbFiles()) { - @Override - protected JavaResourceCompilationUnit transform(JaxbFile jaxbFile) { - return (JavaResourceCompilationUnit) jaxbFile.getResourceModel(); - } - }; - } - - /** - * return JAXB files with Java source "content" - */ - protected Iterable getJavaSourceJaxbFiles() { - return this.getJaxbFiles(JptCommonCorePlugin.JAVA_SOURCE_CONTENT_TYPE); - } - - - // ********** Java resource package look-up ********** - - public Iterable getJavaResourcePackages(){ - return new FilteringIterable( - new TransformationIterable(this.getPackageInfoSourceJaxbFiles()) { - @Override - protected JavaResourcePackage transform(JaxbFile jaxbFile) { - return ((JavaResourcePackageInfoCompilationUnit) jaxbFile.getResourceModel()).getPackage(); - } - }) { - - @Override - protected boolean accept(JavaResourcePackage resourcePackage) { - return resourcePackage != null; - } - }; - } - - public JavaResourcePackage getJavaResourcePackage(String packageName) { - for (JavaResourcePackage jrp : this.getJavaResourcePackages()) { - if (jrp.getName().equals(packageName)) { - return jrp; - } - } - return null; - } - - public Iterable getAnnotatedJavaResourcePackages() { - return new FilteringIterable(this.getJavaResourcePackages()) { - @Override - protected boolean accept(JavaResourcePackage resourcePackage) { - return resourcePackage.isAnnotated(); // i.e. the package has a valid package annotation - } - }; - } - - public JavaResourcePackage getAnnotatedJavaResourcePackage(String packageName) { - JavaResourcePackage jrp = getJavaResourcePackage(packageName); - return (jrp != null && jrp.isAnnotated()) ? jrp : null; - } - - /** - * return JPA files with package-info source "content" - */ - protected Iterable getPackageInfoSourceJaxbFiles() { - return this.getJaxbFiles(JptCommonCorePlugin.JAVA_SOURCE_PACKAGE_INFO_CONTENT_TYPE); - } - - - // ********** Java resource type look-up ********** - - - public JavaResourceAbstractType getJavaResourceType(String typeName) { - for (JavaResourceAbstractType type : this.getJavaResourceTypes()) { - if (type.getQualifiedName().equals(typeName)) { - return type; - } - } - return null; -// // if we don't have a type already, try to build new one from the project classpath -// return this.buildPersistableExternalJavaResourcePersistentType(typeName); - } - - public JavaResourceAbstractType getJavaResourceType(String typeName, Kind kind) { - JavaResourceAbstractType resourceType = getJavaResourceType(typeName); - if (resourceType == null || resourceType.getKind() != kind) { - return null; - } - return resourceType; - } - - protected Iterable getJavaResourceTypes() { - return new CompositeIterable(this.getJavaResourceTypeSets()); - } - - protected Iterable> getJavaResourceTypeSets() { - return new TransformationIterable>( - this.getJavaResourceNodeRoots()) { - @Override - protected Iterable transform(JavaResourceNode.Root root) { - return root.getTypes(); - } - }; - } - - @SuppressWarnings("unchecked") - protected Iterable getJavaResourceNodeRoots() { - return new CompositeIterable( - this.getInternalJavaResourceCompilationUnits()/*, - this.getInternalJavaResourcePackageFragmentRoots(), - this.getExternalJavaResourceCompilationUnits(), - Collections.singleton(this.externalJavaResourcePersistentTypeCache)*/ - ); - } - - -// // ********** JARs ********** -// -// // TODO -// public JavaResourcePackageFragmentRoot getJavaResourcePackageFragmentRoot(String jarFileName) { -//// return this.getJarResourcePackageFragmentRoot(this.convertToPlatformFile(jarFileName)); -// return this.getJavaResourcePackageFragmentRoot(this.getProject().getFile(jarFileName)); -// } -// -// protected JavaResourcePackageFragmentRoot getJavaResourcePackageFragmentRoot(IFile jarFile) { -// for (JavaResourcePackageFragmentRoot pfr : this.getInternalJavaResourcePackageFragmentRoots()) { -// if (pfr.getFile().equals(jarFile)) { -// return pfr; -// } -// } -// return null; -// } -// -// protected Iterable getInternalJavaResourcePackageFragmentRoots() { -// return new TransformationIterable(this.getJarJpaFiles()) { -// @Override -// protected JavaResourcePackageFragmentRoot transform(JpaFile jpaFile) { -// return (JavaResourcePackageFragmentRoot) jpaFile.getResourceModel(); -// } -// }; -// } -// -// /** -// * return JPA files with JAR "content" -// */ -// protected Iterable getJarJpaFiles() { -// return this.getJpaFiles(JptCorePlugin.JAR_CONTENT_TYPE); -// } - - - -// -// // ********** Java source folder names ********** -// -// public Iterable getJavaSourceFolderNames() { -// try { -// return this.getJavaSourceFolderNames_(); -// } catch (JavaModelException ex) { -// JptCorePlugin.log(ex); -// return EmptyIterable.instance(); -// } -// } -// -// protected Iterable getJavaSourceFolderNames_() throws JavaModelException { -// return new TransformationIterable(this.getJavaSourceFolders()) { -// @Override -// protected String transform(IPackageFragmentRoot pfr) { -// try { -// return this.transform_(pfr); -// } catch (JavaModelException ex) { -// return "Error: " + pfr.getPath(); //$NON-NLS-1$ -// } -// } -// private String transform_(IPackageFragmentRoot pfr) throws JavaModelException { -// return pfr.getUnderlyingResource().getProjectRelativePath().toString(); -// } -// }; -// } -// -// protected Iterable getJavaSourceFolders() throws JavaModelException { -// return new FilteringIterable( -// this.getPackageFragmentRoots(), -// SOURCE_PACKAGE_FRAGMENT_ROOT_FILTER -// ); -// } -// -// protected static final Filter SOURCE_PACKAGE_FRAGMENT_ROOT_FILTER = -// new Filter() { -// public boolean accept(IPackageFragmentRoot pfr) { -// try { -// return this.accept_(pfr); -// } catch (JavaModelException ex) { -// return false; -// } -// } -// private boolean accept_(IPackageFragmentRoot pfr) throws JavaModelException { -// return pfr.exists() && (pfr.getKind() == IPackageFragmentRoot.K_SOURCE); -// } -// }; -// -// protected Iterable getPackageFragmentRoots() throws JavaModelException { -// return new ArrayIterable(this.getJavaProject().getPackageFragmentRoots()); -// } - - - // ********** Java events ********** - - // TODO handle changes to external projects - public void javaElementChanged(ElementChangedEvent event) { - this.processJavaDelta(event.getDelta()); - } - - /** - * We recurse back here from {@link #processJavaDeltaChildren(IJavaElementDelta)}. - */ - protected void processJavaDelta(IJavaElementDelta delta) { - switch (delta.getElement().getElementType()) { - case IJavaElement.JAVA_MODEL : - this.processJavaModelDelta(delta); - break; - case IJavaElement.JAVA_PROJECT : - this.processJavaProjectDelta(delta); - break; - case IJavaElement.PACKAGE_FRAGMENT_ROOT : - this.processJavaPackageFragmentRootDelta(delta); - break; - case IJavaElement.PACKAGE_FRAGMENT : - this.processJavaPackageFragmentDelta(delta); - break; - case IJavaElement.COMPILATION_UNIT : - this.processJavaCompilationUnitDelta(delta); - break; - default : - break; // ignore the elements inside a compilation unit - } - } - - protected void processJavaDeltaChildren(IJavaElementDelta delta) { - for (IJavaElementDelta child : delta.getAffectedChildren()) { - this.processJavaDelta(child); // recurse - } - } - - /** - * Return whether the specified Java element delta is for a - * {@link IJavaElementDelta#CHANGED CHANGED} - * (as opposed to {@link IJavaElementDelta#ADDED ADDED} or - * {@link IJavaElementDelta#REMOVED REMOVED}) Java element - * and the specified flag is set. - * (The delta flags are only significant if the delta - * {@link IJavaElementDelta#getKind() kind} is - * {@link IJavaElementDelta#CHANGED CHANGED}.) - */ - protected boolean deltaFlagIsSet(IJavaElementDelta delta, int flag) { - return (delta.getKind() == IJavaElementDelta.CHANGED) && - BitTools.flagIsSet(delta.getFlags(), flag); - } - - // ***** model - protected void processJavaModelDelta(IJavaElementDelta delta) { - // process the Java model's projects - this.processJavaDeltaChildren(delta); - } - - // ***** project - protected void processJavaProjectDelta(IJavaElementDelta delta) { - // process the Java project's package fragment roots - this.processJavaDeltaChildren(delta); - - // a classpath change can have pretty far-reaching effects... - if (this.classpathHasChanged(delta)) { - this.rebuild((IJavaProject) delta.getElement()); - } - } - - /** - * The specified Java project's classpath changed. Rebuild the JPA project - * as appropriate. - */ - protected void rebuild(IJavaProject javaProject) { - // if the classpath has changed, we need to update everything since - // class references could now be resolved (or not) etc. - if (javaProject.equals(this.getJavaProject())) { - this.removeDeadJpaFiles(); - this.synchronizeWithJavaSource(this.getInternalJavaResourceCompilationUnits()); - } else { - // TODO see if changed project is on our classpath? - //this.synchronizeWithJavaSource(this.getExternalJavaResourceCompilationUnits()); - } - } - - /** - * Loop through all our JPA files, remove any that are no longer on the - * classpath. - */ - protected void removeDeadJpaFiles() { - for (JaxbFile jaxbFile : this.getJaxbFiles()) { - if (this.jaxbFileIsDead(jaxbFile)) { - this.removeJaxbFile(jaxbFile); - } - } - } - - protected boolean jaxbFileIsDead(JaxbFile jaxbFile) { - return ! this.jaxbFileIsAlive(jaxbFile); - } - - /** - * Sometimes (e.g. during tests), when a project has been deleted, we get a - * Java change event that indicates the Java project is CHANGED (as - * opposed to REMOVED, which is what typically happens). The event's delta - * indicates that everything in the Java project has been deleted and the - * classpath has changed. All entries in the classpath have been removed; - * but single entry for the Java project's root folder has been added. (!) - * This means any file in the project is on the Java project's classpath. - * This classpath change is what triggers us to rebuild the JPA project; so - * we put an extra check here to make sure the JPA file's resource file is - * still present. - *

- * This would not be a problem if Dali received the resource change event - * before JDT and simply removed the JPA project; but JDT receives - * the resource change event first and converts it into the problematic - * Java change event.... - */ - protected boolean jaxbFileIsAlive(JaxbFile jaxbFile) { - IFile file = jaxbFile.getFile(); - return this.getJavaProject().isOnClasspath(file) && - file.exists(); - } - - /** - * pre-condition: - * delta.getElement().getElementType() == IJavaElement.JAVA_PROJECT - */ - protected boolean classpathHasChanged(IJavaElementDelta delta) { - return this.deltaFlagIsSet(delta, IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED); - } - - protected void synchronizeWithJavaSource(Iterable javaResourceCompilationUnits) { - for (JavaResourceCompilationUnit javaResourceCompilationUnit : javaResourceCompilationUnits) { - javaResourceCompilationUnit.synchronizeWithJavaSource(); - } - } - - - // ***** package fragment root - protected void processJavaPackageFragmentRootDelta(IJavaElementDelta delta) { - // process the Java package fragment root's package fragments - this.processJavaDeltaChildren(delta); - - if (this.classpathEntryHasBeenAdded(delta)) { - // TODO bug 277218 - } else if (this.classpathEntryHasBeenRemoved(delta)) { // should be mutually-exclusive w/added (?) - // TODO bug 277218 - } - } - - /** - * pre-condition: - * delta.getElement().getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT - */ - protected boolean classpathEntryHasBeenAdded(IJavaElementDelta delta) { - return this.deltaFlagIsSet(delta, IJavaElementDelta.F_ADDED_TO_CLASSPATH); - } - - /** - * pre-condition: - * delta.getElement().getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT - */ - protected boolean classpathEntryHasBeenRemoved(IJavaElementDelta delta) { - return this.deltaFlagIsSet(delta, IJavaElementDelta.F_REMOVED_FROM_CLASSPATH); - } - - // ***** package fragment - protected void processJavaPackageFragmentDelta(IJavaElementDelta delta) { - // process the java package fragment's compilation units - this.processJavaDeltaChildren(delta); - } - - // ***** compilation unit - protected void processJavaCompilationUnitDelta(IJavaElementDelta delta) { - if (this.javaCompilationUnitDeltaIsRelevant(delta)) { - ICompilationUnit compilationUnit = (ICompilationUnit) delta.getElement(); - for (JavaResourceCompilationUnit jrcu : this.getCombinedJavaResourceCompilationUnits()) { - if (jrcu.getCompilationUnit().equals(compilationUnit)) { - jrcu.synchronizeWithJavaSource(); - // TODO ? this.resolveJavaTypes(); // might have new member types now... - break; // there *shouldn't* be any more... - } - } - } - // ignore the java compilation unit's children - } - - protected boolean javaCompilationUnitDeltaIsRelevant(IJavaElementDelta delta) { - // ignore changes to/from primary working copy - no content has changed; - // and make sure there are no other flags set that indicate *both* a - // change to/from primary working copy *and* content has changed - if (BitTools.onlyFlagIsSet(delta.getFlags(), IJavaElementDelta.F_PRIMARY_WORKING_COPY)) { - return false; - } - - // ignore java notification for ADDED or REMOVED; - // these are handled via resource notification - return delta.getKind() == IJavaElementDelta.CHANGED; - } - - - // ********** validation ********** - - public Iterable getValidationMessages(IReporter reporter) { - List messages = new ArrayList(); - this.validate(messages, reporter); - return new SnapshotCloneIterable(messages); - } - - protected void validate(List messages, IReporter reporter) { - if (reporter.isCancelled()) { - throw new ValidationCancelledException(); - } - validateLibraryProvider(messages); - this.contextRoot.validate(messages, reporter); - } - - protected void validateLibraryProvider(List messages) { - try { - IFacetedProject facetedProject = ProjectFacetsManager.create(getProject()); - IProjectFacetVersion facetVersion = facetedProject.getInstalledVersion(JaxbFacet.FACET); - LibraryInstallDelegate lid = new LibraryInstallDelegate(facetedProject, facetVersion); - ILibraryProvider lp = lid.getLibraryProvider(); - if (lid.getLibraryProviderOperationConfig() instanceof JaxbLibraryProviderInstallOperationConfig) { - ((JaxbLibraryProviderInstallOperationConfig) lid.getLibraryProviderOperationConfig()).setJaxbPlatform(getPlatform().getDescription()); - } - if (! lp.isEnabledFor(facetedProject, facetVersion) || ! lid.validate().isOK()) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.PROJECT_INVALID_LIBRARY_PROVIDER, - this)); - } - } - catch (CoreException ce) { - // fall through - JptJaxbCorePlugin.log(ce); - } - } - - - // ********** dispose ********** - - public void dispose() { - this.contextModelSynchronizer.stop(); - this.updateSynchronizer.stop(); - this.updateSynchronizer.removeListener(this.updateSynchronizerListener); - // the XML resources are held indefinitely by the WTP translator framework, - // so we better remove our listener or the JAXB project will not be GCed - for (JaxbFile jaxbFile : this.getJaxbFiles()) { - jaxbFile.getResourceModel().removeResourceModelListener(this.resourceModelListener); - } - } - - - - // ********** resource model listener ********** - - protected JptResourceModelListener buildResourceModelListener() { - return new DefaultResourceModelListener(); - } - - protected class DefaultResourceModelListener - implements JptResourceModelListener - { - protected DefaultResourceModelListener() { - super(); - } - - public void resourceModelChanged(JptResourceModel jpaResourceModel) { -// String msg = Thread.currentThread() + " resource model change: " + jpaResourceModel; -// System.out.println(msg); -// new Exception(msg).printStackTrace(System.out); - AbstractJaxbProject.this.synchronizeContextModel(jpaResourceModel); - } - - public void resourceModelReverted(JptResourceModel jpaResourceModel) { -// IFile file = WorkbenchResourceHelper.getFile((JpaXmlResource)jpaResourceModel); -// AbstractJaxbProject.this.removeJaxbFile(file); -// AbstractJaxbProject.this.addJaxbFile(file); - } - - public void resourceModelUnloaded(JptResourceModel jpaResourceModel) { -// IFile file = WorkbenchResourceHelper.getFile((JpaXmlResource)jpaResourceModel); -// AbstractJaxbProject.this.removeJaxbFile(file); - } - } - - protected void synchronizeContextModel(@SuppressWarnings("unused") JptResourceModel jpaResourceModel) { - this.synchronizeContextModel(); - } - - - // ********** resource events ********** - - // TODO need to do the same thing for external projects and compilation units - public void projectChanged(IResourceDelta delta) { - if (delta.getResource().equals(this.getProject())) { - this.internalProjectChanged(delta); - } else { -// this.externalProjectChanged(delta); - } - } - - protected void internalProjectChanged(IResourceDelta delta) { - ResourceDeltaVisitor resourceDeltaVisitor = this.buildInternalResourceDeltaVisitor(); - resourceDeltaVisitor.visitDelta(delta); - // at this point, if we have added and/or removed JpaFiles, an "update" will have been triggered; - // any changes to the resource model during the "resolve" will trigger further "updates"; - // there should be no need to "resolve" external Java types (they can't have references to - // the internal Java types) - if (resourceDeltaVisitor.encounteredSignificantChange()) { - this.resolveInternalJavaTypes(); - } - } - - protected ResourceDeltaVisitor buildInternalResourceDeltaVisitor() { - return new ResourceDeltaVisitor() { - @Override - public boolean fileChangeIsSignificant(IFile file, int deltaKind) { - return AbstractJaxbProject.this.synchronizeJaxbFiles(file, deltaKind); - } - }; - } - - /** - * Internal resource delta visitor callback. - * Return true if a JaxbFile was either added or removed. - */ - protected boolean synchronizeJaxbFiles(IFile file, int deltaKind) { - switch (deltaKind) { - case IResourceDelta.ADDED : - return this.addJaxbFile(file); - case IResourceDelta.REMOVED : - return this.removeJaxbFile(file); - case IResourceDelta.CHANGED : - return this.checkForChangedFileContent(file); - case IResourceDelta.ADDED_PHANTOM : - break; // ignore - case IResourceDelta.REMOVED_PHANTOM : - break; // ignore - default : - break; // only worried about added/removed/changed files - } - - return false; - } - - protected boolean checkForChangedFileContent(IFile file) { - JaxbFile jaxbFile = this.getJaxbFile(file); - if (jaxbFile == null) { - // the file might have changed its content to something that we are interested in - return this.addJaxbFile(file); - } - - if (jaxbFile.getContentType().equals(PlatformTools.getContentType(file))) { - // content has not changed - ignore - return false; - } - - // the content type changed, we need to build a new JPA file - // (e.g. the schema of an orm.xml file changed from JPA to EclipseLink) - this.removeJaxbFile(jaxbFile); - this.addJaxbFile(file); - return true; // at the least, we have removed a JPA file - } - - protected void resolveInternalJavaTypes() { - for (JavaResourceCompilationUnit jrcu : this.getInternalJavaResourceCompilationUnits()) { - jrcu.resolveTypes(); - } - } - -// protected void externalProjectChanged(IResourceDelta delta) { -// if (this.getJavaProject().isOnClasspath(delta.getResource())) { -// ResourceDeltaVisitor resourceDeltaVisitor = this.buildExternalResourceDeltaVisitor(); -// resourceDeltaVisitor.visitDelta(delta); -// // force an "update" here since adding and/or removing an external Java type -// // will only trigger an "update" if the "resolve" causes something in the resource model to change -// if (resourceDeltaVisitor.encounteredSignificantChange()) { -// this.update(); -// this.resolveExternalJavaTypes(); -// this.resolveInternalJavaTypes(); -// } -// } -// } -// -// protected ResourceDeltaVisitor buildExternalResourceDeltaVisitor() { -// return new ResourceDeltaVisitor() { -// @Override -// public boolean fileChangeIsSignificant(IFile file, int deltaKind) { -// return AbstractJaxbProject.this.synchronizeExternalFiles(file, deltaKind); -// } -// }; -// } -// -// /** -// * external resource delta visitor callback -// * Return true if an "external" Java resource compilation unit -// * was added or removed. -// */ -// protected boolean synchronizeExternalFiles(IFile file, int deltaKind) { -// switch (deltaKind) { -// case IResourceDelta.ADDED : -// return this.externalFileAdded(file); -// case IResourceDelta.REMOVED : -// return this.externalFileRemoved(file); -// case IResourceDelta.CHANGED : -// break; // ignore -// case IResourceDelta.ADDED_PHANTOM : -// break; // ignore -// case IResourceDelta.REMOVED_PHANTOM : -// break; // ignore -// default : -// break; // only worried about added/removed/changed files -// } -// -// return false; -// } -// -// protected boolean externalFileAdded(IFile file) { -// IContentType contentType = PlatformTools.getContentType(file); -// if (contentType == null) { -// return false; -// } -// if (contentType.equals(JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE)) { -// return true; -// } -// if (contentType.equals(JptCorePlugin.JAR_CONTENT_TYPE)) { -// return true; -// } -// return false; -// } -// -// protected boolean externalFileRemoved(IFile file) { -// IContentType contentType = PlatformTools.getContentType(file); -// if (contentType == null) { -// return false; -// } -// if (contentType.equals(JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE)) { -// return this.removeExternalJavaResourceCompilationUnit(file); -// } -// if (contentType.equals(JptCorePlugin.JAR_CONTENT_TYPE)) { -// return this.externalJavaResourcePersistentTypeCache.removePersistentTypes(file); -// } -// return false; -// } -// -// protected void resolveExternalJavaTypes() { -// for (JavaResourceCompilationUnit jrcu : this.getExternalJavaResourceCompilationUnits()) { -// jrcu.resolveTypes(); -// } -// } - - // ***** resource delta visitors - /** - * add or remove a JPA file for every [appropriate] file encountered by the visitor - */ - protected abstract class ResourceDeltaVisitor implements IResourceDeltaVisitor { - protected boolean encounteredSignificantChange = false; - - protected ResourceDeltaVisitor() { - super(); - } - - protected void visitDelta(IResourceDelta delta) { - try { - delta.accept(this); - } catch (CoreException ex) { - // shouldn't happen - we don't throw any CoreExceptions - throw new RuntimeException(ex); - } - } - - public boolean visit(IResourceDelta delta) { - IResource res = delta.getResource(); - switch (res.getType()) { - case IResource.ROOT : - return true; // visit children - case IResource.PROJECT : - return true; // visit children - case IResource.FOLDER : - return true; // visit children - case IResource.FILE : - this.fileChanged((IFile) res, delta.getKind()); - return false; // no children - default : - return false; // no children (probably shouldn't get here...) - } - } - - protected void fileChanged(IFile file, int deltaKind) { - if (this.fileChangeIsSignificant(file, deltaKind)) { - this.encounteredSignificantChange = true; - } - } - - protected abstract boolean fileChangeIsSignificant(IFile file, int deltaKind); - - /** - * Return whether the visitor encountered some sort of "significant" - * change while traversing the IResourceDelta - * (e.g. a JPA file was added or removed). - */ - protected boolean encounteredSignificantChange() { - return this.encounteredSignificantChange; - } - - } - - - // ********** support for modifying documents shared with the UI ********** - - public void setThreadLocalModifySharedDocumentCommandExecutor(CommandExecutor commandExecutor) { - this.modifySharedDocumentCommandExecutor.set(commandExecutor); - } - - public CommandExecutor getModifySharedDocumentCommandExecutor() { - return this.modifySharedDocumentCommandExecutor; - } - - - // ********** synchronize context model with resource model ********** - - public Synchronizer getContextModelSynchronizer() { - return this.contextModelSynchronizer; - } - - public void setContextModelSynchronizer(Synchronizer synchronizer) { - if (synchronizer == null) { - throw new NullPointerException(); - } - this.contextModelSynchronizer.stop(); - this.setContextModelSynchronizer_(synchronizer); - } - - protected void setContextModelSynchronizer_(Synchronizer synchronizer) { - this.contextModelSynchronizer = synchronizer; - this.contextModelSynchronizer.start(); - } - - /** - * Delegate to the context model synchronizer so clients can configure how - * synchronizations occur. - */ - public void synchronizeContextModel() { - this.synchronizingContextModel = true; - this.contextModelSynchronizer.synchronize(); - this.synchronizingContextModel = false; - - // There are some changes to the resource model that will not change - // the existing context model and trigger an update (e.g. adding an - // @Entity annotation when the the JPA project is automatically - // discovering annotated classes); so we explicitly execute an update - // here to discover those changes. - this.update(); - } - - /** - * Called by the context model synchronizer. - */ - public IStatus synchronizeContextModel(IProgressMonitor monitor) { - this.contextRoot.synchronizeWithResourceModel(); - return Status.OK_STATUS; - } - - public void synchronizeContextModelAndWait() { - Synchronizer temp = this.contextModelSynchronizer; - this.setContextModelSynchronizer(this.buildSynchronousContextModelSynchronizer()); - this.synchronizeContextModel(); - this.setContextModelSynchronizer(temp); - } - - - // ********** default context model synchronizer (synchronous) ********** - - protected Synchronizer buildSynchronousContextModelSynchronizer() { - return new SynchronousSynchronizer(this.buildSynchronousContextModelSynchronizerCommand()); - } - - protected Command buildSynchronousContextModelSynchronizerCommand() { - return new SynchronousContextModelSynchronizerCommand(); - } - - protected class SynchronousContextModelSynchronizerCommand - implements Command - { - public void execute() { - AbstractJaxbProject.this.synchronizeContextModel(new NullProgressMonitor()); - } - } - - - // ********** project "update" ********** - - public CallbackSynchronizer getUpdateSynchronizer() { - return this.updateSynchronizer; - } - - public void setUpdateSynchronizer(CallbackSynchronizer synchronizer) { - if (synchronizer == null) { - throw new NullPointerException(); - } - this.updateSynchronizer.stop(); - this.updateSynchronizer.removeListener(this.updateSynchronizerListener); - this.setUpdateSynchronizer_(synchronizer); - } - - protected void setUpdateSynchronizer_(CallbackSynchronizer synchronizer) { - this.updateSynchronizer = synchronizer; - this.updateSynchronizer.addListener(this.updateSynchronizerListener); - this.updateSynchronizer.start(); - } - - @Override - public void stateChanged() { - super.stateChanged(); - this.update(); - } - - /** - * The JAXB project's state has changed, "update" those parts of the - * JAXB project that are dependent on other parts of the JAXB project. - *

- * Delegate to the update synchronizer so clients can configure how - * updates occur. - *

- * Ignore any updates that occur while we are synchronizing - * the context model with the resource model because we will update - * the context model at the completion of the sync. This is really - * only useful for synchronous syncs and updates; since - * the job scheduling rules will prevent the sync and - * update jobs from running concurrently. - * - * @see #updateAndWait() - */ - protected void update() { - if ( ! this.synchronizingContextModel) { - this.updateSynchronizer.synchronize(); - } - } - - /** - * Called by the update synchronizer. - */ - public IStatus update(IProgressMonitor monitor) { - this.contextRoot.update(); - return Status.OK_STATUS; - } - - /** - * This is the callback used by the update synchronizer to notify the JAXB - * project that the "update" has quiesced (i.e. the "update" has completed - * and there are no outstanding requests for further "updates"). - */ - public void updateQuiesced() { - //nothing yet - } - - public void updateAndWait() { - CallbackSynchronizer temp = this.updateSynchronizer; - this.setUpdateSynchronizer(this.buildSynchronousUpdateSynchronizer()); - this.update(); - this.setUpdateSynchronizer(temp); - } - - - // ********** default update synchronizer (synchronous) ********** - - protected CallbackSynchronizer buildSynchronousUpdateSynchronizer() { - return new CallbackSynchronousSynchronizer(this.buildSynchronousUpdateSynchronizerCommand()); - } - - protected Command buildSynchronousUpdateSynchronizerCommand() { - return new SynchronousUpdateSynchronizerCommand(); - } - - protected class SynchronousUpdateSynchronizerCommand - implements Command - { - public void execute() { - AbstractJaxbProject.this.update(new NullProgressMonitor()); - } - } - - - // ********** update synchronizer listener ********** - - protected CallbackSynchronizer.Listener buildUpdateSynchronizerListener() { - return new UpdateSynchronizerListener(); - } - - protected class UpdateSynchronizerListener - implements CallbackSynchronizer.Listener - { - public void synchronizationQuiesced(CallbackSynchronizer synchronizer) { - AbstractJaxbProject.this.updateQuiesced(); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericAnnotationProvider.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericAnnotationProvider.java deleted file mode 100644 index 32f447deff..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericAnnotationProvider.java +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import org.eclipse.jdt.core.IAnnotation; -import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayIterable; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; -import org.eclipse.jpt.jaxb.core.AnnotationProvider; -import org.eclipse.jpt.jaxb.core.resource.java.Annotation; -import org.eclipse.jpt.jaxb.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAnnotatedElement; -import org.eclipse.jpt.jaxb.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.NestableAnnotationDefinition; - -/** - * Delegate to annotation definition providers. - * The platform factory will build an instance of this annotation provider, - * passing in the appropriate array of annotation definition providers necessary - * to build the annotations for the platform (vendor and/or version). - */ -public final class GenericAnnotationProvider - implements AnnotationProvider -{ - private final AnnotationDefinition[] annotationDefinitions; - - private final NestableAnnotationDefinition[] nestableAnnotationDefinitions; - - public GenericAnnotationProvider(AnnotationDefinition[] annotationDefinitions, NestableAnnotationDefinition[] nestableAnnotationDefinitions) { - super(); - this.annotationDefinitions = annotationDefinitions; - this.nestableAnnotationDefinitions = nestableAnnotationDefinitions; - } - - - protected Iterable getAnnotationDefinitions() { - return new ArrayIterable(this.annotationDefinitions); - } - - protected AnnotationDefinition getAnnotationDefinition(String annotationName) { - for (AnnotationDefinition annotationDefinition : this.annotationDefinitions) { - if (annotationDefinition.getAnnotationName().equals(annotationName)) { - return annotationDefinition; - } - } - return null; - } - - public Iterable getAnnotationNames() { - return new TransformationIterable(getAnnotationDefinitions()) { - @Override - protected String transform(AnnotationDefinition annotationDefinition) { - return annotationDefinition.getAnnotationName(); - } - }; - } - - public Iterable getContainerAnnotationNames() { - return new TransformationIterable(getNestableAnnotationDefinitions()) { - @Override - protected String transform(NestableAnnotationDefinition annotationDefinition) { - return annotationDefinition.getContainerAnnotationName(); - } - }; - } - - public Iterable getNestableAnnotationNames() { - return new TransformationIterable(getNestableAnnotationDefinitions()) { - @Override - protected String transform(NestableAnnotationDefinition annotationDefinition) { - return annotationDefinition.getNestableAnnotationName(); - } - }; - } - - public Annotation buildAnnotation(JavaResourceAnnotatedElement parent, AnnotatedElement element, String annotationName) { - return this.getAnnotationDefinition(annotationName).buildAnnotation(parent, element); - } - - public Annotation buildAnnotation(JavaResourceAnnotatedElement parent, IAnnotation jdtAnnotation) { - return this.getAnnotationDefinition(jdtAnnotation.getElementName()).buildAnnotation(parent, jdtAnnotation); - } - - public Annotation buildNullAnnotation(JavaResourceAnnotatedElement parent, String annotationName) { - return this.getAnnotationDefinition(annotationName).buildNullAnnotation(parent); - } - - protected Iterable getNestableAnnotationDefinitions() { - return new ArrayIterable(this.nestableAnnotationDefinitions); - } - - protected NestableAnnotationDefinition getNestableAnnotationDefinition(String annotationName) { - for (NestableAnnotationDefinition annotationDefinition : this.nestableAnnotationDefinitions) { - if (annotationDefinition.getNestableAnnotationName().equals(annotationName)) { - return annotationDefinition; - } - } - return null; - } - - public NestableAnnotation buildAnnotation(JavaResourceAnnotatedElement parent, AnnotatedElement element, String annotationName, int index) { - return this.getNestableAnnotationDefinition(annotationName).buildAnnotation(parent, element, index); - } - - public String getNestableAnnotationName(String containerAnnotationName) { - return getNestableAnnotationDefinitionForContainer(containerAnnotationName).getNestableAnnotationName(); - } - - public String getNestableElementName(String nestableAnnotationName) { - return getNestableAnnotationDefinition(nestableAnnotationName).getElementName(); - } - - private NestableAnnotationDefinition getNestableAnnotationDefinitionForContainer(String containerAnnotationName) { - for (NestableAnnotationDefinition nestableAnnotationDefinition : getNestableAnnotationDefinitions()) { - if (nestableAnnotationDefinition.getContainerAnnotationName().equals(containerAnnotationName)) { - return nestableAnnotationDefinition; - } - } - return null; - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericJaxbFile.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericJaxbFile.java deleted file mode 100644 index 574ad14301..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericJaxbFile.java +++ /dev/null @@ -1,143 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jpt.common.core.JptResourceModel; -import org.eclipse.jpt.jaxb.core.JaxbFile; -import org.eclipse.jpt.jaxb.core.JaxbProject; - -/** - * The transition between a JAXB project and the resource model associated - * with a file. - * Hold the associated root structure nodes, which are hooks to the - * context model. - */ -public class GenericJaxbFile - extends AbstractJaxbNode - implements JaxbFile -{ - /** - * typically a .java or .xml file. - */ - protected final IFile file; - - /** - * cache the content type - if the content type changes, the JAXB project - * will throw out the JAXB file and build a new one - */ - protected final IContentType contentType; - - /** - * the resource model corresponding to the file - */ - protected final JptResourceModel resourceModel; - -// /** -// * the root structure (context model) nodes corresponding to the resource -// * model -// */ -// protected final Hashtable rootStructureNodes; - - - // ********** construction ********** - - public GenericJaxbFile(JaxbProject jaxbProject, IFile file, IContentType contentType, JptResourceModel resourceModel) { - super(jaxbProject); - this.file = file; - this.contentType = contentType; - this.resourceModel = resourceModel; -// this.rootStructureNodes = new Hashtable(); - } -// -// /** -// * Changes to ROOT_STRUCTURE_NODES_COLLECTION do not need to trigger a -// * project update. Only the UI cares about the root structure nodes. -// * If a project update is allowed to happen, an infinite loop will result -// * if any java class is specified in more than one location in the -// * persistence unit. -// */ -// @Override -// protected void addNonUpdateAspectNamesTo(Set nonUpdateAspectNames) { -// super.addNonUpdateAspectNamesTo(nonUpdateAspectNames); -// nonUpdateAspectNames.add(ROOT_STRUCTURE_NODES_COLLECTION); -// } - - - // ********** file ********** - - public IFile getFile() { - return this.file; - } - - public IContentType getContentType() { - return this.contentType; - } - - public JptResourceModel getResourceModel() { - return this.resourceModel; - } - - public JptResourceModel getResourceModel(IContentType ct) { - return this.contentType.isKindOf(ct) ? this.resourceModel : null; - } - - -// // ********** root structure nodes ********** -// -// public Iterator rootStructureNodes() { -// return this.getRootStructureNodes().iterator(); -// } -// -// protected Iterable getRootStructureNodes() { -// return new LiveCloneIterable(this.rootStructureNodes.values()); -// } -// -// public int rootStructureNodesSize() { -// return this.rootStructureNodes.size(); -// } -// -// public void addRootStructureNode(Object key, JpaStructureNode rootStructureNode) { -// JpaStructureNode old = this.rootStructureNodes.put(key, rootStructureNode); -// if (rootStructureNode != old) { -// if (old != null) { -// this.fireItemRemoved(ROOT_STRUCTURE_NODES_COLLECTION, old); -// } -// this.fireItemAdded(ROOT_STRUCTURE_NODES_COLLECTION, rootStructureNode); -// } -// } -// -// public void removeRootStructureNode(Object key) { -// this.fireItemRemoved(ROOT_STRUCTURE_NODES_COLLECTION, this.rootStructureNodes.remove(key)); -// } -// -// public JpaStructureNode getStructureNode(int textOffset) { -// for (JpaStructureNode rootNode : this.getRootStructureNodes()) { -// JpaStructureNode node = rootNode.getStructureNode(textOffset); -// if (node != null) { -// return node; -// } -// } -// return null; -// } - - - // ********** misc ********** - - @Override - public void toString(StringBuilder sb) { - sb.append(this.file); - sb.append('['); - sb.append(this.contentType.getName()); - sb.append(']'); - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericJaxbProject.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericJaxbProject.java deleted file mode 100644 index 1b81017142..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/GenericJaxbProject.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import org.eclipse.jpt.jaxb.core.JaxbProject; - -/** - * Not much different from the abstract JAXB project. - */ -public class GenericJaxbProject - extends AbstractJaxbProject -{ - - // ********** constructor/initialization ********** - - public GenericJaxbProject(JaxbProject.Config config) { - super(config); - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JavaPackageInfoResourceModelProvider.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JavaPackageInfoResourceModelProvider.java deleted file mode 100644 index 82042f5140..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JavaPackageInfoResourceModelProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.jaxb.core.JaxbProject; -import org.eclipse.jpt.jaxb.core.JaxbResourceModelProvider; -import org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourcePackageInfoCompilationUnit; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceCompilationUnit; - -/** - * Java package-info.java source code - */ -public class JavaPackageInfoResourceModelProvider - implements JaxbResourceModelProvider -{ - // singleton - private static final JaxbResourceModelProvider INSTANCE = new JavaPackageInfoResourceModelProvider(); - - /** - * Return the singleton. - */ - public static JaxbResourceModelProvider instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private JavaPackageInfoResourceModelProvider() { - super(); - } - - public IContentType getContentType() { - return JptCommonCorePlugin.JAVA_SOURCE_PACKAGE_INFO_CONTENT_TYPE; - } - - public JavaResourceCompilationUnit buildResourceModel(JaxbProject jaxbProject, IFile file) { - return new SourcePackageInfoCompilationUnit( - JavaCore.createCompilationUnitFrom(file), - jaxbProject.getPlatform().getAnnotationProvider(), - jaxbProject.getPlatform().getAnnotationEditFormatter(), - jaxbProject.getModifySharedDocumentCommandExecutor() - ); - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JavaResourceModelProvider.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JavaResourceModelProvider.java deleted file mode 100644 index f59a77992e..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JavaResourceModelProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.jaxb.core.JaxbProject; -import org.eclipse.jpt.jaxb.core.JaxbResourceModelProvider; -import org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceTypeCompilationUnit; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceCompilationUnit; - -/** - * Java source code - */ -public class JavaResourceModelProvider - implements JaxbResourceModelProvider -{ - // singleton - private static final JaxbResourceModelProvider INSTANCE = new JavaResourceModelProvider(); - - /** - * Return the singleton. - */ - public static JaxbResourceModelProvider instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - private JavaResourceModelProvider() { - super(); - } - - public IContentType getContentType() { - return JptCommonCorePlugin.JAVA_SOURCE_CONTENT_TYPE; - } - - public JavaResourceCompilationUnit buildResourceModel(JaxbProject jaxbProject, IFile file) { - return new SourceTypeCompilationUnit( - JavaCore.createCompilationUnitFrom(file), - jaxbProject.getPlatform().getAnnotationProvider(), - jaxbProject.getPlatform().getAnnotationEditFormatter(), - jaxbProject.getModifySharedDocumentCommandExecutor() - ); - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JaxbPlatformTester.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JaxbPlatformTester.java deleted file mode 100644 index 6cd7bda963..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JaxbPlatformTester.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import org.eclipse.core.expressions.PropertyTester; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jpt.jaxb.core.JptJaxbCorePlugin; -import org.eclipse.jpt.jaxb.core.libprov.JaxbLibraryProviderInstallOperationConfig; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDescription; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformGroupDescription; - - -public class JaxbPlatformTester - extends PropertyTester { - - public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { - if (! (property.equals("jaxbPlatform") || property.equals("jaxbPlatformGroup")) - || ! (expectedValue instanceof String)) { //$NON-NLS-1$ - return false; - } - - JaxbPlatformDescription platform = null; - - if (receiver instanceof IResource) { - platform = platform(((IResource) receiver).getProject()); - } - else if (receiver instanceof IJavaElement) { - platform = platform(((IJavaElement) receiver).getResource().getProject()); - } - else if (receiver instanceof JaxbPlatformDescription) { - platform = (JaxbPlatformDescription) receiver; - } - else if (receiver instanceof JaxbLibraryProviderInstallOperationConfig) { - platform = ((JaxbLibraryProviderInstallOperationConfig) receiver).getJaxbPlatform(); - } - - if (property.equals("jaxbPlatform")) { - JaxbPlatformDescription otherPlatform = JptJaxbCorePlugin.getJaxbPlatformManager().getJaxbPlatform((String) expectedValue); - return platform == null ? false : platform.equals(otherPlatform); - } - if (property.equals("jaxbPlatformGroup")) { - JaxbPlatformGroupDescription group = (platform == null) ? null : platform.getGroup(); - JaxbPlatformGroupDescription otherGroup = JptJaxbCorePlugin.getJaxbPlatformManager().getJaxbPlatformGroup((String) expectedValue); - return group == null ? false : group.equals(otherGroup); - } - return false; - } - - private JaxbPlatformDescription platform(IProject project) { - return (project == null) - ? null - : JptJaxbCorePlugin.getJaxbPlatformManager().getJaxbPlatform(JptJaxbCorePlugin.getJaxbPlatformId(project)); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JptJaxbCoreMessages.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JptJaxbCoreMessages.java deleted file mode 100644 index b8dd9e9dfb..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/JptJaxbCoreMessages.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2010, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are made available under the -* terms of the Eclipse Public License v1.0, which accompanies this distribution -* and is available at http://www.eclipse.org/legal/epl-v10.html. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import org.eclipse.osgi.util.NLS; - -/** - * Localized messages used by Dali JAXB Core. - */ -public class JptJaxbCoreMessages { - - public static String ClassesGenerator_generatingClasses; - public static String ClassesGenerator_generatingClassesTask; - - public static String JaxbFacetConfig_validatePlatformNotSpecified; - public static String JaxbFacetConfig_validatePlatformDoesNotSupportFacetVersion; - - public static String JreLibraryValidator_invalidPlatform; - public static String JreLibraryValidator_invalidJreJaxbVersion; - - public static String PREFERENCES_FLUSH_JOB_NAME; - - public static String SchemaGenerator_creatingJAXBPropertiesFileTask; - - - private static final String BUNDLE_NAME = "jpt_jaxb_core"; //$NON-NLS-1$ - private static final Class BUNDLE_CLASS = JptJaxbCoreMessages.class; - - static { - NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS); - } - - - private JptJaxbCoreMessages() { - throw new UnsupportedOperationException(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SchemaLibraryImpl.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SchemaLibraryImpl.java deleted file mode 100644 index cc9f954415..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SchemaLibraryImpl.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.impl.AdapterImpl; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.jpt.jaxb.core.JaxbProject; -import org.eclipse.jpt.jaxb.core.JptJaxbCorePlugin; -import org.eclipse.jpt.jaxb.core.SchemaLibrary; -import org.eclipse.jpt.jaxb.core.xsd.XsdUtil; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.util.XSDResourceImpl; - -public class SchemaLibraryImpl - implements SchemaLibrary { - - private JaxbProject project; - - private final Map schemaLocations; - - private final Map schemaResources; - - private Adapter schemaResourceAdapter = new SchemaResourceAdapter(); - - - SchemaLibraryImpl(JaxbProject project) { - this.project = project; - this.schemaLocations = new HashMap(); - this.schemaResources = new HashMap(); - readProjectPreferences(); - } - - - public XSDSchema getSchema(String namespace) { - String resolvedUri = getResolvedUri(namespace); - if (resolvedUri == null) { - return null; - } - - XSDResourceImpl schemaResource = this.schemaResources.get(namespace); - XSDSchema schema = (schemaResource == null) ? null : schemaResource.getSchema(); - if (schemaResource != null) { - if (schema != null && schemaResource.getURI().toString().equals(resolvedUri) && schemaResource.isLoaded()) { - return schema; - } - else { - removeSchemaResource(namespace, schemaResource); - } - } - - return addSchema(namespace, resolvedUri); - } - - protected String getResolvedUri(String namespace) { - String location = this.schemaLocations.get(namespace); - return XsdUtil.getResolvedUri(namespace, location); - } - - protected XSDSchema addSchema(String namespace, String resolvedUri) { - XSDSchema schema = XsdUtil.buildXSDModel(resolvedUri); - XSDResourceImpl schemaResource = (XSDResourceImpl) schema.eResource(); - if (schemaResource != null) { - schemaResource.eAdapters().add(this.schemaResourceAdapter); - this.schemaResources.put(namespace, schemaResource); - return schema; - } - return null; - } - - protected void removeSchemaResource(XSDResourceImpl schemaResource) { - for (String namespace : this.schemaResources.keySet()) { - if (schemaResource.equals(this.schemaResources.get(namespace))) { - removeSchemaResource(namespace, schemaResource); - } - } - } - - protected void removeSchemaResource(String namespace, XSDResourceImpl schemaResource) { - schemaResource.eAdapters().remove(this.schemaResourceAdapter); - this.schemaResources.remove(namespace); - } - - protected void readProjectPreferences() { - Map schemaMap = JptJaxbCorePlugin.getSchemaLocationMap(this.project.getProject()); - this.schemaLocations.putAll(schemaMap); - } - - public Map getSchemaLocations() { - return Collections.unmodifiableMap(this.schemaLocations); - } - - public void setSchemaLocations(Map schemaLocations) { - this.schemaLocations.clear(); - JptJaxbCorePlugin.setSchemaLocationMap(this.project.getProject(), schemaLocations); - readProjectPreferences(); - } - - - private class SchemaResourceAdapter - extends AdapterImpl { - - @Override - public void notifyChanged(Notification msg) { - if (msg.getFeatureID(Resource.class) == Resource.RESOURCE__IS_LOADED - && msg.getNewBooleanValue() == false) { - removeSchemaResource((XSDResourceImpl) msg.getNotifier()); - } - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SimpleJaxbProjectConfig.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SimpleJaxbProjectConfig.java deleted file mode 100644 index f159ded880..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SimpleJaxbProjectConfig.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal; - -import org.eclipse.core.resources.IProject; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.jaxb.core.JaxbProject; -import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDefinition; - -/** - * Straightforward implementation of the JAXB project config. - */ -public class SimpleJaxbProjectConfig - implements JaxbProject.Config { - - private IProject project; - - private JaxbPlatformDefinition platformDefinition; - - - public SimpleJaxbProjectConfig() { - super(); - } - - - public IProject getProject() { - return this.project; - } - - public void setProject(IProject project) { - this.project = project; - } - - public JaxbPlatformDefinition getPlatformDefinition() { - return this.platformDefinition; - } - - public void setPlatformDefinition(JaxbPlatformDefinition platformDefinition) { - this.platformDefinition = platformDefinition; - } - - @Override - public String toString() { - return StringTools.buildToStringFor(this, this.project.getName()); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/AbstractJaxbContextNode.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/AbstractJaxbContextNode.java deleted file mode 100644 index e4a5a02261..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/AbstractJaxbContextNode.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context; - -import org.eclipse.jpt.common.core.JptResourceType; -import org.eclipse.jpt.jaxb.core.JaxbNode; -import org.eclipse.jpt.jaxb.core.context.JaxbContextNode; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.internal.AbstractJaxbNode; - -public abstract class AbstractJaxbContextNode - extends AbstractJaxbNode - implements JaxbContextNode -{ - - // ********** constructor ********** - - protected AbstractJaxbContextNode(JaxbNode parent) { - super(parent); - } - - - // ********** synchronize/update ********** - - public void synchronizeWithResourceModel() { - // NOP - } - - /** - * convenience method - */ - protected void synchronizeNodesWithResourceModel(Iterable nodes) { - for (JaxbContextNode node : nodes) { - node.synchronizeWithResourceModel(); - } - } - - public void update() { - // NOP - } - - /** - * convenience method - */ - protected void updateNodes(Iterable nodes) { - for (JaxbContextNode node : nodes) { - node.update(); - } - } - - // ********** containment hierarchy ********** - - /** - * covariant override - */ - @Override - public JaxbContextNode getParent() { - return (JaxbContextNode) super.getParent(); - } - - /** - * Overridden in:

    - *
  • {@link org.eclipse.jpt.jaxb.core.internal.context.java.AbstractJavaContextNode#getResourceType() AbstractJavaContextNode} - *
- */ - public JptResourceType getResourceType() { - return getParent().getResourceType(); - } - - /** - * Overridden in:
    - *
  • {@link org.eclipse.jpt.jaxb.core.internal.context.GenericContextRoot#getContextRoot() GenericContextRoot} - * to return itself> - *
- */ - public JaxbContextRoot getContextRoot() { - return getParent().getContextRoot(); - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericContextRoot.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericContextRoot.java deleted file mode 100644 index 5b61923364..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericContextRoot.java +++ /dev/null @@ -1,623 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.jpt.common.utility.internal.ClassName; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable; -import org.eclipse.jpt.common.utility.internal.iterables.SnapshotCloneIterable; -import org.eclipse.jpt.common.utility.internal.iterables.SubIterableWrapper; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; -import org.eclipse.jpt.jaxb.core.JaxbProject; -import org.eclipse.jpt.jaxb.core.context.JaxbClass; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentEnum; -import org.eclipse.jpt.jaxb.core.context.JaxbRegistry; -import org.eclipse.jpt.jaxb.core.context.JaxbTransientClass; -import org.eclipse.jpt.jaxb.core.context.JaxbType; -import org.eclipse.jpt.jaxb.core.resource.java.JAXB; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnum; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * the context model root - */ -public class GenericContextRoot - extends AbstractJaxbContextNode - implements JaxbContextRoot { - - /* This object has no parent, so it must point to the JAXB project explicitly. */ - protected final JaxbProject jaxbProject; - - /* The map of package name to JaxbPackage objects */ - protected final Map packages; - - /* The map of class name to JaxbType objects */ - protected final Map types; - - - public GenericContextRoot(JaxbProject jaxbProject) { - super(null); // the JAXB project is not really a "parent"... - if (jaxbProject == null) { - throw new NullPointerException(); - } - this.jaxbProject = jaxbProject; - this.packages = new HashMap(); - this.types = new HashMap(); - initialize(); - } - - - @Override - public JaxbContextRoot getContextRoot() { - return this; - } - - @Override - protected boolean requiresParent() { - return false; - } - - protected void initialize() { - // keep a master list of all types that we've processed so we don't process them again - final Set totalTypes = CollectionTools.set(); - - // keep an running list of types that we need to scan for further referenced types - final Set typesToScan = CollectionTools.set(); - - // process packages with annotations first - for (String pkg : calculateInitialPackageNames()) { - this.packages.put(pkg, buildPackage(pkg)); - } - - // process registry classes before other classes (they are completely determined by annotation) - for (JavaResourceType registryResourceType : calculateRegistries()) { - String className = registryResourceType.getQualifiedName(); - totalTypes.add(className); - typesToScan.add(className); - this.types.put(registryResourceType.getName(), buildRegistry(registryResourceType)); - } - - // calculate initial set of persistent types (annotated with @XmlType) - final Set resourceTypesToProcess = calculateInitialPersistentTypes(); - - // while there are resource types to process or types to scan, continue to do so - while (! resourceTypesToProcess.isEmpty() || ! typesToScan.isEmpty()) { - for (JavaResourceAbstractType resourceType : new SnapshotCloneIterable(resourceTypesToProcess)) { - String className = resourceType.getQualifiedName(); - totalTypes.add(className); - typesToScan.add(className); - JaxbType.Kind jaxbTypeKind = calculateJaxbTypeKind(resourceType); - this.types.put(resourceType.getName(), buildType(jaxbTypeKind, resourceType)); - resourceTypesToProcess.remove(resourceType); - } - - for (String typeToScan : new SnapshotCloneIterable(typesToScan)) { - JaxbType jaxbType = getType(typeToScan); - if (jaxbType != null) { - for (String referencedTypeName : jaxbType.getDirectlyReferencedTypeNames()) { - if (! totalTypes.contains(referencedTypeName)) { - JavaResourceAbstractType referencedType = getJaxbProject().getJavaResourceType(referencedTypeName); - if (referencedType != null) { - resourceTypesToProcess.add(referencedType); - } - } - } - } - typesToScan.remove(typeToScan); - } - } - - // once all classes have been processed, add packages - for (String pkg : calculatePackageNames(totalTypes)) { - if (! this.packages.containsKey(pkg)) { - this.packages.put(pkg, buildPackage(pkg)); - } - } - } - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - for (JaxbPackage each : getPackages()) { - each.synchronizeWithResourceModel(); - } - for (JaxbType each : getTypes()) { - each.synchronizeWithResourceModel(); - } - } - - @Override - public void update() { - super.update(); - - // keep a master list of these so that objects are updated only once - final Set packagesToUpdate = CollectionTools.set(); - final Set typesToUpdate = CollectionTools.set(); - - // keep a (shrinking) running list of these so that we know which ones we do eventually need to remove - final Set packagesToRemove = CollectionTools.set(this.packages.keySet()); - final Set typesToRemove = CollectionTools.set(this.types.keySet()); - - // keep a master list of all types that we've processed so we don't process them again - final Set totalTypes = CollectionTools.set(); - - // keep an running list of types that we need to scan for further referenced types - final Set typesToScan = CollectionTools.set(); - - // process packages with annotations first - for (String pkg : calculateInitialPackageNames()) { - if (this.packages.containsKey(pkg)) { - packagesToUpdate.add(pkg); - packagesToRemove.remove(pkg); - } - else { - this.addPackage(this.buildPackage(pkg)); - } - } - - // process registry classes before other classes (they are completely determined by annotation) - for (JavaResourceType registryResourceType : calculateRegistries()) { - String className = registryResourceType.getQualifiedName(); - typesToRemove.remove(className); - totalTypes.add(className); - typesToScan.add(className); - if (this.types.containsKey(className)) { - if (this.types.get(className).getKind() == JaxbType.Kind.REGISTRY) { - typesToUpdate.add(className); - } - else { - this.removeType(className); // this will remove a type of another kind - this.addType(buildRegistry(registryResourceType)); - } - } - else { - this.addType(buildRegistry(registryResourceType)); - } - } - - // calculate initial set of persistent types (annotated with @XmlType) - final Set resourceTypesToProcess = calculateInitialPersistentTypes(); - - // while there are resource types to process or types to scan, continue to do so - while (! resourceTypesToProcess.isEmpty() || ! typesToScan.isEmpty()) { - for (JavaResourceAbstractType resourceType : new SnapshotCloneIterable(resourceTypesToProcess)) { - String className = resourceType.getQualifiedName(); - typesToRemove.remove(className); - totalTypes.add(className); - typesToScan.add(className); - processType(resourceType, typesToUpdate); - resourceTypesToProcess.remove(resourceType); - } - - for (String typeToScan : new SnapshotCloneIterable(typesToScan)) { - JaxbType jaxbType = getType(typeToScan); - if (jaxbType != null) { - for (String referencedTypeName : jaxbType.getDirectlyReferencedTypeNames()) { - if (! StringTools.stringIsEmpty(referencedTypeName) && ! totalTypes.contains(referencedTypeName)) { - JavaResourceAbstractType referencedType = getJaxbProject().getJavaResourceType(referencedTypeName); - if (referencedType != null) { - resourceTypesToProcess.add(referencedType); - } - } - } - } - typesToScan.remove(typeToScan); - } - } - - // once all classes have been processed, add packages - for (String pkg : calculatePackageNames(totalTypes)) { - if (this.packages.containsKey(pkg)) { - packagesToUpdate.add(pkg); - packagesToRemove.remove(pkg); - } - else { - this.addPackage(this.buildPackage(pkg)); - } - } - - for (String packageToUpdate : packagesToUpdate) { - this.packages.get(packageToUpdate).update(); - } - - for (String typeToUpdate : typesToUpdate) { - this.types.get(typeToUpdate).update(); - } - - for (String packageToRemove : packagesToRemove) { - removePackage(packageToRemove); - } - - for (String typeToRemove : typesToRemove) { - removeType(typeToRemove); - } - } - - /** - * calculate set of packages that can be determined purely by presence of package annotations - */ - protected Set calculateInitialPackageNames() { - return CollectionTools.set( - new TransformationIterable( - getJaxbProject().getAnnotatedJavaResourcePackages()) { - @Override - protected String transform(JavaResourcePackage o) { - return o.getName(); - } - }); - } - - /** - * calculate set of packages that can be determined from type names - */ - protected Set calculatePackageNames(Set typeNames) { - Set packageNames = CollectionTools.set(); - for (String typeName : typeNames) { - packageNames.add(ClassName.getPackageName(typeName)); - } - return packageNames; - } - - /* - * Calculate set of registries - * (this should be all resource types with the @XmlRegistry annotation) - */ - protected Set calculateRegistries() { - return CollectionTools.set( - new SubIterableWrapper( - new FilteringIterable( - getJaxbProject().getJavaSourceResourceTypes()) { - @Override - protected boolean accept(JavaResourceAbstractType o) { - return o.getKind() == JavaResourceAbstractType.Kind.TYPE - && o.getAnnotation(JAXB.XML_REGISTRY) != null; - } - })); - } - - /* - * Calculate set of resource types annotated with @XmlType (and not @XmlRegistry) - */ - protected Set calculateInitialPersistentTypes() { - return CollectionTools.set( - new FilteringIterable(getJaxbProject().getJavaSourceResourceTypes()) { - @Override - protected boolean accept(JavaResourceAbstractType o) { - return o.getAnnotation(JAXB.XML_TYPE) != null && o.getAnnotation(JAXB.XML_REGISTRY) == null; - } - }); - } - - protected void processType(JavaResourceAbstractType resourceType, Set typesToUpdate) { - JaxbType.Kind jaxbTypeKind = calculateJaxbTypeKind(resourceType); - String className = resourceType.getQualifiedName(); - - if (this.types.containsKey(className)) { - if (this.types.get(className).getKind() == jaxbTypeKind) { - typesToUpdate.add(className); - return; - } - else { - this.removeType(className); // this will remove a type of another kind - } - } - - this.addType(buildType(jaxbTypeKind, resourceType)); - } - - protected JaxbType.Kind calculateJaxbTypeKind(JavaResourceAbstractType resourceType) { - if (resourceType.getKind() == JavaResourceAbstractType.Kind.ENUM) { - return JaxbType.Kind.PERSISTENT_ENUM; - } - // else is of kind TYPE - else if (resourceType.getAnnotation(JAXB.XML_REGISTRY) != null) { - return JaxbType.Kind.REGISTRY; - } - else if (resourceType.getAnnotation(JAXB.XML_TRANSIENT) != null) { - return JaxbType.Kind.TRANSIENT; - } - else { - return JaxbType.Kind.PERSISTENT_CLASS; - } - } - - protected JaxbType buildType(JaxbType.Kind jaxbTypeKind, JavaResourceAbstractType resourceType) { - if (jaxbTypeKind == JaxbType.Kind.PERSISTENT_ENUM) { - return buildPersistentEnum((JavaResourceEnum) resourceType); - } - else if (jaxbTypeKind == JaxbType.Kind.REGISTRY) { - return buildRegistry((JavaResourceType) resourceType); - } - else if (jaxbTypeKind == JaxbType.Kind.TRANSIENT) { - return buildTransientClass((JavaResourceType) resourceType); - } - else { - return buildPersistentClass((JavaResourceType) resourceType); - } - } - - - // ********** AbstractJaxbNode overrides ********** - - @Override - public JaxbProject getJaxbProject() { - return this.jaxbProject; - } - - @Override - public IResource getResource() { - return this.getProject(); - } - - protected IProject getProject() { - return this.jaxbProject.getProject(); - } - - - // ************* packages *************** - - public Iterable getPackages() { - return new LiveCloneIterable(this.packages.values()); - } - - public int getPackagesSize() { - return this.packages.size(); - } - - public JaxbPackage getPackage(String packageName) { - for (JaxbPackage jaxbPackage : this.getPackages()) { - if (StringTools.stringsAreEqual(jaxbPackage.getName(), packageName)) { - return jaxbPackage; - } - } - return null; - } - - protected JaxbPackage addPackage(JaxbPackage contextPackage) { - if (this.packages.containsKey(contextPackage.getName())) { - throw new IllegalArgumentException("Package with that name already exists."); //$NON-NLS-1$ - } - this.packages.put(contextPackage.getName(), contextPackage); - fireItemAdded(PACKAGES_COLLECTION, contextPackage); - return contextPackage; - } - - protected void removePackage(JaxbPackage contextPackage) { - this.removePackage(contextPackage.getName()); - } - - protected void removePackage(String packageName) { - if (! this.packages.containsKey(packageName)) { - throw new IllegalArgumentException("No package with that name exists."); //$NON-NLS-1$ - } - JaxbPackage removedPackage = this.packages.remove(packageName); - fireItemRemoved(PACKAGES_COLLECTION, removedPackage); - } - - protected JaxbPackage buildPackage(String packageName) { - return this.getFactory().buildPackage(this, packageName); - } - - protected boolean isEmpty(JaxbPackage jaxbPackage) { - return jaxbPackage.isEmpty(); - } - - - // ********** types *********** - - public Iterable getTypes() { - return new LiveCloneIterable(this.types.values()); - } - - public int getTypesSize() { - return this.types.size(); - } - - public JaxbType getType(String typeName) { - return this.types.get(typeName); - } - - protected void addType(JaxbType type) { - if (this.types.containsKey(type.getFullyQualifiedName())) { - throw new IllegalArgumentException("Type with that name already exists."); //$NON-NLS-1$ - } - this.types.put(type.getFullyQualifiedName(), type); - fireItemAdded(TYPES_COLLECTION, type); - } - - protected void removeType(JaxbType type) { - removeType(type.getFullyQualifiedName()); - } - - protected void removeType(String typeName) { - if (! this.types.containsKey(typeName)) { - throw new IllegalArgumentException("No type with that name exists."); //$NON-NLS-1$ - } - JaxbType removedType = this.types.remove(typeName); - fireItemRemoved(TYPES_COLLECTION, removedType); - } - - public Iterable getTypes(final JaxbPackage jaxbPackage) { - return new FilteringIterable(getTypes()) { - @Override - protected boolean accept(JaxbType o) { - return o.getPackageName().equals(jaxbPackage.getName()); - } - }; - } - - - // ********** registries ********** - - public Iterable getRegistries() { - return new SubIterableWrapper( - new FilteringIterable(getTypes()) { - @Override - protected boolean accept(JaxbType o) { - return o.getKind() == JaxbType.Kind.REGISTRY; - } - }); - } - - protected JaxbRegistry buildRegistry(JavaResourceType resourceType) { - return this.getFactory().buildRegistry(this, resourceType); - } - - public Iterable getRegistries(final JaxbPackage jaxbPackage) { - return new FilteringIterable(getRegistries()) { - @Override - protected boolean accept(JaxbRegistry o) { - return o.getPackageName().equals(jaxbPackage.getName()); - } - }; - } - - - // ********** transient types ********** - - public Iterable getTransientClasses() { - return new SubIterableWrapper( - new FilteringIterable(getTypes()) { - @Override - protected boolean accept(JaxbType o) { - return o.getKind() == JaxbType.Kind.TRANSIENT; - } - }); - } - - protected JaxbTransientClass buildTransientClass(JavaResourceType resourceType) { - return this.getFactory().buildJavaTransientClass(this, resourceType); - } - - public Iterable getTransientClasses(final JaxbPackage jaxbPackage) { - return new FilteringIterable(getTransientClasses()) { - @Override - protected boolean accept(JaxbTransientClass o) { - return o.getPackageName().equals(jaxbPackage.getName()); - } - }; - } - - public JaxbTransientClass getTransientClass(String className) { - for (JaxbTransientClass jaxbClass : this.getTransientClasses()) { - if (StringTools.stringsAreEqual(jaxbClass.getFullyQualifiedName(), className)) { - return jaxbClass; - } - } - return null; - } - - // ********** persistent classes ********** - - public Iterable getPersistentClasses() { - return new SubIterableWrapper( - new FilteringIterable(getTypes()) { - @Override - protected boolean accept(JaxbType o) { - return o.getKind() == JaxbType.Kind.PERSISTENT_CLASS; - } - }); - } - - protected JaxbPersistentClass buildPersistentClass(JavaResourceType resourceType) { - return this.getFactory().buildJavaPersistentClass(this, resourceType); - } - - public Iterable getPersistentClasses(final JaxbPackage jaxbPackage) { - return new FilteringIterable(getPersistentClasses()) { - @Override - protected boolean accept(JaxbPersistentClass o) { - return o.getPackageName().equals(jaxbPackage.getName()); - } - }; - } - - public JaxbPersistentClass getPersistentClass(String className) { - for (JaxbPersistentClass jaxbClass : this.getPersistentClasses()) { - if (StringTools.stringsAreEqual(jaxbClass.getFullyQualifiedName(), className)) { - return jaxbClass; - } - } - return null; - } - - public JaxbClass getClass(String fullyQualifiedTypeName) { - JaxbPersistentClass jaxbClass= this.getPersistentClass(fullyQualifiedTypeName); - return jaxbClass != null ? jaxbClass : this.getTransientClass(fullyQualifiedTypeName); - } - - // ********** persistent enums ********** - - public Iterable getPersistentEnums() { - return new SubIterableWrapper( - new FilteringIterable(getTypes()) { - @Override - protected boolean accept(JaxbType o) { - return o.getKind() == JaxbType.Kind.PERSISTENT_ENUM; - } - }); - } - - protected JaxbPersistentEnum buildPersistentEnum(JavaResourceEnum resourceEnum) { - return this.getFactory().buildJavaPersistentEnum(this, resourceEnum); - } - - public Iterable getPersistentEnums(final JaxbPackage jaxbPackage) { - return new FilteringIterable(getPersistentEnums()) { - @Override - protected boolean accept(JaxbPersistentEnum o) { - return o.getPackageName().equals(jaxbPackage.getName()); - } - }; - } - - public JaxbPersistentEnum getPersistentEnum(String enumName) { - for (JaxbPersistentEnum jaxbEnum : this.getPersistentEnums()) { - if (StringTools.stringsAreEqual(jaxbEnum.getFullyQualifiedName(), enumName)) { - return jaxbEnum; - } - } - return null; - } - - @Override - public void stateChanged() { - super.stateChanged(); - // forward to JAXB project - this.jaxbProject.stateChanged(); - } - - - // **************** validation ******************************************** - - public void validate(List messages, IReporter reporter) { - for (JaxbPackage pkg : this.packages.values()) { - pkg.validate(messages, reporter); - } - for (JaxbType type : this.types.values()) { - type.validate(messages, reporter); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericPackage.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericPackage.java deleted file mode 100644 index a695005640..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericPackage.java +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context; - -import java.util.List; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.jpt.jaxb.core.xsd.XsdSchema; -import org.eclipse.jpt.jaxb.core.xsd.XsdUtil; -import org.eclipse.jst.j2ee.model.internal.validation.ValidationCancelledException; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; -import org.eclipse.xsd.XSDSchema; - -public class GenericPackage - extends AbstractJaxbContextNode - implements JaxbPackage { - - protected final String name; - - protected JaxbPackageInfo packageInfo; - - - public GenericPackage(JaxbContextRoot parent, String name) { - super(parent); - this.name = name; - JavaResourcePackage jrp = getJaxbProject().getAnnotatedJavaResourcePackage(this.name); - if (jrp != null) { - this.packageInfo = buildPackageInfo(jrp); - } - } - - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - if (this.packageInfo != null) { - this.packageInfo.synchronizeWithResourceModel(); - } - } - - //Building/removing of the packageInfo is in the update because this is dependent - //on a JaxbFile being added/removed which only causes an update of the model. - @Override - public void update() { - super.update(); - JavaResourcePackage jrp = getJaxbProject().getAnnotatedJavaResourcePackage(this.name); - if (jrp == null) { - this.setPackageInfo_(null); - } - else { - if (this.packageInfo == null) { - this.setPackageInfo_(this.buildPackageInfo(jrp)); - } - else { - this.packageInfo.update(); - } - } - } - - - // **************** name ************************************************** - - public String getName() { - return this.name; - } - - - // **************** package info ****************************************** - - public JaxbPackageInfo getPackageInfo() { - return this.packageInfo; - } - - protected void setPackageInfo_(JaxbPackageInfo packageInfo) { - JaxbPackageInfo old = this.packageInfo; - this.packageInfo = packageInfo; - firePropertyChanged(PACKAGE_INFO_PROPERTY, old, this.packageInfo); - } - - protected JaxbPackageInfo buildPackageInfo(JavaResourcePackage resourcePackage) { - return getFactory().buildJavaPackageInfo(this, resourcePackage); - } - - - public boolean isEmpty() { - return getPackageInfo() == null; - } - - - // **************** misc ************************************************** - - public String getNamespace() { - return (getPackageInfo() == null) ? "" : getPackageInfo().getXmlSchema().getNamespace(); - } - - public XsdSchema getXsdSchema() { - XSDSchema emfSchema = getJaxbProject().getSchemaLibrary().getSchema(getNamespace()); - return (emfSchema == null) ? null : (XsdSchema) XsdUtil.getAdapter(emfSchema); - } - - - // **************** validation ******************************************** - - public void validate(List messages, IReporter reporter) { - if (! getJaxbProject().getSchemaLibrary().getSchemaLocations().containsKey(getNamespace())) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.NORMAL_SEVERITY, - JaxbValidationMessages.PACKAGE_NO_SCHEMA_FOR_NAMESPACE, - new String[] {getNamespace(), this.name}, - this)); - } - if (reporter.isCancelled()) { - throw new ValidationCancelledException(); - } - if (this.packageInfo != null) { - this.packageInfo.validate(messages, reporter); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaAttributeMapping.java deleted file mode 100644 index 81652f0c96..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaAttributeMapping.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.internal.iterables.SingleElementIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.resource.java.Annotation; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute; - -public abstract class AbstractJavaAttributeMapping - extends AbstractJavaContextNode - implements JaxbAttributeMapping -{ - - protected boolean default_; - - protected AbstractJavaAttributeMapping(JaxbPersistentAttribute parent) { - super(parent); - this.default_ = this.buildDefault(); - } - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.updateDefault(); - } - - - // ********** annotation ********** - - @SuppressWarnings("unchecked") - public A getMappingAnnotation() { - return (A) this.getAnnotation_(); - } - - protected Annotation getAnnotation_() { - return this.getJavaResourceAttribute().getAnnotation(this.getAnnotationName()); - } - - protected abstract String getAnnotationName(); - - /** - * This method should only be called on mappings that can occur by default - * (e.g. XmlElement). - */ - public A getAnnotationForUpdate() { - A annotation = this.getMappingAnnotation(); - if (annotation == null) { - this.getPersistentAttribute().setMappingKey(this.getKey()); - annotation = this.getMappingAnnotation(); - if (annotation == null) { - throw new IllegalStateException("missing annotation: " + this); //$NON-NLS-1$ - } - } - return annotation; - } - - - // ********** default ********** - - public boolean isDefault() { - return this.default_; - } - - protected void setDefault(boolean default_) { - boolean old = this.default_; - this.default_ = default_; - this.firePropertyChanged(DEFAULT_PROPERTY, old, default_); - } - - public void updateDefault() { - this.setDefault(this.buildDefault()); - } - - protected boolean buildDefault() { - return this.getMappingAnnotation() == null; - } - - - // ********** validation ********** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return getAnnotation_() == null ? getJavaResourceAttribute().getNameTextRange(astRoot) : getAnnotation_().getTextRange(astRoot); - } - - - // ********** misc ********** - - @Override - public JaxbPersistentAttribute getParent() { - return (JaxbPersistentAttribute) super.getParent(); - } - - public JaxbPersistentAttribute getPersistentAttribute() { - return this.getParent(); - } - - public JavaResourceAttribute getJavaResourceAttribute() { - return this.getPersistentAttribute().getJavaResourceAttribute(); - } - - public String getJavaResourceAttributeType() { - return this.getPersistentAttribute().getJavaResourceAttributeTypeName(); - } - - public String getAttributeTypeName() { - return getJavaResourceAttributeType(); - } - - public Iterable getDirectlyReferencedTypeNames() { - return new SingleElementIterable(getPersistentAttribute().getJavaResourceAttributeTypeName()); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaAttributeMappingDefinition.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaAttributeMappingDefinition.java deleted file mode 100644 index 135d71ba06..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaAttributeMappingDefinition.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.java.JavaAttributeMappingDefinition; - - -public abstract class AbstractJavaAttributeMappingDefinition - implements JavaAttributeMappingDefinition -{ - protected AbstractJavaAttributeMappingDefinition() { - super(); - } - - /** - * Default implementation. Override if the mapping definition needs to do more analysis. - */ - public boolean isSpecified(JaxbPersistentAttribute persistentAttribute) { - return persistentAttribute.getJavaResourceAttribute().getAnnotation(getAnnotationName()) - != null; - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaContextNode.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaContextNode.java deleted file mode 100644 index bcf8327607..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaContextNode.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.JptCommonCorePlugin; -import org.eclipse.jpt.common.core.JptResourceType; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.jaxb.core.JaxbNode; -import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; -import org.eclipse.jpt.jaxb.core.internal.context.AbstractJaxbContextNode; -import org.eclipse.jst.j2ee.model.internal.validation.ValidationCancelledException; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - - -public abstract class AbstractJavaContextNode - extends AbstractJaxbContextNode - implements JavaContextNode { - - // **************** constructor ******************************************* - - protected AbstractJavaContextNode(JaxbNode parent) { - super(parent); - } - - - @Override - public JptResourceType getResourceType() { - return JptCommonCorePlugin.JAVA_SOURCE_RESOURCE_TYPE; - } - - // **************** content assist **************************************** - - public Iterable getJavaCompletionProposals( - int pos, Filter filter, CompilationUnit astRoot) { - return EmptyIterable.instance(); - } - - - // **************** validation ******************************************** - - public abstract TextRange getValidationTextRange(CompilationUnit astRoot); - - /** - * All subclass implementations {@link #validate(List, CompilationUnit))} - * should be preceded by a "super" call to this method - */ - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - if (reporter.isCancelled()) { - throw new ValidationCancelledException(); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaPersistentType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaPersistentType.java deleted file mode 100644 index 718a9bb839..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaPersistentType.java +++ /dev/null @@ -1,431 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.beans.Introspector; -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentType; -import org.eclipse.jpt.jaxb.core.context.XmlRootElement; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType; -import org.eclipse.jpt.jaxb.core.resource.java.XmlRootElementAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlTypeAnnotation; -import org.eclipse.jpt.jaxb.core.xsd.XsdSchema; -import org.eclipse.jpt.jaxb.core.xsd.XsdTypeDefinition; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public abstract class AbstractJavaPersistentType - extends AbstractJavaType - implements JaxbPersistentType { - - protected String factoryClass; - protected String factoryMethod; - protected String specifiedXmlTypeName; - protected String specifiedNamespace; - protected final PropOrderContainer propOrderContainer; - - protected XmlRootElement rootElement; - - public AbstractJavaPersistentType(JaxbContextRoot parent, JavaResourceAbstractType resourceType) { - super(parent, resourceType); - this.factoryClass = this.getResourceFactoryClass(); - this.factoryMethod = this.getResourceFactoryMethod(); - this.specifiedXmlTypeName = this.getResourceXmlTypeName(); - this.specifiedNamespace = this.getResourceNamespace(); - this.propOrderContainer = new PropOrderContainer(); - this.rootElement = this.buildRootElement(); - } - - @Override - public JaxbContextRoot getParent() { - return (JaxbContextRoot) super.getParent(); - } - - protected JaxbPackageInfo getPackageInfo() { - JaxbPackage jaxbPackage = getParent().getPackage(this.getPackageName()); - return jaxbPackage == null ? null : jaxbPackage.getPackageInfo(); - } - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setFactoryClass_(getResourceFactoryClass()); - this.setFactoryMethod_(getResourceFactoryMethod()); - this.setSpecifiedXmlTypeName_(getResourceXmlTypeName()); - this.setSpecifiedNamespace_(getResourceNamespace()); - this.syncPropOrder(); - this.syncRootElement(); - } - - - // ********** xml type annotation ********** - - protected XmlTypeAnnotation getXmlTypeAnnotation() { - return (XmlTypeAnnotation) this.getJavaResourceType().getNonNullAnnotation(XmlTypeAnnotation.ANNOTATION_NAME); - } - - - // ********** factory class ********** - - public String getFactoryClass() { - return this.factoryClass; - } - - public void setFactoryClass(String factoryClass) { - this.getXmlTypeAnnotation().setFactoryClass(factoryClass); - this.setFactoryClass_(factoryClass); - } - - protected void setFactoryClass_(String factoryClass) { - String old = this.factoryClass; - this.factoryClass = factoryClass; - this.firePropertyChanged(FACTORY_CLASS_PROPERTY, old, factoryClass); - } - - protected String getResourceFactoryClass() { - return this.getXmlTypeAnnotation().getFactoryClass(); - } - - // ********** factory method ********** - - public String getFactoryMethod() { - return this.factoryMethod; - } - - public void setFactoryMethod(String factoryMethod) { - this.getXmlTypeAnnotation().setFactoryMethod(factoryMethod); - this.setFactoryMethod_(factoryMethod); - } - - protected void setFactoryMethod_(String factoryMethod) { - String old = this.factoryMethod; - this.factoryMethod = factoryMethod; - this.firePropertyChanged(FACTORY_METHOD_PROPERTY, old, factoryMethod); - } - - protected String getResourceFactoryMethod() { - return this.getXmlTypeAnnotation().getFactoryMethod(); - } - - // ********** name ********** - - public String getXmlTypeName() { - return (this.specifiedXmlTypeName != null) ? this.specifiedXmlTypeName : getDefaultXmlTypeName(); - } - - public String getSpecifiedXmlTypeName() { - return this.specifiedXmlTypeName; - } - - public void setSpecifiedXmlTypeName(String xmlTypeName) { - this.getXmlTypeAnnotation().setName(xmlTypeName); - this.setSpecifiedXmlTypeName_(xmlTypeName); - } - - protected void setSpecifiedXmlTypeName_(String xmlTypeName) { - String old = this.specifiedXmlTypeName; - this.specifiedXmlTypeName = xmlTypeName; - this.firePropertyChanged(SPECIFIED_XML_TYPE_NAME_PROPERTY, old, xmlTypeName); - } - - public String getDefaultXmlTypeName() { - return Introspector.decapitalize(getSimpleName()); - } - - protected String getResourceXmlTypeName() { - return this.getXmlTypeAnnotation().getName(); - } - - - // ********** namespace ********** - - public String getNamespace() { - return (this.specifiedNamespace != null) ? this.specifiedNamespace : getDefaultNamespace(); - } - - public String getSpecifiedNamespace() { - return this.specifiedNamespace; - } - - public void setSpecifiedNamespace(String namespace) { - this.getXmlTypeAnnotation().setNamespace(namespace); - this.setSpecifiedNamespace_(namespace); - } - - protected void setSpecifiedNamespace_(String namespace) { - String old = this.specifiedNamespace; - this.specifiedNamespace = namespace; - this.firePropertyChanged(SPECIFIED_NAMESPACE_PROPERTY, old, namespace); - } - - public String getDefaultNamespace() { - return getJaxbPackage().getNamespace(); - } - - protected String getResourceNamespace() { - return this.getXmlTypeAnnotation().getNamespace(); - } - - - // ********** prop order ********** - - public ListIterable getPropOrder() { - return this.propOrderContainer.getContextElements(); - } - - public int getPropOrderSize() { - return this.propOrderContainer.getContextElementsSize(); - } - - public void addProp(int index, String prop) { - getXmlTypeAnnotation().addProp(index, prop); - this.propOrderContainer.addContextElement(index, prop); - } - - public void removeProp(String prop) { - this.removeProp(this.propOrderContainer.indexOfContextElement(prop)); - } - - public void removeProp(int index) { - this.getXmlTypeAnnotation().removeProp(index); - this.propOrderContainer.removeContextElement(index); - } - - public void moveProp(int targetIndex, int sourceIndex) { - this.getXmlTypeAnnotation().moveProp(targetIndex, sourceIndex); - this.propOrderContainer.moveContextElement(targetIndex, sourceIndex); - } - - protected void syncPropOrder() { - this.propOrderContainer.synchronizeWithResourceModel(); - } - - protected ListIterable getResourcePropOrder() { - return this.getXmlTypeAnnotation().getPropOrder(); - } - - // *************** root element ********************* - - public XmlRootElement getRootElement() { - return this.rootElement; - } - - public boolean isRootElement() { - return this.rootElement != null; - } - - public XmlRootElement setRootElement(String name) { - if (name == null) { - this.getJavaResourceType().removeAnnotation(XmlRootElementAnnotation.ANNOTATION_NAME); - this.setRootElement_(null); - return null; - } - XmlRootElementAnnotation resourceRootElement = (XmlRootElementAnnotation) getJavaResourceType().addAnnotation(XmlRootElementAnnotation.ANNOTATION_NAME); - resourceRootElement.setName(name); - XmlRootElement contextRootElement = this.buildRootElement(resourceRootElement); - this.setRootElement_(contextRootElement); - return contextRootElement; - } - - protected void setRootElement_(XmlRootElement rootElement) { - XmlRootElement old = this.rootElement; - this.rootElement = rootElement; - this.firePropertyChanged(ROOT_ELEMENT, old, rootElement); - } - - protected XmlRootElement buildRootElement() { - XmlRootElementAnnotation resourceRootElement = this.getRootElementAnnotation(); - return resourceRootElement == null ? null : this.buildRootElement(resourceRootElement); - } - - protected XmlRootElement buildRootElement(XmlRootElementAnnotation resourceRootElement) { - return getFactory().buildJavaXmlRootElement(this, resourceRootElement); - } - - protected void syncRootElement() { - XmlRootElementAnnotation resourceRootElement = this.getRootElementAnnotation(); - if (resourceRootElement != null) { - if (this.rootElement != null) { - this.rootElement.synchronizeWithResourceModel(); - } - else { - this.setRootElement_(this.buildRootElement(resourceRootElement)); - } - } - else if (this.rootElement != null) { - this.setRootElement_(null); - } - } - - protected XmlRootElementAnnotation getRootElementAnnotation() { - return (XmlRootElementAnnotation) this.getJavaResourceType().getAnnotation(XmlRootElementAnnotation.ANNOTATION_NAME); - } - - - // **************** content assist **************************************** - - @Override - public Iterable getJavaCompletionProposals( - int pos, Filter filter, CompilationUnit astRoot) { - Iterable result = super.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - - if (namespaceTouches(pos, astRoot)) { - return getNamespaceProposals(filter); - } - - if (nameTouches(pos, astRoot)) { - return getNameProposals(filter); - } - - if (this.rootElement != null) { - result = this.rootElement.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - } - - return EmptyIterable.instance(); - } - - protected boolean namespaceTouches(int pos, CompilationUnit astRoot) { - return getXmlTypeAnnotation().namespaceTouches(pos, astRoot); - } - - protected Iterable getNamespaceProposals(Filter filter) { - XsdSchema schema = getJaxbPackage().getXsdSchema(); - if (schema == null) { - return EmptyIterable.instance(); - } - return schema.getNamespaceProposals(filter); - } - - protected boolean nameTouches(int pos, CompilationUnit astRoot) { - return getXmlTypeAnnotation().nameTouches(pos, astRoot); - } - - protected Iterable getNameProposals(Filter filter) { - XsdSchema schema = getJaxbPackage().getXsdSchema(); - if (schema == null) { - return EmptyIterable.instance(); - } - return schema.getTypeNameProposals(getNamespace(), filter); - } - - - // **************** validation ******************************************** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - TextRange textRange = getXmlTypeAnnotation().getTextRange(astRoot); - return (textRange != null) ? textRange : super.getValidationTextRange(astRoot); - } - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - - validateXmlType(messages, reporter, astRoot); - - if (this.rootElement != null) { - this.rootElement.validate(messages, reporter, astRoot); - } - } - - protected void validateXmlType(List messages, IReporter reporter, CompilationUnit astRoot) { - // 1. if name is absent (""), namespace cannot be different from package namespace - // 2. if name is not absent (""), type must be from schema associated with this package - - String name = getXmlTypeName(); - String namespace = getNamespace(); - if ("".equals(name)) { - if (! StringTools.stringsAreEqual(namespace, getJaxbPackage().getNamespace())) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_TYPE_UNMATCHING_NAMESPACE_FOR_ANONYMOUS_TYPE, - this, - getXmlTypeAnnotation().getNamespaceTextRange(astRoot))); - } - } - else { - XsdSchema schema = getJaxbPackage().getXsdSchema(); - - if (schema != null) { - XsdTypeDefinition schemaType = schema.getTypeDefinition(namespace, name); - if (schemaType == null) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_TYPE_UNRESOLVED_SCHEMA_TYPE, - new String[] {name, namespace}, - this, - getXmlTypeAnnotation().getTextRange(astRoot))); - } - } - } - } - - - // **************** misc ************************************************** - - public XsdTypeDefinition getXsdTypeDefinition() { - XsdSchema xsdSchema = getJaxbPackage().getXsdSchema(); - return (xsdSchema == null) ? null : xsdSchema.getTypeDefinition(getNamespace(), getXmlTypeName()); - } - - @Override - public void toString(StringBuilder sb) { - super.toString(sb); - sb.append(this.getFullyQualifiedName()); - } - - - - /** - * xml prop order container - */ - protected class PropOrderContainer - extends ListContainer - { - @Override - protected String getContextElementsPropertyName() { - return PROP_ORDER_LIST; - } - @Override - protected String buildContextElement(String resourceElement) { - return resourceElement; - } - @Override - protected ListIterable getResourceElements() { - return AbstractJavaPersistentType.this.getResourcePropOrder(); - } - @Override - protected String getResourceElement(String contextElement) { - return contextElement; - } - } -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaType.java deleted file mode 100644 index 3ede682352..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaType.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbType; -import org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType; -import org.eclipse.jst.j2ee.model.internal.validation.ValidationCancelledException; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - - -public abstract class AbstractJavaType - extends AbstractJavaContextNode - implements JaxbType { - - protected final JavaResourceAbstractType resourceType; - - - protected AbstractJavaType(JaxbContextRoot parent, JavaResourceAbstractType resourceType) { - super(parent); - this.resourceType = resourceType; - - } - - - // **************** AbstractJaxbNode impl ********************************* - - @Override - public IResource getResource() { - return this.resourceType.getFile(); - } - - - // *********** JaxbType impl *********** - - public JavaResourceAbstractType getJavaResourceType() { - return this.resourceType; - } - - public String getFullyQualifiedName() { - return this.resourceType.getQualifiedName(); - } - - public String getTypeQualifiedName() { - String packageName = getPackageName(); - return (packageName.length() == 0) ? getFullyQualifiedName() : getFullyQualifiedName().substring(packageName.length() + 1); - } - - public String getSimpleName() { - return this.resourceType.getName(); - } - - public String getPackageName() { - return this.resourceType.getPackageName(); - } - - public JaxbPackage getJaxbPackage() { - return getContextRoot().getPackage(getPackageName()); - } - - public Iterable getDirectlyReferencedTypeNames() { - return EmptyIterable.instance(); - } - - - // **************** misc ************************************************** - - protected CompilationUnit buildASTRoot() { - return this.resourceType.getJavaResourceCompilationUnit().buildASTRoot(); - } - - - // **************** validation ******************************************** - - /** - * Override as needed - */ - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return getJavaResourceType().getNameTextRange(astRoot); - } - - public void validate(List messages, IReporter reporter) { - if (reporter.isCancelled()) { - throw new ValidationCancelledException(); - } - // TODO temporary hack since we don't know yet where to put - // any messages for types in another project - IFile file = this.resourceType.getFile(); - // 'file' will be null if the type is "external" and binary; - // the file will be in a different project if the type is "external" and source; - // the type will be binary if it is in a JAR in the current project - if ((file != null) - && file.getProject().equals(getJaxbProject().getProject()) - && (this.resourceType instanceof SourceNode)) { - // build the AST root here to pass down - this.validate(messages, reporter, this.buildASTRoot()); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaXmlJavaTypeAdapter.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaXmlJavaTypeAdapter.java deleted file mode 100644 index 9bc4790c04..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaXmlJavaTypeAdapter.java +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.jaxb.core.context.JaxbContextNode; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; - -public abstract class AbstractJavaXmlJavaTypeAdapter - extends AbstractJavaContextNode - implements XmlJavaTypeAdapter -{ - - protected final XmlJavaTypeAdapterAnnotation resourceXmlJavaTypeAdapter; - - protected String value; - - protected String specifiedType; - - protected String defaultType; - - protected AbstractJavaXmlJavaTypeAdapter(JaxbContextNode parent, XmlJavaTypeAdapterAnnotation resource) { - super(parent); - this.resourceXmlJavaTypeAdapter = resource; - this.value = this.getResourceValue(); - this.specifiedType = this.getResourceTypeString(); - this.defaultType = this.buildDefaultType(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setValue_(this.getResourceValue()); - this.setSpecifiedType_(this.getResourceTypeString()); - this.setDefaultType(this.buildDefaultType()); - } - - - // ********** xml java type adapter annotation ********** - - public XmlJavaTypeAdapterAnnotation getResourceXmlJavaTypeAdapter() { - return this.resourceXmlJavaTypeAdapter; - } - - // ********** value ********** - - public String getValue() { - return this.value; - } - - public void setValue(String value) { - this.resourceXmlJavaTypeAdapter.setValue(value); - this.setValue_(value); - } - - protected void setValue_(String value) { - String old = this.value; - this.value = value; - this.firePropertyChanged(VALUE_PROPERTY, old, value); - } - - protected String getResourceValue() { - return this.resourceXmlJavaTypeAdapter.getValue(); - } - - - // ********** type ********** - - public String getType() { - return this.specifiedTypeNotSet() ? this.getDefaultType() : this.getSpecifiedType(); - } - - /** - * @see javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT - */ - protected boolean specifiedTypeNotSet() { - return getSpecifiedType() == null || getSpecifiedType().equals(DEFAULT_TYPE); - } - - public String getDefaultType() { - return this.defaultType; - } - - protected void setDefaultType(String defaultType) { - String oldDefaultType = this.defaultType; - this.defaultType = defaultType; - firePropertyChanged(DEFAULT_TYPE_PROPERTY, oldDefaultType, defaultType); - } - - protected abstract String buildDefaultType(); - - public String getSpecifiedType() { - return this.specifiedType; - } - - public void setSpecifiedType(String location) { - this.resourceXmlJavaTypeAdapter.setType(location); - this.setSpecifiedType_(location); - } - - protected void setSpecifiedType_(String type) { - String old = this.specifiedType; - this.specifiedType = type; - this.firePropertyChanged(SPECIFIED_TYPE_PROPERTY, old, type); - } - - protected String getResourceTypeString() { - return this.resourceXmlJavaTypeAdapter.getType(); - } - - - // ********** validation ********** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return getResourceXmlJavaTypeAdapter().getTextRange(astRoot); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaAttributeXmlJavaTypeAdapter.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaAttributeXmlJavaTypeAdapter.java deleted file mode 100644 index df7840cd84..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaAttributeXmlJavaTypeAdapter.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaAttributeXmlJavaTypeAdapter - extends AbstractJavaXmlJavaTypeAdapter -{ - - public GenericJavaAttributeXmlJavaTypeAdapter(JaxbAttributeMapping parent, XmlJavaTypeAdapterAnnotation resource) { - super(parent, resource); - } - - @Override - public JaxbAttributeMapping getParent() { - return (JaxbAttributeMapping) super.getParent(); - } - - protected JaxbPersistentAttribute getPersistentAttribute() { - return getParent().getParent(); - } - - // ********** type ********** - - @Override - protected String buildDefaultType() { - return this.getPersistentAttribute().getJavaResourceAttributeTypeName(); - } - - - // ********** validation ********** - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - if (getType() == null || getType().equals(XmlJavaTypeAdapter.DEFAULT_TYPE)) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.ATTRIBUTE_MAPPING_XML_JAVA_TYPE_ADAPTER_TYPE_NOT_DEFINED, - this, - getResourceXmlJavaTypeAdapter().getTypeTextRange(astRoot))); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaAttributesContainer.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaAttributesContainer.java deleted file mode 100644 index 5ee0fbf7fc..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaAttributesContainer.java +++ /dev/null @@ -1,652 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.lang.reflect.Modifier; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributesContainer; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentField; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentProperty; -import org.eclipse.jpt.jaxb.core.context.XmlAccessType; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMember; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaAttributesContainer - extends AbstractJavaContextNode - implements JaxbAttributesContainer { - - protected JavaResourceType javaResourceType; - - protected JaxbAttributesContainer.Owner owner; - - protected final Vector attributes = new Vector(); - - public GenericJavaAttributesContainer(JaxbPersistentClass parent, JaxbAttributesContainer.Owner owner, JavaResourceType resourceType) { - super(parent); - this.javaResourceType = resourceType; - this.owner = owner; - this.initializeAttributes(); - } - - @Override - public JaxbPersistentClass getParent() { - return (JaxbPersistentClass) super.getParent(); - } - - public boolean isFor(JavaResourceType javaResourceType) { - return this.javaResourceType == javaResourceType; - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.synchronizeNodesWithResourceModel(this.getAttributes()); - } - - @Override - public void update() { - super.update(); - this.updateAttributes(); - } - - // ********** access type ********** - - protected XmlAccessType getAccessType() { - return this.owner.getAccessType(); - } - - - // ********** attributes ********** - - public Iterable getAttributes() { - return new LiveCloneIterable(this.attributes); - } - - public int getAttributesSize() { - return this.attributes.size(); - } - - protected void addAttribute(JaxbPersistentAttribute attribute) { - if (this.attributes.add(attribute)) { - this.owner.fireAttributeAdded(attribute); - } - } - - protected void removeAttribute(JaxbPersistentAttribute attribute) { - if (this.attributes.remove(attribute)) { - this.owner.fireAttributeRemoved(attribute); - } - } - - protected JaxbPersistentField buildField(JavaResourceField resourceField) { - return getFactory().buildJavaPersistentField(getParent(), resourceField); - } - - protected JaxbPersistentProperty buildProperty(JavaResourceMethod resourceGetter, JavaResourceMethod resourceSetter) { - return getFactory().buildJavaPersistentProperty(getParent(), resourceGetter, resourceSetter); - } - - protected void initializeAttributes() { - if (getAccessType() == XmlAccessType.PUBLIC_MEMBER) { - this.initializePublicMemberAccessAttributes(); - } - else if (getAccessType() == XmlAccessType.FIELD) { - this.intializeFieldAccessAttributes(); - } - else if (getAccessType() == XmlAccessType.PROPERTY) { - this.intializePropertyAccessAttributes(); - } - else if (getAccessType() == XmlAccessType.NONE) { - this.intializeNoneAccessAttributes(); - } - } - - /** - * Initialize the attributes for XmlAccessType.PUBLIC_MEMBER - * 1. all public, non-static, non-transient fields (transient modifier, @XmlTransient is brought to the context model) - * 2. all annotated fields that aren't public - * 3. all public getter/setter javabeans pairs - * 4. all annotated methods (some will have a matching getter/setter, some will be standalone) - */ - private void initializePublicMemberAccessAttributes() { - this.initializeFieldAttributes(PUBLIC_MEMBER_ACCESS_TYPE_RESOURCE_FIELDS_FILTER); - Collection resourceMethods = CollectionTools.collection(this.getResourceMethods()); - //iterate through all persistable resource method getters - for (JavaResourceMethod getterMethod : this.getResourceMethods(this.buildPersistablePropertyGetterMethodsFilter())) { - JavaResourceMethod setterMethod = getValidSiblingSetMethod(getterMethod, resourceMethods); - if (methodsArePersistablePublicMemberAccess(getterMethod, setterMethod)) { - this.attributes.add(this.buildProperty(getterMethod, setterMethod)); - } - resourceMethods.remove(getterMethod); - resourceMethods.remove(setterMethod); - } - this.initializeRemainingResourceMethodAttributes(resourceMethods); - } - - /** - * Initialize the attributes for XmlAccessType.FIELD - * 1. all non-transient fields - * 2. all annotated methods getters/setters - */ - private void intializeFieldAccessAttributes() { - this.initializeFieldAttributes(this.buildNonTransientNonStaticResourceFieldsFilter()); - this.initializeAnnotatedPropertyAttributes(); - } - - /** - * Initialize the attributes for XmlAccessType.PROPERTY - * 1. all getter/setter javabeans pairs - * 2. all annotated fields - * 3. all annotated methods getters/setters that don't have a matching pair - */ - private void intializePropertyAccessAttributes() { - this.initializeFieldAttributes(ANNOTATED_RESOURCE_FIELDS_FILTER); - - Collection resourceMethods = CollectionTools.collection(this.getResourceMethods()); - //iterate through all resource methods searching for persistable getters - for (JavaResourceMethod getterMethod : this.getResourceMethods(this.buildPersistablePropertyGetterMethodsFilter())) { - JavaResourceMethod setterMethod = getValidSiblingSetMethod(getterMethod, resourceMethods); - if (methodsArePersistableProperties(getterMethod, setterMethod)) { - this.attributes.add(this.buildProperty(getterMethod, setterMethod)); - } - resourceMethods.remove(getterMethod); - resourceMethods.remove(setterMethod); - } - this.initializeRemainingResourceMethodAttributes(resourceMethods); - } - - /** - * Initialize the attributes for XmlAccessType.NONE - * 1. all annotated fields - * 2. all annotated methods getters/setters (some will have a matching getter/setter, some will be standalone) - */ - private void intializeNoneAccessAttributes() { - this.initializeFieldAttributes(ANNOTATED_RESOURCE_FIELDS_FILTER); - this.initializeAnnotatedPropertyAttributes(); - } - - private void initializeFieldAttributes(Filter filter) { - for (JavaResourceField resourceField : this.getResourceFields(filter)) { - this.attributes.add(this.buildField(resourceField)); - } - } - - private void initializeRemainingResourceMethodAttributes(Collection resourceMethods) { - //iterate through remaining resource methods and search for those that are annotated. - //all getter methods will already be used. - for (JavaResourceMethod resourceMethod : resourceMethods) { - if (resourceMethod.isAnnotated()) { - //annotated setter(or other random method) with no corresponding getter, bring into context model for validation purposes - this.attributes.add(this.buildProperty(null, resourceMethod)); - } - } - } - - private static boolean methodsArePersistableProperties(JavaResourceMethod getterMethod, JavaResourceMethod setterMethod) { - if (setterMethod != null) { - return true; - } - //Lists do not have to have a corresponding setter method - else if (getterMethod.getTypeName().equals("java.util.List")) { //$NON-NLS-1$ - return true; - } - else if (getterMethod.isAnnotated()) { - //annotated getter with no corresponding setter, bring into context model for validation purposes - return true; - } - return false; - } - - private static boolean methodsArePersistablePublicMemberAccess(JavaResourceMethod getterMethod, JavaResourceMethod setterMethod) { - if (getterMethod.isPublic()) { - if (setterMethod != null) { - if (setterMethod.isPublic()) { - return true; - } - } - //Lists do not have to have a corresponding setter method - else if (getterMethod.getTypeName().equals("java.util.List")) { //$NON-NLS-1$ - return true; - } - else if (getterMethod.isAnnotated()) { - //annotated getter with no corresponding setter, bring into context model for validation purposes - return true; - } - } - else if (getterMethod.isAnnotated() || (setterMethod != null && setterMethod.isAnnotated())) { - return true; - } - return false; - } - - private void initializeAnnotatedPropertyAttributes() { - Collection resourceMethods = CollectionTools.collection(this.getResourceMethods()); - //iterate through all resource methods searching for persistable getters - for (JavaResourceMethod getterMethod : this.getResourceMethods(buildPersistablePropertyGetterMethodsFilter())) { - JavaResourceMethod setterMethod = getValidSiblingSetMethod(getterMethod, resourceMethods); - if (getterMethod.isAnnotated() || (setterMethod != null && setterMethod.isAnnotated())) { - this.attributes.add(this.buildProperty(getterMethod, setterMethod)); - } - resourceMethods.remove(getterMethod); - resourceMethods.remove(setterMethod); - } - this.initializeRemainingResourceMethodAttributes(resourceMethods); - } - - protected Iterable getResourceFields() { - return this.javaResourceType.getFields(); - } - - protected Iterable getResourceMethods() { - return this.javaResourceType.getMethods(); - } - - protected Iterable getResourceFields(Filter filter) { - return new FilteringIterable(getResourceFields(), filter); - } - - protected Iterable getResourceMethods(Filter filter) { - return new FilteringIterable(getResourceMethods(), filter); - } - - protected Filter buildNonTransientNonStaticResourceFieldsFilter() { - return new Filter() { - public boolean accept(JavaResourceField resourceField) { - return memberIsNonTransientNonStatic(resourceField) || resourceField.isAnnotated(); - } - }; - } - - protected static Filter PUBLIC_MEMBER_ACCESS_TYPE_RESOURCE_FIELDS_FILTER = new Filter() { - public boolean accept(JavaResourceField resourceField) { - return memberIsPublicNonTransientNonStatic(resourceField) || resourceField.isAnnotated(); - } - }; - - protected Filter buildPersistablePropertyGetterMethodsFilter() { - return new Filter() { - public boolean accept(JavaResourceMethod resourceMethod) { - return methodIsPersistablePropertyGetter(resourceMethod, getResourceMethods()); - } - }; - } - - protected static boolean memberIsPublicNonTransientNonStatic(JavaResourceMember resourceMember) { - return resourceMember.isPublic() && memberIsNonTransientNonStatic(resourceMember); - } - - protected static boolean memberIsNonTransientNonStatic(JavaResourceMember resourceMember) { - return !resourceMember.isTransient() && !resourceMember.isStatic(); - } - - protected static Filter ANNOTATED_RESOURCE_FIELDS_FILTER = - new Filter() { - public boolean accept(JavaResourceField resourceField) { - return resourceField.isAnnotated(); - } - }; - - /** - * The attributes are synchronized during the update because - * the list of resource attributes is determined by the access type - * which can be controlled in a number of different places.... - */ - protected void updateAttributes() { - if (getAccessType() == XmlAccessType.PUBLIC_MEMBER) { - this.syncPublicMemberAccessAttributes(); - } - else if (getAccessType() == XmlAccessType.FIELD) { - this.syncFieldAccessAttributes(); - } - else if (getAccessType() == XmlAccessType.PROPERTY) { - this.syncPropertyAccessAttributes(); - } - else if (getAccessType() == XmlAccessType.NONE) { - this.syncNoneAccessAttributes(); - } - } - - /** - * Sync the attributes for XmlAccessType.PUBLIC_MEMBER - * 1. all public, non-static, non-transient fields (transient modifier, @XmlTransient is brought to the context model) - * 2. all annotated fields that aren't public - * 3. all public getter/setter javabeans pairs - * 4. all annotated methods (some will have a matching getter/setter, some will be standalone) - */ - private void syncPublicMemberAccessAttributes() { - HashSet contextAttributes = CollectionTools.set(this.getAttributes()); - - this.syncFieldAttributes(contextAttributes, PUBLIC_MEMBER_ACCESS_TYPE_RESOURCE_FIELDS_FILTER); - - Collection resourceMethods = CollectionTools.collection(this.getResourceMethods()); - //iterate through all persistable resource method getters - for (JavaResourceMethod getterMethod : this.getResourceMethods(this.buildPersistablePropertyGetterMethodsFilter())) { - JavaResourceMethod setterMethod = getValidSiblingSetMethod(getterMethod, resourceMethods); - if (methodsArePersistablePublicMemberAccess(getterMethod, setterMethod)) { - boolean match = false; - for (Iterator stream = contextAttributes.iterator(); stream.hasNext();) { - JaxbPersistentAttribute contextAttribute = stream.next(); - if (contextAttribute.isFor(getterMethod, setterMethod)) { - match = true; - contextAttribute.update(); - stream.remove(); - break; - } - } - if (!match) { - this.addAttribute(this.buildProperty(getterMethod, setterMethod)); - } - resourceMethods.remove(getterMethod); - resourceMethods.remove(setterMethod); - } - } - this.syncRemainingResourceMethods(contextAttributes, resourceMethods); - } - - /** - * Initialize the attributes for XmlAccessType.FIELD - * 1. all non-transient fields - * 2. all annotated methods getters/setters - */ - private void syncFieldAccessAttributes() { - HashSet contextAttributes = CollectionTools.set(this.getAttributes()); - - this.syncFieldAttributes(contextAttributes, this.buildNonTransientNonStaticResourceFieldsFilter()); - this.syncAnnotatedPropertyAttributes(contextAttributes); - } - - /** - * Initialize the attributes for XmlAccessType.PROPERTY - * 1. all getter/setter javabeans pairs - * 2. all annotated fields - * 3. all annotated methods getters/setters that don't have a matching pair - */ - private void syncPropertyAccessAttributes() { - HashSet contextAttributes = CollectionTools.set(this.getAttributes()); - - this.syncFieldAttributes(contextAttributes, ANNOTATED_RESOURCE_FIELDS_FILTER); - - Collection resourceMethods = CollectionTools.collection(this.getResourceMethods()); - //iterate through all resource methods searching for persistable getters - for (JavaResourceMethod getterMethod : this.getResourceMethods(this.buildPersistablePropertyGetterMethodsFilter())) { - JavaResourceMethod setterMethod = getValidSiblingSetMethod(getterMethod, resourceMethods); - if (methodsArePersistableProperties(getterMethod, setterMethod)) { - boolean match = false; - for (Iterator stream = contextAttributes.iterator(); stream.hasNext();) { - JaxbPersistentAttribute contextAttribute = stream.next(); - if (contextAttribute.isFor(getterMethod, setterMethod)) { - match = true; - contextAttribute.update(); - stream.remove(); - break; - } - } - if (!match) { - this.addAttribute(this.buildProperty(getterMethod, setterMethod)); - } - } - resourceMethods.remove(getterMethod); - resourceMethods.remove(setterMethod); - } - this.syncRemainingResourceMethods(contextAttributes, resourceMethods); - } - - /** - * Initialize the attributes for XmlAccessType.NONE - * 1. all annotated fields - * 2. all annotated methods getters/setters (some will have a matching getter/setter, some will be standalone) - */ - private void syncNoneAccessAttributes() { - HashSet contextAttributes = CollectionTools.set(this.getAttributes()); - - this.syncFieldAttributes(contextAttributes, ANNOTATED_RESOURCE_FIELDS_FILTER); - this.syncAnnotatedPropertyAttributes(contextAttributes); - } - - private void syncAnnotatedPropertyAttributes(HashSet contextAttributes) { - Collection resourceMethods = CollectionTools.collection(this.getResourceMethods()); - //iterate through all resource methods searching for persistable getters - for (JavaResourceMethod getterMethod : this.getResourceMethods(buildPersistablePropertyGetterMethodsFilter())) { - JavaResourceMethod setterMethod = getValidSiblingSetMethod(getterMethod, resourceMethods); - if (getterMethod.isAnnotated() || (setterMethod != null && setterMethod.isAnnotated())) { - boolean match = false; - for (Iterator stream = contextAttributes.iterator(); stream.hasNext();) { - JaxbPersistentAttribute contextAttribute = stream.next(); - if (contextAttribute.isFor(getterMethod, setterMethod)) { - match = true; - contextAttribute.update(); - stream.remove(); - break; - } - } - if (!match) { - this.addAttribute(this.buildProperty(getterMethod, setterMethod)); - } - } - resourceMethods.remove(getterMethod); - resourceMethods.remove(setterMethod); - } - this.syncRemainingResourceMethods(contextAttributes, resourceMethods); - } - - private void syncFieldAttributes(HashSet contextAttributes, Filter filter) { - for (JavaResourceField resourceField : this.getResourceFields(filter)) { - boolean match = false; - for (Iterator stream = contextAttributes.iterator(); stream.hasNext(); ) { - JaxbPersistentAttribute contextAttribute = stream.next(); - if (contextAttribute.isFor(resourceField)) { - match = true; - contextAttribute.update(); - stream.remove(); - break; - } - } - if (!match) { - // added elements are sync'ed during construction or will be - // updated during the next "update" (which is triggered by - // their addition to the model) - this.addAttribute(this.buildField(resourceField)); - } - } - } - - private void syncRemainingResourceMethods(HashSet contextAttributes, Collection resourceMethods) { - //iterate through remaining resource methods and search for those that are annotated. - //all getter methods will already be used. - for (JavaResourceMethod resourceMethod : resourceMethods) { - if (resourceMethod.isAnnotated()) { - boolean match = false; - //annotated setter(or other random method) with no corresponding getter, bring into context model for validation purposes - for (Iterator stream = contextAttributes.iterator(); stream.hasNext();) { - JaxbPersistentAttribute contextAttribute = stream.next(); - if (contextAttribute.isFor(null, resourceMethod)) { - match = true; - contextAttribute.update(); - stream.remove(); - break; - } - } - if (!match) { - this.addAttribute(this.buildProperty(null, resourceMethod)); - } - } - } - - // remove any leftover context attributes - for (JaxbPersistentAttribute contextAttribute : contextAttributes) { - this.removeAttribute(contextAttribute); - } - } - - /** - * Return whether the specified method is a "getter" method that - * represents a property that may be "persisted". - */ - protected static boolean methodIsPersistablePropertyGetter(JavaResourceMethod resourceMethod, Iterable allMethods) { - if (methodHasInvalidModifiers(resourceMethod)) { - return false; - } - if (resourceMethod.isConstructor()) { - return false; - } - - String returnTypeName = resourceMethod.getTypeName(); - if (returnTypeName == null) { - return false; // DOM method bindings can have a null name - } - if (returnTypeName.equals("void")) { //$NON-NLS-1$ - return false; - } - if (methodHasParameters(resourceMethod)) { - return false; - } - - boolean booleanGetter = methodIsBooleanGetter(resourceMethod); - - // if the type has both methods: - // boolean isProperty() - // boolean getProperty() - // then #isProperty() takes precedence and we ignore #getProperty(); - // but only having #getProperty() is OK too - // (see the JavaBeans spec 1.01) - if (booleanGetter && methodHasValidSiblingIsMethod(resourceMethod, allMethods)) { - return false; // since the type also defines #isProperty(), ignore #getProperty() - } - return true; - } - - private static boolean methodIsBooleanGetter(JavaResourceMethod resourceMethod) { - String returnTypeName = resourceMethod.getTypeName(); - String name = resourceMethod.getMethodName(); - boolean booleanGetter = false; - if (name.startsWith("is")) { //$NON-NLS-1$ - if (returnTypeName.equals("boolean")) { //$NON-NLS-1$ - } else { - return false; - } - } else if (name.startsWith("get")) { //$NON-NLS-1$ - if (returnTypeName.equals("boolean")) { //$NON-NLS-1$ - booleanGetter = true; - } - } else { - return false; - } - return booleanGetter; - } - - /** - * Return whether the method's modifiers prevent it - * from being a getter or setter for a "persistent" property. - */ - private static boolean methodHasInvalidModifiers(JavaResourceMethod resourceMethod) { - int modifiers = resourceMethod.getModifiers(); - if (Modifier.isStatic(modifiers)) { - return true; - } - return false; - } - - private static boolean methodHasParameters(JavaResourceMethod resourceMethod) { - return resourceMethod.getParametersSize() != 0; - } - - /** - * Return whether the method has a sibling "is" method for the specified - * property and that method is valid for a "persistable" property. - * Pre-condition: the method is a "boolean getter" (e.g. 'public boolean getProperty()'); - * this prevents us from returning true when the method itself is an - * "is" method. - */ - private static boolean methodHasValidSiblingIsMethod(JavaResourceMethod getMethod, Iterable resourceMethods) { - String capitalizedAttributeName = StringTools.capitalize(getMethod.getName()); - for (JavaResourceMethod sibling : resourceMethods) { - if ((sibling.getParametersSize() == 0) - && sibling.getMethodName().equals("is" + capitalizedAttributeName)) { //$NON-NLS-1$ - return methodIsValidSibling(sibling, "boolean"); //$NON-NLS-1$ - } - } - return false; - } - - /** - * Return whether the method has a sibling "set" method - * and that method is valid for a "persistable" property. - */ - private static JavaResourceMethod getValidSiblingSetMethod(JavaResourceMethod getMethod, Collection resourceMethods) { - String capitalizedAttributeName = StringTools.capitalize(getMethod.getName()); - String parameterTypeErasureName = getMethod.getTypeName(); - for (JavaResourceMethod sibling : resourceMethods) { - ListIterable siblingParmTypeNames = sibling.getParameterTypeNames(); - if ((sibling.getParametersSize() == 1) - && sibling.getMethodName().equals("set" + capitalizedAttributeName) //$NON-NLS-1$ - && siblingParmTypeNames.iterator().next().equals(parameterTypeErasureName)) { - return methodIsValidSibling(sibling, "void") ? sibling : null; //$NON-NLS-1$ - } - } - return null; - } - - /** - * Return whether the specified method is a valid sibling with the - * specified return type. - */ - private static boolean methodIsValidSibling(JavaResourceMethod resourceMethod, String returnTypeName) { - if (resourceMethod == null) { - return false; - } - if (methodHasInvalidModifiers(resourceMethod)) { - return false; - } - if (resourceMethod.isConstructor()) { - return false; - } - String rtName = resourceMethod.getTypeName(); - if (rtName == null) { - return false; // DOM method bindings can have a null name - } - return rtName.equals(returnTypeName); - } - - // ********** validation ********** - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - for (JaxbPersistentAttribute attribute : getAttributes()) { - attribute.validate(messages, reporter, astRoot); - } - } - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return getParent().getValidationTextRange(astRoot); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaContainmentMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaContainmentMapping.java deleted file mode 100644 index 6bfef1f08c..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaContainmentMapping.java +++ /dev/null @@ -1,604 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbContainmentMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlAdaptable; -import org.eclipse.jpt.jaxb.core.context.XmlAttachmentRef; -import org.eclipse.jpt.jaxb.core.context.XmlID; -import org.eclipse.jpt.jaxb.core.context.XmlIDREF; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.context.XmlList; -import org.eclipse.jpt.jaxb.core.context.XmlSchemaType; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAnnotatedElement; -import org.eclipse.jpt.jaxb.core.resource.java.JaxbContainmentAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAttachmentRefAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlIDAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlIDREFAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlListAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public abstract class GenericJavaContainmentMapping - extends AbstractJavaAttributeMapping - implements JaxbContainmentMapping -{ - - protected String specifiedName; - - protected Boolean specifiedRequired; - - protected String specifiedNamespace; - - protected final XmlAdaptable xmlAdaptable; - - protected XmlSchemaType xmlSchemaType; - - protected XmlList xmlList; - - protected XmlID xmlID; - - protected XmlIDREF xmlIDREF; - - protected XmlAttachmentRef xmlAttachmentRef; - - public GenericJavaContainmentMapping(JaxbPersistentAttribute parent) { - super(parent); - this.specifiedName = buildSpecifiedName(); - this.specifiedNamespace = buildSpecifiedNamespace(); - this.specifiedRequired = buildSpecifiedRequired(); - this.xmlAdaptable = buildXmlAdaptable(); - this.initializeXmlSchemaType(); - this.initializeXmlList(); - this.initializeXmlID(); - this.initializeXmlIDREF(); - this.initializeXmlAttachmentRef(); - } - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - setSpecifiedName_(buildSpecifiedName()); - setSpecifiedNamespace_(buildSpecifiedNamespace()); - setSpecifiedRequired_(buildSpecifiedRequired()); - this.xmlAdaptable.synchronizeWithResourceModel(); - this.syncXmlSchemaType(); - this.syncXmlList(); - this.syncXmlID(); - this.syncXmlIDREF(); - this.syncXmlAttachmentRef(); - } - - @Override - public void update() { - super.update(); - this.xmlAdaptable.update(); - this.updateXmlSchemaType(); - this.updateXmlList(); - this.updateXmlID(); - this.updateXmlIDREF(); - this.updateXmlAttachmentRef(); - } - - - //************ XmlAttribute.name *************** - public String getName() { - return this.getSpecifiedName() == null ? this.getDefaultName() : getSpecifiedName(); - } - - public String getDefaultName() { - return getJavaResourceAttribute().getName(); - } - - public String getSpecifiedName() { - return this.specifiedName; - } - - public void setSpecifiedName(String name) { - this.getAnnotationForUpdate().setName(name); - this.setSpecifiedName_(name); - } - - protected void setSpecifiedName_(String name) { - String old = this.specifiedName; - this.specifiedName = name; - firePropertyChanged(SPECIFIED_NAME_PROPERTY, old, name); - } - - protected String buildSpecifiedName() { - return getMappingAnnotation() == null ? null : getMappingAnnotation().getName(); - } - - - //************ required *************** - - public boolean isRequired() { - return (this.getSpecifiedRequired() == null) ? this.isDefaultRequired() : this.getSpecifiedRequired().booleanValue(); - } - - public boolean isDefaultRequired() { - return DEFAULT_REQUIRED; - } - - public Boolean getSpecifiedRequired() { - return this.specifiedRequired; - } - - public void setSpecifiedRequired(Boolean newSpecifiedRequired) { - this.getAnnotationForUpdate().setRequired(newSpecifiedRequired); - this.setSpecifiedRequired_(newSpecifiedRequired); - } - - protected void setSpecifiedRequired_(Boolean newSpecifiedRequired) { - Boolean oldRequired = this.specifiedRequired; - this.specifiedRequired = newSpecifiedRequired; - firePropertyChanged(SPECIFIED_REQUIRED_PROPERTY, oldRequired, newSpecifiedRequired); - } - - protected Boolean buildSpecifiedRequired() { - return getMappingAnnotation() == null ? null : getMappingAnnotation().getRequired(); - } - - - //************ XmlAttribute.namespace *************** - - public String getNamespace() { - return getSpecifiedNamespace() == null ? getDefaultNamespace() : getSpecifiedNamespace(); - } - - public String getDefaultNamespace() { - return getPersistentAttribute().getParent().getNamespace(); - } - - public String getSpecifiedNamespace() { - return this.specifiedNamespace; - } - - public void setSpecifiedNamespace(String newSpecifiedNamespace) { - this.getAnnotationForUpdate().setNamespace(newSpecifiedNamespace); - this.setSpecifiedNamespace_(newSpecifiedNamespace); - } - - protected void setSpecifiedNamespace_(String newSpecifiedNamespace) { - String oldNamespace = this.specifiedNamespace; - this.specifiedNamespace = newSpecifiedNamespace; - firePropertyChanged(SPECIFIED_NAMESPACE_PROPERTY, oldNamespace, newSpecifiedNamespace); - } - - protected String buildSpecifiedNamespace() { - return getMappingAnnotation() == null ? null : getMappingAnnotation().getNamespace(); - } - - - //****************** XmlJavaTypeAdapter ********************* - - public XmlAdaptable buildXmlAdaptable() { - return new GenericJavaXmlAdaptable(this, new XmlAdaptable.Owner() { - public JavaResourceAnnotatedElement getResource() { - return getJavaResourceAttribute(); - } - public XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation adapterAnnotation) { - return GenericJavaContainmentMapping.this.buildXmlJavaTypeAdapter(adapterAnnotation); - } - public void fireXmlAdapterChanged(XmlJavaTypeAdapter oldAdapter, XmlJavaTypeAdapter newAdapter) { - GenericJavaContainmentMapping.this.firePropertyChanged(XML_JAVA_TYPE_ADAPTER_PROPERTY, oldAdapter, newAdapter); - } - }); - } - - public XmlJavaTypeAdapter getXmlJavaTypeAdapter() { - return this.xmlAdaptable.getXmlJavaTypeAdapter(); - } - - public XmlJavaTypeAdapter addXmlJavaTypeAdapter() { - return this.xmlAdaptable.addXmlJavaTypeAdapter(); - } - - protected XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation xmlJavaTypeAdapterAnnotation) { - return new GenericJavaAttributeXmlJavaTypeAdapter(this, xmlJavaTypeAdapterAnnotation); - } - - public void removeXmlJavaTypeAdapter() { - this.xmlAdaptable.removeXmlJavaTypeAdapter(); - } - - //****************** XmlSchemaType ********************* - - public XmlSchemaType getXmlSchemaType() { - return this.xmlSchemaType; - } - - protected void setXmlSchemaType_(XmlSchemaType xmlSchemaType) { - XmlSchemaType oldXmlSchemaType = this.xmlSchemaType; - this.xmlSchemaType = xmlSchemaType; - this.firePropertyChanged(XML_SCHEMA_TYPE, oldXmlSchemaType, xmlSchemaType); - } - - public boolean hasXmlSchemaType() { - return this.xmlSchemaType != null; - } - - public XmlSchemaType addXmlSchemaType() { - if (this.xmlSchemaType != null) { - throw new IllegalStateException(); - } - XmlSchemaTypeAnnotation annotation = (XmlSchemaTypeAnnotation) this.getJavaResourceAttribute().addAnnotation(0, XmlSchemaTypeAnnotation.ANNOTATION_NAME); - - XmlSchemaType xmlJavaTypeAdapter = this.buildXmlSchemaType(annotation); - this.setXmlSchemaType_(xmlJavaTypeAdapter); - return xmlJavaTypeAdapter; - } - - public void removeXmlSchemaType() { - if (this.xmlSchemaType == null) { - throw new IllegalStateException(); - } - this.getJavaResourceAttribute().removeAnnotation(XmlSchemaTypeAnnotation.ANNOTATION_NAME); - this.setXmlSchemaType_(null); - } - - protected XmlSchemaType buildXmlSchemaType(XmlSchemaTypeAnnotation annotation) { - return new GenericJavaContainmentMappingXmlSchemaType(this, annotation); - } - - protected XmlSchemaTypeAnnotation getXmlSchemaTypeAnnotation() { - return (XmlSchemaTypeAnnotation) this.getJavaResourceAttribute().getAnnotation(0, XmlSchemaTypeAnnotation.ANNOTATION_NAME); - } - - protected void initializeXmlSchemaType() { - XmlSchemaTypeAnnotation annotation = this.getXmlSchemaTypeAnnotation(); - if (annotation != null) { - this.xmlSchemaType = this.buildXmlSchemaType(annotation); - } - } - - protected void updateXmlSchemaType() { - if (this.xmlSchemaType != null) { - this.xmlSchemaType.update(); - } - } - - protected void syncXmlSchemaType() { - XmlSchemaTypeAnnotation annotation = this.getXmlSchemaTypeAnnotation(); - if (annotation != null) { - if (this.getXmlSchemaType() != null) { - this.getXmlSchemaType().synchronizeWithResourceModel(); - } - else { - this.setXmlSchemaType_(this.buildXmlSchemaType(annotation)); - } - } - else { - this.setXmlSchemaType_(null); - } - } - - //************ XmlList *************** - - public XmlList getXmlList() { - return this.xmlList; - } - - public XmlList addXmlList() { - if (this.xmlList != null) { - throw new IllegalStateException(); - } - XmlListAnnotation annotation = (XmlListAnnotation) this.getJavaResourceAttribute().addAnnotation(XmlListAnnotation.ANNOTATION_NAME); - - XmlList xmlList = this.buildXmlList(annotation); - this.setXmlList_(xmlList); - return xmlList; - } - - protected XmlList buildXmlList(XmlListAnnotation xmlListAnnotation) { - return new GenericJavaXmlList(this, xmlListAnnotation); - } - - public void removeXmlList() { - if (this.xmlList == null) { - throw new IllegalStateException(); - } - this.getJavaResourceAttribute().removeAnnotation(XmlListAnnotation.ANNOTATION_NAME); - this.setXmlList_(null); - } - - protected void initializeXmlList() { - XmlListAnnotation annotation = this.getXmlListAnnotation(); - if (annotation != null) { - this.xmlList = this.buildXmlList(annotation); - } - } - - protected XmlListAnnotation getXmlListAnnotation() { - return (XmlListAnnotation) this.getJavaResourceAttribute().getAnnotation(XmlListAnnotation.ANNOTATION_NAME); - } - - protected void syncXmlList() { - XmlListAnnotation annotation = this.getXmlListAnnotation(); - if (annotation != null) { - if (this.getXmlList() != null) { - this.getXmlList().synchronizeWithResourceModel(); - } - else { - this.setXmlList_(this.buildXmlList(annotation)); - } - } - else { - this.setXmlList_(null); - } - } - - protected void updateXmlList() { - if (this.getXmlList() != null) { - this.getXmlList().update(); - } - } - - protected void setXmlList_(XmlList xmlList) { - XmlList oldXmlList = this.xmlList; - this.xmlList = xmlList; - firePropertyChanged(XML_LIST_PROPERTY, oldXmlList, xmlList); - } - - - //************ XmlID *************** - - public XmlID getXmlID() { - return this.xmlID; - } - - public XmlID addXmlID() { - if (this.xmlID != null) { - throw new IllegalStateException(); - } - XmlIDAnnotation annotation = (XmlIDAnnotation) this.getJavaResourceAttribute().addAnnotation(XmlIDAnnotation.ANNOTATION_NAME); - - XmlID xmlID = this.buildXmlID(annotation); - this.setXmlID_(xmlID); - return xmlID; - } - - protected XmlID buildXmlID(XmlIDAnnotation xmlIDAnnotation) { - return new GenericJavaXmlID(this, xmlIDAnnotation); - } - - public void removeXmlID() { - if (this.xmlID == null) { - throw new IllegalStateException(); - } - this.getJavaResourceAttribute().removeAnnotation(XmlIDAnnotation.ANNOTATION_NAME); - this.setXmlID_(null); - } - - protected void initializeXmlID() { - XmlIDAnnotation annotation = this.getXmlIDAnnotation(); - if (annotation != null) { - this.xmlID = this.buildXmlID(annotation); - } - } - - protected XmlIDAnnotation getXmlIDAnnotation() { - return (XmlIDAnnotation) this.getJavaResourceAttribute().getAnnotation(XmlIDAnnotation.ANNOTATION_NAME); - } - - protected void syncXmlID() { - XmlIDAnnotation annotation = this.getXmlIDAnnotation(); - if (annotation != null) { - if (this.getXmlID() != null) { - this.getXmlID().synchronizeWithResourceModel(); - } - else { - this.setXmlID_(this.buildXmlID(annotation)); - } - } - else { - this.setXmlID_(null); - } - } - - protected void updateXmlID() { - if (this.getXmlID() != null) { - this.getXmlID().update(); - } - } - - protected void setXmlID_(XmlID xmlID) { - XmlID oldXmlID = this.xmlID; - this.xmlID = xmlID; - firePropertyChanged(XML_ID_PROPERTY, oldXmlID, xmlID); - } - - - //************ XmlIDREF *************** - - public XmlIDREF getXmlIDREF() { - return this.xmlIDREF; - } - - public XmlIDREF addXmlIDREF() { - if (this.xmlIDREF != null) { - throw new IllegalStateException(); - } - XmlIDREFAnnotation annotation = (XmlIDREFAnnotation) this.getJavaResourceAttribute().addAnnotation(XmlIDREFAnnotation.ANNOTATION_NAME); - - XmlIDREF xmlIDREF = this.buildXmlIDREF(annotation); - this.setXmlIDREF_(xmlIDREF); - return xmlIDREF; - } - - protected XmlIDREF buildXmlIDREF(XmlIDREFAnnotation xmlIDREFAnnotation) { - return new GenericJavaXmlIDREF(this, xmlIDREFAnnotation); - } - - public void removeXmlIDREF() { - if (this.xmlIDREF == null) { - throw new IllegalStateException(); - } - this.getJavaResourceAttribute().removeAnnotation(XmlIDREFAnnotation.ANNOTATION_NAME); - this.setXmlIDREF_(null); - } - - protected void initializeXmlIDREF() { - XmlIDREFAnnotation annotation = this.getXmlIDREFAnnotation(); - if (annotation != null) { - this.xmlIDREF = this.buildXmlIDREF(annotation); - } - } - - protected XmlIDREFAnnotation getXmlIDREFAnnotation() { - return (XmlIDREFAnnotation) this.getJavaResourceAttribute().getAnnotation(XmlIDREFAnnotation.ANNOTATION_NAME); - } - - protected void syncXmlIDREF() { - XmlIDREFAnnotation annotation = this.getXmlIDREFAnnotation(); - if (annotation != null) { - if (this.getXmlIDREF() != null) { - this.getXmlIDREF().synchronizeWithResourceModel(); - } - else { - this.setXmlIDREF_(this.buildXmlIDREF(annotation)); - } - } - else { - this.setXmlIDREF_(null); - } - } - - protected void updateXmlIDREF() { - if (this.getXmlIDREF() != null) { - this.getXmlIDREF().update(); - } - } - - protected void setXmlIDREF_(XmlIDREF xmlIDREF) { - XmlIDREF oldXmlIDREF = this.xmlIDREF; - this.xmlIDREF = xmlIDREF; - firePropertyChanged(XML_IDREF_PROPERTY, oldXmlIDREF, xmlIDREF); - } - - - //************ XmlAttachmentRef *************** - - public XmlAttachmentRef getXmlAttachmentRef() { - return this.xmlAttachmentRef; - } - - public XmlAttachmentRef addXmlAttachmentRef() { - if (this.xmlAttachmentRef != null) { - throw new IllegalStateException(); - } - XmlAttachmentRefAnnotation annotation = (XmlAttachmentRefAnnotation) this.getJavaResourceAttribute().addAnnotation(XmlAttachmentRefAnnotation.ANNOTATION_NAME); - - XmlAttachmentRef xmlAttachmentRef = this.buildXmlAttachmentRef(annotation); - this.setXmlAttachmentRef_(xmlAttachmentRef); - return xmlAttachmentRef; - } - - protected XmlAttachmentRef buildXmlAttachmentRef(XmlAttachmentRefAnnotation xmlAttachmentRefAnnotation) { - return new GenericJavaXmlAttachmentRef(this, xmlAttachmentRefAnnotation); - } - - public void removeXmlAttachmentRef() { - if (this.xmlAttachmentRef == null) { - throw new IllegalStateException(); - } - this.getJavaResourceAttribute().removeAnnotation(XmlAttachmentRefAnnotation.ANNOTATION_NAME); - this.setXmlAttachmentRef_(null); - } - - protected void initializeXmlAttachmentRef() { - XmlAttachmentRefAnnotation annotation = this.getXmlAttachmentRefAnnotation(); - if (annotation != null) { - this.xmlAttachmentRef = this.buildXmlAttachmentRef(annotation); - } - } - - protected XmlAttachmentRefAnnotation getXmlAttachmentRefAnnotation() { - return (XmlAttachmentRefAnnotation) this.getJavaResourceAttribute().getAnnotation(XmlAttachmentRefAnnotation.ANNOTATION_NAME); - } - - protected void syncXmlAttachmentRef() { - XmlAttachmentRefAnnotation annotation = this.getXmlAttachmentRefAnnotation(); - if (annotation != null) { - if (this.getXmlAttachmentRef() != null) { - this.getXmlAttachmentRef().synchronizeWithResourceModel(); - } - else { - this.setXmlAttachmentRef_(this.buildXmlAttachmentRef(annotation)); - } - } - else { - this.setXmlAttachmentRef_(null); - } - } - - protected void updateXmlAttachmentRef() { - if (this.getXmlAttachmentRef() != null) { - this.getXmlAttachmentRef().update(); - } - } - - protected void setXmlAttachmentRef_(XmlAttachmentRef xmlAttachmentRef) { - XmlAttachmentRef oldXmlAttachmentRef = this.xmlAttachmentRef; - this.xmlAttachmentRef = xmlAttachmentRef; - firePropertyChanged(XML_ATTACHMENT_REF_PROPERTY, oldXmlAttachmentRef, xmlAttachmentRef); - } - - - // **************** content assist ************** - - @Override - public Iterable getJavaCompletionProposals(int pos, Filter filter, CompilationUnit astRoot) { - Iterable result = super.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - - if (this.xmlSchemaType != null) { - result = this.xmlSchemaType.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - } - - return EmptyIterable.instance(); - } - - // ********** validation ********** - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - this.xmlAdaptable.validate(messages, reporter, astRoot); - if (this.xmlSchemaType != null) { - this.xmlSchemaType.validate(messages, reporter, astRoot); - } - if (this.xmlList != null) { - this.xmlList.validate(messages, reporter, astRoot); - } - if (this.xmlID != null) { - this.xmlID.validate(messages, reporter, astRoot); - } - if (this.xmlIDREF != null) { - this.xmlIDREF.validate(messages, reporter, astRoot); - } - if (this.xmlAttachmentRef != null) { - this.xmlAttachmentRef.validate(messages, reporter, astRoot); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaContainmentMappingXmlSchemaType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaContainmentMappingXmlSchemaType.java deleted file mode 100644 index 52a57fdafd..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaContainmentMappingXmlSchemaType.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbContainmentMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation; - -public class GenericJavaContainmentMappingXmlSchemaType - extends GenericJavaXmlSchemaType -{ - - public GenericJavaContainmentMappingXmlSchemaType(JaxbContainmentMapping parent, XmlSchemaTypeAnnotation xmlSchemaTypeAnnotation) { - super(parent, xmlSchemaTypeAnnotation); - } - - @Override - public JaxbContainmentMapping getParent() { - return (JaxbContainmentMapping) super.getParent(); - } - - protected JaxbContainmentMapping getJaxbContainmentMapping() { - return getParent(); - } - - protected JaxbPersistentAttribute getPersistentAttribute() { - return getJaxbContainmentMapping().getParent(); - } - - protected JaxbPersistentClass getPersistentClass() { - return getPersistentAttribute().getParent(); - } - - @Override - protected JaxbPackage getJaxbPackage() { - return this.getPersistentClass().getJaxbPackage(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaElementFactoryMethod.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaElementFactoryMethod.java deleted file mode 100644 index 7ecae1e70f..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaElementFactoryMethod.java +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbElementFactoryMethod; -import org.eclipse.jpt.jaxb.core.context.JaxbRegistry; -import org.eclipse.jpt.jaxb.core.internal.context.AbstractJaxbContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; -import org.eclipse.jpt.jaxb.core.resource.java.XmlElementDeclAnnotation; - -public class GenericJavaElementFactoryMethod - extends AbstractJaxbContextNode - implements JaxbElementFactoryMethod { - - protected final JavaResourceMethod resourceMethod; - - protected String elementName; - protected String defaultValue; - protected String namespace; - protected String scope; - protected String substitutionHeadName; - protected String substitutionHeadNamespace; - - public GenericJavaElementFactoryMethod(JaxbRegistry parent, JavaResourceMethod resourceMethod) { - super(parent); - this.resourceMethod = resourceMethod; - this.elementName = this.getResourceElementName(); - this.defaultValue = this.getResourceDefaultValue(); - this.namespace = this.getResourceNamespace(); - this.scope = this.getResourceScope(); - this.substitutionHeadName = this.getResourceSubstitutionHeadName(); - this.substitutionHeadNamespace = this.getResourceSubstitutionHeadNamespace(); - } - - public JavaResourceMethod getResourceMethod() { - return this.resourceMethod; - } - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setElementName_(this.getResourceElementName()); - this.setDefaultValue_(this.getResourceDefaultValue()); - this.setNamespace_(this.getResourceNamespace()); - this.setScope_(this.getResourceScope()); - this.setSubstitutionHeadName_(this.getResourceSubstitutionHeadName()); - this.setSubstitutionHeadNamespace_(this.getResourceSubstitutionHeadNamespace()); - } - - - // ********** xml enum value annotation ********** - - protected XmlElementDeclAnnotation getXmlElementDeclAnnotation() { - return (XmlElementDeclAnnotation) this.getResourceMethod().getNonNullAnnotation(XmlElementDeclAnnotation.ANNOTATION_NAME); - } - - - // ************** JaxbElementFactoryMethod impl *********** - - public String getName() { - return this.resourceMethod.getName(); - } - - // ********** element name ********** - - public String getElementName() { - return this.elementName; - } - - public void setElementName(String elementName) { - this.getXmlElementDeclAnnotation().setName(elementName); - this.setElementName_(elementName); - } - - protected void setElementName_(String elementName) { - String old = this.elementName; - this.elementName = elementName; - this.firePropertyChanged(ELEMENT_NAME_PROPERTY, old, elementName); - } - - protected String getResourceElementName() { - return this.getXmlElementDeclAnnotation().getName(); - } - - public String getDefaultValue() { - return this.defaultValue; - } - - public void setDefaultValue(String defaultValue) { - this.getXmlElementDeclAnnotation().setDefaultValue(defaultValue); - this.setDefaultValue_(defaultValue); - } - - protected void setDefaultValue_(String defaultValue) { - String old = this.defaultValue; - this.defaultValue = defaultValue; - this.firePropertyChanged(DEFAULT_VALUE_PROPERTY, old, defaultValue); - } - - protected String getResourceDefaultValue() { - return this.getXmlElementDeclAnnotation().getDefaultValue(); - } - - public String getNamespace() { - return this.namespace; - } - - public void setNamespace(String namespace) { - this.getXmlElementDeclAnnotation().setNamespace(namespace); - this.setNamespace_(namespace); - } - - protected void setNamespace_(String namespace) { - String old = this.namespace; - this.namespace = namespace; - this.firePropertyChanged(NAMESPACE_PROPERTY, old, namespace); - } - - protected String getResourceNamespace() { - return this.getXmlElementDeclAnnotation().getNamespace(); - } - - public String getScope() { - return this.scope; - } - - public void setScope(String scope) { - this.getXmlElementDeclAnnotation().setScope(scope); - this.setScope_(scope); - } - - protected void setScope_(String scope) { - String old = this.scope; - this.scope = scope; - this.firePropertyChanged(SCOPE_PROPERTY, old, scope); - } - - protected String getResourceScope() { - return this.getXmlElementDeclAnnotation().getScope(); - } - - public String getSubstitutionHeadName() { - return this.substitutionHeadName; - } - - public void setSubstitutionHeadName(String substitutionHeadName) { - this.getXmlElementDeclAnnotation().setSubstitutionHeadName(substitutionHeadName); - this.setSubstitutionHeadName_(substitutionHeadName); - } - - protected void setSubstitutionHeadName_(String substitutionHeadName) { - String old = this.substitutionHeadName; - this.substitutionHeadName = substitutionHeadName; - this.firePropertyChanged(SUBSTIUTION_HEAD_NAME_PROPERTY, old, substitutionHeadName); - } - - protected String getResourceSubstitutionHeadName() { - return this.getXmlElementDeclAnnotation().getSubstitutionHeadName(); - } - - public String getSubstitutionHeadNamespace() { - return this.substitutionHeadNamespace; - } - - public void setSubstitutionHeadNamespace(String substitutionHeadNamespace) { - this.getXmlElementDeclAnnotation().setSubstitutionHeadNamespace(substitutionHeadNamespace); - this.setSubstitutionHeadNamespace_(substitutionHeadNamespace); - } - - protected void setSubstitutionHeadNamespace_(String substitutionHeadNamespace) { - String old = this.substitutionHeadNamespace; - this.substitutionHeadNamespace = substitutionHeadNamespace; - this.firePropertyChanged(SUBSTIUTION_HEAD_NAMESPACE_PROPERTY, old, substitutionHeadNamespace); - } - - protected String getResourceSubstitutionHeadNamespace() { - return this.getXmlElementDeclAnnotation().getSubstitutionHeadNamespace(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaEnumConstant.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaEnumConstant.java deleted file mode 100644 index 8c10a7a29b..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaEnumConstant.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbEnumConstant; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentEnum; -import org.eclipse.jpt.jaxb.core.internal.context.AbstractJaxbContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnumConstant; -import org.eclipse.jpt.jaxb.core.resource.java.XmlEnumValueAnnotation; - -public class GenericJavaEnumConstant - extends AbstractJaxbContextNode - implements JaxbEnumConstant { - - final protected JavaResourceEnumConstant resourceEnumConstant; - - protected String specifiedValue; - - public GenericJavaEnumConstant(JaxbPersistentEnum parent, JavaResourceEnumConstant resourceEnumConstant) { - super(parent); - this.resourceEnumConstant = resourceEnumConstant; - this.specifiedValue = this.getResourceEnumValue(); - } - - public JavaResourceEnumConstant getResourceEnumConstant() { - return this.resourceEnumConstant; - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setSpecifiedValue_(this.getResourceEnumValue()); - } - - - // ********** xml enum value annotation ********** - - protected XmlEnumValueAnnotation getXmlEnumValueAnnotation() { - return (XmlEnumValueAnnotation) this.getResourceEnumConstant().getNonNullAnnotation(XmlEnumValueAnnotation.ANNOTATION_NAME); - } - - - // ********** name ********** - - public String getName() { - return this.resourceEnumConstant.getName(); - } - - // ********** value ********** - - public String getValue() { - return this.getSpecifiedValue() != null ? this.getSpecifiedValue() : this.getDefaultValue(); - } - - public String getDefaultValue() { - return this.getName(); - } - - public String getSpecifiedValue() { - return this.specifiedValue; - } - - public void setSpecifiedValue(String value) { - this.getXmlEnumValueAnnotation().setValue(value); - this.setSpecifiedValue_(value); - } - - protected void setSpecifiedValue_(String value) { - String old = this.specifiedValue; - this.specifiedValue = value; - this.firePropertyChanged(SPECIFIED_VALUE_PROPERTY, old, value); - } - - protected String getResourceEnumValue() { - return this.getXmlEnumValueAnnotation().getValue(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaNullAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaNullAttributeMapping.java deleted file mode 100644 index 01e72145db..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaNullAttributeMapping.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.resource.java.Annotation; - - -public class GenericJavaNullAttributeMapping - extends AbstractJavaAttributeMapping { - - public GenericJavaNullAttributeMapping(JaxbPersistentAttribute parent) { - super(parent); - } - - public String getKey() { - return MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY; - } - - @Override - public String getAnnotationName() { - return null; - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageInfo.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageInfo.java deleted file mode 100644 index a5bb6b4785..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageInfo.java +++ /dev/null @@ -1,373 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.context.XmlAccessOrder; -import org.eclipse.jpt.jaxb.core.context.XmlAccessType; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.context.XmlSchema; -import org.eclipse.jpt.jaxb.core.context.XmlSchemaType; -import org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAccessorOrderAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAccessorTypeAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation; -import org.eclipse.jst.j2ee.model.internal.validation.ValidationCancelledException; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaPackageInfo - extends AbstractJavaContextNode - implements JaxbPackageInfo { - - protected final JavaResourcePackage resourcePackage; - - protected final XmlSchema xmlSchema; - - protected XmlAccessType specifiedAccessType; - - protected XmlAccessOrder specifiedAccessOrder; - - protected final XmlSchemaTypeContainer xmlSchemaTypeContainer; - - protected final XmlJavaTypeAdapterContainer xmlJavaTypeAdapterContainer; - - public GenericJavaPackageInfo(JaxbPackage parent, JavaResourcePackage resourcePackage) { - super(parent); - this.resourcePackage = resourcePackage; - this.xmlSchema = getFactory().buildJavaXmlSchema(this); - this.specifiedAccessType = getResourceAccessType(); - this.specifiedAccessOrder = getResourceAccessOrder(); - this.xmlSchemaTypeContainer = new XmlSchemaTypeContainer(); - this.xmlJavaTypeAdapterContainer = new XmlJavaTypeAdapterContainer(); - } - - @Override - public JaxbPackage getParent() { - return (JaxbPackage) super.getParent(); - } - - - // **************** AbstractJaxbNode impl ********************************* - - @Override - public IResource getResource() { - return this.resourcePackage.getFile(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.xmlSchema.synchronizeWithResourceModel(); - this.setSpecifiedAccessType_(this.getResourceAccessType()); - this.setSpecifiedAccessOrder_(this.getResourceAccessOrder()); - this.syncXmlSchemaTypes(); - this.syncXmlJavaTypeAdapters(); - } - - @Override - public void update() { - super.update(); - this.xmlSchema.update(); - } - - - // ********** JaxbPackageInfo implementation ********** - - public JavaResourcePackage getResourcePackage() { - return this.resourcePackage; - } - - // ********** xml schema ********** - - public XmlSchema getXmlSchema() { - return this.xmlSchema; - } - - // ********** access type ********** - - public XmlAccessType getAccessType() { - return (this.specifiedAccessType != null) ? this.specifiedAccessType : this.getDefaultAccessType(); - } - - public XmlAccessType getSpecifiedAccessType() { - return this.specifiedAccessType; - } - - public void setSpecifiedAccessType(XmlAccessType access) { - this.getAccessorTypeAnnotation().setValue(XmlAccessType.toJavaResourceModel(access)); - this.setSpecifiedAccessType_(access); - } - - protected void setSpecifiedAccessType_(XmlAccessType access) { - XmlAccessType old = this.specifiedAccessType; - this.specifiedAccessType = access; - this.firePropertyChanged(SPECIFIED_ACCESS_TYPE_PROPERTY, old, access); - } - - public XmlAccessType getDefaultAccessType() { - return XmlAccessType.PUBLIC_MEMBER; - } - - protected XmlAccessType getResourceAccessType() { - return XmlAccessType.fromJavaResourceModel(this.getAccessorTypeAnnotation().getValue()); - } - - protected XmlAccessorTypeAnnotation getAccessorTypeAnnotation() { - return (XmlAccessorTypeAnnotation) this.resourcePackage.getNonNullAnnotation(XmlAccessorTypeAnnotation.ANNOTATION_NAME); - } - - - // ********** access order ********** - - public XmlAccessOrder getAccessOrder() { - return (this.specifiedAccessOrder != null) ? this.specifiedAccessOrder : this.getDefaultAccessOrder(); - } - - public XmlAccessOrder getSpecifiedAccessOrder() { - return this.specifiedAccessOrder; - } - - public void setSpecifiedAccessOrder(XmlAccessOrder accessOrder) { - this.getAccessorOrderAnnotation().setValue(XmlAccessOrder.toJavaResourceModel(accessOrder)); - this.setSpecifiedAccessOrder_(accessOrder); - } - - protected void setSpecifiedAccessOrder_(XmlAccessOrder accessOrder) { - XmlAccessOrder old = this.specifiedAccessOrder; - this.specifiedAccessOrder = accessOrder; - this.firePropertyChanged(SPECIFIED_ACCESS_ORDER_PROPERTY, old, accessOrder); - } - - public XmlAccessOrder getDefaultAccessOrder() { - return XmlAccessOrder.UNDEFINED; - } - - protected XmlAccessOrder getResourceAccessOrder() { - return XmlAccessOrder.fromJavaResourceModel(this.getAccessorOrderAnnotation().getValue()); - } - - protected XmlAccessorOrderAnnotation getAccessorOrderAnnotation() { - return (XmlAccessorOrderAnnotation) this.resourcePackage.getNonNullAnnotation(XmlAccessorOrderAnnotation.ANNOTATION_NAME); - } - - - // ********** xml schema types ********** - - public ListIterable getXmlSchemaTypes() { - return this.xmlSchemaTypeContainer.getContextElements(); - } - - public int getXmlSchemaTypesSize() { - return this.xmlSchemaTypeContainer.getContextElementsSize(); - } - - public XmlSchemaType addXmlSchemaType(int index) { - XmlSchemaTypeAnnotation annotation = (XmlSchemaTypeAnnotation) this.resourcePackage.addAnnotation(index, XmlSchemaTypeAnnotation.ANNOTATION_NAME); - return this.xmlSchemaTypeContainer.addContextElement(index, annotation); - } - - public void removeXmlSchemaType(XmlSchemaType xmlSchemaType) { - this.removeXmlSchemaType(this.xmlSchemaTypeContainer.indexOfContextElement(xmlSchemaType)); - } - - public void removeXmlSchemaType(int index) { - this.resourcePackage.removeAnnotation(index, XmlSchemaTypeAnnotation.ANNOTATION_NAME); - this.xmlSchemaTypeContainer.removeContextElement(index); - } - - public void moveXmlSchemaType(int targetIndex, int sourceIndex) { - this.resourcePackage.moveAnnotation(targetIndex, sourceIndex, XmlSchemaTypeAnnotation.ANNOTATION_NAME); - this.xmlSchemaTypeContainer.moveContextElement(targetIndex, sourceIndex); - } - - protected XmlSchemaType buildXmlSchemaType(XmlSchemaTypeAnnotation xmlSchemaTypeAnnotation) { - return new GenericJavaPackageXmlSchemaType(this, xmlSchemaTypeAnnotation); - } - - protected void syncXmlSchemaTypes() { - this.xmlSchemaTypeContainer.synchronizeWithResourceModel(); - } - - @SuppressWarnings("unchecked") - protected ListIterable getXmlSchemaTypeAnnotations() { - return (ListIterable) this.resourcePackage.getAnnotations(XmlSchemaTypeAnnotation.ANNOTATION_NAME); - } - - - // ********** xml java type adapters ********** - - public ListIterable getXmlJavaTypeAdapters() { - return this.xmlJavaTypeAdapterContainer.getContextElements(); - } - - public int getXmlJavaTypeAdaptersSize() { - return this.xmlJavaTypeAdapterContainer.getContextElementsSize(); - } - - public XmlJavaTypeAdapter addXmlJavaTypeAdapter(int index) { - XmlJavaTypeAdapterAnnotation annotation = (XmlJavaTypeAdapterAnnotation) this.resourcePackage.addAnnotation(index, XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME); - return this.xmlJavaTypeAdapterContainer.addContextElement(index, annotation); - } - - public void removeXmlJavaTypeAdapter(XmlJavaTypeAdapter xmlSchemaType) { - this.removeXmlJavaTypeAdapter(this.xmlJavaTypeAdapterContainer.indexOfContextElement(xmlSchemaType)); - } - - public void removeXmlJavaTypeAdapter(int index) { - this.resourcePackage.removeAnnotation(index, XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME); - this.xmlJavaTypeAdapterContainer.removeContextElement(index); - } - - public void moveXmlJavaTypeAdapter(int targetIndex, int sourceIndex) { - this.resourcePackage.moveAnnotation(targetIndex, sourceIndex, XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME); - this.xmlJavaTypeAdapterContainer.moveContextElement(targetIndex, sourceIndex); - } - - protected XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation xmlJavaTypeAdapterAnnotation) { - return new GenericJavaPackageXmlJavaTypeAdapter(this, xmlJavaTypeAdapterAnnotation); - } - - protected void syncXmlJavaTypeAdapters() { - this.xmlJavaTypeAdapterContainer.synchronizeWithResourceModel(); - } - - @SuppressWarnings("unchecked") - protected ListIterable getXmlJavaTypeAdapterAnnotations() { - return (ListIterable) this.resourcePackage.getAnnotations(XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME); - } - - - // **************** misc ************************************************** - - protected CompilationUnit buildASTRoot() { - return this.resourcePackage.getJavaResourceCompilationUnit().buildASTRoot(); - } - - // **************** content assist **************************************** - - //This doesn't actually work yet because of JDT bug (bugs.eclipse.org/326610) - @Override - public Iterable getJavaCompletionProposals(int pos, Filter filter, CompilationUnit astRoot) { - Iterable result = super.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - - result = this.xmlSchema.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - for (XmlSchemaType xmlSchemaType : this.getXmlSchemaTypes()) { - result = xmlSchemaType.getJavaCompletionProposals(pos, filter, astRoot); - if (!CollectionTools.isEmpty(result)) { - return result; - } - } - - return EmptyIterable.instance(); - } - - // **************** validation ******************************************** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.resourcePackage.getNameTextRange(astRoot); - } - - public void validate(List messages, IReporter reporter) { - if (reporter.isCancelled()) { - throw new ValidationCancelledException(); - } - IFile file = this.resourcePackage.getFile(); - // 'file' will be null if the type is "external" and binary; - // the file will be in a different project if the type is "external" and source; - // the type will be binary if it is in a JAR in the current project - if ((file != null) - && file.getProject().equals(getJaxbProject().getProject()) - && (this.resourcePackage instanceof SourceNode)) { - // build the AST root here to pass down - this.validate(messages, reporter, this.buildASTRoot()); - } - } - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - - for (XmlJavaTypeAdapter adapter : getXmlJavaTypeAdapters()) { - adapter.validate(messages, reporter, astRoot); - } - } - - - /** - * xml schema type container - */ - protected class XmlSchemaTypeContainer - extends ContextListContainer - { - @Override - protected String getContextElementsPropertyName() { - return XML_SCHEMA_TYPES_LIST; - } - @Override - protected XmlSchemaType buildContextElement(XmlSchemaTypeAnnotation resourceElement) { - return GenericJavaPackageInfo.this.buildXmlSchemaType(resourceElement); - } - @Override - protected ListIterable getResourceElements() { - return GenericJavaPackageInfo.this.getXmlSchemaTypeAnnotations(); - } - @Override - protected XmlSchemaTypeAnnotation getResourceElement(XmlSchemaType contextElement) { - return contextElement.getResourceXmlSchemaType(); - } - } - - /** - * xml java type adapter container - */ - protected class XmlJavaTypeAdapterContainer - extends ContextListContainer - { - @Override - protected String getContextElementsPropertyName() { - return XML_JAVA_TYPE_ADAPTERS_LIST; - } - @Override - protected XmlJavaTypeAdapter buildContextElement(XmlJavaTypeAdapterAnnotation resourceElement) { - return GenericJavaPackageInfo.this.buildXmlJavaTypeAdapter(resourceElement); - } - @Override - protected ListIterable getResourceElements() { - return GenericJavaPackageInfo.this.getXmlJavaTypeAdapterAnnotations(); - } - @Override - protected XmlJavaTypeAdapterAnnotation getResourceElement(XmlJavaTypeAdapter contextElement) { - return contextElement.getResourceXmlJavaTypeAdapter(); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageXmlJavaTypeAdapter.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageXmlJavaTypeAdapter.java deleted file mode 100644 index 14f9daf4ab..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageXmlJavaTypeAdapter.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaPackageXmlJavaTypeAdapter - extends AbstractJavaXmlJavaTypeAdapter -{ - - public GenericJavaPackageXmlJavaTypeAdapter(JaxbPackageInfo parent, XmlJavaTypeAdapterAnnotation resource) { - super(parent, resource); - } - - @Override - protected String buildDefaultType() { - //there is no default type on a package level XmlJavaTypeAdapter, it must be specified - return null; - } - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - if (getSpecifiedType() == null || getSpecifiedType().equals(XmlJavaTypeAdapter.DEFAULT_TYPE)) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.PACKAGE_XML_JAVA_TYPE_ADAPTER_TYPE_NOT_SPECIFIED, - this, - getResourceXmlJavaTypeAdapter().getTypeTextRange(astRoot))); - } - - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageXmlSchemaType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageXmlSchemaType.java deleted file mode 100644 index 2bfc690fa0..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageXmlSchemaType.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation; - -public class GenericJavaPackageXmlSchemaType - extends GenericJavaXmlSchemaType -{ - - public GenericJavaPackageXmlSchemaType(JaxbPackageInfo parent, XmlSchemaTypeAnnotation xmlSchemaTypeAnnotation) { - super(parent, xmlSchemaTypeAnnotation); - } - - @Override - public JaxbPackageInfo getParent() { - return (JaxbPackageInfo) super.getParent(); - } - - protected JaxbPackageInfo getJaxbPackageInfo() { - return getParent(); - } - - @Override - protected JaxbPackage getJaxbPackage() { - return getJaxbPackageInfo().getParent(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentAttribute.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentAttribute.java deleted file mode 100644 index 61ee0c7334..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentAttribute.java +++ /dev/null @@ -1,392 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.Collection; -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.Tools; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.java.DefaultJavaAttributeMappingDefinition; -import org.eclipse.jpt.jaxb.core.context.java.JavaAttributeMappingDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public abstract class GenericJavaPersistentAttribute - extends AbstractJavaContextNode - implements JaxbPersistentAttribute { - - protected JaxbAttributeMapping mapping; // never null - protected String defaultMappingKey; - - - protected GenericJavaPersistentAttribute(JaxbPersistentClass parent) { - super(parent); - } - - @Override - public JaxbPersistentClass getParent() { - return (JaxbPersistentClass) super.getParent(); - } - - public boolean isInherited() { - return getParent().isInherited(this); - } - - public String getInheritedJavaResourceAttributeOwningTypeName() { - return getParent().getJavaResourceAttributeOwningTypeName(this); - } - - /** - * subclasses must call this method in their constructor - */ - protected void initializeMapping() { - // keep non-null at all times - this.mapping = this.buildMapping(); - } - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.syncMapping(); - } - - @Override - public void update() { - super.update(); - this.updateMapping(); - } - - // ********** name ********** - - public String getName() { - return this.getJavaResourceAttribute().getName(); - } - - // ********** mapping ********** - - public JaxbAttributeMapping getMapping() { - return this.mapping; - } - - /** - * Clients do not set the mapping directly. - * @see #setMappingKey(String) - */ - protected void setMapping(JaxbAttributeMapping mapping) { - JaxbAttributeMapping old = this.mapping; - this.mapping = mapping; - this.firePropertyChanged(MAPPING_PROPERTY, old, mapping); - } - - public String getMappingKey() { - return this.mapping.getKey(); - } - - /** - * Possible transitions: - * - * - * - * - *
- * null mapping/default
- * key = null - *
specified mapping A
- * key = "A" - *
specified mapping B
- * key = "B" - *
[default] null mapping - * do nothing - * add annotation A
- * set new mapping A - *
add annotation B
- * set new mapping B - *
default mapping A - * do nothing - * add annotation A
- * re-use default mapping A - *
add annotation B
- * set new mapping B - *
specified mapping A - * remove annotation A
- * set new default or null mapping - *
do nothing - * remove annotation A
- * add annotation B
- * set new mapping B - *
- * The "do nothing" transitions are handled in this method. - */ - public JaxbAttributeMapping setMappingKey(String key) { - if (this.mapping.isDefault()) { - if (key == null) { - // leave the default mapping unchanged - } else { - this.setMappingKey_(key); // replace the default mapping - } - } else { - if (this.valuesAreEqual(key, this.mapping.getKey())) { - // leave the specified mapping unchanged - } else { - this.setMappingKey_(key); // replace the specified mapping - } - } - return this.mapping; - } - - /** - * We have either:
    - *
  • a default mapping and a non-null key - *
or
    - *
  • a specified mapping and a different (possibly - * null) key - *
- */ - protected void setMappingKey_(String key) { - JavaAttributeMappingDefinition definition = this.getSpecifiedMappingDefinition(key); - if (definition == null) { - // our mapping is "specified" and the key is null; - // check for a default definition - definition = this.getDefaultMappingDefinition(); - Iterable supportingAnnotationNames = (definition != null) ? definition.getSupportingAnnotationNames() : EmptyIterable.instance(); - // clear any mapping annotation(s); - // leave the "default" mapping's supporting annotations; - // if there is no "default" mapping, clear all supporting annotations too(?) - this.setMappingAnnotation(null, supportingAnnotationNames); - } else { - this.setMappingAnnotation(definition); - } - // note: 'definition' can still be null (if the key is null and there is no "default" mapping) - this.setMapping(this.buildMapping(definition)); - } - - /** - * pre-condition: definition is not null - */ - protected void setMappingAnnotation(JavaAttributeMappingDefinition definition) { - this.setMappingAnnotation(definition.getAnnotationName(), definition.getSupportingAnnotationNames()); - } - - protected void setMappingAnnotation(String primaryAnnotationName, Iterable supportingAnnotationNames) { - this.getJavaResourceAttribute().setPrimaryAnnotation(primaryAnnotationName, supportingAnnotationNames); - } - - protected JaxbAttributeMapping buildMapping(JavaAttributeMappingDefinition definition) { - return (definition == null) ? this.buildNullMapping() : this.buildMapping_(definition); - } - - protected JaxbAttributeMapping buildNullMapping() { - return this.getFactory().buildJavaNullAttributeMapping(this); - } - - /** - * pre-condition: definition is not null - *

- * If we are converting a default mapping to its specified - * manifestation, we just keep the same mapping and create its annotation. - * We do not do the same thing when converting a specified - * mapping to its default manifestation. We rebuild the - * entire mapping, simplifying the clearing of all its state. We do this - * because we allow clients to modify a default mapping (or any of - * its components) directly, - * modifying its state and triggering a conversion to a specified - * mapping. The only way to convert a specified mapping to a - * default mapping is by {@link #setMappingKey(String) setting the - * mapping key} to null. - */ - protected JaxbAttributeMapping buildMapping_(JavaAttributeMappingDefinition definition) { - // 'mapping' is null during construction - if ((this.mapping != null) && this.mapping.isDefault() && Tools.valuesAreEqual(this.mapping.getKey(), definition.getKey())) { - this.mapping.updateDefault(); // since nothing here changes, we need to update the mapping's flag - return this.mapping; - } - return definition.buildMapping(this, this.getFactory()); - } - - /** - * We only look for a specified mapping here. - * We look for a default mapping during update. - */ - protected JaxbAttributeMapping buildMapping() { - return this.buildMapping(this.getSpecifiedMappingDefinition()); - } - - /** - * Look for a specified mapping and sync our mapping. - */ - protected void syncMapping() { - JavaAttributeMappingDefinition definition = this.getSpecifiedMappingDefinition(); - if (definition == null) { - if (this.mapping.isDefault()) { - // null/default => null/default - this.mapping.synchronizeWithResourceModel(); - } else { - // specified => null/default - definition = this.getDefaultMappingDefinition(); - this.setMapping(this.buildMapping(definition)); - } - } else { - if (this.mapping.isDefault()) { - // null/default => specified - this.setMapping(this.buildMapping(definition)); - } else { - // specified => specified - if (this.valuesAreEqual(definition.getKey(), this.mapping.getKey())) { - this.mapping.synchronizeWithResourceModel(); - } else { - this.setMapping(this.buildMapping(definition)); - } - } - } - } - - /** - * Return the "specified" mapping definition for the specified key. - */ - protected JavaAttributeMappingDefinition getSpecifiedMappingDefinition(String key) { - if (key == null) { - return null; - } - for (JavaAttributeMappingDefinition definition : this.getSpecifiedMappingDefinitions()) { - if (Tools.valuesAreEqual(definition.getKey(), key)) { - return definition; - } - } - throw new IllegalArgumentException("invalid mapping key: " + key); //$NON-NLS-1$ - } - - /** - * Return the mapping definition for the mapping currently specified in the - * source code. - */ - protected JavaAttributeMappingDefinition getSpecifiedMappingDefinition() { - for (JavaAttributeMappingDefinition definition : this.getSpecifiedMappingDefinitions()) { - if (definition.isSpecified(this)) { - return definition; - } - } - return null; - } - - protected Iterable getSpecifiedMappingDefinitions() { - return this.getPlatform().getSpecifiedJavaAttributeMappingDefinitions(); - } - - - // ********** default mapping ********** - - public String getDefaultMappingKey() { - return this.defaultMappingKey; - } - - protected void setDefaultMappingKey(String mappingKey) { - String old = this.defaultMappingKey; - this.defaultMappingKey = mappingKey; - this.firePropertyChanged(DEFAULT_MAPPING_KEY_PROPERTY, old, mappingKey); - } - - /** - * If a mapping annotation is specified, we would have already set a - * specified mapping in {@link #syncMapping()}. We need only check - * for changes to the default mapping. - */ - protected void updateMapping() { - JavaAttributeMappingDefinition definition = this.getDefaultMappingDefinition(); - String newDefaultKey = (definition == null) ? null : definition.getKey(); - if (this.mapping.isDefault() && Tools.valuesAreDifferent(this.mapping.getKey(), newDefaultKey)) { - this.setMapping(this.buildMapping(definition)); // the default mapping has changed - } else { - this.mapping.update(); - } - this.setDefaultMappingKey(newDefaultKey); - } - - protected JavaAttributeMappingDefinition getDefaultMappingDefinition() { - for (DefaultJavaAttributeMappingDefinition definition : this.getDefaultMappingDefinitions()) { - if (definition.isDefault(this)) { - return definition; - } - } - return null; - } - - protected Iterable getDefaultMappingDefinitions() { - return this.getPlatform().getDefaultJavaAttributeMappingDefinitions(); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getName()); - } - - // **************** content assist **************************************** - - @Override - public Iterable getJavaCompletionProposals(int pos, Filter filter, CompilationUnit astRoot) { - Iterable result = super.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - - result = this.mapping.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - - return EmptyIterable.instance(); - } - - - // **************** validation ******************************************** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.getJavaResourceAttribute().getTextRange(astRoot); - } - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - this.getMapping().validate(messages, reporter, astRoot); - } - - - //**************** static methods ***************** - - protected static String getJavaResourceAttributeType(JavaResourceAttribute attribute) { - if (attribute.typeIsSubTypeOf(COLLECTION_CLASS_NAME)) { - if (attribute.getTypeTypeArgumentNamesSize() == 1) { - return attribute.getTypeTypeArgumentName(0); - } - return null; - } - return attribute.getTypeName(); - } - - private static final String COLLECTION_CLASS_NAME = Collection.class.getName(); - - protected static boolean typeIsArray(JavaResourceAttribute attribute) { - return attribute.typeIsArray(); - } - - protected static boolean typeIsSubTypeOf(JavaResourceAttribute attribute, String typeName) { - return attribute.typeIsSubTypeOf(typeName); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentClass.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentClass.java deleted file mode 100644 index 67f4f75c73..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentClass.java +++ /dev/null @@ -1,780 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.ChainIterable; -import org.eclipse.jpt.common.utility.internal.iterables.CompositeIterable; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneIterable; -import org.eclipse.jpt.common.utility.internal.iterables.SingleElementIterable; -import org.eclipse.jpt.common.utility.internal.iterables.SubIterableWrapper; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributesContainer; -import org.eclipse.jpt.jaxb.core.context.JaxbClass; -import org.eclipse.jpt.jaxb.core.context.JaxbContainmentMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.XmlAccessOrder; -import org.eclipse.jpt.jaxb.core.context.XmlAccessType; -import org.eclipse.jpt.jaxb.core.context.XmlAdaptable; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.context.XmlSeeAlso; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.JAXB; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAnnotatedElement; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAccessorOrderAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAccessorTypeAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSeeAlsoAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * To support inherited attributes in the Generic case I have made some assumptions - * based on the JAXB RIs interpretation of the spec. Any superclass that is - * marked as @XmlTransient will have a corresponding JaxbAttributesContainer for its JaxbClass. - * If that XmlTransient class has no access type specified, the access type will be determined - * by this JaxbPersistentClass's access type. If the XmlTransient class specified an access - * type it will only be used in the case where this class does not specify an access type. - * It will be this class's default access type. The spec states that you are not allowed - * to use other annotations along with XmlTransient, but it appears the reference implementation - * has made an exception for @XmlAccessorType and @XmlAccessorOrder. This is subject to change - * pending a discussion with Blaise and the developers of the RI - * - */ -public class GenericJavaPersistentClass - extends AbstractJavaPersistentType - implements JaxbPersistentClass { - - protected JaxbClass superClass; - - protected XmlAccessType defaultAccessType; - protected XmlAccessType specifiedAccessType; - - protected XmlAccessOrder defaultAccessOrder; - protected XmlAccessOrder specifiedAccessOrder; - - protected final XmlAdaptable xmlAdaptable; - - protected XmlSeeAlso xmlSeeAlso; - - protected final JaxbAttributesContainer attributesContainer; - - protected final Map inheritedAttributesContainers = new HashMap(); - - public GenericJavaPersistentClass(JaxbContextRoot parent, JavaResourceType resourceType) { - super(parent, resourceType); - this.superClass = this.buildSuperClass(); - this.specifiedAccessType = this.getResourceAccessType(); - this.specifiedAccessOrder = this.getResourceAccessOrder(); - this.defaultAccessType = this.buildDefaultAccessType(); - this.defaultAccessOrder = this.buildDefaultAccessOrder(); - this.xmlAdaptable = this.buildXmlAdaptable(); - initXmlSeeAlso(); - this.attributesContainer = new GenericJavaAttributesContainer(this, buildAttributesContainerOwner(), resourceType); - this.initializeInheritedAttributes(); - } - - - @Override - public JavaResourceType getJavaResourceType() { - return (JavaResourceType) super.getJavaResourceType(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setSpecifiedAccessType_(this.getResourceAccessType()); - this.setSpecifiedAccessOrder_(this.getResourceAccessOrder()); - this.xmlAdaptable.synchronizeWithResourceModel(); - syncXmlSeeAlso(); - this.attributesContainer.synchronizeWithResourceModel(); - this.syncInheritedAttributes(); - } - - @Override - public void update() { - super.update(); - super.update(); - this.setSuperClass(this.buildSuperClass()); - this.setDefaultAccessType(this.buildDefaultAccessType()); - this.setDefaultAccessOrder(this.buildDefaultAccessOrder()); - this.xmlAdaptable.update(); - updateXmlSeeAlso(); - this.attributesContainer.update(); - this.updateInheritedAttributes(); - } - - - // ********** JaxbType impl ********** - - public Kind getKind() { - return Kind.PERSISTENT_CLASS; - } - - @Override - public Iterable getDirectlyReferencedTypeNames() { - return new CompositeIterable( - new SingleElementIterable(getJavaResourceType().getSuperclassQualifiedName()), - new CompositeIterable( - new TransformationIterable>(getAttributes()) { - @Override - protected Iterable transform(JaxbPersistentAttribute o) { - return o.getMapping().getDirectlyReferencedTypeNames(); - } - }), - getXmlSeeAlsoClasses()); - } - - protected Iterable getXmlSeeAlsoClasses() { - return (this.xmlSeeAlso == null) ? - EmptyIterable.instance() - : getXmlSeeAlso().getDirectlyReferencedTypeNames(); - } - - - // ********** super class ********** - - public JaxbClass getSuperClass() { - return this.superClass; - } - - protected void setSuperClass(JaxbClass superClass) { - JaxbClass old = this.superClass; - this.superClass = superClass; - this.firePropertyChanged(SUPER_CLASS_PROPERTY, old, superClass); - } - - protected JaxbClass buildSuperClass() { - HashSet visited = new HashSet(); - visited.add(this.getJavaResourceType()); - JaxbClass spc = this.getSuperClass(this.getJavaResourceType().getSuperclassQualifiedName(), visited); - if (spc == null) { - return null; - } - if (CollectionTools.contains(spc.getInheritanceHierarchy(), this)) { - return null; // short-circuit in this case, we have circular inheritance - } - return spc; - } - - /** - * The JPA spec allows non-persistent types in a persistent type's - * inheritance hierarchy. We check for a persistent type with the - * specified name in the persistence unit. If it is not found we use - * resource persistent type and look for *its* super type. - * - * The 'visited' collection is used to detect a cycle in the *resource* type - * inheritance hierarchy and prevent the resulting stack overflow. - * Any cycles in the *context* type inheritance hierarchy are handled in - * #buildSuperPersistentType(). - */ - protected JaxbClass getSuperClass(String typeName, Collection visited) { - if (typeName == null) { - return null; - } - JavaResourceType resourceType = (JavaResourceType) this.getJaxbProject().getJavaResourceType(typeName, JavaResourceAbstractType.Kind.TYPE); - if ((resourceType == null) || visited.contains(resourceType)) { - return null; - } - visited.add(resourceType); - JaxbClass spc = this.getClass(typeName); - return (spc != null && resourceType.isMapped()) ? spc : this.getSuperClass(resourceType.getSuperclassQualifiedName(), visited); // recurse - } - - protected JaxbClass getClass(String fullyQualifiedTypeName) { - return this.getParent().getClass(fullyQualifiedTypeName); - } - - - // ********** inheritance ********** - - public Iterable getInheritanceHierarchy() { - return this.getInheritanceHierarchyOf(this); - } - - public Iterable getAncestors() { - return this.getInheritanceHierarchyOf(this.superClass); - } - - protected Iterable getInheritanceHierarchyOf(JaxbClass start) { - // using a chain iterator to traverse up the inheritance tree - return new ChainIterable(start) { - @Override - protected JaxbClass nextLink(JaxbClass jaxbClass) { - return jaxbClass.getSuperClass(); - } - }; - } - - // ********** access type ********** - - public XmlAccessType getAccessType() { - return (this.specifiedAccessType != null) ? this.specifiedAccessType : this.defaultAccessType; - } - - public XmlAccessType getSpecifiedAccessType() { - return this.specifiedAccessType; - } - - public void setSpecifiedAccessType(XmlAccessType access) { - this.getAccessorTypeAnnotation().setValue(XmlAccessType.toJavaResourceModel(access)); - this.setSpecifiedAccessType_(access); - } - - protected void setSpecifiedAccessType_(XmlAccessType access) { - XmlAccessType old = this.specifiedAccessType; - this.specifiedAccessType = access; - this.firePropertyChanged(SPECIFIED_ACCESS_TYPE_PROPERTY, old, access); - } - - public XmlAccessType getDefaultAccessType() { - return this.defaultAccessType; - } - - protected void setDefaultAccessType(XmlAccessType access) { - XmlAccessType old = this.defaultAccessType; - this.defaultAccessType = access; - this.firePropertyChanged(DEFAULT_ACCESS_TYPE_PROPERTY, old, access); - } - - protected XmlAccessType getResourceAccessType() { - return XmlAccessType.fromJavaResourceModel(this.getAccessorTypeAnnotation().getValue()); - } - - protected XmlAccessorTypeAnnotation getAccessorTypeAnnotation() { - return (XmlAccessorTypeAnnotation) getJavaResourceType().getNonNullAnnotation(XmlAccessorTypeAnnotation.ANNOTATION_NAME); - } - - /** - * If there is a @XmlAccessorType on a class, then it is used. - * Otherwise, if a @XmlAccessorType exists on one of its super classes, then it is inherited. - * Otherwise, the @XmlAccessorType on a package is inherited. - */ - protected XmlAccessType buildDefaultAccessType() { - XmlAccessType superAccessType = this.getSuperClassAccessType(); - if (superAccessType != null) { - return superAccessType; - } - XmlAccessType packageAccessType = getPackageAccessType(); - if (packageAccessType != null) { - return packageAccessType; - } - return XmlAccessType.PUBLIC_MEMBER; - } - - protected XmlAccessType getSuperClassAccessType() { - JaxbClass superClass = this.getSuperClass(); - return superClass == null ? null : superClass.getSpecifiedAccessType(); - } - - protected XmlAccessType getPackageAccessType() { - JaxbPackageInfo packageInfo = this.getPackageInfo(); - return packageInfo == null ? null : packageInfo.getAccessType(); - } - - - // ********** access order ********** - - public XmlAccessOrder getAccessOrder() { - return (this.specifiedAccessOrder != null) ? this.specifiedAccessOrder : this.defaultAccessOrder; - } - - public XmlAccessOrder getSpecifiedAccessOrder() { - return this.specifiedAccessOrder; - } - - public void setSpecifiedAccessOrder(XmlAccessOrder accessOrder) { - this.getAccessorOrderAnnotation().setValue(XmlAccessOrder.toJavaResourceModel(accessOrder)); - this.setSpecifiedAccessOrder_(accessOrder); - } - - protected void setSpecifiedAccessOrder_(XmlAccessOrder accessOrder) { - XmlAccessOrder old = this.specifiedAccessOrder; - this.specifiedAccessOrder = accessOrder; - this.firePropertyChanged(SPECIFIED_ACCESS_ORDER_PROPERTY, old, accessOrder); - } - - public XmlAccessOrder getDefaultAccessOrder() { - return this.defaultAccessOrder; - } - - protected void setDefaultAccessOrder(XmlAccessOrder accessOrder) { - XmlAccessOrder old = this.defaultAccessOrder; - this.defaultAccessOrder = accessOrder; - this.firePropertyChanged(DEFAULT_ACCESS_ORDER_PROPERTY, old, accessOrder); - } - - protected XmlAccessOrder getResourceAccessOrder() { - return XmlAccessOrder.fromJavaResourceModel(this.getAccessorOrderAnnotation().getValue()); - } - - protected XmlAccessorOrderAnnotation getAccessorOrderAnnotation() { - return (XmlAccessorOrderAnnotation) getJavaResourceType().getNonNullAnnotation(XmlAccessorOrderAnnotation.ANNOTATION_NAME); - } - - /** - * If there is a @XmlAccessorOrder on a class, then it is used. - * Otherwise, if a @XmlAccessorOrder exists on one of its super classes, then it is inherited (by the virtue of Inherited) - * Otherwise, the @XmlAccessorOrder on the package of the class is used, if it's there. - * Otherwise XmlAccessOrder.UNDEFINED. - */ - protected XmlAccessOrder buildDefaultAccessOrder() { - XmlAccessOrder superAccessOrder = this.getSuperClassAccessOrder(); - if (superAccessOrder != null) { - return superAccessOrder; - } - XmlAccessOrder packageAccessOrder = getPackageAccessOrder(); - if (packageAccessOrder != null) { - return packageAccessOrder; - } - return XmlAccessOrder.UNDEFINED; - } - - protected XmlAccessOrder getSuperClassAccessOrder() { - JaxbClass superClass = this.getSuperClass(); - return superClass == null ? null : superClass.getSpecifiedAccessOrder(); - } - - protected XmlAccessOrder getPackageAccessOrder() { - JaxbPackageInfo packageInfo = this.getPackageInfo(); - return packageInfo == null ? null : packageInfo.getAccessOrder(); - } - - - //****************** XmlJavaTypeAdapter ********************* - - public XmlAdaptable buildXmlAdaptable() { - return new GenericJavaXmlAdaptable(this, new XmlAdaptable.Owner() { - public JavaResourceAnnotatedElement getResource() { - return getJavaResourceType(); - } - public XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation adapterAnnotation) { - return GenericJavaPersistentClass.this.buildXmlJavaTypeAdapter(adapterAnnotation); - } - public void fireXmlAdapterChanged(XmlJavaTypeAdapter oldAdapter, XmlJavaTypeAdapter newAdapter) { - GenericJavaPersistentClass.this.firePropertyChanged(XML_JAVA_TYPE_ADAPTER_PROPERTY, oldAdapter, newAdapter); - } - }); - } - - public XmlJavaTypeAdapter getXmlJavaTypeAdapter() { - return this.xmlAdaptable.getXmlJavaTypeAdapter(); - } - - public XmlJavaTypeAdapter addXmlJavaTypeAdapter() { - return this.xmlAdaptable.addXmlJavaTypeAdapter(); - } - - protected XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation xmlJavaTypeAdapterAnnotation) { - return new GenericJavaTypeXmlJavaTypeAdapter(this, xmlJavaTypeAdapterAnnotation); - } - - public void removeXmlJavaTypeAdapter() { - this.xmlAdaptable.removeXmlJavaTypeAdapter(); - } - - - // **************** xml see also ****************************************** - - protected XmlSeeAlsoAnnotation getXmlSeeAlsoAnnotation() { - return (XmlSeeAlsoAnnotation) getJavaResourceType().getAnnotation(JAXB.XML_SEE_ALSO); - } - - protected void initXmlSeeAlso() { - XmlSeeAlsoAnnotation annotation = getXmlSeeAlsoAnnotation(); - this.xmlSeeAlso = (annotation == null) ? - null - : buildXmlSeeAlso(annotation); - } - - protected XmlSeeAlso buildXmlSeeAlso(XmlSeeAlsoAnnotation annotation) { - return new GenericJavaXmlSeeAlso(this, annotation); - } - - public XmlSeeAlso getXmlSeeAlso() { - return this.xmlSeeAlso; - } - - public XmlSeeAlso addXmlSeeAlso() { - if (this.xmlSeeAlso != null) { - throw new IllegalStateException(); - } - XmlSeeAlsoAnnotation annotation = (XmlSeeAlsoAnnotation) getJavaResourceType().addAnnotation(JAXB.XML_SEE_ALSO); - - XmlSeeAlso xmlSeeAlso = buildXmlSeeAlso(annotation); - setXmlSeeAlso_(xmlSeeAlso); - return xmlSeeAlso; - } - - protected void setXmlSeeAlso_(XmlSeeAlso xmlSeeAlso) { - XmlSeeAlso old = this.xmlSeeAlso; - this.xmlSeeAlso = xmlSeeAlso; - firePropertyChanged(XML_SEE_ALSO_PROPERTY, old, xmlSeeAlso); - } - - public void removeXmlSeeAlso() { - if (this.xmlSeeAlso == null) { - throw new IllegalStateException(); - } - getJavaResourceType().removeAnnotation(JAXB.XML_SEE_ALSO); - setXmlSeeAlso_(null); - } - - protected void syncXmlSeeAlso() { - XmlSeeAlsoAnnotation annotation = getXmlSeeAlsoAnnotation(); - if (annotation != null) { - if (this.xmlSeeAlso != null) { - this.xmlSeeAlso.synchronizeWithResourceModel(); - } - else { - setXmlSeeAlso_(buildXmlSeeAlso(annotation)); - } - } - else { - setXmlSeeAlso_(null); - } - } - - protected void updateXmlSeeAlso() { - if (this.xmlSeeAlso != null) { - this.xmlSeeAlso.update(); - } - } - - - // ********** attributes ********** - - public Iterable getAttributes() { - return this.attributesContainer.getAttributes(); - } - - public int getAttributesSize() { - return this.attributesContainer.getAttributesSize(); - } - - protected JaxbAttributesContainer.Owner buildAttributesContainerOwner() { - return new JaxbAttributesContainer.Owner() { - public XmlAccessType getAccessType() { - return GenericJavaPersistentClass.this.getAccessType(); - } - - public void fireAttributeAdded(JaxbPersistentAttribute attribute) { - GenericJavaPersistentClass.this.fireItemAdded(ATTRIBUTES_COLLECTION, attribute); - } - - public void fireAttributeRemoved(JaxbPersistentAttribute attribute) { - GenericJavaPersistentClass.this.fireItemRemoved(ATTRIBUTES_COLLECTION, attribute); - } - }; - } - - - // ********** inherited attributes ********** - - public Iterable getInheritedAttributes() { - return new CompositeIterable(this.getInheritedAttributeSets()); - } - - protected Iterable> getInheritedAttributeSets() { - return new TransformationIterable>(this.getInheritedAttributesContainers()) { - @Override - protected Iterable transform(JaxbAttributesContainer attributesContainer) { - return attributesContainer.getAttributes(); - } - }; - } - - protected Iterable getInheritedAttributesContainers() { - return new LiveCloneIterable(this.inheritedAttributesContainers.values()); // read-only - } - - public int getInheritedAttributesSize() { - int size = 0; - for (JaxbAttributesContainer attributesContainer : getInheritedAttributesContainers()) { - size += attributesContainer.getAttributesSize(); - } - return size; - } - - protected void initializeInheritedAttributes() { - this.addInheritedAttributesContainer(this.getSuperClass()); - } - - protected void addInheritedAttributesContainer(JaxbClass superClass) { - if (superClass != null) { - if (superClass.getKind() == Kind.TRANSIENT) { - this.inheritedAttributesContainers.put(superClass, this.buildInheritedAttributesContainer(superClass)); - this.addInheritedAttributesContainer(superClass.getSuperClass()); - } - } - } - - protected JaxbAttributesContainer buildInheritedAttributesContainer(JaxbClass jaxbClass) { - return new GenericJavaAttributesContainer(this, buildInheritedAttributesContainerOwner(), jaxbClass.getJavaResourceType()); - } - - protected JaxbAttributesContainer.Owner buildInheritedAttributesContainerOwner() { - return new JaxbAttributesContainer.Owner() { - public XmlAccessType getAccessType() { - return GenericJavaPersistentClass.this.getAccessType(); - } - - public void fireAttributeAdded(JaxbPersistentAttribute attribute) { - GenericJavaPersistentClass.this.fireItemAdded(INHERITED_ATTRIBUTES_COLLECTION, attribute); - } - - public void fireAttributeRemoved(JaxbPersistentAttribute attribute) { - GenericJavaPersistentClass.this.fireItemRemoved(INHERITED_ATTRIBUTES_COLLECTION, attribute); - } - }; - } - - protected void syncInheritedAttributes() { - for (JaxbAttributesContainer attributesContainer : this.inheritedAttributesContainers.values()) { - attributesContainer.synchronizeWithResourceModel(); - } - } - - /** - * The attributes are synchronized during the update because - * the list of resource attributes is determined by the access type - * which can be controlled in a number of different places.... - */ - protected void updateInheritedAttributes() { - HashSet contextSuperclasses = CollectionTools.set(this.inheritedAttributesContainers.keySet()); - for (JaxbClass superClass : getAncestors()) { - if (superClass.getKind() == Kind.TRANSIENT) { - boolean match = false; - for (Iterator stream = contextSuperclasses.iterator(); stream.hasNext(); ) { - JaxbClass contextSuperclass = stream.next(); - if (contextSuperclass == superClass) { - stream.remove(); - this.inheritedAttributesContainers.get(contextSuperclass).update(); - match = true; - break; - } - } - if ( ! match) { - JaxbAttributesContainer container = this.buildInheritedAttributesContainer(superClass); - this.inheritedAttributesContainers.put(superClass, container); - this.fireItemsAdded(INHERITED_ATTRIBUTES_COLLECTION, CollectionTools.collection(container.getAttributes())); - } - } - } - - for (JaxbClass superClass : contextSuperclasses) { - JaxbAttributesContainer container = this.inheritedAttributesContainers.remove(superClass); - this.fireItemsRemoved(INHERITED_ATTRIBUTES_COLLECTION, CollectionTools.collection(container.getAttributes())); - } - } - - public boolean isInherited(JaxbPersistentAttribute attribute) { - if (attribute.getParent() != this) { - throw new IllegalArgumentException("The attribute is not owned by this GenericJavaPersistentClass"); //$NON-NLS-1$ - } - return !CollectionTools.contains(this.getAttributes(), attribute); - } - - public String getJavaResourceAttributeOwningTypeName(JaxbPersistentAttribute attribute) { - if (attribute.getParent() != this) { - throw new IllegalArgumentException("The attribute is not owned by this GenericJavaPersistentClass"); //$NON-NLS-1$ - } - for (JaxbClass inheritedClass : this.inheritedAttributesContainers.keySet()) { - if (CollectionTools.contains(this.inheritedAttributesContainers.get(inheritedClass).getAttributes(), attribute)) { - return inheritedClass.getSimpleName(); - } - } - throw new IllegalArgumentException("The attribute is not an inherited attribute"); //$NON-NLS-1$ - } - - - // ********** content assist ********** - - @Override - public Iterable getJavaCompletionProposals(int pos, Filter filter, CompilationUnit astRoot) { - Iterable result = super.getJavaCompletionProposals(pos, filter, astRoot); - if (!CollectionTools.isEmpty(result)) { - return result; - } - for (JaxbPersistentAttribute attribute : this.getAttributes()) { - result = attribute.getJavaCompletionProposals(pos, filter, astRoot); - if (!CollectionTools.isEmpty(result)) { - return result; - } - } - return EmptyIterable.instance(); - } - - // ********** validation ********** - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - this.xmlAdaptable.validate(messages, reporter, astRoot); - this.validateXmlAnyAttributeMapping(messages, astRoot); - this.validateXmlAnyElementMapping(messages, astRoot); - this.validateXmlValueMapping(messages, astRoot); - this.validateXmlIDs(messages, astRoot); - for (JaxbPersistentAttribute attribute : getAttributes()) { - attribute.validate(messages, reporter, astRoot); - } - } - - protected void validateXmlValueMapping(List messages, CompilationUnit astRoot) { - String xmlValueMapping = null; - for (JaxbPersistentAttribute attribute : getAttributes()) { - if (attribute.getMappingKey() == MappingKeys.XML_VALUE_ATTRIBUTE_MAPPING_KEY) { - if (xmlValueMapping != null) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.MULTIPLE_XML_VALUE_MAPPINGS_DEFINED, - new String[] {attribute.getName(), xmlValueMapping}, - attribute.getMapping(), - attribute.getMapping().getValidationTextRange(astRoot))); - } - else { - xmlValueMapping = attribute.getName(); - } - } - } - if (xmlValueMapping != null) { - for (JaxbPersistentAttribute attribute : getAttributes()) { - if (attribute.getName() != xmlValueMapping) { - if (attribute.getMappingKey() != MappingKeys.XML_ATTRIBUTE_ATTRIBUTE_MAPPING_KEY - && attribute.getMappingKey() != MappingKeys.XML_TRANSIENT_ATTRIBUTE_MAPPING_KEY) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_VALUE_MAPPING_WITH_NON_XML_ATTRIBUTE_MAPPING_DEFINED, - new String[] {attribute.getName(), xmlValueMapping}, - attribute.getMapping(), - attribute.getMapping().getValidationTextRange(astRoot))); - } - } - } - } - } - - protected void validateXmlAnyAttributeMapping(List messages, CompilationUnit astRoot) { - String xmlAnyAttributeMapping = null; - for (JaxbPersistentAttribute attribute : getAttributes()) { - if (attribute.getMappingKey() == MappingKeys.XML_ANY_ATTRIBUTE_ATTRIBUTE_MAPPING_KEY) { - if (xmlAnyAttributeMapping != null) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.MULTIPLE_XML_ANY_ATTRIBUTE_MAPPINGS_DEFINED, - new String[] {attribute.getName(), xmlAnyAttributeMapping}, - attribute.getMapping(), - attribute.getMapping().getValidationTextRange(astRoot))); - } - else { - xmlAnyAttributeMapping = attribute.getName(); - } - } - } - } - - protected void validateXmlAnyElementMapping(List messages, CompilationUnit astRoot) { - String xmlAnyElementMapping = null; - for (JaxbPersistentAttribute attribute : getAttributes()) { - if (attribute.getMappingKey() == MappingKeys.XML_ANY_ELEMENT_ATTRIBUTE_MAPPING_KEY) { - if (xmlAnyElementMapping != null) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.MULTIPLE_XML_ANY_ELEMENT_MAPPINGS_DEFINED, - new String[] {attribute.getName(), xmlAnyElementMapping}, - attribute.getMapping(), - attribute.getMapping().getValidationTextRange(astRoot))); - } - else { - xmlAnyElementMapping = attribute.getName(); - } - } - } - } - - protected void validateXmlIDs(List messages, CompilationUnit astRoot) { - String xmlIdMapping = null; - for (JaxbContainmentMapping containmentMapping : getContainmentMappingsWithXmlID()) { - if (xmlIdMapping != null) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.MULTIPLE_XML_IDS_DEFINED, - new String[] {containmentMapping.getParent().getName(), xmlIdMapping}, - containmentMapping, - containmentMapping.getValidationTextRange(astRoot))); - } - else { - xmlIdMapping = containmentMapping.getParent().getName(); - } - } - } - - protected Iterable getContainmentMappingsWithXmlID(){ - return new FilteringIterable(this.getContainmentMappings()){ - @Override - protected boolean accept(JaxbContainmentMapping containmentMapping) { - return containmentMapping.getXmlID() != null; - } - }; - } - - protected Iterable getContainmentMappings() { - return new SubIterableWrapper(this.getContainmentMappings_()); - } - - protected Iterable getContainmentMappings_(){ - return new FilteringIterable(this.getAttributeMappings()){ - @Override - protected boolean accept(JaxbAttributeMapping attributeMapping) { - return (attributeMapping.getKey() == MappingKeys.XML_ELEMENT_ATTRIBUTE_MAPPING_KEY - || attributeMapping.getKey() == MappingKeys.XML_ATTRIBUTE_ATTRIBUTE_MAPPING_KEY); - } - }; - } - - private Iterable getAttributeMappings() { - return new TransformationIterable(this.getAttributes()) { - @Override - protected JaxbAttributeMapping transform(JaxbPersistentAttribute attribute) { - return attribute.getMapping(); - } - }; - } - - public boolean containsXmlId() { - return !CollectionTools.isEmpty(getContainmentMappingsWithXmlID()); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentEnum.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentEnum.java deleted file mode 100644 index d43101901b..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentEnum.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbEnumConstant; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentEnum; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnum; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceEnumConstant; -import org.eclipse.jpt.jaxb.core.resource.java.XmlEnumAnnotation; - -public class GenericJavaPersistentEnum - extends AbstractJavaPersistentType - implements JaxbPersistentEnum { - - protected String enumType; - - protected final EnumConstantContainer enumConstantContainer; - - public GenericJavaPersistentEnum(JaxbContextRoot parent, JavaResourceEnum resourceEnum) { - super(parent, resourceEnum); - this.enumType = this.getResourceEnumType(); - this.enumConstantContainer = new EnumConstantContainer(); - } - - @Override - public JavaResourceEnum getJavaResourceType() { - return (JavaResourceEnum) super.getJavaResourceType(); - } - - - // ********** JaxbType impl ********** - - public Kind getKind() { - return Kind.PERSISTENT_ENUM; - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setEnumType_(this.getResourceEnumType()); - this.enumConstantContainer.synchronizeWithResourceModel(); - } - - @Override - public void update() { - super.update(); - this.enumConstantContainer.update(); - } - - // ********** xml enum annotation ********** - - protected XmlEnumAnnotation getXmlEnumAnnotation() { - return (XmlEnumAnnotation) this.getJavaResourceType().getNonNullAnnotation(XmlEnumAnnotation.ANNOTATION_NAME); - } - - - // ********** JaxbPersistentEnum impl ********** - - // ********** enum type ********** - - public String getEnumType() { - return this.enumType; - } - - public void setEnumType(String enumType) { - this.getXmlEnumAnnotation().setValue(enumType); - this.setEnumType_(enumType); - } - - protected void setEnumType_(String enumType) { - String old = this.enumType; - this.enumType = enumType; - this.firePropertyChanged(ENUM_TYPE_PROPERTY, old, enumType); - } - - protected String getResourceEnumType() { - return this.getXmlEnumAnnotation().getValue(); - } - - public Iterable getEnumConstants() { - return this.enumConstantContainer.getContextElements(); - } - - public int getEnumConstantsSize() { - return this.enumConstantContainer.getContextElementsSize(); - } - - private Iterable getResourceEnumConstants() { - return getJavaResourceType().getEnumConstants(); - } - - private JaxbEnumConstant buildEnumConstant(JavaResourceEnumConstant resourceEnumConstant) { - return getFactory().buildJavaEnumConstant(this, resourceEnumConstant); - } - - /** - * enum constant container adapter - */ - protected class EnumConstantContainer - extends ContextCollectionContainer - { - @Override - protected String getContextElementsPropertyName() { - return ENUM_CONSTANTS_COLLECTION; - } - @Override - protected JaxbEnumConstant buildContextElement(JavaResourceEnumConstant resourceElement) { - return GenericJavaPersistentEnum.this.buildEnumConstant(resourceElement); - } - @Override - protected Iterable getResourceElements() { - return GenericJavaPersistentEnum.this.getResourceEnumConstants(); - } - @Override - protected JavaResourceEnumConstant getResourceElement(JaxbEnumConstant contextElement) { - return contextElement.getResourceEnumConstant(); - } - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentField.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentField.java deleted file mode 100644 index da822fa6cc..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentField.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentField; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; - -public class GenericJavaPersistentField - extends GenericJavaPersistentAttribute - implements JaxbPersistentField { - - - protected final JavaResourceField resourceField; - - public GenericJavaPersistentField(JaxbPersistentClass parent, JavaResourceField resourceField) { - super(parent); - this.resourceField = resourceField; - this.initializeMapping(); - } - - public JavaResourceAttribute getJavaResourceAttribute() { - return this.getResourceField(); - } - - public String getJavaResourceAttributeTypeName() { - return getJavaResourceAttributeType(this.getJavaResourceAttribute()); - } - - public boolean isJavaResourceAttributeTypeArray() { - return typeIsArray(this.getJavaResourceAttribute()); - } - - public boolean isJavaResourceAttributeTypeSubTypeOf(String typeName) { - return typeIsSubTypeOf(this.getJavaResourceAttribute(), typeName); - } - - public JavaResourceField getResourceField() { - return this.resourceField; - } - - public boolean isFor(JavaResourceField resourceField) { - return this.resourceField == resourceField; - } - - public boolean isFor(JavaResourceMethod getterMethod, JavaResourceMethod setterMethod) { - return false; - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentProperty.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentProperty.java deleted file mode 100644 index 7cf112ff5e..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPersistentProperty.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentProperty; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceField; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; - -public class GenericJavaPersistentProperty - extends GenericJavaPersistentAttribute - implements JaxbPersistentProperty { - - - protected final JavaResourceMethod resourceGetter; - - protected final JavaResourceMethod resourceSetter; - - public GenericJavaPersistentProperty(JaxbPersistentClass parent, JavaResourceMethod resourceGetter, JavaResourceMethod resourceSetter) { - super(parent); - this.resourceGetter = resourceGetter; - this.resourceSetter = resourceSetter; - this.initializeMapping(); - } - - public JavaResourceAttribute getJavaResourceAttribute() { - return this.calculateResourceMethodToAnnotate(); - } - - public String getJavaResourceAttributeTypeName() { - JavaResourceAttribute getterMethod = getResourceGetterMethod(); - //it's invalid to have a setter without a getter, so just return null in this case - //rather than attempting to define the type from the setter's parameters - return getterMethod == null ? null : getJavaResourceAttributeType(getterMethod); - } - - public boolean isJavaResourceAttributeTypeArray() { - JavaResourceAttribute getterMethod = getResourceGetterMethod(); - //it's invalid to have a setter without a getter, so just return false in this case - //rather than attempting to use the setter's parameters - return getterMethod == null ? false : typeIsArray(getterMethod); - } - - public boolean isJavaResourceAttributeTypeSubTypeOf(String typeName) { - JavaResourceAttribute getterMethod = getResourceGetterMethod(); - //it's invalid to have a setter without a getter, so just return false in this case - //rather than attempting to use the setter's parameters - return getterMethod == null ? false : typeIsSubTypeOf(getterMethod, typeName); - } - - public JavaResourceMethod getResourceGetterMethod() { - return this.resourceGetter; - } - - public JavaResourceMethod getResourceSetterMethod() { - return this.resourceSetter; - } - - public boolean isFor(JavaResourceField resourceField) { - return false; - } - - public boolean isFor(JavaResourceMethod getterMethod, JavaResourceMethod setterMethod) { - return (this.resourceGetter == getterMethod) && (this.resourceSetter == setterMethod); - } - - //since this is based on a preference as well as annotation location - //we will just calculate it instead of handling it in sync and storing it. - protected JavaResourceMethod calculateResourceMethodToAnnotate() { - if (getterIsAnnotated()) { - if (setterIsAnnotated()) { - //use preference for which one to set the primary annotation on. - return getAnnotateGetterPreference() ? this.resourceGetter : this.resourceSetter; - } - return this.resourceGetter; - } - else if (setterIsAnnotated()) { - return this.resourceSetter; - } - else if (getAnnotateGetterPreference()&& this.resourceGetter != null) { - return this.resourceGetter; - } - return this.resourceSetter; - } - - protected boolean getterIsAnnotated() { - return this.resourceGetter == null ? false : this.resourceGetter.isAnnotated(); - } - - protected boolean setterIsAnnotated() { - return this.resourceSetter == null ? false : this.resourceSetter.isAnnotated(); - } - - //TODO bug 333483 - make this a preference for the user to select whether the getter or setter should be annotated. - protected boolean getAnnotateGetterPreference() { - return true; - } - - //TODO validation - bug 333484 - //if (getterIsAnnotated() && setterIsAnnotated()) error to user -} \ No newline at end of file diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaRegistry.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaRegistry.java deleted file mode 100644 index a5dd8554f3..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaRegistry.java +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbElementFactoryMethod; -import org.eclipse.jpt.jaxb.core.context.JaxbRegistry; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceMethod; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; -import org.eclipse.jpt.jaxb.core.resource.java.XmlElementDeclAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlRegistryAnnotation; - - -public class GenericJavaRegistry - extends AbstractJavaType - implements JaxbRegistry { - - protected final ElementFactoryMethodContainer elementFactoryMethodContainer; - - private static final String ELEMENT_FACTORY_METHOD_CREATE_PREFIX = "create"; //$NON-NLS-1$ - - public GenericJavaRegistry(JaxbContextRoot parent, JavaResourceType resourceType) { - super(parent, resourceType); - this.elementFactoryMethodContainer = new ElementFactoryMethodContainer(); - } - - @Override - public JavaResourceType getJavaResourceType() { - return (JavaResourceType) super.getJavaResourceType(); - } - - protected XmlRegistryAnnotation getAnnotation() { - return (XmlRegistryAnnotation) getJavaResourceType().getNonNullAnnotation(XmlRegistryAnnotation.ANNOTATION_NAME); - } - - - // ********** JaxbType impl ********** - - public Kind getKind() { - return Kind.REGISTRY; - } - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.elementFactoryMethodContainer.synchronizeWithResourceModel(); - } - - @Override - public void update() { - super.update(); - this.elementFactoryMethodContainer.update(); - } - - public Iterable getElementFactoryMethods() { - return this.elementFactoryMethodContainer.getContextElements(); - } - - public int getElementFactoryMethodsSize() { - return this.elementFactoryMethodContainer.getContextElementsSize(); - } - - private JaxbElementFactoryMethod buildElementFactoryMethod(JavaResourceMethod resourceMethod) { - return getFactory().buildJavaElementFactoryMethod(this, resourceMethod); - } - - private Iterable getResourceElementFactoryMethods() { - return new FilteringIterable(getJavaResourceType().getMethods()) { - @Override - protected boolean accept(JavaResourceMethod method) { - return methodIsElementFactoryMethod(method); - } - }; - } - - //For now we will just check that the method has an @XmlElementDecl annotation. - //In the future we could look for methods that are unannotated, but appear - //to be element factory methods : begin with create, return type is JAXB element, - //1 parameter, etc. - protected static boolean methodIsElementFactoryMethod(JavaResourceMethod method) { - return methodHasXmlElementDeclAnnotation(method); - } - - protected static boolean methodHasXmlElementDeclAnnotation(JavaResourceMethod method) { - return method.getAnnotation(XmlElementDeclAnnotation.ANNOTATION_NAME) != null; - } - - protected static boolean methodStartsWithCreate(JavaResourceMethod method) { - return method.getName().startsWith(ELEMENT_FACTORY_METHOD_CREATE_PREFIX); - } - - protected static boolean methodReturnTypeIsJAXBElement(JavaResourceMethod method) { - return method.typeIsSubTypeOf(JAXB_ELEMENT_TYPE_NAME); - } - - protected static final String JAXB_ELEMENT_TYPE_NAME = "javax.xml.bind.JAXBElement"; //$NON-NLS-1$ - - - // **************** validation ******************************************** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - TextRange textRange = getAnnotation().getTextRange(astRoot); - return (textRange != null) ? textRange : super.getValidationTextRange(astRoot); - } - - - /** - * element factory method container adapter - */ - protected class ElementFactoryMethodContainer - extends ContextCollectionContainer - { - @Override - protected String getContextElementsPropertyName() { - return ELEMENT_FACTORY_METHODS_COLLECTION; - } - @Override - protected JaxbElementFactoryMethod buildContextElement(JavaResourceMethod resourceElement) { - return GenericJavaRegistry.this.buildElementFactoryMethod(resourceElement); - } - @Override - protected Iterable getResourceElements() { - return GenericJavaRegistry.this.getResourceElementFactoryMethods(); - } - @Override - protected JavaResourceMethod getResourceElement(JaxbElementFactoryMethod contextElement) { - return contextElement.getResourceMethod(); - } - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaTransientClass.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaTransientClass.java deleted file mode 100644 index 9c09046f58..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaTransientClass.java +++ /dev/null @@ -1,236 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.Collection; -import java.util.HashSet; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.ChainIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbClass; -import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot; -import org.eclipse.jpt.jaxb.core.context.JaxbTransientClass; -import org.eclipse.jpt.jaxb.core.context.XmlAccessOrder; -import org.eclipse.jpt.jaxb.core.context.XmlAccessType; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceType; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAccessorOrderAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAccessorTypeAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlTransientAnnotation; - - -public class GenericJavaTransientClass - extends AbstractJavaType - implements JaxbTransientClass { - - protected JaxbClass superClass; - - protected XmlAccessType specifiedAccessType; - - protected XmlAccessOrder specifiedAccessOrder; - - public GenericJavaTransientClass(JaxbContextRoot parent, JavaResourceType resourceType) { - super(parent, resourceType); - this.superClass = this.buildSuperClass(); - this.specifiedAccessType = this.getResourceAccessType(); - this.specifiedAccessOrder = this.getResourceAccessOrder(); - } - - @Override - public JavaResourceType getJavaResourceType() { - return (JavaResourceType) super.getJavaResourceType(); - } - - @Override - public JaxbContextRoot getParent() { - return (JaxbContextRoot) super.getParent(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setSpecifiedAccessType_(this.getResourceAccessType()); - this.setSpecifiedAccessOrder_(this.getResourceAccessOrder()); - } - - @Override - public void update() { - super.update(); - this.setSuperClass(this.buildSuperClass()); - } - - - // ********** xml transient annotation ********** - - protected XmlTransientAnnotation getXmlTransientAnnotation() { - return (XmlTransientAnnotation) this.getJavaResourceType().getNonNullAnnotation(XmlTransientAnnotation.ANNOTATION_NAME); - } - - - // ********** JaxbType impl ********** - - public Kind getKind() { - return Kind.TRANSIENT; - } - - - // ********** super class ********** - - public JaxbClass getSuperClass() { - return this.superClass; - } - - protected void setSuperClass(JaxbClass superClass) { - JaxbClass old = this.superClass; - this.superClass = superClass; - this.firePropertyChanged(SUPER_CLASS_PROPERTY, old, superClass); - } - - protected JaxbClass buildSuperClass() { - HashSet visited = new HashSet(); - visited.add(this.getJavaResourceType()); - JaxbClass spc = this.getSuperClass(this.getJavaResourceType().getSuperclassQualifiedName(), visited); - if (spc == null) { - return null; - } - if (CollectionTools.contains(spc.getInheritanceHierarchy(), this)) { - return null; // short-circuit in this case, we have circular inheritance - } - return spc; - } - - /** - * The JPA spec allows non-persistent types in a persistent type's - * inheritance hierarchy. We check for a persistent type with the - * specified name in the persistence unit. If it is not found we use - * resource persistent type and look for *its* super type. - * - * The 'visited' collection is used to detect a cycle in the *resource* type - * inheritance hierarchy and prevent the resulting stack overflow. - * Any cycles in the *context* type inheritance hierarchy are handled in - * #buildSuperPersistentType(). - */ - protected JaxbClass getSuperClass(String typeName, Collection visited) { - if (typeName == null) { - return null; - } - JavaResourceType resourceType = (JavaResourceType) getJaxbProject().getJavaResourceType(typeName, JavaResourceAbstractType.Kind.TYPE); - if ((resourceType == null) || visited.contains(resourceType)) { - return null; - } - visited.add(resourceType); - JaxbClass spc = this.getClass(typeName); - return (spc != null && resourceType.isMapped()) ? spc : this.getSuperClass(resourceType.getSuperclassQualifiedName(), visited); // recurse - } - - protected JaxbClass getClass(String fullyQualifiedTypeName) { - return this.getParent().getClass(fullyQualifiedTypeName); - } - - - // ********** inheritance ********** - - public Iterable getInheritanceHierarchy() { - return this.getInheritanceHierarchyOf(this); - } - - public Iterable getAncestors() { - return this.getInheritanceHierarchyOf(this.superClass); - } - - protected Iterable getInheritanceHierarchyOf(JaxbClass start) { - // using a chain iterator to traverse up the inheritance tree - return new ChainIterable(start) { - @Override - protected JaxbClass nextLink(JaxbClass jaxbClass) { - return jaxbClass.getSuperClass(); - } - }; - } - - - // ********** access type ********** - - public XmlAccessType getAccessType() { - return (this.specifiedAccessType != null) ? this.specifiedAccessType : this.getDefaultAccessType(); - } - - public XmlAccessType getSpecifiedAccessType() { - return this.specifiedAccessType; - } - - public void setSpecifiedAccessType(XmlAccessType access) { - this.getAccessorTypeAnnotation().setValue(XmlAccessType.toJavaResourceModel(access)); - this.setSpecifiedAccessType_(access); - } - - protected void setSpecifiedAccessType_(XmlAccessType access) { - XmlAccessType old = this.specifiedAccessType; - this.specifiedAccessType = access; - this.firePropertyChanged(SPECIFIED_ACCESS_TYPE_PROPERTY, old, access); - } - - public XmlAccessType getDefaultAccessType() { - return null; - } - - protected XmlAccessType getResourceAccessType() { - return XmlAccessType.fromJavaResourceModel(this.getAccessorTypeAnnotation().getValue()); - } - - protected XmlAccessorTypeAnnotation getAccessorTypeAnnotation() { - return (XmlAccessorTypeAnnotation) getJavaResourceType().getNonNullAnnotation(XmlAccessorTypeAnnotation.ANNOTATION_NAME); - } - - - // ********** access order ********** - - public XmlAccessOrder getAccessOrder() { - return (this.specifiedAccessOrder != null) ? this.specifiedAccessOrder : this.getDefaultAccessOrder(); - } - - public XmlAccessOrder getSpecifiedAccessOrder() { - return this.specifiedAccessOrder; - } - - public void setSpecifiedAccessOrder(XmlAccessOrder accessOrder) { - this.getAccessorOrderAnnotation().setValue(XmlAccessOrder.toJavaResourceModel(accessOrder)); - this.setSpecifiedAccessOrder_(accessOrder); - } - - protected void setSpecifiedAccessOrder_(XmlAccessOrder accessOrder) { - XmlAccessOrder old = this.specifiedAccessOrder; - this.specifiedAccessOrder = accessOrder; - this.firePropertyChanged(SPECIFIED_ACCESS_ORDER_PROPERTY, old, accessOrder); - } - - public XmlAccessOrder getDefaultAccessOrder() { - return null; - } - - protected XmlAccessOrder getResourceAccessOrder() { - return XmlAccessOrder.fromJavaResourceModel(this.getAccessorOrderAnnotation().getValue()); - } - - protected XmlAccessorOrderAnnotation getAccessorOrderAnnotation() { - return (XmlAccessorOrderAnnotation) getJavaResourceType().getNonNullAnnotation(XmlAccessorOrderAnnotation.ANNOTATION_NAME); - } - - // **************** validation ******************************************** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return getXmlTransientAnnotation().getTextRange(astRoot); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaTypeXmlJavaTypeAdapter.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaTypeXmlJavaTypeAdapter.java deleted file mode 100644 index 4932837849..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaTypeXmlJavaTypeAdapter.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; - -public class GenericJavaTypeXmlJavaTypeAdapter - extends AbstractJavaXmlJavaTypeAdapter -{ - - public GenericJavaTypeXmlJavaTypeAdapter(JaxbPersistentClass parent, XmlJavaTypeAdapterAnnotation resource) { - super(parent, resource); - } - - @Override - public JaxbPersistentClass getParent() { - return (JaxbPersistentClass) super.getParent(); - } - - // ********** type ********** - @Override - protected String buildDefaultType() { - return getParent().getJavaResourceType().getQualifiedName(); - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAdaptable.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAdaptable.java deleted file mode 100644 index a533387c4e..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAdaptable.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.jaxb.core.JaxbNode; -import org.eclipse.jpt.jaxb.core.context.XmlAdaptable; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - - -class GenericJavaXmlAdaptable - extends AbstractJavaContextNode - implements XmlAdaptable { - - protected XmlJavaTypeAdapter xmlJavaTypeAdapter; - - protected XmlAdaptable.Owner owner; - - GenericJavaXmlAdaptable(JaxbNode parent, XmlAdaptable.Owner owner) { - super(parent); - this.owner = owner; - this.initializeXmlJavaTypeAdapter(); - } - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.syncXmlJavaTypeAdapter(); - } - - @Override - public void update() { - super.update(); - this.updateXmlJavaTypeAdapter(); - } - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.xmlJavaTypeAdapter == null ? this.owner.getResource().getTextRange(astRoot) : this.xmlJavaTypeAdapter.getResourceXmlJavaTypeAdapter().getTextRange(astRoot); - } - - public XmlJavaTypeAdapter getXmlJavaTypeAdapter() { - return this.xmlJavaTypeAdapter; - } - - public XmlJavaTypeAdapter addXmlJavaTypeAdapter() { - if (this.xmlJavaTypeAdapter != null) { - throw new IllegalStateException(); - } - XmlJavaTypeAdapterAnnotation annotation = (XmlJavaTypeAdapterAnnotation) this.owner.getResource().addAnnotation(0, XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME); - - XmlJavaTypeAdapter xmlJavaTypeAdapter = this.buildXmlJavaTypeAdapter(annotation); - this.setXmlJavaTypeAdapter_(xmlJavaTypeAdapter); - return xmlJavaTypeAdapter; - } - - protected XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation xmlJavaTypeAdapterAnnotation) { - return this.owner.buildXmlJavaTypeAdapter(xmlJavaTypeAdapterAnnotation); - } - - public void removeXmlJavaTypeAdapter() { - if (this.xmlJavaTypeAdapter == null) { - throw new IllegalStateException(); - } - this.owner.getResource().removeAnnotation(XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME); - this.setXmlJavaTypeAdapter_(null); - } - - protected void initializeXmlJavaTypeAdapter() { - XmlJavaTypeAdapterAnnotation annotation = this.getXmlJavaTypeAdapterAnnotation(); - if (annotation != null) { - this.xmlJavaTypeAdapter = this.buildXmlJavaTypeAdapter(annotation); - } - } - - protected XmlJavaTypeAdapterAnnotation getXmlJavaTypeAdapterAnnotation() { - return (XmlJavaTypeAdapterAnnotation) this.owner.getResource().getAnnotation(0, XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME); - } - - protected void syncXmlJavaTypeAdapter() { - XmlJavaTypeAdapterAnnotation annotation = this.getXmlJavaTypeAdapterAnnotation(); - if (annotation != null) { - if (this.getXmlJavaTypeAdapter() != null) { - this.getXmlJavaTypeAdapter().synchronizeWithResourceModel(); - } - else { - this.setXmlJavaTypeAdapter_(this.buildXmlJavaTypeAdapter(annotation)); - } - } - else { - this.setXmlJavaTypeAdapter_(null); - } - } - - protected void updateXmlJavaTypeAdapter() { - if (this.getXmlJavaTypeAdapter() != null) { - this.getXmlJavaTypeAdapter().update(); - } - } - - protected void setXmlJavaTypeAdapter_(XmlJavaTypeAdapter xmlJavaTypeAdapter) { - XmlJavaTypeAdapter oldXmlJavaTypeAdapter = this.xmlJavaTypeAdapter; - this.xmlJavaTypeAdapter = xmlJavaTypeAdapter; - this.owner.fireXmlAdapterChanged(oldXmlJavaTypeAdapter, xmlJavaTypeAdapter); - } - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - if (getXmlJavaTypeAdapter() != null) { - this.getXmlJavaTypeAdapter().validate(messages, reporter, astRoot); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAnyAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAnyAttributeMapping.java deleted file mode 100644 index 936a98ca90..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAnyAttributeMapping.java +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import java.util.Map; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlAdaptable; -import org.eclipse.jpt.jaxb.core.context.XmlAnyAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAnnotatedElement; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAnyAttributeAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaXmlAnyAttributeMapping - extends AbstractJavaAttributeMapping - implements XmlAnyAttributeMapping -{ - - protected final XmlAdaptable xmlAdaptable; - - - public GenericJavaXmlAnyAttributeMapping(JaxbPersistentAttribute parent) { - super(parent); - this.xmlAdaptable = buildXmlAdaptable(); - } - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.xmlAdaptable.synchronizeWithResourceModel(); - } - - @Override - public void update() { - super.update(); - this.xmlAdaptable.update(); - } - - public String getKey() { - return MappingKeys.XML_ANY_ATTRIBUTE_ATTRIBUTE_MAPPING_KEY; - } - - @Override - protected String getAnnotationName() { - return XmlAnyAttributeAnnotation.ANNOTATION_NAME; - } - - //****************** XmlJavaTypeAdapter ********************* - - public XmlAdaptable buildXmlAdaptable() { - return new GenericJavaXmlAdaptable(this, new XmlAdaptable.Owner() { - public JavaResourceAnnotatedElement getResource() { - return getJavaResourceAttribute(); - } - public XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation adapterAnnotation) { - return GenericJavaXmlAnyAttributeMapping.this.buildXmlJavaTypeAdapter(adapterAnnotation); - } - public void fireXmlAdapterChanged(XmlJavaTypeAdapter oldAdapter, XmlJavaTypeAdapter newAdapter) { - GenericJavaXmlAnyAttributeMapping.this.firePropertyChanged(XML_JAVA_TYPE_ADAPTER_PROPERTY, oldAdapter, newAdapter); - } - }); - } - - public XmlJavaTypeAdapter getXmlJavaTypeAdapter() { - return this.xmlAdaptable.getXmlJavaTypeAdapter(); - } - - public XmlJavaTypeAdapter addXmlJavaTypeAdapter() { - return this.xmlAdaptable.addXmlJavaTypeAdapter(); - } - - protected XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation xmlJavaTypeAdapterAnnotation) { - return new GenericJavaAttributeXmlJavaTypeAdapter(this, xmlJavaTypeAdapterAnnotation); - } - - public void removeXmlJavaTypeAdapter() { - this.xmlAdaptable.removeXmlJavaTypeAdapter(); - } - - //************* validation **************** - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - if (!getPersistentAttribute().isJavaResourceAttributeTypeSubTypeOf(Map.class.getName())) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_ANY_ATTRIBUTE_MAPPING_DEFINED_ON_NON_MAP, - this, - getValidationTextRange(astRoot))); - } - } - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAnyElementMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAnyElementMapping.java deleted file mode 100644 index 609ccdf0ef..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAnyElementMapping.java +++ /dev/null @@ -1,228 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlAdaptable; -import org.eclipse.jpt.jaxb.core.context.XmlAnyElementMapping; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.context.XmlMixed; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAnnotatedElement; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAnyElementAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlMixedAnnotation; - -public class GenericJavaXmlAnyElementMapping - extends AbstractJavaAttributeMapping - implements XmlAnyElementMapping -{ - - protected Boolean specifiedLax; - - protected String specifiedValue; - - protected XmlMixed xmlMixed; - - protected final XmlAdaptable xmlAdaptable; - - - public GenericJavaXmlAnyElementMapping(JaxbPersistentAttribute parent) { - super(parent); - this.specifiedLax = buildSpecifiedLax(); - this.specifiedValue = this.getResourceValueString(); - this.xmlAdaptable = buildXmlAdaptable(); - this.initializeXmlMixed(); - } - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setSpecifiedLax(buildSpecifiedLax()); - this.setSpecifiedValue_(this.getResourceValueString()); - this.xmlAdaptable.synchronizeWithResourceModel(); - this.syncXmlMixed(); - } - - @Override - public void update() { - super.update(); - this.xmlAdaptable.update(); - this.updateXmlMixed(); - } - - public String getKey() { - return MappingKeys.XML_ANY_ELEMENT_ATTRIBUTE_MAPPING_KEY; - } - - @Override - protected String getAnnotationName() { - return XmlAnyElementAnnotation.ANNOTATION_NAME; - } - - - //************ lax *************** - - public boolean isLax() { - return (this.getSpecifiedLax() == null) ? this.isDefaultLax() : this.getSpecifiedLax().booleanValue(); - } - - public boolean isDefaultLax() { - return DEFAULT_LAX; - } - - public Boolean getSpecifiedLax() { - return this.specifiedLax; - } - - public void setSpecifiedLax(Boolean newSpecifiedLax) { - this.getAnnotationForUpdate().setLax(newSpecifiedLax); - this.setSpecifiedLax_(newSpecifiedLax); - } - - protected void setSpecifiedLax_(Boolean newSpecifiedLax) { - Boolean oldLax = this.specifiedLax; - this.specifiedLax = newSpecifiedLax; - firePropertyChanged(SPECIFIED_LAX_PROPERTY, oldLax, newSpecifiedLax); - } - - protected Boolean buildSpecifiedLax() { - return getMappingAnnotation().getLax(); - } - - // ********** value ********** - - public String getValue() { - return this.getSpecifiedValue() == null ? this.getDefaultValue() : this.getSpecifiedValue(); - } - - public String getDefaultValue() { - return DEFAULT_VALUE; - } - - public String getSpecifiedValue() { - return this.specifiedValue; - } - - public void setSpecifiedValue(String location) { - this.getAnnotationForUpdate().setValue(location); - this.setSpecifiedValue_(location); - } - - protected void setSpecifiedValue_(String type) { - String old = this.specifiedValue; - this.specifiedValue = type; - this.firePropertyChanged(SPECIFIED_VALUE_PROPERTY, old, type); - } - - protected String getResourceValueString() { - return getMappingAnnotation().getValue(); - } - - //****************** XmlJavaTypeAdapter ********************* - - public XmlAdaptable buildXmlAdaptable() { - return new GenericJavaXmlAdaptable(this, new XmlAdaptable.Owner() { - public JavaResourceAnnotatedElement getResource() { - return getJavaResourceAttribute(); - } - public XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation adapterAnnotation) { - return GenericJavaXmlAnyElementMapping.this.buildXmlJavaTypeAdapter(adapterAnnotation); - } - public void fireXmlAdapterChanged(XmlJavaTypeAdapter oldAdapter, XmlJavaTypeAdapter newAdapter) { - GenericJavaXmlAnyElementMapping.this.firePropertyChanged(XML_JAVA_TYPE_ADAPTER_PROPERTY, oldAdapter, newAdapter); - } - }); - } - - public XmlJavaTypeAdapter getXmlJavaTypeAdapter() { - return this.xmlAdaptable.getXmlJavaTypeAdapter(); - } - - public XmlJavaTypeAdapter addXmlJavaTypeAdapter() { - return this.xmlAdaptable.addXmlJavaTypeAdapter(); - } - - protected XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation xmlJavaTypeAdapterAnnotation) { - return new GenericJavaAttributeXmlJavaTypeAdapter(this, xmlJavaTypeAdapterAnnotation); - } - - public void removeXmlJavaTypeAdapter() { - this.xmlAdaptable.removeXmlJavaTypeAdapter(); - } - - - //************ XmlMixed *************** - - public XmlMixed getXmlMixed() { - return this.xmlMixed; - } - - public XmlMixed addXmlMixed() { - if (this.xmlMixed != null) { - throw new IllegalStateException(); - } - XmlMixedAnnotation annotation = (XmlMixedAnnotation) this.getJavaResourceAttribute().addAnnotation(XmlMixedAnnotation.ANNOTATION_NAME); - - XmlMixed xmlMixed = this.buildXmlMixed(annotation); - this.setXmlMixed_(xmlMixed); - return xmlMixed; - } - - protected XmlMixed buildXmlMixed(XmlMixedAnnotation xmlMixedAnnotation) { - return new GenericJavaXmlMixed(this, xmlMixedAnnotation); - } - - public void removeXmlMixed() { - if (this.xmlMixed == null) { - throw new IllegalStateException(); - } - this.getJavaResourceAttribute().removeAnnotation(XmlMixedAnnotation.ANNOTATION_NAME); - this.setXmlMixed_(null); - } - - protected void initializeXmlMixed() { - XmlMixedAnnotation annotation = this.getXmlMixedAnnotation(); - if (annotation != null) { - this.xmlMixed = this.buildXmlMixed(annotation); - } - } - - protected XmlMixedAnnotation getXmlMixedAnnotation() { - return (XmlMixedAnnotation) this.getJavaResourceAttribute().getAnnotation(XmlMixedAnnotation.ANNOTATION_NAME); - } - - protected void syncXmlMixed() { - XmlMixedAnnotation annotation = this.getXmlMixedAnnotation(); - if (annotation != null) { - if (this.getXmlMixed() != null) { - this.getXmlMixed().synchronizeWithResourceModel(); - } - else { - this.setXmlMixed_(this.buildXmlMixed(annotation)); - } - } - else { - this.setXmlMixed_(null); - } - } - - protected void updateXmlMixed() { - if (this.getXmlMixed() != null) { - this.getXmlMixed().update(); - } - } - - protected void setXmlMixed_(XmlMixed xmlMixed) { - XmlMixed oldXmlMixed = this.xmlMixed; - this.xmlMixed = xmlMixed; - firePropertyChanged(XML_MIXED_PROPERTY, oldXmlMixed, xmlMixed); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttachmentRef.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttachmentRef.java deleted file mode 100644 index f6de872df5..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttachmentRef.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlAttachmentRef; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAttachmentRefAnnotation; - -public class GenericJavaXmlAttachmentRef - extends AbstractJavaContextNode - implements XmlAttachmentRef -{ - - protected final XmlAttachmentRefAnnotation resourceXmlAttachmentRef; - - public GenericJavaXmlAttachmentRef(JaxbAttributeMapping parent, XmlAttachmentRefAnnotation resource) { - super(parent); - this.resourceXmlAttachmentRef = resource; - } - - @Override - public JaxbAttributeMapping getParent() { - return (JaxbAttributeMapping) super.getParent(); - } - - protected JaxbPersistentAttribute getPersistentAttribute() { - return getParent().getParent(); - } - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.resourceXmlAttachmentRef.getTextRange(astRoot); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttributeMapping.java deleted file mode 100644 index 29adacbbfa..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttributeMapping.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlAttributeMapping; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAttributeAnnotation; - -public class GenericJavaXmlAttributeMapping - extends GenericJavaContainmentMapping - implements XmlAttributeMapping -{ - - - public GenericJavaXmlAttributeMapping(JaxbPersistentAttribute parent) { - super(parent); - } - - public String getKey() { - return MappingKeys.XML_ATTRIBUTE_ATTRIBUTE_MAPPING_KEY; - } - - @Override - protected String getAnnotationName() { - return XmlAttributeAnnotation.ANNOTATION_NAME; - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementMapping.java deleted file mode 100644 index c7d5751317..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementMapping.java +++ /dev/null @@ -1,223 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlElementMapping; -import org.eclipse.jpt.jaxb.core.context.XmlElementWrapper; -import org.eclipse.jpt.jaxb.core.resource.java.XmlElementAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlElementWrapperAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaXmlElementMapping - extends GenericJavaContainmentMapping - implements XmlElementMapping -{ - - protected Boolean specifiedNillable; - - protected String defaultValue; - - protected String specifiedType; - - protected XmlElementWrapper xmlElementWrapper; - - public GenericJavaXmlElementMapping(JaxbPersistentAttribute parent) { - super(parent); - this.specifiedNillable = this.buildSpecifiedNillable(); - this.defaultValue = this.buildDefaultValue(); - this.specifiedType = this.buildSpecifiedType(); - this.initializeXmlElementWrapper(); - } - - public String getKey() { - return MappingKeys.XML_ELEMENT_ATTRIBUTE_MAPPING_KEY; - } - - @Override - protected String getAnnotationName() { - return XmlElementAnnotation.ANNOTATION_NAME; - } - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setSpecifiedNillable_(this.buildSpecifiedNillable()); - this.setDefaultValue_(this.buildDefaultValue()); - this.setSpecifiedType_(this.buildSpecifiedType()); - this.syncXmlElementWrapper(); - } - - @Override - public void update() { - super.update(); - this.updateXmlElementWrapper(); - } - - //************ XmlElement.nillable *************** - - public boolean isNillable() { - return (this.getSpecifiedNillable() == null) ? this.isDefaultNillable() : this.getSpecifiedNillable().booleanValue(); - } - - public boolean isDefaultNillable() { - return DEFAULT_NILLABLE; - } - - public Boolean getSpecifiedNillable() { - return this.specifiedNillable; - } - - public void setSpecifiedNillable(Boolean newSpecifiedNillable) { - this.getAnnotationForUpdate().setNillable(newSpecifiedNillable); - this.setSpecifiedNillable_(newSpecifiedNillable); - } - - protected void setSpecifiedNillable_(Boolean newSpecifiedNillable) { - Boolean oldNillable = this.specifiedNillable; - this.specifiedNillable = newSpecifiedNillable; - firePropertyChanged(SPECIFIED_NILLABLE_PROPERTY, oldNillable, newSpecifiedNillable); - } - - protected Boolean buildSpecifiedNillable() { - return getMappingAnnotation() == null ? null : getMappingAnnotation().getNillable(); - } - - - //************ XmlElement.defaultValue *************** - - public String getDefaultValue() { - return this.defaultValue; - } - - public void setDefaultValue(String defaultValue) { - this.getAnnotationForUpdate().setDefaultValue(defaultValue); - this.setDefaultValue_(defaultValue); - } - - protected void setDefaultValue_(String defaultValue) { - String oldDefaultValue = this.defaultValue; - this.defaultValue = defaultValue; - firePropertyChanged(DEFAULT_VALUE_PROPERTY, oldDefaultValue, defaultValue); - } - - protected String buildDefaultValue() { - return getMappingAnnotation() == null ? null : getMappingAnnotation().getDefaultValue(); - } - - //************ XmlElement.type *************** - - public String getType() { - return getSpecifiedType() == null ? getDefaultType() : getSpecifiedType(); - } - - public String getDefaultType() { - //TODO calculate default type - return null; - } - - public String getSpecifiedType() { - return this.specifiedType; - } - - public void setSpecifiedType(String newSpecifiedType) { - this.getAnnotationForUpdate().setType(newSpecifiedType); - this.setSpecifiedType_(newSpecifiedType); - } - - protected void setSpecifiedType_(String newSpecifiedType) { - String oldType = this.specifiedType; - this.specifiedType = newSpecifiedType; - firePropertyChanged(SPECIFIED_TYPE_PROPERTY, oldType, newSpecifiedType); - } - - protected String buildSpecifiedType() { - return getMappingAnnotation() == null ? null : getMappingAnnotation().getType(); - } - - //************ XmlElementWrapper *************** - - public XmlElementWrapper getXmlElementWrapper() { - return this.xmlElementWrapper; - } - - public XmlElementWrapper addXmlElementWrapper() { - if (this.xmlElementWrapper != null) { - throw new IllegalStateException(); - } - XmlElementWrapperAnnotation annotation = (XmlElementWrapperAnnotation) this.getJavaResourceAttribute().addAnnotation(XmlElementWrapperAnnotation.ANNOTATION_NAME); - - XmlElementWrapper xmlElementWrapper = this.buildXmlElementWrapper(annotation); - this.setXmlElementWrapper_(xmlElementWrapper); - return xmlElementWrapper; - } - - protected XmlElementWrapper buildXmlElementWrapper(XmlElementWrapperAnnotation xmlElementWrapperAnnotation) { - return new GenericJavaXmlElementWrapper(this, xmlElementWrapperAnnotation); - } - - public void removeXmlElementWrapper() { - if (this.xmlElementWrapper == null) { - throw new IllegalStateException(); - } - this.getJavaResourceAttribute().removeAnnotation(XmlElementWrapperAnnotation.ANNOTATION_NAME); - this.setXmlElementWrapper_(null); - } - - protected void initializeXmlElementWrapper() { - XmlElementWrapperAnnotation annotation = this.getXmlElementWrapperAnnotation(); - if (annotation != null) { - this.xmlElementWrapper = this.buildXmlElementWrapper(annotation); - } - } - - protected XmlElementWrapperAnnotation getXmlElementWrapperAnnotation() { - return (XmlElementWrapperAnnotation) this.getJavaResourceAttribute().getAnnotation(XmlElementWrapperAnnotation.ANNOTATION_NAME); - } - - protected void syncXmlElementWrapper() { - XmlElementWrapperAnnotation annotation = this.getXmlElementWrapperAnnotation(); - if (annotation != null) { - if (this.getXmlElementWrapper() != null) { - this.getXmlElementWrapper().synchronizeWithResourceModel(); - } - else { - this.setXmlElementWrapper_(this.buildXmlElementWrapper(annotation)); - } - } - else { - this.setXmlElementWrapper_(null); - } - } - - protected void updateXmlElementWrapper() { - if (this.getXmlElementWrapper() != null) { - this.getXmlElementWrapper().update(); - } - } - - protected void setXmlElementWrapper_(XmlElementWrapper xmlElementWrapper) { - XmlElementWrapper oldXmlElementWrapper = this.xmlElementWrapper; - this.xmlElementWrapper = xmlElementWrapper; - firePropertyChanged(XML_ELEMENT_WRAPPER_PROPERTY, oldXmlElementWrapper, xmlElementWrapper); - } - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - if (this.getXmlElementWrapper() != null) { - this.getXmlElementWrapper().validate(messages, reporter, astRoot); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementWrapper.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementWrapper.java deleted file mode 100644 index f8b0958d2d..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementWrapper.java +++ /dev/null @@ -1,209 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.Collection; -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlElementWrapper; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.XmlElementWrapperAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaXmlElementWrapper - extends AbstractJavaContextNode - implements XmlElementWrapper -{ - - protected final XmlElementWrapperAnnotation resourceXmlElementWrapper; - - protected String specifiedName; - - protected Boolean specifiedRequired; - - protected String specifiedNamespace; - - protected Boolean specifiedNillable; - - public GenericJavaXmlElementWrapper(JaxbAttributeMapping parent, XmlElementWrapperAnnotation resource) { - super(parent); - this.resourceXmlElementWrapper = resource; - this.specifiedName = buildSpecifiedName(); - this.specifiedNamespace = buildSpecifiedNamespace(); - this.specifiedRequired = buildSpecifiedRequired(); - this.specifiedNillable = this.buildSpecifiedNillable(); - } - - @Override - public JaxbAttributeMapping getParent() { - return (JaxbAttributeMapping) super.getParent(); - } - - protected JaxbPersistentAttribute getPersistentAttribute() { - return getParent().getParent(); - } - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - setSpecifiedName_(buildSpecifiedName()); - setSpecifiedNamespace_(buildSpecifiedNamespace()); - setSpecifiedRequired_(buildSpecifiedRequired()); - this.setSpecifiedNillable_(this.buildSpecifiedNillable()); - } - - - //************ XmlElementWrapper.name *************** - - public String getName() { - return this.getSpecifiedName() == null ? this.getDefaultName() : getSpecifiedName(); - } - - public String getDefaultName() { - return getParent().getParent().getName(); - } - - public String getSpecifiedName() { - return this.specifiedName; - } - - public void setSpecifiedName(String name) { - this.resourceXmlElementWrapper.setName(name); - this.setSpecifiedName_(name); - } - - protected void setSpecifiedName_(String name) { - String old = this.specifiedName; - this.specifiedName = name; - firePropertyChanged(SPECIFIED_NAME_PROPERTY, old, name); - } - - protected String buildSpecifiedName() { - return this.resourceXmlElementWrapper.getName(); - } - - - //************ XmlElementWrapper.required *************** - - public boolean isRequired() { - return (this.getSpecifiedRequired() == null) ? this.isDefaultRequired() : this.getSpecifiedRequired().booleanValue(); - } - - public boolean isDefaultRequired() { - return DEFAULT_REQUIRED; - } - - public Boolean getSpecifiedRequired() { - return this.specifiedRequired; - } - - public void setSpecifiedRequired(Boolean newSpecifiedRequired) { - this.resourceXmlElementWrapper.setRequired(newSpecifiedRequired); - this.setSpecifiedRequired_(newSpecifiedRequired); - } - - protected void setSpecifiedRequired_(Boolean newSpecifiedRequired) { - Boolean oldRequired = this.specifiedRequired; - this.specifiedRequired = newSpecifiedRequired; - firePropertyChanged(SPECIFIED_REQUIRED_PROPERTY, oldRequired, newSpecifiedRequired); - } - - protected Boolean buildSpecifiedRequired() { - return this.resourceXmlElementWrapper.getRequired(); - } - - - //************ XmlElementWrapper.namespace *************** - - public String getNamespace() { - return getSpecifiedNamespace() == null ? getDefaultNamespace() : getSpecifiedNamespace(); - } - - public String getDefaultNamespace() { - return null; - //TODO what is the default namespace? Is the default namespace in GeneraicJavaContainmentMapping even right? ask Paul - //return getPersistentAttribute().getParent().getNamespace(); - } - - public String getSpecifiedNamespace() { - return this.specifiedNamespace; - } - - public void setSpecifiedNamespace(String newSpecifiedNamespace) { - this.resourceXmlElementWrapper.setNamespace(newSpecifiedNamespace); - this.setSpecifiedNamespace_(newSpecifiedNamespace); - } - - protected void setSpecifiedNamespace_(String newSpecifiedNamespace) { - String oldNamespace = this.specifiedNamespace; - this.specifiedNamespace = newSpecifiedNamespace; - firePropertyChanged(SPECIFIED_NAMESPACE_PROPERTY, oldNamespace, newSpecifiedNamespace); - } - - protected String buildSpecifiedNamespace() { - return this.resourceXmlElementWrapper.getNamespace(); - } - - //************ XmlElementWrapper.nillable *************** - - public boolean isNillable() { - return (this.getSpecifiedNillable() == null) ? this.isDefaultNillable() : this.getSpecifiedNillable().booleanValue(); - } - - public boolean isDefaultNillable() { - return DEFAULT_NILLABLE; - } - - public Boolean getSpecifiedNillable() { - return this.specifiedNillable; - } - - public void setSpecifiedNillable(Boolean newSpecifiedNillable) { - this.resourceXmlElementWrapper.setNillable(newSpecifiedNillable); - this.setSpecifiedNillable_(newSpecifiedNillable); - } - - protected void setSpecifiedNillable_(Boolean newSpecifiedNillable) { - Boolean oldNillable = this.specifiedNillable; - this.specifiedNillable = newSpecifiedNillable; - firePropertyChanged(SPECIFIED_NILLABLE_PROPERTY, oldNillable, newSpecifiedNillable); - } - - protected Boolean buildSpecifiedNillable() { - return this.resourceXmlElementWrapper.getNillable(); - } - - - //************* validation **************** - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - if (!getPersistentAttribute().isJavaResourceAttributeTypeSubTypeOf(Collection.class.getName()) && !getPersistentAttribute().isJavaResourceAttributeTypeArray()) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_ELEMENT_WRAPPER_DEFINED_ON_NON_ARRAY_NON_COLLECTION, - this, - getValidationTextRange(astRoot))); - } - } - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.resourceXmlElementWrapper.getTextRange(astRoot); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlID.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlID.java deleted file mode 100644 index 147f4f32cc..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlID.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.jaxb.core.context.JaxbContainmentMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlID; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.XmlIDAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaXmlID - extends AbstractJavaContextNode - implements XmlID -{ - - protected final XmlIDAnnotation resourceXmlID; - - public GenericJavaXmlID(JaxbContainmentMapping parent, XmlIDAnnotation resource) { - super(parent); - this.resourceXmlID = resource; - } - - @Override - public JaxbContainmentMapping getParent() { - return (JaxbContainmentMapping) super.getParent(); - } - - protected JaxbPersistentAttribute getPersistentAttribute() { - return getParent().getParent(); - } - - - //************* validation **************** - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - if (!getPersistentAttribute().isJavaResourceAttributeTypeSubTypeOf(String.class.getName())) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_ID_DEFINED_ON_NON_STRING, - this, - getValidationTextRange(astRoot))); - } - } - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.resourceXmlID.getTextRange(astRoot); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlIDREF.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlIDREF.java deleted file mode 100644 index 91e31f80d8..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlIDREF.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.XmlIDREF; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.XmlIDREFAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaXmlIDREF - extends AbstractJavaContextNode - implements XmlIDREF -{ - - protected final XmlIDREFAnnotation resourceXmlIDREF; - - public GenericJavaXmlIDREF(JaxbAttributeMapping parent, XmlIDREFAnnotation resource) { - super(parent); - this.resourceXmlIDREF = resource; - } - - @Override - public JaxbAttributeMapping getParent() { - return (JaxbAttributeMapping) super.getParent(); - } - - protected JaxbPersistentAttribute getPersistentAttribute() { - return getParent().getParent(); - } - - - //************* validation **************** - /** - * From the JAXB spec section 8.9.12 XmlIDREF: - *

- * The following mapping constraints must be enforced:

    - *
  • If the type of the field or property is a collection type, then the collection - * item type must contain a property or field annotated with @XmlID. - *
  • If the field or property is not a collection type, then the type of the - * property or field must contain a property or field annotated with @XmlID. - *
- *

- * Note: If the collection item type or the type of the property (for non collection type) - * is java.lang.Object, then the instance must contain a property/field annotated with @XmlID attribute. - */ - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - if (getPersistentAttribute().getJavaResourceAttributeTypeName() == Object.class.getName()) { - //The instance must contain a property/field annotated with @XmlID attribute, but we cannot validate the instance - return; - } - String typeName = getPersistentAttribute().getJavaResourceAttributeTypeName(); - JaxbPersistentClass persistentClass = getContextRoot().getPersistentClass(typeName); - if (persistentClass != null) { - if (!persistentClass.containsXmlId()) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_IDREF_TYPE_DOES_NOT_CONTAIN_XML_ID, - new String[] {getPersistentAttribute().getName(), typeName}, - this, - getValidationTextRange(astRoot))); - } - } - else { - //do we validate this case?? - } - } - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.resourceXmlIDREF.getTextRange(astRoot); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlList.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlList.java deleted file mode 100644 index 33fd6e75d8..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlList.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.Collection; -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.jaxb.core.context.JaxbContainmentMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlList; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.XmlListAnnotation; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaXmlList - extends AbstractJavaContextNode - implements XmlList -{ - - protected final XmlListAnnotation resourceXmlList; - - public GenericJavaXmlList(JaxbContainmentMapping parent, XmlListAnnotation resource) { - super(parent); - this.resourceXmlList = resource; - } - - @Override - public JaxbContainmentMapping getParent() { - return (JaxbContainmentMapping) super.getParent(); - } - - protected JaxbPersistentAttribute getPersistentAttribute() { - return getParent().getParent(); - } - - - //************* validation **************** - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - if (!getPersistentAttribute().isJavaResourceAttributeTypeSubTypeOf(Collection.class.getName()) && !getPersistentAttribute().isJavaResourceAttributeTypeArray()) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_LIST_DEFINED_ON_NON_ARRAY_NON_COLLECTION, - this, - getValidationTextRange(astRoot))); - } - } - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.resourceXmlList.getTextRange(astRoot); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlMixed.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlMixed.java deleted file mode 100644 index 066c6eaec4..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlMixed.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlMixed; -import org.eclipse.jpt.jaxb.core.resource.java.XmlMixedAnnotation; - -public class GenericJavaXmlMixed - extends AbstractJavaContextNode - implements XmlMixed -{ - - protected final XmlMixedAnnotation resourceXmlMixed; - - public GenericJavaXmlMixed(JaxbAttributeMapping parent, XmlMixedAnnotation resource) { - super(parent); - this.resourceXmlMixed = resource; - } - - @Override - public JaxbAttributeMapping getParent() { - return (JaxbAttributeMapping) super.getParent(); - } - - protected JaxbPersistentAttribute getPersistentAttribute() { - return getParent().getParent(); - } - - - //************* validation **************** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.resourceXmlMixed.getTextRange(astRoot); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlNs.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlNs.java deleted file mode 100644 index f7ea03d94a..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlNs.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.context.XmlNs; -import org.eclipse.jpt.jaxb.core.context.XmlSchema; -import org.eclipse.jpt.jaxb.core.internal.context.AbstractJaxbContextNode; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.jpt.jaxb.core.resource.java.XmlNsAnnotation; - -public class GenericJavaXmlNs - extends AbstractJaxbContextNode - implements XmlNs -{ - - protected final XmlNsAnnotation resourceXmlNs; - - protected String namespaceURI; - - protected String prefix; - - public GenericJavaXmlNs(XmlSchema parent, XmlNsAnnotation xmlNsAnnotation) { - super(parent); - this.resourceXmlNs = xmlNsAnnotation; - this.namespaceURI = this.getResourceNamespaceURI(); - this.prefix = this.getResourcePrefix(); - } - - public XmlNsAnnotation getResourceXmlNs() { - return this.resourceXmlNs; - } - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setNamespaceURI_(this.getResourceNamespaceURI()); - this.setPrefix_(this.getResourcePrefix()); - } - - - @Override - public JaxbPackageInfo getParent() { - return (JaxbPackageInfo) super.getParent(); - } - - protected JavaResourcePackage getResourcePackage() { - return getParent().getResourcePackage(); - } - - - // ********** namespaceURI ********** - - public String getNamespaceURI() { - return this.namespaceURI; - } - - public void setNamespaceURI(String namespace) { - this.resourceXmlNs.setNamespaceURI(namespace); - this.setNamespaceURI_(namespace); - } - - protected void setNamespaceURI_(String namespaceURI) { - String old = this.namespaceURI; - this.namespaceURI = namespaceURI; - this.firePropertyChanged(NAMESPACE_URI_PROPERTY, old, namespaceURI); - } - - protected String getResourceNamespaceURI() { - return this.resourceXmlNs.getNamespaceURI(); - } - - // ********** prefix ********** - - public String getPrefix() { - return this.prefix; - } - - public void setPrefix(String prefix) { - this.resourceXmlNs.setPrefix(prefix); - this.setPrefix_(prefix); - } - - protected void setPrefix_(String prefix) { - String old = this.prefix; - this.prefix = prefix; - this.firePropertyChanged(PREFIX_PROPERTY, old, prefix); - } - - protected String getResourcePrefix() { - return this.resourceXmlNs.getPrefix(); - } - - - //****************** miscellaneous ******************** - - @Override - public void toString(StringBuilder sb) { - super.toString(sb); - sb.append(this.namespaceURI); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlRootElement.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlRootElement.java deleted file mode 100644 index eb90f36a80..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlRootElement.java +++ /dev/null @@ -1,238 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.beans.Introspector; -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentType; -import org.eclipse.jpt.jaxb.core.context.XmlRootElement; -import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; -import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; -import org.eclipse.jpt.jaxb.core.resource.java.XmlRootElementAnnotation; -import org.eclipse.jpt.jaxb.core.xsd.XsdElementDeclaration; -import org.eclipse.jpt.jaxb.core.xsd.XsdSchema; -import org.eclipse.jpt.jaxb.core.xsd.XsdTypeDefinition; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -public class GenericJavaXmlRootElement - extends AbstractJavaContextNode - implements XmlRootElement { - - protected final XmlRootElementAnnotation resourceXmlRootElementAnnotation; - - protected String specifiedName; - - protected String specifiedNamespace; - - - public GenericJavaXmlRootElement(JaxbPersistentType parent, XmlRootElementAnnotation resourceXmlRootElementAnnotation) { - super(parent); - this.resourceXmlRootElementAnnotation = resourceXmlRootElementAnnotation; - this.specifiedName = this.getResourceName(); - this.specifiedNamespace = this.getResourceNamespace(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setSpecifiedName_(this.getResourceName()); - this.setSpecifiedNamespace_(this.getResourceNamespace()); - } - - - @Override - public JaxbPersistentType getParent() { - return (JaxbPersistentType) super.getParent(); - } - - - // ********** name ********** - - public String getName() { - return (this.specifiedName != null) ? this.specifiedName : getDefaultName(); - } - - public String getSpecifiedName() { - return this.specifiedName; - } - - public void setSpecifiedName(String name) { - this.resourceXmlRootElementAnnotation.setName(name); - this.setSpecifiedName_(name); - } - - protected void setSpecifiedName_(String name) { - String old = this.specifiedName; - this.specifiedName = name; - this.firePropertyChanged(SPECIFIED_NAME_PROPERTY, old, name); - } - - public String getDefaultName() { - return Introspector.decapitalize(getParent().getSimpleName()); - } - - protected String getResourceName() { - return this.resourceXmlRootElementAnnotation.getName(); - } - - - // ********** namespace ********** - - public String getNamespace() { - return (this.specifiedNamespace != null) ? this.specifiedNamespace : getDefaultNamespace(); - } - - public String getSpecifiedNamespace() { - return this.specifiedNamespace; - } - - public void setSpecifiedNamespace(String namespace) { - this.resourceXmlRootElementAnnotation.setNamespace(namespace); - this.setSpecifiedNamespace_(namespace); - } - - protected void setSpecifiedNamespace_(String namespace) { - String old = this.specifiedNamespace; - this.specifiedNamespace = namespace; - this.firePropertyChanged(SPECIFIED_NAMESPACE_PROPERTY, old, namespace); - } - - public String getDefaultNamespace() { - return getParent().getJaxbPackage().getNamespace(); - } - - protected String getResourceNamespace() { - return this.resourceXmlRootElementAnnotation.getNamespace(); - } - - - // **************** content assist **************************************** - - @Override - public Iterable getJavaCompletionProposals( - int pos, Filter filter, CompilationUnit astRoot) { - Iterable result = super.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - - if (namespaceTouches(pos, astRoot)) { - return getNamespaceProposals(filter); - } - - if (nameTouches(pos, astRoot)) { - return getNameProposals(filter); - } - - return EmptyIterable.instance(); - } - - protected boolean namespaceTouches(int pos, CompilationUnit astRoot) { - return this.resourceXmlRootElementAnnotation.namespaceTouches(pos, astRoot); - } - - protected Iterable getNamespaceProposals(Filter filter) { - XsdSchema schema = getParent().getJaxbPackage().getXsdSchema(); - if (schema == null) { - return EmptyIterable.instance(); - } - return schema.getNamespaceProposals(filter); - } - - protected boolean nameTouches(int pos, CompilationUnit astRoot) { - return this.resourceXmlRootElementAnnotation.nameTouches(pos, astRoot); - } - - protected Iterable getNameProposals(Filter filter) { - String namespace = getNamespace(); - XsdSchema schema = getParent().getJaxbPackage().getXsdSchema(); - if (schema == null) { - return EmptyIterable.instance(); - } - return StringTools.convertToJavaStringLiterals( - new FilteringIterable( - new TransformationIterable(schema.getElementDeclarations(namespace)) { - @Override - protected String transform(XsdElementDeclaration o) { - return o.getName(); - } - }, - filter)); - } - - - // **************** validation ******************************************** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.resourceXmlRootElementAnnotation.getTextRange(astRoot); - } - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - - String name = getName(); - String namespace = getNamespace(); - - XsdSchema schema = getParent().getJaxbPackage().getXsdSchema(); - - if (schema != null) { - // element must resolve - XsdElementDeclaration schemaElement = schema.getElementDeclaration(namespace, name); - if (schemaElement == null) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_ROOT_ELEMENT_UNRESOLVED_SCHEMA_ELEMENT, - new String[] {name, namespace}, - this, - this.resourceXmlRootElementAnnotation.getTextRange(astRoot))); - } - else { - // element type must agree with parent's schema type - XsdTypeDefinition schemaType = getParent().getXsdTypeDefinition(); - if (schemaType != null) { - if (! schemaType.equals(schemaElement.getType())) { - messages.add( - DefaultValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JaxbValidationMessages.XML_ROOT_ELEMENT_TYPE_CONFLICTS_WITH_XML_TYPE, - new String[] {name, namespace}, - this, - this.resourceXmlRootElementAnnotation.getTextRange(astRoot))); - } - } - } - } - } - - - //****************** miscellaneous ******************** - - @Override - public void toString(StringBuilder sb) { - super.toString(sb); - sb.append("namespace = \"" + this.specifiedNamespace + "\""); - sb.append("; name = \"" + this.specifiedName + "\""); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchema.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchema.java deleted file mode 100644 index 61ea9e2b7f..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchema.java +++ /dev/null @@ -1,287 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; -import org.eclipse.jpt.jaxb.core.context.XmlNs; -import org.eclipse.jpt.jaxb.core.context.XmlNsForm; -import org.eclipse.jpt.jaxb.core.context.XmlSchema; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage; -import org.eclipse.jpt.jaxb.core.resource.java.XmlNsAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaAnnotation; - -public class GenericJavaXmlSchema - extends AbstractJavaContextNode - implements XmlSchema { - - protected String specifiedNamespace; - - protected String location; - - protected XmlNsForm attributeFormDefault; - - protected XmlNsForm elementFormDefault; - - protected final XmlNsPrefixContainer xmlNsPrefixContainer; - - - public GenericJavaXmlSchema(JaxbPackageInfo parent) { - super(parent); - this.specifiedNamespace = this.getResourceNamespace(); - this.location = this.getResourceLocation(); - this.attributeFormDefault = this.getResourceAttributeFormDefault(); - this.elementFormDefault = this.getResourceElementFormDefault(); - this.xmlNsPrefixContainer = new XmlNsPrefixContainer(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setSpecifiedNamespace_(this.getResourceNamespace()); - this.setLocation_(this.getResourceLocation()); - this.setAttributeFormDefault_(this.getResourceAttributeFormDefault()); - this.setElementFormDefault_(this.getResourceElementFormDefault()); - this.syncXmlNsPrefixes(); - } - - @Override - public void update() { - super.update(); - this.updateXmlNsPrefixes(); - } - - @Override - public JaxbPackageInfo getParent() { - return (JaxbPackageInfo) super.getParent(); - } - - protected JavaResourcePackage getResourcePackage() { - return getParent().getResourcePackage(); - } - - - // ********** xml schema annotation ********** - - protected XmlSchemaAnnotation getXmlSchemaAnnotation() { - return (XmlSchemaAnnotation) this.getResourcePackage().getNonNullAnnotation(XmlSchemaAnnotation.ANNOTATION_NAME); - } - - // ********** namespace ********** - - public String getNamespace() { - return (this.specifiedNamespace == null) ? "" : this.specifiedNamespace; - } - - public String getSpecifiedNamespace() { - return this.specifiedNamespace; - } - - public void setSpecifiedNamespace(String namespace) { - this.getXmlSchemaAnnotation().setNamespace(namespace); - this.setSpecifiedNamespace_(namespace); - } - - protected void setSpecifiedNamespace_(String namespace) { - String old = this.specifiedNamespace; - this.specifiedNamespace = namespace; - this.firePropertyChanged(SPECIFIED_NAMESPACE_PROPERTY, old, namespace); - } - - protected String getResourceNamespace() { - return getXmlSchemaAnnotation().getNamespace(); - } - - - // ********** location ********** - - public String getLocation() { - return this.location; - } - - public void setLocation(String location) { - this.getXmlSchemaAnnotation().setLocation(location); - this.setLocation_(location); - } - - protected void setLocation_(String location) { - String old = this.location; - this.location = location; - this.firePropertyChanged(LOCATION_PROPERTY, old, location); - } - - protected String getResourceLocation() { - return getXmlSchemaAnnotation().getLocation(); - } - - - // ********** attribute form default ********** - - public XmlNsForm getAttributeFormDefault() { - return this.attributeFormDefault; - } - - public void setAttributeFormDefault(XmlNsForm xmlNsForm) { - this.getXmlSchemaAnnotation().setAttributeFormDefault(XmlNsForm.toJavaResourceModel(xmlNsForm)); - this.setAttributeFormDefault_(xmlNsForm); - } - - protected void setAttributeFormDefault_(XmlNsForm xmlNsForm) { - XmlNsForm old = this.attributeFormDefault; - this.attributeFormDefault = xmlNsForm; - this.firePropertyChanged(ATTRIBUTE_FROM_DEFAULT_PROPERTY, old, xmlNsForm); - } - - protected XmlNsForm getResourceAttributeFormDefault() { - return XmlNsForm.fromJavaResourceModel(getXmlSchemaAnnotation().getAttributeFormDefault()); - } - - - // ********** element form default ********** - - public XmlNsForm getElementFormDefault() { - return this.elementFormDefault; - } - - public void setElementFormDefault(XmlNsForm xmlNsForm) { - this.getXmlSchemaAnnotation().setElementFormDefault(XmlNsForm.toJavaResourceModel(xmlNsForm)); - this.setElementFormDefault_(xmlNsForm); - } - - protected void setElementFormDefault_(XmlNsForm xmlNsForm) { - XmlNsForm old = this.elementFormDefault; - this.elementFormDefault = xmlNsForm; - this.firePropertyChanged(ELEMENT_FROM_DEFAULT_PROPERTY, old, xmlNsForm); - } - - protected XmlNsForm getResourceElementFormDefault() { - return XmlNsForm.fromJavaResourceModel(getXmlSchemaAnnotation().getElementFormDefault()); - } - - - // ********** xml namespace prefixes ********** - - public ListIterable getXmlNsPrefixes() { - return this.xmlNsPrefixContainer.getContextElements(); - } - - public int getXmlNsPrefixesSize() { - return this.xmlNsPrefixContainer.getContextElementsSize(); - } - - public XmlNs addXmlNsPrefix(int index) { - XmlNsAnnotation annotation = this.getXmlSchemaAnnotation().addXmlns(index); - return this.xmlNsPrefixContainer.addContextElement(index, annotation); - } - - public void removeXmlNsPrefix(XmlNs xmlNsPrefix) { - this.removeXmlNsPrefix(this.xmlNsPrefixContainer.indexOfContextElement(xmlNsPrefix)); - } - - public void removeXmlNsPrefix(int index) { - this.getXmlSchemaAnnotation().removeXmlns(index); - this.xmlNsPrefixContainer.removeContextElement(index); - } - - public void moveXmlNsPrefix(int targetIndex, int sourceIndex) { - this.getXmlSchemaAnnotation().moveXmlns(targetIndex, sourceIndex); - this.xmlNsPrefixContainer.moveContextElement(targetIndex, sourceIndex); - } - - protected XmlNs buildXmlNs(XmlNsAnnotation xmlNsAnnotation) { - return this.getFactory().buildJavaXmlNs(this, xmlNsAnnotation); - } - - protected void syncXmlNsPrefixes() { - this.xmlNsPrefixContainer.synchronizeWithResourceModel(); - } - - protected void updateXmlNsPrefixes() { - this.xmlNsPrefixContainer.update(); - } - - protected ListIterable getXmlNsAnnotations() { - return getXmlSchemaAnnotation().getXmlns(); - } - - - // **************** content assist **************************************** - - @Override - public Iterable getJavaCompletionProposals( - int pos, Filter filter, CompilationUnit astRoot) { - Iterable result = super.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - - if (namespaceTouches(pos, astRoot)) { - return getNamespaceProposals(filter); - } - - return EmptyIterable.instance(); - } - - protected boolean namespaceTouches(int pos, CompilationUnit astRoot) { - return getXmlSchemaAnnotation().namespaceTouches(pos, astRoot); - } - - protected Iterable getNamespaceProposals(Filter filter) { - return StringTools.convertToJavaStringLiterals( - new FilteringIterable( - getJaxbProject().getSchemaLibrary().getSchemaLocations().keySet(), filter)); - } - - - // **************** validation ******************************************** - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return getXmlSchemaAnnotation().getTextRange(astRoot); - } - - - /** - * xml ns prefix container adapter - */ - protected class XmlNsPrefixContainer - extends ContextListContainer { - - @Override - protected String getContextElementsPropertyName() { - return XML_NS_PREFIXES_LIST; - } - - @Override - protected XmlNs buildContextElement(XmlNsAnnotation resourceElement) { - return GenericJavaXmlSchema.this.buildXmlNs(resourceElement); - } - - @Override - protected ListIterable getResourceElements() { - return GenericJavaXmlSchema.this.getXmlNsAnnotations(); - } - - @Override - protected XmlNsAnnotation getResourceElement(XmlNs contextElement) { - return contextElement.getResourceXmlNs(); - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchemaType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchemaType.java deleted file mode 100644 index a9d0c4dabc..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchemaType.java +++ /dev/null @@ -1,196 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.Filter; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbContextNode; -import org.eclipse.jpt.jaxb.core.context.JaxbPackage; -import org.eclipse.jpt.jaxb.core.context.XmlSchemaType; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation; -import org.eclipse.jpt.jaxb.core.xsd.XsdSchema; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; -import org.eclipse.xsd.util.XSDUtil; - -public abstract class GenericJavaXmlSchemaType - extends AbstractJavaContextNode - implements XmlSchemaType { - - protected final XmlSchemaTypeAnnotation xmlSchemaTypeAnnotation; - - protected String name; - - protected String specifiedNamespace; - - protected String type; - - - protected GenericJavaXmlSchemaType(JaxbContextNode parent, XmlSchemaTypeAnnotation xmlSchemaTypeAnnotation) { - super(parent); - this.xmlSchemaTypeAnnotation = xmlSchemaTypeAnnotation; - this.name = this.getResourceName(); - this.specifiedNamespace = this.getResourceNamespace(); - this.type = this.getResourceTypeString(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setName_(this.getResourceName()); - this.setNamespace_(this.getResourceNamespace()); - this.setType_(this.getResourceTypeString()); - } - - - // ********** xml schema type annotation ********** - - public XmlSchemaTypeAnnotation getResourceXmlSchemaType() { - return this.xmlSchemaTypeAnnotation; - } - - // ********** name ********** - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.xmlSchemaTypeAnnotation.setName(name); - this.setName_(name); - } - - protected void setName_(String name) { - String old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - - protected String getResourceName() { - return this.xmlSchemaTypeAnnotation.getName(); - } - - // ********** namespace ********** - - public String getNamespace() { - return getSpecifiedNamespace() == null ? getDefaultNamespace() : getSpecifiedNamespace(); - } - - public String getDefaultNamespace() { - return XSDUtil.SCHEMA_FOR_SCHEMA_URI_2001; - } - - public String getSpecifiedNamespace() { - return this.specifiedNamespace; - } - - public void setSpecifiedNamespace(String location) { - this.xmlSchemaTypeAnnotation.setNamespace(location); - this.setNamespace_(location); - } - - protected void setNamespace_(String namespace) { - String old = this.specifiedNamespace; - this.specifiedNamespace = namespace; - this.firePropertyChanged(SPECIFIED_NAMESPACE_PROPERTY, old, namespace); - } - - protected String getResourceNamespace() { - return this.xmlSchemaTypeAnnotation.getNamespace(); - } - - - // ********** type ********** - - public String getType() { - return this.type; - } - - public void setType(String location) { - this.xmlSchemaTypeAnnotation.setType(location); - this.setType_(location); - } - - protected void setType_(String type) { - String old = this.type; - this.type = type; - this.firePropertyChanged(TYPE_PROPERTY, old, type); - } - - protected String getResourceTypeString() { - return this.xmlSchemaTypeAnnotation.getType(); - } - - @Override - public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - } - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.xmlSchemaTypeAnnotation.getTextRange(astRoot); - } - - - // *********** content assist *********** - - @Override - public Iterable getJavaCompletionProposals( - int pos, Filter filter, CompilationUnit astRoot) { - Iterable result = super.getJavaCompletionProposals(pos, filter, astRoot); - if (! CollectionTools.isEmpty(result)) { - return result; - } - - if (namespaceTouches(pos, astRoot)) { - return getNamespaceProposals(filter); - } - - if (nameTouches(pos, astRoot)) { - return getNameProposals(filter); - } - - return EmptyIterable.instance(); - } - - protected boolean namespaceTouches(int pos, CompilationUnit astRoot) { - return getResourceXmlSchemaType().namespaceTouches(pos, astRoot); - } - - protected Iterable getNamespaceProposals(Filter filter) { - XsdSchema schema = getJaxbPackage().getXsdSchema(); - if (schema == null) { - return EmptyIterable.instance(); - } - return schema.getNamespaceProposals(filter); - } - - protected boolean nameTouches(int pos, CompilationUnit astRoot) { - return getResourceXmlSchemaType().nameTouches(pos, astRoot); - } - - protected Iterable getNameProposals(Filter filter) { - XsdSchema schema = getJaxbPackage().getXsdSchema(); - if (schema == null) { - return EmptyIterable.instance(); - } - return schema.getSimpleTypeNameProposals(getNamespace(), filter); - } - - protected abstract JaxbPackage getJaxbPackage(); - -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSeeAlso.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSeeAlso.java deleted file mode 100644 index 10bd71e06b..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSeeAlso.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Oracle - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentClass; -import org.eclipse.jpt.jaxb.core.context.XmlSeeAlso; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSeeAlsoAnnotation; - -public class GenericJavaXmlSeeAlso - extends AbstractJavaContextNode - implements XmlSeeAlso { - - protected final XmlSeeAlsoAnnotation annotation; - - protected final ValueContainer valueContainer; - - - public GenericJavaXmlSeeAlso(JaxbPersistentClass parent, XmlSeeAlsoAnnotation annotation) { - super(parent); - this.annotation = annotation; - this.valueContainer = new ValueContainer(); - } - - - public JaxbPersistentClass getPersistentClass() { - return (JaxbPersistentClass) getParent(); - } - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.valueContainer.synchronizeWithResourceModel(); - } - - public ListIterable getClasses() { - return this.valueContainer.getContextElements(); - } - - public int getClassesSize() { - return this.valueContainer.getContextElementsSize(); - } - - public void addClass(int index, String clazz) { - this.annotation.addClass(index, clazz); - this.valueContainer.addContextElement(index, clazz); - } - - public void removeClass(int index) { - this.annotation.removeClass(index); - this.valueContainer.removeContextElement(index); - } - - public void moveClass(int targetIndex, int sourceIndex) { - this.annotation.moveClass(targetIndex, sourceIndex); - this.valueContainer.moveContextElement(targetIndex, sourceIndex); - } - - public Iterable getDirectlyReferencedTypeNames() { - return this.annotation.getFullyQualifiedClasses(); - } - - @Override - public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.annotation.getTextRange(astRoot); - } - - - protected class ValueContainer - extends ListContainer { - - @Override - protected String getContextElementsPropertyName() { - return CLASSES_LIST; - } - - @Override - protected String buildContextElement(String resourceElement) { - return resourceElement; - } - - @Override - protected ListIterable getResourceElements() { - return GenericJavaXmlSeeAlso.this.annotation.getClasses(); - } - - @Override - protected String getResourceElement(String contextElement) { - return contextElement; - } - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlTransientMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlTransientMapping.java deleted file mode 100644 index d3ecbcc391..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlTransientMapping.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.resource.java.XmlTransientAnnotation; - -public class GenericJavaXmlTransientMapping - extends AbstractJavaAttributeMapping { - - public GenericJavaXmlTransientMapping(JaxbPersistentAttribute parent) { - super(parent); - } - - public String getKey() { - return MappingKeys.XML_TRANSIENT_ATTRIBUTE_MAPPING_KEY; - } - - @Override - protected String getAnnotationName() { - return XmlTransientAnnotation.ANNOTATION_NAME; - } - - public Iterable getDirectlyReferencedTypeNames() { - return EmptyIterable.instance(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlValueMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlValueMapping.java deleted file mode 100644 index fcd0f21f98..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlValueMapping.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.XmlAdaptable; -import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter; -import org.eclipse.jpt.jaxb.core.context.XmlValueMapping; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAnnotatedElement; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlValueAnnotation; - -public class GenericJavaXmlValueMapping - extends AbstractJavaAttributeMapping - implements XmlValueMapping -{ - protected final XmlAdaptable xmlAdaptable; - - - public GenericJavaXmlValueMapping(JaxbPersistentAttribute parent) { - super(parent); - this.xmlAdaptable = buildXmlAdaptable(); - } - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.xmlAdaptable.synchronizeWithResourceModel(); - } - - @Override - public void update() { - super.update(); - this.xmlAdaptable.update(); - } - - public String getKey() { - return MappingKeys.XML_VALUE_ATTRIBUTE_MAPPING_KEY; - } - - @Override - protected String getAnnotationName() { - return XmlValueAnnotation.ANNOTATION_NAME; - } - - //****************** XmlJavaTypeAdapter ********************* - - public XmlAdaptable buildXmlAdaptable() { - return new GenericJavaXmlAdaptable(this, new XmlAdaptable.Owner() { - public JavaResourceAnnotatedElement getResource() { - return getJavaResourceAttribute(); - } - public XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation adapterAnnotation) { - return GenericJavaXmlValueMapping.this.buildXmlJavaTypeAdapter(adapterAnnotation); - } - public void fireXmlAdapterChanged(XmlJavaTypeAdapter oldAdapter, XmlJavaTypeAdapter newAdapter) { - GenericJavaXmlValueMapping.this.firePropertyChanged(XML_JAVA_TYPE_ADAPTER_PROPERTY, oldAdapter, newAdapter); - } - }); - } - - public XmlJavaTypeAdapter getXmlJavaTypeAdapter() { - return this.xmlAdaptable.getXmlJavaTypeAdapter(); - } - - public XmlJavaTypeAdapter addXmlJavaTypeAdapter() { - return this.xmlAdaptable.addXmlJavaTypeAdapter(); - } - - protected XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation xmlJavaTypeAdapterAnnotation) { - return new GenericJavaAttributeXmlJavaTypeAdapter(this, xmlJavaTypeAdapterAnnotation); - } - - public void removeXmlJavaTypeAdapter() { - this.xmlAdaptable.removeXmlJavaTypeAdapter(); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAnyAttributeMappingDefinition.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAnyAttributeMappingDefinition.java deleted file mode 100644 index e7b3e43b54..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAnyAttributeMappingDefinition.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable; -import org.eclipse.jpt.jaxb.core.JaxbFactory; -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.java.JavaAttributeMappingDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAnyAttributeAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; - - -public class JavaXmlAnyAttributeMappingDefinition - extends AbstractJavaAttributeMappingDefinition -{ - // singleton - private static final JavaXmlAnyAttributeMappingDefinition INSTANCE = - new JavaXmlAnyAttributeMappingDefinition(); - - - /** - * Return the singleton. - */ - public static JavaAttributeMappingDefinition instance() { - return INSTANCE; - } - - private static final String[] SUPPORTING_ANNOTATION_NAMES = - {XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME}; - - /** - * Enforce singleton usage - */ - private JavaXmlAnyAttributeMappingDefinition() { - super(); - } - - - public String getKey() { - return MappingKeys.XML_ANY_ATTRIBUTE_ATTRIBUTE_MAPPING_KEY; - } - - public String getAnnotationName() { - return XmlAnyAttributeAnnotation.ANNOTATION_NAME; - } - - public Iterable getSupportingAnnotationNames() { - return new ArrayListIterable(SUPPORTING_ANNOTATION_NAMES); - } - - public JaxbAttributeMapping buildMapping(JaxbPersistentAttribute parent, JaxbFactory factory) { - return factory.buildJavaXmlAnyAttributeMapping(parent); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAnyElementMappingDefinition.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAnyElementMappingDefinition.java deleted file mode 100644 index ce4a60988b..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAnyElementMappingDefinition.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable; -import org.eclipse.jpt.jaxb.core.JaxbFactory; -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.java.JavaAttributeMappingDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAnyElementAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAttributeAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlMixedAnnotation; - - -public class JavaXmlAnyElementMappingDefinition - extends AbstractJavaAttributeMappingDefinition -{ - // singleton - private static final JavaXmlAnyElementMappingDefinition INSTANCE = - new JavaXmlAnyElementMappingDefinition(); - - - /** - * Return the singleton. - */ - public static JavaAttributeMappingDefinition instance() { - return INSTANCE; - } - - private static final String[] SUPPORTING_ANNOTATION_NAMES = - {XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME, - XmlMixedAnnotation.ANNOTATION_NAME}; - - /** - * Enforce singleton usage - */ - private JavaXmlAnyElementMappingDefinition() { - super(); - } - - - public String getKey() { - return MappingKeys.XML_ANY_ELEMENT_ATTRIBUTE_MAPPING_KEY; - } - - public String getAnnotationName() { - return XmlAnyElementAnnotation.ANNOTATION_NAME; - } - - public Iterable getSupportingAnnotationNames() { - return new ArrayListIterable(SUPPORTING_ANNOTATION_NAMES); - } - - public JaxbAttributeMapping buildMapping(JaxbPersistentAttribute parent, JaxbFactory factory) { - return factory.buildJavaXmlAnyElementMapping(parent); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAttributeMappingDefinition.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAttributeMappingDefinition.java deleted file mode 100644 index 2a7e2d8c98..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlAttributeMappingDefinition.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable; -import org.eclipse.jpt.jaxb.core.JaxbFactory; -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.java.JavaAttributeMappingDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAttachmentRefAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAttributeAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlIDAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlIDREFAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlInlineBinaryDataAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlListAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlMimeTypeAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation; - - -public class JavaXmlAttributeMappingDefinition - extends AbstractJavaAttributeMappingDefinition -{ - // singleton - private static final JavaXmlAttributeMappingDefinition INSTANCE = - new JavaXmlAttributeMappingDefinition(); - - - /** - * Return the singleton. - */ - public static JavaAttributeMappingDefinition instance() { - return INSTANCE; - } - - private static final String[] SUPPORTING_ANNOTATION_NAMES = - {XmlIDAnnotation.ANNOTATION_NAME, - XmlIDREFAnnotation.ANNOTATION_NAME, - XmlListAnnotation.ANNOTATION_NAME, - XmlSchemaTypeAnnotation.ANNOTATION_NAME, - XmlAttachmentRefAnnotation.ANNOTATION_NAME, - XmlMimeTypeAnnotation.ANNOTATION_NAME, - XmlInlineBinaryDataAnnotation.ANNOTATION_NAME, - XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME}; - - /** - * Enforce singleton usage - */ - private JavaXmlAttributeMappingDefinition() { - super(); - } - - - public String getKey() { - return MappingKeys.XML_ATTRIBUTE_ATTRIBUTE_MAPPING_KEY; - } - - public String getAnnotationName() { - return XmlAttributeAnnotation.ANNOTATION_NAME; - } - - public Iterable getSupportingAnnotationNames() { - return new ArrayListIterable(SUPPORTING_ANNOTATION_NAMES); - } - - public JaxbAttributeMapping buildMapping(JaxbPersistentAttribute parent, JaxbFactory factory) { - return factory.buildJavaXmlAttributeMapping(parent); - } -} diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlElementMappingDefinition.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlElementMappingDefinition.java deleted file mode 100644 index ac77dc9fee..0000000000 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/JavaXmlElementMappingDefinition.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.jaxb.core.internal.context.java; - -import java.util.Collection; -import org.eclipse.jpt.common.utility.internal.iterables.ArrayListIterable; -import org.eclipse.jpt.jaxb.core.JaxbFactory; -import org.eclipse.jpt.jaxb.core.MappingKeys; -import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping; -import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; -import org.eclipse.jpt.jaxb.core.context.java.DefaultJavaAttributeMappingDefinition; -import org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAttribute; -import org.eclipse.jpt.jaxb.core.resource.java.XmlAttachmentRefAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlElementAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlElementWrapperAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlIDAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlIDREFAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlInlineBinaryDataAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlListAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlMimeTypeAnnotation; -import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation; - - -public class JavaXmlElementMappingDefinition - extends AbstractJavaAttributeMappingDefinition - implements DefaultJavaAttributeMappingDefinition -{ - // singleton - private static final JavaXmlElementMappingDefinition INSTANCE = - new JavaXmlElementMappingDefinition(); - - private static final String[] SUPPORTING_ANNOTATION_NAMES = - {XmlIDAnnotation.ANNOTATION_NAME, - XmlIDREFAnnotation.ANNOTATION_NAME, - XmlListAnnotation.ANNOTATION_NAME, - XmlSchemaTypeAnnotation.ANNOTATION_NAME, - XmlAttachmentRefAnnotation.ANNOTATION_NAME, - XmlMimeTypeAnnotation.ANNOTATION_NAME, - XmlInlineBinaryDataAnnotation.ANNOTATION_NAME, - XmlElementWrapperAnnotation.ANNOTATION_NAME, - XmlJavaTypeAdapterAnnotation.ANNOTATION_NAME}; - - /** - * Return the singleton. - */ - public static DefaultJavaAttributeMappingDefinition instance() { - return INSTANCE; - } - - - /** - * Enforce singleton usage - */ - private JavaXmlElementMappingDefinition() { - super(); - } - - - public String getKey() { - return MappingKeys.XML_ELEMENT_ATTRIBUTE_MAPPING_KEY; - } - - public String getAnnotationName() { - return XmlElementAnnotation.ANNOTATION_NAME; - } - - public Iterable getSupportingAnnotationNames() { - return new ArrayListIterable(SUPPORTING_ANNOTATION_NAMES); - } - - public JaxbAttributeMapping buildMapping(JaxbPersistentAttribute parent, JaxbFactory factory) { - return factory.buildJavaXmlElementMapping(parent); - } - - /** - * From the JAXB spec section 8.12.5.1 Default Mapping: - *

- * A single valued property or field must be mapped by with the following default mapping annotation:

    - *
  • @XmlElement - *
- *

- * A property or field with a collection type must be mapped by with the following default mapping annotation: